diff --git a/android/build.gradle b/android/build.gradle index 90919f4689..442d484690 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -6,8 +6,8 @@ buildscript { minSdkVersion = 26 compileSdkVersion = 35 targetSdkVersion = 34 - ndkVersion = "26.1.10909125" - RNNKotlinVersion = "1.9.25" + ndkVersion = "27.1.12297006" + kotlinVersion = "2.0.21" } repositories { mavenLocal() @@ -19,7 +19,7 @@ buildscript { classpath("com.facebook.react:react-native-gradle-plugin") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$RNNKotlinVersion" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" } } diff --git a/android/gradle.properties b/android/gradle.properties index 87828ffa13..60916a46e0 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -28,7 +28,7 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 # your application. You should enable this flag either if you want # to write custom TurboModules/Fabric components OR use libraries that # are providing them. -newArchEnabled=false +newArchEnabled=true # Use this property to enable or disable the Hermes JS engine. # If set to false, you will be using JSC instead. diff --git a/demo/src/index.js b/demo/src/index.js index bc0c42b433..91ecf9d91f 100644 --- a/demo/src/index.js +++ b/demo/src/index.js @@ -1,8 +1,7 @@ -import {UIManager, I18nManager} from 'react-native'; +import {I18nManager} from 'react-native'; import {navigationData as menuStructure} from './screens/MenuStructure'; import {loadDemoConfigurations} from './configurations'; -UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true); // eslint-disable-line I18nManager.allowRTL(true); module.exports = { diff --git a/demo/src/screens/componentScreens/AnimatedImageScreen.js b/demo/src/screens/componentScreens/AnimatedImageScreen.js index 237529b062..292972a5f9 100644 --- a/demo/src/screens/componentScreens/AnimatedImageScreen.js +++ b/demo/src/screens/componentScreens/AnimatedImageScreen.js @@ -4,8 +4,8 @@ import _ from 'lodash'; import {AnimatedImage, Colors} from 'react-native-ui-lib'; //eslint-disable-line const SampleImages = [ - 'https://static.pexels.com/photos/50721/pencils-crayons-colourful-rainbow-50721.jpeg', - 'https://static.pexels.com/photos/60628/flower-garden-blue-sky-hokkaido-japan-60628.jpeg' + 'https://images.pexels.com/photos/2529146/pexels-photo-2529146.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500', + 'https://images.pexels.com/photos/2529158/pexels-photo-2529158.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500' ]; export default class AnimatedImageScreen extends Component { diff --git a/demo/src/screens/componentScreens/SortableListScreen.tsx b/demo/src/screens/componentScreens/SortableListScreen.tsx index a8b91bc938..d7ef2c203c 100644 --- a/demo/src/screens/componentScreens/SortableListScreen.tsx +++ b/demo/src/screens/componentScreens/SortableListScreen.tsx @@ -129,7 +129,7 @@ export default SortableListScreen; const styles = StyleSheet.create({ itemContainer: { height: 52, - borderColor: Colors.$outlineDefault, + borderBottomColor: Colors.$outlineDefault, borderBottomWidth: 1 }, selectedItemContainer: { diff --git a/demo/src/screens/componentScreens/StackAggregatorScreen.tsx b/demo/src/screens/componentScreens/StackAggregatorScreen.tsx index e122872aff..d24b494b11 100644 --- a/demo/src/screens/componentScreens/StackAggregatorScreen.tsx +++ b/demo/src/screens/componentScreens/StackAggregatorScreen.tsx @@ -68,7 +68,7 @@ export default class StackAggregatorScreen extends Component { containerStyle={{marginTop: 12}} onItemPress={this.onItemPress} collapsed={false} - contentContainerStyle={{backgroundColor: Colors.red70}} + backgroundColor={Colors.red70} // itemBorderRadius={10} // buttonProps={{color: Colors.green30, labelStyle: {...Typography.text80, fontWeight: '500'}}} > diff --git a/demo/src/screens/componentScreens/TabControllerScreen/tab3.tsx b/demo/src/screens/componentScreens/TabControllerScreen/tab3.tsx index 0509aab97d..42a00f85d0 100644 --- a/demo/src/screens/componentScreens/TabControllerScreen/tab3.tsx +++ b/demo/src/screens/componentScreens/TabControllerScreen/tab3.tsx @@ -62,7 +62,7 @@ class Tab2 extends Component { diff --git a/demo/src/screens/incubatorScreens/PanViewScreen.tsx b/demo/src/screens/incubatorScreens/PanViewScreen.tsx index 662d3958eb..4f39cae394 100644 --- a/demo/src/screens/incubatorScreens/PanViewScreen.tsx +++ b/demo/src/screens/incubatorScreens/PanViewScreen.tsx @@ -1,6 +1,6 @@ import React, {Component} from 'react'; import {StyleSheet, ScrollView} from 'react-native'; -import {FlatList} from 'react-native-gesture-handler'; +import {FlatList, GestureHandlerRootView} from 'react-native-gesture-handler'; import { Assets, View, @@ -147,7 +147,7 @@ class PanViewScreen extends Component { render() { const {showToast, showDialog} = this.state; return ( - + New Pan View @@ -163,7 +163,7 @@ class PanViewScreen extends Component { {showToast && this.renderToast()} {showDialog && this.renderDialog()} - + ); } } diff --git a/demo/src/screens/nativeComponentScreens/HighlightOverlayViewScreen.js b/demo/src/screens/nativeComponentScreens/HighlightOverlayViewScreen.js index f31619f4cb..4722a2efd2 100644 --- a/demo/src/screens/nativeComponentScreens/HighlightOverlayViewScreen.js +++ b/demo/src/screens/nativeComponentScreens/HighlightOverlayViewScreen.js @@ -16,7 +16,10 @@ export default class HighlightOverlayViewScreen extends PureComponent { } componentDidMount() { - this.setState({showFTE: true}); + // setting timeout to allow Android's transition animation to complete + setTimeout(() => { + this.setState({showFTE: true}); + }, 1000); } onRefUpdated(ref) { diff --git a/docuilib/package.json b/docuilib/package.json index 1afa614874..5750a97919 100644 --- a/docuilib/package.json +++ b/docuilib/package.json @@ -43,11 +43,10 @@ "@types/react": "^17.0.14", "@types/react-helmet": "^6.1.2", "@types/react-router-dom": "^5.1.8", - "metro-react-native-babel-preset": "0.76.9", + "metro-react-native-babel-preset": "0.77.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-native-linear-gradient": "2.6.2", - "react-native-reanimated": "3.16.7", "react-native-shimmer-placeholder": "^2.0.9", "react-native-ui-lib": "snapshot", "shell-utils": "^1.0.10", diff --git a/docuilib/plugins/uilib.js b/docuilib/plugins/uilib.js index 2bb04982cb..f1ce054d11 100644 --- a/docuilib/plugins/uilib.js +++ b/docuilib/plugins/uilib.js @@ -6,13 +6,12 @@ module.exports = ({siteDir}, _options) => { path.resolve(siteDir, 'src'), path.resolve(siteDir, 'node_modules/react-native-web'), path.resolve(siteDir, 'node_modules/react-native-ui-lib'), - // // just for not getting warnings path.resolve(siteDir, 'node_modules/react-native-shimmer-placeholder'), + path.resolve(siteDir, 'node_modules/react-native-reanimated'), path.resolve(siteDir, 'node_modules/react-native-linear-gradient') - // // end just for not getting warnings + // just for not getting warnings // path.resolve(siteDir, 'node_modules/react-native-haptic-feedback'), // path.resolve(siteDir, 'node_modules/react-native-animatable'), - // path.resolve(siteDir, 'node_modules/react-native-reanimated'), // path.resolve(siteDir, 'node_modules/react-native-svg'), // path.resolve(siteDir, 'node_modules/react-native-svg-transformer'), // path.resolve(siteDir, 'node_modules/@react-native-community/netinfo'), diff --git a/docuilib/yarn.lock b/docuilib/yarn.lock index e6494c364e..37c61343f1 100644 --- a/docuilib/yarn.lock +++ b/docuilib/yarn.lock @@ -957,7 +957,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.0.0-0, @babel/plugin-transform-arrow-functions@npm:^7.25.9": +"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" dependencies: @@ -1027,7 +1027,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.0.0-0, @babel/plugin-transform-class-properties@npm:^7.25.9": +"@babel/plugin-transform-class-properties@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" dependencies: @@ -1051,7 +1051,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.0.0-0, @babel/plugin-transform-classes@npm:^7.25.9": +"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-classes@npm:7.25.9" dependencies: @@ -1326,7 +1326,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.0.0-0, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.9": +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.9" dependencies: @@ -1384,7 +1384,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.0.0-0, @babel/plugin-transform-optional-chaining@npm:^7.25.9": +"@babel/plugin-transform-optional-chaining@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" dependencies: @@ -1592,7 +1592,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.0.0-0, @babel/plugin-transform-shorthand-properties@npm:^7.25.9": +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" dependencies: @@ -1626,7 +1626,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.0.0-0, @babel/plugin-transform-template-literals@npm:^7.25.9": +"@babel/plugin-transform-template-literals@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-template-literals@npm:7.25.9" dependencies: @@ -1701,7 +1701,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.0.0, @babel/plugin-transform-unicode-regex@npm:^7.0.0-0, @babel/plugin-transform-unicode-regex@npm:^7.25.9": +"@babel/plugin-transform-unicode-regex@npm:^7.0.0, @babel/plugin-transform-unicode-regex@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" dependencies: @@ -1833,7 +1833,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.16.7, @babel/preset-typescript@npm:^7.21.0, @babel/preset-typescript@npm:^7.25.9": +"@babel/preset-typescript@npm:^7.21.0, @babel/preset-typescript@npm:^7.25.9": version: 7.26.0 resolution: "@babel/preset-typescript@npm:7.26.0" dependencies: @@ -9173,9 +9173,9 @@ __metadata: languageName: node linkType: hard -"metro-react-native-babel-preset@npm:0.76.9": - version: 0.76.9 - resolution: "metro-react-native-babel-preset@npm:0.76.9" +"metro-react-native-babel-preset@npm:0.77.0": + version: 0.77.0 + resolution: "metro-react-native-babel-preset@npm:0.77.0" dependencies: "@babel/core": ^7.20.0 "@babel/plugin-proposal-async-generator-functions": ^7.0.0 @@ -9218,7 +9218,7 @@ __metadata: react-refresh: ^0.4.0 peerDependencies: "@babel/core": "*" - checksum: 344fbcbcf82a9f8425a38a910716777cf45619d7b61a1a935a903f751e3a335ff8a54f80ba9fd9a16b96ac74e68f77760cb09d2c40ec6faf113308c91b863a9e + checksum: 09fb64735d4517f62cb0cbd386bdfa64d0de5a4f8c85b54c36b5799b242e897295d58c9d18e124033233841d8fcd33a109dda3dd9f1e5554e516f689eef14a0d languageName: node linkType: hard @@ -11567,16 +11567,6 @@ __metadata: languageName: node linkType: hard -"react-native-is-edge-to-edge@npm:1.1.7": - version: 1.1.7 - resolution: "react-native-is-edge-to-edge@npm:1.1.7" - peerDependencies: - react: "*" - react-native: "*" - checksum: 4cdf2b2fb5b131f2015c26d2cb7688b4a0c5f3c8474b1bf0ddfa9eabb0263df440c87262ae8f812a6ecab0d5310df0373bddad4b51f53dabb2ffee01e9ef0f44 - languageName: node - linkType: hard - "react-native-linear-gradient@npm:2.6.2": version: 2.6.2 resolution: "react-native-linear-gradient@npm:2.6.2" @@ -11587,30 +11577,6 @@ __metadata: languageName: node linkType: hard -"react-native-reanimated@npm:3.17.3": - version: 3.17.3 - resolution: "react-native-reanimated@npm:3.17.3" - dependencies: - "@babel/plugin-transform-arrow-functions": ^7.0.0-0 - "@babel/plugin-transform-class-properties": ^7.0.0-0 - "@babel/plugin-transform-classes": ^7.0.0-0 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.0.0-0 - "@babel/plugin-transform-optional-chaining": ^7.0.0-0 - "@babel/plugin-transform-shorthand-properties": ^7.0.0-0 - "@babel/plugin-transform-template-literals": ^7.0.0-0 - "@babel/plugin-transform-unicode-regex": ^7.0.0-0 - "@babel/preset-typescript": ^7.16.7 - convert-source-map: ^2.0.0 - invariant: ^2.2.4 - react-native-is-edge-to-edge: 1.1.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - react: "*" - react-native: "*" - checksum: 928c652e365ae9dca7bd6c895cf163294153ae64f73b63637fad0787e8c66266bb63faf5e7aa7bfc29f057eb176eab12d60029f6165a045f25f19165e693b98e - languageName: node - linkType: hard - "react-native-redash@npm:^12.0.3": version: 12.6.1 resolution: "react-native-redash@npm:12.6.1" @@ -13524,14 +13490,13 @@ __metadata: clsx: ^1.1.1 docusaurus-plugin-sass: ^0.2.1 file-loader: ^6.2.0 - metro-react-native-babel-preset: 0.76.9 + metro-react-native-babel-preset: 0.77.0 prettier: 2.8.8 prism-react-renderer: ^2.4.1 react: ^18.2.0 react-dom: ^18.2.0 react-html-parser: ^2.0.2 react-native-linear-gradient: 2.6.2 - react-native-reanimated: 3.17.3 react-native-shimmer-placeholder: ^2.0.9 react-native-ui-lib: snapshot react-native-web: ^0.19.12 diff --git a/expoDemo/package.json b/expoDemo/package.json index 25e9b20263..054ab56998 100644 --- a/expoDemo/package.json +++ b/expoDemo/package.json @@ -18,7 +18,7 @@ "metro-config": "^0.75.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.76.9", + "react-native": "0.77.2", "react-native-gesture-handler": "2.22.1", "react-native-haptic-feedback": "^1.14.0", "react-native-navigation": "8.0.0", diff --git a/index.js b/index.js index 423e85d9c1..2d7d0cf3e6 100644 --- a/index.js +++ b/index.js @@ -1,3 +1,4 @@ +import 'setimmediate'; require('./demo/src/index'); require('./demo/src/demoApp'); // this is separated from demo/src/index by purpose diff --git a/ios/Podfile b/ios/Podfile index 38417c7001..84bf4d4117 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,4 +1,3 @@ -ENV['RCT_NEW_ARCH_ENABLED'] = '0' # Resolve react_native_pods.rb with node to allow for hoisting require Pod::Executable.execute_command('node', ['-p', 'require.resolve( @@ -24,12 +23,6 @@ target 'rnuilib' do # An absolute path to your application root. :app_path => "#{Pod::Config.instance.installation_root}/.." ) - - target 'rnuilibTests' do - inherit! :complete - # Pods for testing - # use_flipper!() - end post_install do |installer| # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 diff --git a/ios/rnuilib.xcodeproj/project.pbxproj b/ios/rnuilib.xcodeproj/project.pbxproj index 533e775e4a..87336a18b1 100644 --- a/ios/rnuilib.xcodeproj/project.pbxproj +++ b/ios/rnuilib.xcodeproj/project.pbxproj @@ -7,19 +7,16 @@ objects = { /* Begin PBXBuildFile section */ - 00E356F31AD99517003FC87E /* rnuilibTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* rnuilibTests.m */; }; - 10A864C1285B5CB00011FF03 /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 10A864C0285B5CB00011FF03 /* AppDelegate.mm */; }; + 10C29C812DCE637B0050BB15 /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 10C29C802DCE637B0050BB15 /* AppDelegate.mm */; }; + 10C29C832DCE7AE00050BB15 /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 10C29C822DCE7AE00050BB15 /* AppDelegate.mm */; }; + 10C29C852DCE7AED0050BB15 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 10C29C842DCE7AED0050BB15 /* main.m */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 2DCD954D1E0B4F2C00145EB5 /* rnuilibTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* rnuilibTests.m */; }; - 56EBC4A1F72808C5B51F7BBF /* libPods-rnuilib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C5768CF5EB4CEC5AF24695D /* libPods-rnuilib.a */; }; 8E52CBDF2887DD21009D5EC5 /* DesignTokens.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8E52CBDE2887DD21009D5EC5 /* DesignTokens.xcassets */; }; 8E8B0D662744D9CD0026B520 /* void.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E8B0D652744D9CD0026B520 /* void.swift */; }; 8EA1FC8C2519E7F7008B4B36 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8EA1FC8B2519E7F7008B4B36 /* LaunchScreen.storyboard */; }; BD943D6D9239B59015528C14 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = DED5A85D4BF49DFA47437893 /* PrivacyInfo.xcprivacy */; }; - C24F706C923507D9D0AFAF26 /* libPods-rnuilib-rnuilibTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FB858F3A7230EAA142D23DA1 /* libPods-rnuilib-rnuilibTests.a */; }; + C2BFF53A3D9C89E8C38C119D /* libPods-rnuilib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B1BEF55D1269FAD80AF15FA /* libPods-rnuilib.a */; }; C41C90B146B08809BC045295 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 411699F1CD4A37F8779A4620 /* PrivacyInfo.xcprivacy */; }; /* End PBXBuildFile section */ @@ -43,29 +40,25 @@ /* Begin PBXFileReference section */ 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; 00E356EE1AD99517003FC87E /* rnuilibTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = rnuilibTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 00E356F21AD99517003FC87E /* rnuilibTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rnuilibTests.m; sourceTree = ""; }; - 10A864C0285B5CB00011FF03 /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = rnuilib/AppDelegate.mm; sourceTree = ""; }; + 10C29C7F2DCE637B0050BB15 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = rnuilib/AppDelegate.h; sourceTree = ""; }; + 10C29C802DCE637B0050BB15 /* AppDelegate.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = rnuilib/AppDelegate.mm; sourceTree = ""; }; + 10C29C822DCE7AE00050BB15 /* AppDelegate.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = rnuilib/AppDelegate.mm; sourceTree = ""; }; + 10C29C842DCE7AED0050BB15 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = main.m; path = rnuilib/main.m; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* rnuilib.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = rnuilib.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = rnuilib/AppDelegate.h; sourceTree = ""; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = rnuilib/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = rnuilib/Info.plist; sourceTree = ""; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = rnuilib/main.m; sourceTree = ""; }; 2D02E47B1E0B4A5D006451C7 /* rnuilib-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "rnuilib-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 2D02E4901E0B4A5D006451C7 /* rnuilib-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "rnuilib-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 411699F1CD4A37F8779A4620 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = rnuilib/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 56523CB09C6A79FEBA0C210A /* Pods-rnuilib-rnuilibTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rnuilib-rnuilibTests.release.xcconfig"; path = "Target Support Files/Pods-rnuilib-rnuilibTests/Pods-rnuilib-rnuilibTests.release.xcconfig"; sourceTree = ""; }; - 65B766BC0A8D1F830F3D2004 /* Pods-rnuilib.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rnuilib.debug.xcconfig"; path = "Target Support Files/Pods-rnuilib/Pods-rnuilib.debug.xcconfig"; sourceTree = ""; }; - 66AD894C4A02A884861A27E2 /* Pods-rnuilib.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rnuilib.release.xcconfig"; path = "Target Support Files/Pods-rnuilib/Pods-rnuilib.release.xcconfig"; sourceTree = ""; }; - 6C5768CF5EB4CEC5AF24695D /* libPods-rnuilib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-rnuilib.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 86A4AD8C011363501515A0EC /* Pods-rnuilib-rnuilibTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rnuilib-rnuilibTests.debug.xcconfig"; path = "Target Support Files/Pods-rnuilib-rnuilibTests/Pods-rnuilib-rnuilibTests.debug.xcconfig"; sourceTree = ""; }; + 3092D044D40F28F133D81A80 /* Pods-rnuilib.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rnuilib.release.xcconfig"; path = "Target Support Files/Pods-rnuilib/Pods-rnuilib.release.xcconfig"; sourceTree = ""; }; + 3B1BEF55D1269FAD80AF15FA /* libPods-rnuilib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-rnuilib.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 411699F1CD4A37F8779A4620 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = rnuilib/PrivacyInfo.xcprivacy; sourceTree = ""; }; 8E52CBDE2887DD21009D5EC5 /* DesignTokens.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = DesignTokens.xcassets; sourceTree = ""; }; 8E8B0D652744D9CD0026B520 /* void.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = void.swift; sourceTree = ""; }; 8EA1FC8B2519E7F7008B4B36 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = rnuilib/LaunchScreen.storyboard; sourceTree = ""; }; - DED5A85D4BF49DFA47437893 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = rnuilib/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 961D3F437C09AAFC776D80CB /* Pods-rnuilib.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rnuilib.debug.xcconfig"; path = "Target Support Files/Pods-rnuilib/Pods-rnuilib.debug.xcconfig"; sourceTree = ""; }; + DED5A85D4BF49DFA47437893 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = rnuilib/PrivacyInfo.xcprivacy; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; - FB858F3A7230EAA142D23DA1 /* libPods-rnuilib-rnuilibTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-rnuilib-rnuilibTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -73,7 +66,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C24F706C923507D9D0AFAF26 /* libPods-rnuilib-rnuilibTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -81,7 +73,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 56EBC4A1F72808C5B51F7BBF /* libPods-rnuilib.a in Frameworks */, + C2BFF53A3D9C89E8C38C119D /* libPods-rnuilib.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -102,33 +94,17 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 00E356EF1AD99517003FC87E /* rnuilibTests */ = { - isa = PBXGroup; - children = ( - 00E356F21AD99517003FC87E /* rnuilibTests.m */, - 00E356F01AD99517003FC87E /* Supporting Files */, - ); - path = rnuilibTests; - sourceTree = ""; - }; - 00E356F01AD99517003FC87E /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 00E356F11AD99517003FC87E /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; 13B07FAE1A68108700A75B9A /* rnuilib */ = { isa = PBXGroup; children = ( + 10C29C7F2DCE637B0050BB15 /* AppDelegate.h */, + 10C29C822DCE7AE00050BB15 /* AppDelegate.mm */, + 10C29C842DCE7AED0050BB15 /* main.m */, + 10C29C802DCE637B0050BB15 /* AppDelegate.mm */, 8E52CBDE2887DD21009D5EC5 /* DesignTokens.xcassets */, - 10A864C0285B5CB00011FF03 /* AppDelegate.mm */, 008F07F21AC5B25A0029DE68 /* main.jsbundle */, - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, - 13B07FB71A68108700A75B9A /* main.m */, 8EA1FC8B2519E7F7008B4B36 /* LaunchScreen.storyboard */, 8E8B0D652744D9CD0026B520 /* void.swift */, DED5A85D4BF49DFA47437893 /* PrivacyInfo.xcprivacy */, @@ -141,8 +117,7 @@ children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, ED2971642150620600B7C4FE /* JavaScriptCore.framework */, - 6C5768CF5EB4CEC5AF24695D /* libPods-rnuilib.a */, - FB858F3A7230EAA142D23DA1 /* libPods-rnuilib-rnuilibTests.a */, + 3B1BEF55D1269FAD80AF15FA /* libPods-rnuilib.a */, ); name = Frameworks; sourceTree = ""; @@ -159,7 +134,6 @@ children = ( 13B07FAE1A68108700A75B9A /* rnuilib */, 832341AE1AAA6A7D00B99B32 /* Libraries */, - 00E356EF1AD99517003FC87E /* rnuilibTests */, 83CBBA001A601CBA00E9B192 /* Products */, 2D16E6871FA4F8E400B85C8A /* Frameworks */, D99C980AB24A05601E0007F9 /* Pods */, @@ -184,10 +158,8 @@ D99C980AB24A05601E0007F9 /* Pods */ = { isa = PBXGroup; children = ( - 65B766BC0A8D1F830F3D2004 /* Pods-rnuilib.debug.xcconfig */, - 66AD894C4A02A884861A27E2 /* Pods-rnuilib.release.xcconfig */, - 86A4AD8C011363501515A0EC /* Pods-rnuilib-rnuilibTests.debug.xcconfig */, - 56523CB09C6A79FEBA0C210A /* Pods-rnuilib-rnuilibTests.release.xcconfig */, + 961D3F437C09AAFC776D80CB /* Pods-rnuilib.debug.xcconfig */, + 3092D044D40F28F133D81A80 /* Pods-rnuilib.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -199,12 +171,9 @@ isa = PBXNativeTarget; buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "rnuilibTests" */; buildPhases = ( - 72FA426D5675971732169A33 /* [CP] Check Pods Manifest.lock */, 00E356EA1AD99517003FC87E /* Sources */, 00E356EB1AD99517003FC87E /* Frameworks */, 00E356EC1AD99517003FC87E /* Resources */, - 4A2DFE2E4F276607CC9422BA /* [CP] Embed Pods Frameworks */, - 05F5C3E9528158446F3788A5 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -220,14 +189,14 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "rnuilib" */; buildPhases = ( - 5C139D0477DFF8903C0C457A /* [CP] Check Pods Manifest.lock */, + 1948831A105FB85C7FF19246 /* [CP] Check Pods Manifest.lock */, FD10A7F022414F080027D42C /* Start Packager */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - A077BED00DEE8BB3D2E7978D /* [CP] Embed Pods Frameworks */, - 74E5355D055C34254F806DF4 /* [CP] Copy Pods Resources */, + 2304E9EEAAF1BDEF6BC7EBEB /* [CP] Embed Pods Frameworks */, + 668BE1E2EE321ADFA49231D6 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -288,7 +257,7 @@ TestTargetID = 13B07F861A680F5B00A75B9A; }; 13B07F861A680F5B00A75B9A = { - LastSwiftMigration = 1300; + LastSwiftMigration = 1620; }; 2D02E47A1E0B4A5D006451C7 = { CreatedOnToolsVersion = 8.2.1; @@ -376,55 +345,35 @@ shellPath = /bin/sh; shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; }; - 05F5C3E9528158446F3788A5 /* [CP] Copy Pods Resources */ = { + 1948831A105FB85C7FF19246 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rnuilib-rnuilibTests/Pods-rnuilib-rnuilibTests-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/RCT-Folly/RCT-Folly_privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/RNSVG/RNSVGFilters.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/React-Core_privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact/React-cxxreact_privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/boost/boost_privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/glog/glog_privacy.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCT-Folly_privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNSVGFilters.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-Core_privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-cxxreact_privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/boost_privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/glog_privacy.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rnuilib-rnuilibTests/Pods-rnuilib-rnuilibTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( + inputFileListPaths = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Bundle React Native Code And Images"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-rnuilib-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 4A2DFE2E4F276607CC9422BA /* [CP] Embed Pods Frameworks */ = { + 2304E9EEAAF1BDEF6BC7EBEB /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rnuilib-rnuilibTests/Pods-rnuilib-rnuilibTests-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-rnuilib/Pods-rnuilib-frameworks.sh", "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", ); name = "[CP] Embed Pods Frameworks"; @@ -433,54 +382,24 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rnuilib-rnuilibTests/Pods-rnuilib-rnuilibTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 5C139D0477DFF8903C0C457A /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-rnuilib-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rnuilib/Pods-rnuilib-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 72FA426D5675971732169A33 /* [CP] Check Pods Manifest.lock */ = { + 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( ); + name = "Bundle React Native Code And Images"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-rnuilib-rnuilibTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; }; - 74E5355D055C34254F806DF4 /* [CP] Copy Pods Resources */ = { + 668BE1E2EE321ADFA49231D6 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -508,24 +427,6 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rnuilib/Pods-rnuilib-resources.sh\"\n"; showEnvVarsInLog = 0; }; - A077BED00DEE8BB3D2E7978D /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rnuilib/Pods-rnuilib-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rnuilib/Pods-rnuilib-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; FD10A7F022414F080027D42C /* Start Packager */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -571,7 +472,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 00E356F31AD99517003FC87E /* rnuilibTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -579,8 +479,9 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 13B07FC11A68108700A75B9A /* main.m in Sources */, - 10A864C1285B5CB00011FF03 /* AppDelegate.mm in Sources */, + 10C29C812DCE637B0050BB15 /* AppDelegate.mm in Sources */, + 10C29C832DCE7AE00050BB15 /* AppDelegate.mm in Sources */, + 10C29C852DCE7AED0050BB15 /* main.m in Sources */, 8E8B0D662744D9CD0026B520 /* void.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -589,7 +490,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -597,7 +497,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2DCD954D1E0B4F2C00145EB5 /* rnuilibTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -619,7 +518,6 @@ /* Begin XCBuildConfiguration section */ 00E356F61AD99517003FC87E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 86A4AD8C011363501515A0EC /* Pods-rnuilib-rnuilibTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -643,7 +541,6 @@ }; 00E356F71AD99517003FC87E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 56523CB09C6A79FEBA0C210A /* Pods-rnuilib-rnuilibTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -665,7 +562,7 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 65B766BC0A8D1F830F3D2004 /* Pods-rnuilib.debug.xcconfig */; + baseConfigurationReference = 961D3F437C09AAFC776D80CB /* Pods-rnuilib.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -687,6 +584,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; "PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = org.reactjs.native.example.wix.rnuilib; PRODUCT_NAME = rnuilib; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -696,7 +594,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 66AD894C4A02A884861A27E2 /* Pods-rnuilib.release.xcconfig */; + baseConfigurationReference = 3092D044D40F28F133D81A80 /* Pods-rnuilib.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -713,6 +611,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; "PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = org.reactjs.native.example.wix.rnuilib; PRODUCT_NAME = rnuilib; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; diff --git a/ios/rnuilib/AppDelegate.h b/ios/rnuilib/AppDelegate.h index 5d2808256c..ea81c6c3a8 100644 --- a/ios/rnuilib/AppDelegate.h +++ b/ios/rnuilib/AppDelegate.h @@ -1,6 +1,6 @@ -#import #import +#import "RNNAppDelegate.h" -@interface AppDelegate : RCTAppDelegate +@interface AppDelegate : RNNAppDelegate @end diff --git a/ios/rnuilib/AppDelegate.mm b/ios/rnuilib/AppDelegate.mm index 65e11a792d..605f13afd0 100644 --- a/ios/rnuilib/AppDelegate.mm +++ b/ios/rnuilib/AppDelegate.mm @@ -2,30 +2,37 @@ #import "AppDelegate.h" #import #import +#import @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; - [ReactNativeNavigation bootstrapWithBridge:bridge]; - -// self.moduleName = @"rnuilib"; + [super application:application didFinishLaunchingWithOptions:launchOptions]; + self.dependencyProvider = [RCTAppDependencyProvider new]; +// RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; +// [ReactNativeNavigation bootstrapWithBridge:bridge]; +// AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; +// RCTReactNativeFactory* factory = [delegate reactNativeFactory]; +// RCTHost *reactHost = factory.rootViewFactory.reactHost; +// AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; +// RCTHost *reactHost = (RCTHost*)[delegate.rootViewFactory valueForKey:@"_reactHost"]; +// [ReactNativeNavigation bootstrapWithHost:reactHost]; +// self.automaticallyLoadReactNativeWindow = NO; + self.moduleName = @"rnuilib"; // You can add your custom initial props in the dictionary below. // They will be passed down to the ViewController used by React Native. self.initialProps = @{}; - -// return [super application:application didFinishLaunchingWithOptions:launchOptions]; - return YES; + + // return [super application:application didFinishLaunchingWithOptions:launchOptions]; + return YES; } -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge -{ +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { return [self bundleURL]; } -- (NSURL *)bundleURL -{ +- (NSURL *)bundleURL { #if DEBUG return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; #else @@ -33,8 +40,8 @@ - (NSURL *)bundleURL #endif } -- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge { - return [ReactNativeNavigation extraModulesForBridge:bridge]; -} +// - (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge { +// return [ReactNativeNavigation extraModulesForBridge:bridge]; +// } @end diff --git a/ios/rnuilib/AppDelegate.swift b/ios/rnuilib/AppDelegate.swift new file mode 100644 index 0000000000..eee91b256d --- /dev/null +++ b/ios/rnuilib/AppDelegate.swift @@ -0,0 +1,30 @@ +import UIKit +import React +import React_RCTAppDelegate +import ReactAppDependencyProvider + +@main +class AppDelegate: RCTAppDelegate { + override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { + self.moduleName = "rnuilib" + self.dependencyProvider = RCTAppDependencyProvider() + + // You can add your custom initial props in the dictionary below. + // They will be passed down to the ViewController used by React Native. + self.initialProps = [:] + + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } + + override func sourceURL(for bridge: RCTBridge) -> URL? { + self.bundleURL() + } + + override func bundleURL() -> URL? { +#if DEBUG + RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index") +#else + Bundle.main.url(forResource: "main", withExtension: "jsbundle") +#endif + } +} diff --git a/ios/rnuilib/main.m b/ios/rnuilib/main.m index d645c7246c..a9549d36bc 100644 --- a/ios/rnuilib/main.m +++ b/ios/rnuilib/main.m @@ -7,4 +7,4 @@ int main(int argc, char *argv[]) @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } -} +} \ No newline at end of file diff --git a/ios/rnuilibTests/Info.plist b/ios/rnuilibTests/Info.plist deleted file mode 100644 index ba72822e87..0000000000 --- a/ios/rnuilibTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/ios/rnuilibTests/rnuilibTests.m b/ios/rnuilibTests/rnuilibTests.m deleted file mode 100644 index 610389222a..0000000000 --- a/ios/rnuilibTests/rnuilibTests.m +++ /dev/null @@ -1,65 +0,0 @@ -#import -#import - -#import -#import - -#define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React" - -@interface rnuilibTests : XCTestCase - -@end - -@implementation rnuilibTests - -- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test -{ - if (test(view)) { - return YES; - } - for (UIView *subview in [view subviews]) { - if ([self findSubviewInView:subview matching:test]) { - return YES; - } - } - return NO; -} - -- (void)testRendersWelcomeScreen -{ - UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; - BOOL foundElement = NO; - - __block NSString *redboxError = nil; -#ifdef DEBUG - RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - if (level >= RCTLogLevelError) { - redboxError = message; - } - }); -#endif - - while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - - foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { - return YES; - } - return NO; - }]; - } - -#ifdef DEBUG - RCTSetLogFunction(RCTDefaultLogFunction); -#endif - - XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); - XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); -} - - -@end diff --git a/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java b/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java index 0273cda659..7340b99a9a 100644 --- a/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java +++ b/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java @@ -6,7 +6,6 @@ import com.wix.reactnativeuilib.dynamicfont.DynamicFontPackage; import com.wix.reactnativeuilib.highlighterview.HighlighterViewPackage; import com.wix.reactnativeuilib.keyboardinput.KeyboardInputPackage; -import com.wix.reactnativeuilib.textinput.TextInputDelKeyHandlerPackage; import java.util.Arrays; import java.util.List; @@ -23,7 +22,6 @@ public List getPackageList() { return Arrays.asList( new DynamicFontPackage(), new HighlighterViewPackage(), - new TextInputDelKeyHandlerPackage(), new KeyboardInputPackage(application) ); } diff --git a/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java b/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java index 9694cc5cbb..b283d087a1 100644 --- a/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java +++ b/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java @@ -8,12 +8,15 @@ import android.view.View; import com.facebook.react.bridge.ReadableMap; +import com.facebook.react.bridge.UIManager; import com.facebook.react.uimanager.IllegalViewOperationException; import com.facebook.react.uimanager.NativeViewHierarchyManager; import com.facebook.react.uimanager.SimpleViewManager; import com.facebook.react.uimanager.ThemedReactContext; +import com.facebook.react.uimanager.UIManagerHelper; import com.facebook.react.uimanager.UIManagerModule; import com.facebook.react.uimanager.annotations.ReactProp; +import com.facebook.react.uimanager.common.UIManagerType; import javax.annotation.Nullable; @@ -75,33 +78,38 @@ public void setInnerPadding(HighlighterView view, @Nullable Integer innerPadding @ReactProp(name = "highlightViewTag") public void setHighlightViewTag(final HighlighterView view, Integer highlightViewTag) { - try { - NativeViewHierarchyManager nativeViewHierarchyManager = ReactHacks.getNativeViewHierarchyManager(context.getNativeModule(UIManagerModule.class)); - if (nativeViewHierarchyManager == null) { - return; - } - - final View resolvedView = nativeViewHierarchyManager.resolveView(highlightViewTag); - if (resolvedView != null) { - if (resolvedView.getWidth() == 0 || resolvedView.getHeight() == 0) { - resolvedView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { - @Override - public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { - float width = right - left; - float height = bottom - top; - if (width > 0 && height > 0) { - setViewBasedHighlightFrame(view, resolvedView); - resolvedView.removeOnLayoutChangeListener(this); - } + if (highlightViewTag != null) { + try { + UIManager uiManager = UIManagerHelper.getUIManagerForReactTag(context, highlightViewTag); + if (uiManager != null) { + final View resolvedView = uiManager.resolveView(highlightViewTag); + if (resolvedView != null) { + if (resolvedView.getWidth() == 0 || resolvedView.getHeight() == 0) { + resolvedView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { + @Override + public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { + float width = right - left; + float height = bottom - top; + if (width > 0 && height > 0) { + setViewBasedHighlightFrame(view, resolvedView); + resolvedView.removeOnLayoutChangeListener(this); + } + } + }); + } else { + setViewBasedHighlightFrame(view, resolvedView); } - }); + } else { + Log.e("HighlighterView", "was not able to resolve highlightViewTag: " + highlightViewTag.toString()); + } } else { - setViewBasedHighlightFrame(view, resolvedView); + Log.e("HighlighterView", "was not able to resolve get uiManager for highlightViewTag: " + highlightViewTag.toString()); } + } catch (IllegalViewOperationException e) { + Log.e("HighlighterView", "invalid highlightViewTag: " + highlightViewTag.toString() + " " + e.toString()); } - } - catch (IllegalViewOperationException e) { - Log.e("HighlighterView", "invalid highlightViewTag: " + highlightViewTag.toString() + " " + e.toString()); + } else { + Log.e("HighlighterView", "highlightViewTag is null"); } } diff --git a/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReactHacks.java b/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReactHacks.java deleted file mode 100644 index 7f282933b0..0000000000 --- a/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReactHacks.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.wix.reactnativeuilib.highlighterview; - - -import androidx.annotation.Nullable; - -import com.facebook.react.uimanager.NativeViewHierarchyManager; -import com.facebook.react.uimanager.UIBlock; -import com.facebook.react.uimanager.UIManagerModule; -import com.facebook.react.uimanager.UIViewOperationQueue; - -/** - * ¯\_(ツ)_/¯ - */ -public class ReactHacks { - - /** - * {@link NativeViewHierarchyManager} is used to resolve a native view by RN tag ({@link NativeViewHierarchyManager#resolveView}). The only way of obtaining it is by - * posting {@link UIBlock} which can take a noticeable amount of time to execute. - */ - @Nullable - public static NativeViewHierarchyManager getNativeViewHierarchyManager(UIManagerModule uiManager) { - try { - UIViewOperationQueue mOperationsQueue = (UIViewOperationQueue) ReflectionUtils.getDeclaredField(uiManager.getUIImplementation(), "mOperationsQueue"); - return (NativeViewHierarchyManager) ReflectionUtils.getDeclaredField(mOperationsQueue, "mNativeViewHierarchyManager"); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } -} diff --git a/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReflectionUtils.java b/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReflectionUtils.java deleted file mode 100644 index c0fa8bb0b0..0000000000 --- a/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/ReflectionUtils.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.wix.reactnativeuilib.highlighterview; - - -import androidx.annotation.Nullable; - -import java.lang.reflect.Field; - -class ReflectionUtils { - - @Nullable - static Object getDeclaredField(Object obj, String fieldName) { - try { - Field f = getField(obj.getClass(), fieldName); - if (f == null) { - return null; - } - f.setAccessible(true); - return f.get(obj); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - private static Field getField(Class clazz, String name) { - try { - return clazz.getDeclaredField(name); - } catch (NoSuchFieldException nsfe) { - return getField(clazz.getSuperclass(), name); - } catch (Exception e) { - return null; - } - } -} diff --git a/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java b/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java index 95c5e8ea47..eed6422a73 100644 --- a/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java +++ b/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java @@ -9,7 +9,7 @@ public class RuntimeUtils { private static final Runnable sUIUpdateClosure = new Runnable() { @Override public void run() { - ReactContextHolder.getContext().getNativeModule(UIManagerModule.class).onBatchComplete(); + // ReactContextHolder.getContext().getNativeModule(UIManagerModule.class).onBatchComplete(); } }; diff --git a/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/DefaultKeyListener.java b/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/DefaultKeyListener.java deleted file mode 100644 index 2db0286ba7..0000000000 --- a/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/DefaultKeyListener.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.wix.reactnativeuilib.textinput; - -import android.text.Editable; -import android.text.InputType; -import android.text.method.KeyListener; -import android.view.KeyEvent; -import android.view.View; - -class DefaultKeyListener implements KeyListener { - @Override - public int getInputType() { - return InputType.TYPE_NULL; - } - - @Override - public boolean onKeyDown(View view, Editable text, int keyCode, KeyEvent event) { - return false; - } - - @Override - public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) { - return false; - } - - @Override - public boolean onKeyOther(View view, Editable text, KeyEvent event) { - return false; - } - - @Override - public void clearMetaKeyState(View view, Editable content, int states) { - } -} diff --git a/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/KeyListenerProxy.java b/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/KeyListenerProxy.java deleted file mode 100644 index a385a0b58b..0000000000 --- a/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/KeyListenerProxy.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.wix.reactnativeuilib.textinput; - -import android.text.Editable; -import android.text.method.KeyListener; -import android.view.KeyEvent; -import android.view.View; - -import com.facebook.react.bridge.Arguments; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.modules.core.DeviceEventManagerModule; - -public class KeyListenerProxy implements KeyListener { - - final private ReactApplicationContext mContext; - final private KeyListener mKeyListener; - - KeyListenerProxy(ReactApplicationContext context, KeyListener keyListener) { - mContext = context; - mKeyListener = keyListener == null ? new DefaultKeyListener() : keyListener; - } - - @Override - public int getInputType() { - return mKeyListener.getInputType(); - } - - @Override - public boolean onKeyDown(View view, Editable text, int keyCode, KeyEvent event) { - return mKeyListener.onKeyDown(view, text, keyCode, event); - } - - @Override - public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_DEL) { - emitBackspacePressEvent(); - } - return mKeyListener.onKeyUp(view, text, keyCode, event); - } - - @Override - public boolean onKeyOther(View view, Editable text, KeyEvent event) { - return mKeyListener.onKeyOther(view, text, event); - } - - @Override - public void clearMetaKeyState(View view, Editable content, int states) { - mKeyListener.clearMetaKeyState(view, content, states); - } - - private void emitBackspacePressEvent() { - mContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit("onBackspacePress", Arguments.createMap()); - } -} diff --git a/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerModule.java b/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerModule.java deleted file mode 100644 index e6bf05cef6..0000000000 --- a/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerModule.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.wix.reactnativeuilib.textinput; - -import android.util.Log; -import android.view.View; - -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.bridge.ReactContextBaseJavaModule; -import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.uimanager.IllegalViewOperationException; -import com.facebook.react.uimanager.NativeViewHierarchyManager; -import com.facebook.react.uimanager.UIBlock; -import com.facebook.react.uimanager.UIManagerModule; -import com.facebook.react.views.textinput.ReactEditText; - -public class TextInputDelKeyHandlerModule extends ReactContextBaseJavaModule { - - private final static String REACT_CLASS = "TextInputDelKeyHandler"; - - TextInputDelKeyHandlerModule(ReactApplicationContext reactContext) { - super(reactContext); - } - - @Override - public String getName() { - return REACT_CLASS; - } - - @ReactMethod - public void register(final Integer textInputTag) { - final ReactApplicationContext reactContext = this.getReactApplicationContext(); - final UIManagerModule uiManager = reactContext.getNativeModule(UIManagerModule.class); - - uiManager.addUIBlock(new UIBlock() { - public void execute(NativeViewHierarchyManager viewHierarchyManager) { - Log.d("ReactNativeJS","registering tag = " + textInputTag); - final View view; - try { - view = viewHierarchyManager.resolveView(textInputTag); - } catch (IllegalViewOperationException e) { - Log.d("ReactNativeJS","no view for tag = " + textInputTag); - e.printStackTrace(); - return; - } - final ReactEditText editText = ViewUtils.getEditTextInView(view); - - if (editText != null) { - Log.d("ReactNativeJS","has editText for tag = " + textInputTag); - final KeyListenerProxy keyListenerProxy = new KeyListenerProxy(reactContext, editText.getKeyListener()); - editText.setKeyListener(keyListenerProxy); - } - } - }); - } -} diff --git a/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerPackage.java b/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerPackage.java deleted file mode 100644 index e2119d4edc..0000000000 --- a/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/TextInputDelKeyHandlerPackage.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.wix.reactnativeuilib.textinput; - -import com.facebook.react.ReactPackage; -import com.facebook.react.bridge.JavaScriptModule; -import com.facebook.react.bridge.NativeModule; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.uimanager.ViewManager; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -public class TextInputDelKeyHandlerPackage implements ReactPackage { - @Override - public List createNativeModules(ReactApplicationContext reactContext) { - return Arrays.asList(new TextInputDelKeyHandlerModule(reactContext)); - } - -// @Override -// public List> createJSModules() { -// return Collections.emptyList(); -// } - - @Override - public List createViewManagers(ReactApplicationContext reactContext) { - return Collections.emptyList(); - } -} diff --git a/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/ViewUtils.java b/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/ViewUtils.java deleted file mode 100644 index 22500b07f1..0000000000 --- a/lib/android/src/main/java/com/wix/reactnativeuilib/textinput/ViewUtils.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.wix.reactnativeuilib.textinput; - -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.Nullable; - -import com.facebook.react.views.textinput.ReactEditText; - -class ViewUtils { - - @Nullable - static ReactEditText getEditTextInView(View view) { - if (view == null) { - return null; - } - - if (view instanceof ReactEditText) { - return (ReactEditText) view; - } - - if (view instanceof ViewGroup) { - final ViewGroup viewGroup = (ViewGroup) view; - - for (int i = 0; i < viewGroup.getChildCount(); i++) { - final View child = viewGroup.getChildAt(i); - final View childView = getEditTextInView(child); - - if (childView != null) { - return (ReactEditText) childView; - } - } - } - return null; - } -} diff --git a/lib/components/Keyboard/KeyboardInput/CustomKeyboardView/CustomKeyboardView.android.tsx b/lib/components/Keyboard/KeyboardInput/CustomKeyboardView/CustomKeyboardView.android.tsx index 20492205f7..b9c9288623 100644 --- a/lib/components/Keyboard/KeyboardInput/CustomKeyboardView/CustomKeyboardView.android.tsx +++ b/lib/components/Keyboard/KeyboardInput/CustomKeyboardView/CustomKeyboardView.android.tsx @@ -1,31 +1,51 @@ import React from 'react'; -import {requireNativeComponent} from 'react-native'; -import TextInputKeyboardManager from '../TextInputKeyboardManager/TextInputKeyboardManager.android'; +import {Keyboard, View} from 'react-native'; import KeyboardRegistry from '../KeyboardRegistry'; import CustomKeyboardViewBase, {CustomKeyboardViewBaseProps} from '../CustomKeyboardViewBase'; -const CustomKeyboardViewNativeAndroid = requireNativeComponent('CustomKeyboardViewNativeTemp'); - export default class CustomKeyboardView extends CustomKeyboardViewBase { static displayName = 'IGNORE'; async componentDidUpdate(prevProps: CustomKeyboardViewBaseProps) { - const {component} = this.props; + const {component, inputRef, shouldFocus, onKeyboardDismiss} = this.props; + + if (prevProps.component !== component) { + + if (!component) { + if (shouldFocus) { + if (inputRef?.current) { + inputRef.current.focus?.(); + } else { + inputRef?.focus?.(); + } + } + } else { + Keyboard.dismiss(); + } - if (prevProps.component !== component && !component) { - await TextInputKeyboardManager.reset(); + onKeyboardDismiss?.(); } super.componentDidUpdate(prevProps); } + getStyle = () => { + const {keyboardHeight} = this.props; + return { + height: keyboardHeight + }; + }; + render() { const {component, initialProps} = this.props; const KeyboardComponent = component && KeyboardRegistry.getKeyboard(component); + if (!KeyboardComponent) { + return null; + } return ( - - {KeyboardComponent && } - + + + ); } } diff --git a/lib/components/Keyboard/KeyboardInput/CustomKeyboardViewBase.tsx b/lib/components/Keyboard/KeyboardInput/CustomKeyboardViewBase.tsx index fb26ca5e40..2a52db0fca 100644 --- a/lib/components/Keyboard/KeyboardInput/CustomKeyboardViewBase.tsx +++ b/lib/components/Keyboard/KeyboardInput/CustomKeyboardViewBase.tsx @@ -5,6 +5,9 @@ import {EventSubscription} from 'react-native'; export type CustomKeyboardViewBaseProps = { inputRef?: any; initialProps?: any; + keyboardHeight?: number; + onKeyboardDismiss?: () => void; + shouldFocus?: boolean; component?: string; onItemSelected?: (component?: string, args?: any) => void; onRequestShowKeyboard?: (keyboardId: string) => void; diff --git a/lib/components/Keyboard/KeyboardInput/KeyboardAccessoryView.tsx b/lib/components/Keyboard/KeyboardInput/KeyboardAccessoryView.tsx index 00051ef3e9..1a4e77b2c9 100644 --- a/lib/components/Keyboard/KeyboardInput/KeyboardAccessoryView.tsx +++ b/lib/components/Keyboard/KeyboardInput/KeyboardAccessoryView.tsx @@ -11,7 +11,7 @@ import { } from 'react-native'; import KeyboardTrackingView, {KeyboardTrackingViewProps} from '../KeyboardTracking/KeyboardTrackingView'; import CustomKeyboardView from './CustomKeyboardView'; -import KeyboardUtils from './utils/KeyboardUtils'; +import KeyboardUtils, {KeyboardHeightListener} from './utils/KeyboardUtils'; const IsIOS = Platform.OS === 'ios'; const IsAndroid = Platform.OS === 'android'; @@ -73,9 +73,13 @@ class KeyboardAccessoryView extends Component { scrollBehavior: KeyboardTrackingView.scrollBehaviors.FIXED_OFFSET }; + static currentId = 0; + // TODO: fix customInputControllerEventsSubscriber: any; trackingViewRef: any; + subscription: any; + id: number = ++KeyboardAccessoryView.currentId; constructor(props: KeyboardAccessoryViewProps) { super(props); @@ -90,12 +94,17 @@ class KeyboardAccessoryView extends Component { this.registerAndroidBackHandler(); } + state = { + keyboardHeight: 0, + shouldFocus: true + }; + componentWillUnmount() { if (this.customInputControllerEventsSubscriber) { this.customInputControllerEventsSubscriber.remove(); } if (IsAndroid) { - BackHandler.removeEventListener('hardwareBackPress', this.onAndroidBackPressed); + this.subscription.remove(); } } @@ -146,7 +155,7 @@ class KeyboardAccessoryView extends Component { registerAndroidBackHandler() { if (IsAndroid) { - BackHandler.addEventListener('hardwareBackPress', this.onAndroidBackPressed); + this.subscription = BackHandler.addEventListener('hardwareBackPress', this.onAndroidBackPressed); } } @@ -167,8 +176,20 @@ class KeyboardAccessoryView extends Component { this.trackingViewRef.scrollToStart(); } } + onKeyboardHeightChange = (keyboardHeight: number) => { + this.setState({keyboardHeight}); + }; + + onDismiss = () => { + this.setState({shouldFocus: false}); + }; + + onKeyboardDismiss = () => { + this.setState({shouldFocus: true}); + }; render() { + const {keyboardHeight, shouldFocus} = this.state; const { renderContent, kbInputRef, @@ -187,8 +208,16 @@ class KeyboardAccessoryView extends Component { style={styles.trackingToolbarContainer} onLayout={this.onContainerComponentHeightChanged} > + <>{renderContent?.()} void} = {}; + + private static addListener = (id: string, onDismiss?: () => void) => { + if (id && onDismiss && !KeyboardUtils.listeners[id]) { + KeyboardUtils.listeners[id] = onDismiss; + } + }; + + private static removeListener = (id: string) => { + if (id && KeyboardUtils.listeners[id]) { + delete KeyboardUtils.listeners[id]; + } + }; + /** * Used to dismiss (close) the keyboard. */ static dismiss = () => { Keyboard.dismiss(); TextInputKeyboardManager.dismissKeyboard(); + Object.keys(KeyboardUtils.listeners).forEach(key => { + KeyboardUtils.listeners[key](); + }); }; } + +interface KeyboardHeightProps { + id: string; + onDismiss: () => void; +} + +const useKeyboardHeight = ({id, onDismiss}: KeyboardHeightProps) => { + const [isInitialized, setIsInitialized] = useState(false); + const [keyboardHeight, setKeyboardHeight] = useState(DEFAULT_KEYBOARD_HEIGHT); + const [isVisible, setIsVisible] = useState(false); + + const keyboardDidShow = useCallback((e: KeyboardEvent) => { + if (!isInitialized) { + setIsInitialized(true); + setKeyboardHeight(e.endCoordinates.height); + } + setIsVisible(true); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const keyboardDidHide = useCallback(() => { + setIsVisible(false); + }, []); + + useEffect(() => { + const keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', keyboardDidShow); + const keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', keyboardDidHide); + // @ts-ignore + KeyboardUtils.addListener(id, onDismiss); + return () => { + keyboardDidShowListener.remove(); + keyboardDidHideListener.remove(); + // @ts-ignore + KeyboardUtils.removeListener(id); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + return {keyboardHeight, isKeyboardVisible: isVisible}; +}; + +export interface KeyboardHeightListenerProps { + id: string; + onDismiss: () => void; + onKeyboardHeightChange?: (height: number) => void; + onKeyboardVisibilityChange?: (isKeyboardVisible: boolean) => void; +} + +const KeyboardHeightListener = ({ + id, + onDismiss, + onKeyboardHeightChange, + onKeyboardVisibilityChange +}: KeyboardHeightListenerProps) => { + const {keyboardHeight, isKeyboardVisible} = useKeyboardHeight({id, onDismiss}); + + useEffect(() => { + onKeyboardHeightChange?.(keyboardHeight); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [keyboardHeight]); + + useEffect(() => { + onKeyboardVisibilityChange?.(isKeyboardVisible); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [isKeyboardVisible]); + + return null; +}; + +export {useKeyboardHeight, KeyboardHeightListener}; diff --git a/lib/react-native.config.js b/lib/react-native.config.js index d5fe52adda..f8d9905656 100644 --- a/lib/react-native.config.js +++ b/lib/react-native.config.js @@ -10,11 +10,9 @@ module.exports = { sourceDir: './android/', packageImportPath: `import com.wix.reactnativeuilib.dynamicfont.DynamicFontPackage; import com.wix.reactnativeuilib.highlighterview.HighlighterViewPackage; -import com.wix.reactnativeuilib.keyboardinput.KeyboardInputPackage; -import com.wix.reactnativeuilib.textinput.TextInputDelKeyHandlerPackage;`, +import com.wix.reactnativeuilib.keyboardinput.KeyboardInputPackage;`, packageInstance: `new DynamicFontPackage(), new HighlighterViewPackage(), - new TextInputDelKeyHandlerPackage(), new KeyboardInputPackage(getApplication())` } } diff --git a/metro.config.js b/metro.config.js index 681a876f86..3bed1e1c94 100644 --- a/metro.config.js +++ b/metro.config.js @@ -7,7 +7,7 @@ const {assetExts, sourceExts} = defaultConfig.resolver; * Metro configuration * https://reactnative.dev/docs/metro * - * @type {import('metro-config').MetroConfig} + * @type {import('@react-native/metro-config').MetroConfig} */ const config = { diff --git a/package.json b/package.json index df7d5ba591..55107eac66 100644 --- a/package.json +++ b/package.json @@ -78,15 +78,15 @@ "@react-native-community/cli-platform-ios": "15.0.1", "@react-native-community/datetimepicker": "^3.4.6", "@react-native-community/netinfo": "11.3.3", - "@react-native/babel-preset": "0.76.9", - "@react-native/eslint-config": "0.76.9", - "@react-native/metro-config": "0.76.9", - "@react-native/typescript-config": "0.76.9", + "@react-native/babel-preset": "0.77.2", + "@react-native/eslint-config": "0.77.2", + "@react-native/metro-config": "0.77.2", + "@react-native/typescript-config": "0.77.2", "@shopify/flash-list": "1.7.6", "@testing-library/react-hooks": "^8.0.1", "@testing-library/react-native": "^11.5.1", "@types/hoist-non-react-statics": "^3.3.1", - "@types/jest": "^29.2.1", + "@types/jest": "^29.5.13", "@types/lodash": "^4.0.0", "@types/prop-types": "^15.5.3", "@types/react": "18.3.7", @@ -96,7 +96,6 @@ "@typescript-eslint/eslint-plugin": "^5.3.1", "@typescript-eslint/parser": "^5.3.1", "@welldone-software/why-did-you-render": "^3.2.1", - "babel-jest": "^29.6.3", "babel-plugin-lodash": "^3.3.4", "babel-plugin-module-resolver": "^5.0.0", "eslint": "8.19.0", @@ -115,19 +114,20 @@ "react": "18.2.0", "react-autobind": "^1.0.6", "react-dom": "^18.2.0", - "react-native": "0.76.9", + "react-native": "0.77.2", "react-native-fs": "^2.20.0", "react-native-gesture-handler": "2.22.1", "react-native-haptic-feedback": "^1.11.0", "react-native-linear-gradient": "2.6.2", - "react-native-mmkv": "2.11.0", - "react-native-navigation": "8.0.0", + "react-native-mmkv": "3.2.0", + "react-native-navigation": "8.1.0-rc01-snapshot.1710", "react-native-reanimated": "3.16.7", "react-native-shimmer-placeholder": "^2.0.6", "react-native-svg": "15.11.2", "react-native-svg-transformer": "1.5.0", "react-test-renderer": "18.3.1", "reassure": "^0.4.1", + "setimmediate": "^1.0.5", "shell-utils": "^1.0.10", "typescript": "5.0.4" }, diff --git a/react-native.config.js b/react-native.config.js index ef376f5f64..df3b8bf9f4 100644 --- a/react-native.config.js +++ b/react-native.config.js @@ -10,11 +10,9 @@ module.exports = { sourceDir: '../uilib-native/android/', packageImportPath: `import com.wix.reactnativeuilib.dynamicfont.DynamicFontPackage; import com.wix.reactnativeuilib.highlighterview.HighlighterViewPackage; -import com.wix.reactnativeuilib.keyboardinput.KeyboardInputPackage; -import com.wix.reactnativeuilib.textinput.TextInputDelKeyHandlerPackage;`, +import com.wix.reactnativeuilib.keyboardinput.KeyboardInputPackage;`, packageInstance: `new DynamicFontPackage(), new HighlighterViewPackage(), - new TextInputDelKeyHandlerPackage(), new KeyboardInputPackage(getApplication())` } } diff --git a/src/components/button/button.api.json b/src/components/button/button.api.json index b1fc5b1184..5f621f541b 100644 --- a/src/components/button/button.api.json +++ b/src/components/button/button.api.json @@ -155,7 +155,7 @@ { "name": "animateLayout", "type": "boolean", - "description": "should animate layout change. Note: For Android you must set 'setLayoutAnimationEnabledExperimental(true)' via RN's 'UIManager'" + "description": "should animate layout change" }, { "name": "animateTo", diff --git a/src/components/button/types.ts b/src/components/button/types.ts index 0b00394170..3c020957c5 100644 --- a/src/components/button/types.ts +++ b/src/components/button/types.ts @@ -146,7 +146,6 @@ export type ButtonProps = TouchableOpacityProps & getActiveBackgroundColor?: (backgroundColor: string, props: any) => string; /** * should animate layout change - * Note?: For Android you must set 'setLayoutAnimationEnabledExperimental(true)' via RN's 'UIManager' */ animateLayout?: boolean; /** diff --git a/src/components/drawer/Swipeable.tsx b/src/components/drawer/Swipeable.tsx index c5ab0b0ae1..8e49849336 100644 --- a/src/components/drawer/Swipeable.tsx +++ b/src/components/drawer/Swipeable.tsx @@ -76,7 +76,7 @@ class Swipeable extends Component { static defaultProps = { friction: 1, overshootFriction: 1, - useNativeAnimations: false, // issue in iPhone5 + useNativeAnimations: true, fullLeftThreshold: 0.45, fullRightThreshold: 0.45 }; diff --git a/src/components/drawer/index.tsx b/src/components/drawer/index.tsx index 6082d1e97f..8649d2ff1b 100644 --- a/src/components/drawer/index.tsx +++ b/src/components/drawer/index.tsx @@ -326,54 +326,54 @@ class Drawer extends PureComponent { }); return ( - this.onActionPress(item)} - > - {item.customElement} - {!item.customElement && item.icon && ( - - )} - {!item.customElement && item.text && ( - - {item.text} - - )} + this.onActionPress(item)}> + + {item.customElement} + {!item.customElement && item.icon && ( + + )} + {!item.customElement && item.text && ( + + {item.text} + + )} + ); }; @@ -382,7 +382,7 @@ class Drawer extends PureComponent { const {children, style, leftItem, rightItems, onToggleSwipeLeft, ...others} = this.props; return ( - + (Drawer); const styles = StyleSheet.create({ + container: { + flex: 0 + }, leftAction: { flex: 1, justifyContent: 'center', diff --git a/src/components/fadedScrollView/index.tsx b/src/components/fadedScrollView/index.tsx index a9472bc573..b244ad0c15 100644 --- a/src/components/fadedScrollView/index.tsx +++ b/src/components/fadedScrollView/index.tsx @@ -2,6 +2,7 @@ import React, {useCallback, useRef, useImperativeHandle} from 'react'; import { ScrollView as RNScrollView, ScrollViewProps, + StyleSheet, NativeSyntheticEvent, NativeScrollEvent, LayoutChangeEvent @@ -107,7 +108,7 @@ const FadedScrollView = (props: Props) => { if (children) { return ( - + { return null; }; +const styles = StyleSheet.create({ + container: { + flex: 0 + } +}); + FadedScrollView.displayName = 'IGNORE'; export default forwardRef, FadedScrollViewRef>(FadedScrollView); diff --git a/src/components/sortableGridList/SortableItem.tsx b/src/components/sortableGridList/SortableItem.tsx index cad24f8ae2..7d26eaed6b 100644 --- a/src/components/sortableGridList/SortableItem.tsx +++ b/src/components/sortableGridList/SortableItem.tsx @@ -33,6 +33,8 @@ function SortableItem(props: PropsWithChildren isDragging.value, + (isDragging, wasDragging) => { + if (isDragging && !wasDragging) { + zIndex.value = withTiming(100, animationConfig); + scale.value = withSpring(1.1); + } else if (!isDragging && wasDragging) { + zIndex.value = withTiming(0, animationConfig); + scale.value = withSpring(1); + } + }, + []); + const onLayout = useCallback((event: LayoutChangeEvent) => { 'worklet'; const {width, height} = event.nativeEvent.layout; @@ -172,12 +186,13 @@ function SortableItem(props: PropsWithChildren { - const scale = withSpring(isDragging.value ? 1.1 : 1); - const zIndex = isDragging.value ? 100 : withTiming(0, animationConfig); - return { - zIndex, - transform: [{translateX: translateX.value}, {translateY: translateY.value}, {scale}] + zIndex: Math.round(zIndex.value), + transform: [ + {translateX: translateX.value}, + {translateY: translateY.value}, + {scale: scale.value} + ] }; }); diff --git a/src/components/sortableList/SortableListItem.tsx b/src/components/sortableList/SortableListItem.tsx index d9d42669e9..f8e6a874ec 100644 --- a/src/components/sortableList/SortableListItem.tsx +++ b/src/components/sortableList/SortableListItem.tsx @@ -57,6 +57,8 @@ const SortableListItem = (props: Props) => { const lastSwap = useSharedValue({from: -1, to: -1}); const currIndex = useSharedValue(initialIndex.value); const translation = useSharedValue(0); + const zIndex = useSharedValue(0); + const scale = useSharedValue(1); const isDragging = useSharedValue(false); @@ -97,6 +99,16 @@ const SortableListItem = (props: Props) => { }, []); + useAnimatedReaction(() => isDragging.value, (isDragging, wasDragging) => { + if (isDragging && !wasDragging) { + zIndex.value = withTiming(100, animationConfig); + scale.value = withSpring(propsScale); + } else if (!isDragging && wasDragging) { + zIndex.value = withTiming(0, animationConfig); + scale.value = withSpring(1); + } + }, []); + const dragOnLongPressGesture = Gesture.Pan() .activateAfterLongPress(250) .enabled(!locked) @@ -164,8 +176,6 @@ const SortableListItem = (props: Props) => { }); const draggedAnimatedStyle = useAnimatedStyle(() => { - const scale = withSpring(isDragging.value ? propsScale : 1); - const zIndex = isDragging.value ? 100 : withTiming(0, animationConfig); const opacity = isDragging.value ? 0.95 : 1; const shadow = isDragging.value ? draggedItemShadow.value @@ -173,8 +183,11 @@ const SortableListItem = (props: Props) => { return { backgroundColor: itemProps?.backgroundColor ?? LIST_ITEM_BACKGROUND, // required for elevation to work in Android - zIndex, - transform: [horizontal ? {translateX: translation.value} : {translateY: translation.value}, {scale}], + zIndex: Math.round(zIndex.value), + transform: [ + horizontal ? {translateX: translation.value} : {translateY: translation.value}, + {scale: scale.value} + ], opacity, ...itemProps?.margins, ...shadow diff --git a/src/components/stackAggregator/index.tsx b/src/components/stackAggregator/index.tsx index 250cd4fb4a..51a2d440de 100644 --- a/src/components/stackAggregator/index.tsx +++ b/src/components/stackAggregator/index.tsx @@ -70,6 +70,7 @@ const StackAggregator = (props: StackAggregatorProps) => { collapsed = true, disablePresses = false, onItemPress, + backgroundColor, contentContainerStyle, itemBorderRadius = 0, onCollapseWillChange, @@ -83,11 +84,11 @@ const StackAggregator = (props: StackAggregatorProps) => { setIsCollapsed(collapsed); }, [collapsed]); - useDidUpdate(() => { + useDidUpdate(async () => { onCollapseWillChange?.(isCollapsed); - animate(); + await animate(); onCollapseChanged?.(isCollapsed); - }, [isCollapsed, onCollapseWillChange, onCollapseChanged]); + }, [isCollapsed, itemsCount]); /** Animations */ @@ -100,10 +101,11 @@ const StackAggregator = (props: StackAggregatorProps) => { const getItemScale = useCallback((index: number) => { if (isCollapsed) { - if (index === itemsCount - 2) { + if (index === 1) { return 0.95; } - if (index === itemsCount - 1) { + + if (index === 2) { return 0.9; } } @@ -185,10 +187,11 @@ const StackAggregator = (props: StackAggregatorProps) => { const getTop = (index: number) => { let start = 0; - if (index === itemsCount - 2) { + if (index === 1) { start += PEEP; } - if (index === itemsCount - 1) { + + if (index === 2) { start += PEEP * 2; } @@ -218,6 +221,10 @@ const StackAggregator = (props: StackAggregatorProps) => { ]; }, [firstItemHeight, itemsCount]); + const cardStyle = useMemo(() => { + return backgroundColor ? [styles.card, {backgroundColor}] : styles.card; + }, [backgroundColor]); + /** Events */ const _onItemPress = (index: number) => { @@ -241,7 +248,7 @@ const StackAggregator = (props: StackAggregatorProps) => { { ]} collapsable={false} > - _onItemPress(index)} borderRadius={itemBorderRadius} elevation={5}> + _onItemPress(index)} borderRadius={itemBorderRadius} elevation={5}> {item} @@ -319,8 +326,7 @@ const styles = StyleSheet.create({ }, card: { overflow: 'hidden', - flexShrink: 1, - backgroundColor: 'transparent' + flexShrink: 1 }, button: { zIndex: 100 diff --git a/webDemo/package.json b/webDemo/package.json index 8cabbf8668..b7391c324b 100644 --- a/webDemo/package.json +++ b/webDemo/package.json @@ -42,7 +42,7 @@ "@types/react-dom": "^17.0.2", "@typescript-eslint/eslint-plugin": "4.25.0", "@typescript-eslint/parser": "4.25.0", - "@react-native/babel-preset": "0.76.9", + "@react-native/babel-preset": "0.77.2", "@react-native-community/cli": "15.0.1", "@react-native-community/cli-platform-android": "15.0.1", "@react-native-community/cli-platform-ios": "15.0.1", @@ -56,7 +56,7 @@ "eslint-plugin-react": "7.24.0", "eslint-plugin-react-hooks": "^4.0.4", "html-webpack-plugin": "^4.0.0", - "metro-react-native-babel-preset": "0.76.9", + "metro-react-native-babel-preset": "0.77.0", "process": "^0.11.10", "ts-loader": "^9.3.1", "url-loader": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index 0c3e3c9286..1af6f2eed1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -63,6 +63,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/code-frame@npm:7.27.1" + dependencies: + "@babel/helper-validator-identifier": ^7.27.1 + js-tokens: ^4.0.0 + picocolors: ^1.1.1 + checksum: 5874edc5d37406c4a0bb14cf79c8e51ad412fb0423d176775ac14fc0259831be1bf95bdda9c2aa651126990505e09a9f0ed85deaa99893bc316d2682c5115bdc + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.2": version: 7.25.4 resolution: "@babel/compat-data@npm:7.25.4" @@ -77,7 +88,14 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.9": +"@babel/compat-data@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/compat-data@npm:7.27.2" + checksum: 8d4066324e5f1275adc43f2e22110cac29ee09fe926260c43f0eaa432c148859367df4152574a28ee02dbb3e3d11dd57145eed345d49cc07f9b6e11fee06535f + languageName: node + linkType: hard + +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.9": version: 7.25.2 resolution: "@babel/core@npm:7.25.2" dependencies: @@ -100,6 +118,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.24.7": + version: 7.27.1 + resolution: "@babel/core@npm:7.27.1" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.27.1 + "@babel/generator": ^7.27.1 + "@babel/helper-compilation-targets": ^7.27.1 + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helpers": ^7.27.1 + "@babel/parser": ^7.27.1 + "@babel/template": ^7.27.1 + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: fce205f9eea387ed8a9c6de64e5a8f50256359bfc8f1352c576c843b4c148a6c2ef187cfe8d729453e520fdcc997f65920aca6cb8911fb25dfd2286966b9b914 + languageName: node + linkType: hard + "@babel/core@npm:^7.25.2": version: 7.26.10 resolution: "@babel/core@npm:7.26.10" @@ -162,6 +203,19 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/generator@npm:7.27.1" + dependencies: + "@babel/parser": ^7.27.1 + "@babel/types": ^7.27.1 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^3.0.2 + checksum: d5e220eb20aca1d93aef85c4c716237f84c5aab7d3ed8dfeb7060dcd73d20c593a687fe74cfb6d3dc1604ef9faff2ca24e6cfdb1af18e03e3a5f9f63a04c0bdc + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" @@ -180,6 +234,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-annotate-as-pure@npm:7.27.1" + dependencies: + "@babel/types": ^7.27.1 + checksum: 3f8e4d591458d6c0621a3d670f8798b8895580214287390126e3e621ddf3df0bd07cbcc9500c2671b9ec10162c2f9feb1194da5cf039d40df8cb69d181fc0cd8 + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7, @babel/helper-compilation-targets@npm:^7.24.8, @babel/helper-compilation-targets@npm:^7.25.2": version: 7.25.2 resolution: "@babel/helper-compilation-targets@npm:7.25.2" @@ -206,7 +269,20 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.24.7, @babel/helper-create-class-features-plugin@npm:^7.25.0, @babel/helper-create-class-features-plugin@npm:^7.25.4": +"@babel/helper-compilation-targets@npm:^7.27.1": + version: 7.27.2 + resolution: "@babel/helper-compilation-targets@npm:7.27.2" + dependencies: + "@babel/compat-data": ^7.27.2 + "@babel/helper-validator-option": ^7.27.1 + browserslist: ^4.24.0 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: 7b95328237de85d7af1dea010a4daa28e79f961dda48b652860d5893ce9b136fc8b9ea1f126d8e0a24963b09ba5c6631dcb907b4ce109b04452d34a6ae979807 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.24.7, @babel/helper-create-class-features-plugin@npm:^7.25.0, @babel/helper-create-class-features-plugin@npm:^7.25.4": version: 7.25.4 resolution: "@babel/helper-create-class-features-plugin@npm:7.25.4" dependencies: @@ -240,6 +316,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-create-class-features-plugin@npm:7.27.1" + dependencies: + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-member-expression-to-functions": ^7.27.1 + "@babel/helper-optimise-call-expression": ^7.27.1 + "@babel/helper-replace-supers": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 + "@babel/traverse": ^7.27.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 406954b455e5b20924e7d1b41cf932e6e98e95c3a5224c7a70c3ad96a84e8fbde915ceff7ddbf9c7d121397c4e9274f061241648475122cf6fe54e0a95caae15 + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7": version: 7.25.2 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.2" @@ -316,6 +409,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-member-expression-to-functions@npm:7.27.1" + dependencies: + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: b13a3d120015a6fd2f6e6c2ff789cd12498745ef028710cba612cfb751b91ace700c3f96c1689228d1dcb41e9d4cf83d6dff8627dcb0c8da12d79440e783c6b8 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.0.0-beta.49, @babel/helper-module-imports@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-module-imports@npm:7.24.7" @@ -336,6 +439,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-imports@npm:7.27.1" + dependencies: + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: 92d01c71c0e4aacdc2babce418a9a1a27a8f7d770a210ffa0f3933f321befab18b655bc1241bebc40767516731de0b85639140c42e45a8210abe1e792f115b28 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.25.2": version: 7.25.2 resolution: "@babel/helper-module-transforms@npm:7.25.2" @@ -363,6 +476,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-transforms@npm:7.27.1" + dependencies: + "@babel/helper-module-imports": ^7.27.1 + "@babel/helper-validator-identifier": ^7.27.1 + "@babel/traverse": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 816dd166f0a850616d01ca198715d78fef052a834dc155dd57e4405d702f288071077be3ed58e13c86ac9e63ca560e876cc6d70cf5ef0f1f62bd9321084d4c06 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" @@ -381,7 +507,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0": +"@babel/helper-optimise-call-expression@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-optimise-call-expression@npm:7.27.1" + dependencies: + "@babel/types": ^7.27.1 + checksum: 0fb7ee824a384529d6b74f8a58279f9b56bfe3cce332168067dddeab2552d8eeb56dc8eaf86c04a3a09166a316cb92dfc79c4c623cd034ad4c563952c98b464f + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.24.8 resolution: "@babel/helper-plugin-utils@npm:7.24.8" checksum: 73b1a83ba8bcee21dc94de2eb7323207391715e4369fd55844bb15cf13e3df6f3d13a40786d990e6370bf0f571d94fc31f70dec96c1d1002058258c35ca3767a @@ -395,6 +530,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-plugin-utils@npm:7.27.1" + checksum: 5d715055301badab62bdb2336075a77f8dc8bd290cad2bc1b37ea3bf1b3efc40594d308082229f239deb4d6b5b80b0a73bce000e595ea74416e0339c11037047 + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.24.7, @babel/helper-remap-async-to-generator@npm:^7.25.0": version: 7.25.0 resolution: "@babel/helper-remap-async-to-generator@npm:7.25.0" @@ -447,6 +589,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-replace-supers@npm:7.27.1" + dependencies: + "@babel/helper-member-expression-to-functions": ^7.27.1 + "@babel/helper-optimise-call-expression": ^7.27.1 + "@babel/traverse": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 3690266c304f21008690ba68062f889a363583cabc13c3d033b94513953147af3e0a3fdb48fa1bb9fa3734b64e221fc65e5222ab70837f02321b7225f487c6ef + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-simple-access@npm:7.24.7" @@ -457,7 +612,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" dependencies: @@ -477,6 +632,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.27.1" + dependencies: + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: 4f380c5d0e0769fa6942a468b0c2d7c8f0c438f941aaa88f785f8752c103631d0904c7b4e76207a3b0e6588b2dec376595370d92ca8f8f1b422c14a69aa146d4 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.24.8": version: 7.24.8 resolution: "@babel/helper-string-parser@npm:7.24.8" @@ -491,6 +656,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 0a8464adc4b39b138aedcb443b09f4005d86207d7126e5e079177e05c3116107d856ec08282b365e9a79a9872f40f4092a6127f8d74c8a01c1ef789dacfc25d6 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-identifier@npm:7.24.7" @@ -505,6 +677,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-identifier@npm:7.27.1" + checksum: 3c7e8391e59d6c85baeefe9afb86432f2ab821c6232b00ea9082a51d3e7e95a2f3fb083d74dc1f49ac82cf238e1d2295dafcb001f7b0fab479f3f56af5eaaa47 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.24.7, @babel/helper-validator-option@npm:^7.24.8": version: 7.24.8 resolution: "@babel/helper-validator-option@npm:7.24.8" @@ -519,6 +698,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: db73e6a308092531c629ee5de7f0d04390835b21a263be2644276cb27da2384b64676cab9f22cd8d8dbd854c92b1d7d56fc8517cf0070c35d1c14a8c828b0903 + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.25.0": version: 7.25.0 resolution: "@babel/helper-wrap-function@npm:7.25.0" @@ -561,6 +747,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helpers@npm:7.27.1" + dependencies: + "@babel/template": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: 19ede1e996cbd295fb3a881ff70bc0f91c5133ebac256441e9ecd69dfba89456e75cf7ecf06cd276c638a4de7bd6eff21151961c78038d0b23d94b4d23415ee4 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.24.7": version: 7.24.7 resolution: "@babel/highlight@npm:7.24.7" @@ -573,7 +769,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6, @babel/parser@npm:^7.7.0": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6, @babel/parser@npm:^7.7.0": version: 7.25.6 resolution: "@babel/parser@npm:7.25.6" dependencies: @@ -584,6 +780,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.24.7, @babel/parser@npm:^7.27.1, @babel/parser@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/parser@npm:7.27.2" + dependencies: + "@babel/types": ^7.27.1 + bin: + parser: ./bin/babel-parser.js + checksum: 1ac70a75028f1cc10eefb10ed2d83cf700ca3e1ddb4cf556a003fc5c4ca53ae83350bbb8065020fcc70d476fcf7bf1c17191b72384f719614ae18397142289cf + languageName: node + linkType: hard + "@babel/parser@npm:^7.25.3, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.27.0": version: 7.27.0 resolution: "@babel/parser@npm:7.27.0" @@ -654,18 +861,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-class-properties@npm:^7.13.0": - version: 7.18.6 - resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422 - languageName: node - linkType: hard - "@babel/plugin-proposal-export-default-from@npm:^7.24.7": version: 7.25.9 resolution: "@babel/plugin-proposal-export-default-from@npm:7.25.9" @@ -677,31 +872,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8": - version: 7.18.6 - resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 949c9ddcdecdaec766ee610ef98f965f928ccc0361dd87cf9f88cf4896a6ccd62fce063d4494778e50da99dea63d270a1be574a62d6ab81cbe9d85884bf55a7d - languageName: node - linkType: hard - -"@babel/plugin-proposal-optional-chaining@npm:^7.13.12": - version: 7.21.0 - resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 11c5449e01b18bb8881e8e005a577fa7be2fe5688e2382c8822d51f8f7005342a301a46af7b273b1f5645f9a7b894c428eee8526342038a275ef6ba4c8d8d746 - languageName: node - linkType: hard - "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": version: 7.21.0-placeholder-for-preset-env.2 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" @@ -777,7 +947,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-flow@npm:^7.12.1, @babel/plugin-syntax-flow@npm:^7.24.7": +"@babel/plugin-syntax-flow@npm:^7.12.1": version: 7.24.7 resolution: "@babel/plugin-syntax-flow@npm:7.24.7" dependencies: @@ -799,6 +969,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-flow@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-flow@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7baca3171ed595d04c865b0ce46fca7f21900686df9d7fcd1017036ce78bb5483e33803de810831e68d39cf478953db69f49ae3f3de2e3207bc4ba49a96b6739 + languageName: node + linkType: hard + "@babel/plugin-syntax-import-assertions@npm:^7.26.0": version: 7.26.0 resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" @@ -876,6 +1057,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-jsx@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c6d1324cff286a369aa95d99b8abd21dd07821b5d3affd5fe7d6058c84cff9190743287826463ee57a7beecd10fa1e4bc99061df532ee14e188c1c8937b13e3a + languageName: node + linkType: hard + "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -986,6 +1178,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-typescript@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-typescript@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 87836f7e32af624c2914c73cd6b9803cf324e07d43f61dbb973c6a86f75df725e12540d91fac7141c14b697aa9268fd064220998daced156e96ac3062d7afb41 + languageName: node + linkType: hard + "@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" @@ -1118,6 +1321,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-class-properties@npm:^7.24.7": + version: 7.27.1 + resolution: "@babel/plugin-transform-class-properties@npm:7.27.1" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 475a6e5a9454912fe1bdc171941976ca10ea4e707675d671cdb5ce6b6761d84d1791ac61b6bca81a2e5f6430cb7b9d8e4b2392404110e69c28207a754e196294 + languageName: node + linkType: hard + "@babel/plugin-transform-class-properties@npm:^7.25.4": version: 7.25.4 resolution: "@babel/plugin-transform-class-properties@npm:7.25.4" @@ -1288,18 +1503,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-flow-strip-types@npm:^7.24.7": - version: 7.25.2 - resolution: "@babel/plugin-transform-flow-strip-types@npm:7.25.2" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/plugin-syntax-flow": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9f7b96cbd374077eaf04b59e468976d2e89ec353807d7ac28f129f686945447df92aeb5b60acf906f3ec0f9ebef5d9f88735c7aa39af97033a6ab96c79c9a909 - languageName: node - linkType: hard - "@babel/plugin-transform-flow-strip-types@npm:^7.25.2": version: 7.26.5 resolution: "@babel/plugin-transform-flow-strip-types@npm:7.26.5" @@ -1312,6 +1515,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-flow-strip-types@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/plugin-syntax-flow": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0885028866fadefef35292d5a27f878d6a12b6f83778f8731481d4503b49c258507882a7de2aafda9b62d5f6350042f1a06355b998d5ed5e85d693bfcb77b939 + languageName: node + linkType: hard + "@babel/plugin-transform-for-of@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-for-of@npm:7.24.7" @@ -1441,7 +1656,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.17.9, @babel/plugin-transform-modules-commonjs@npm:^7.24.7, @babel/plugin-transform-modules-commonjs@npm:^7.24.8": +"@babel/plugin-transform-modules-commonjs@npm:^7.17.9, @babel/plugin-transform-modules-commonjs@npm:^7.24.7, @babel/plugin-transform-modules-commonjs@npm:^7.24.8": version: 7.24.8 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8" dependencies: @@ -1466,6 +1681,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-commonjs@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.27.1" + dependencies: + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bc45c1beff9b145c982bd6a614af338893d38bce18a9df7d658c9084e0d8114b286dcd0e015132ae7b15dd966153cb13321e4800df9766d0ddd892d22bf09d2a + languageName: node + linkType: hard + "@babel/plugin-transform-modules-systemjs@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.9" @@ -1648,6 +1875,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-optional-chaining@npm:^7.24.7": + version: 7.27.1 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c4428d31f182d724db6f10575669aad3dbccceb0dea26aa9071fa89f11b3456278da3097fcc78937639a13c105a82cd452dc0218ce51abdbcf7626a013b928a5 + languageName: node + linkType: hard + "@babel/plugin-transform-optional-chaining@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" @@ -2012,6 +2251,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typescript@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-typescript@npm:7.27.1" + dependencies: + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 + "@babel/plugin-syntax-typescript": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0037db32fedaacf42b5b3df774263bb7176d455859f77322f57135f7e50e457e5c95151280fc83bb9942fc1839e785489b098d73c9539d0f3c7dc9d42b3a8e86 + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-escapes@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.9" @@ -2150,16 +2404,16 @@ __metadata: languageName: node linkType: hard -"@babel/preset-flow@npm:^7.13.13": - version: 7.24.7 - resolution: "@babel/preset-flow@npm:7.24.7" +"@babel/preset-flow@npm:^7.24.7": + version: 7.27.1 + resolution: "@babel/preset-flow@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-validator-option": ^7.24.7 - "@babel/plugin-transform-flow-strip-types": ^7.24.7 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-validator-option": ^7.27.1 + "@babel/plugin-transform-flow-strip-types": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4caca02a6e0a477eb22994d686a1fbf65b5ab0240ae77530696434dba7efff4c5dcbf9186a774168dd4c492423141a22af3f2874c356aa22429f3c83eaf34419 + checksum: f3f25b390debf72a6ff0170a2d5198aea344ba96f05eaca0bae2c7072119706fd46321604d89646bda1842527cfc6eab8828a983ec90149218d2120b9cd26596 languageName: node linkType: hard @@ -2192,7 +2446,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.7": +"@babel/preset-typescript@npm:^7.16.7": version: 7.24.7 resolution: "@babel/preset-typescript@npm:7.24.7" dependencies: @@ -2207,9 +2461,24 @@ __metadata: languageName: node linkType: hard -"@babel/register@npm:^7.13.16": - version: 7.24.6 - resolution: "@babel/register@npm:7.24.6" +"@babel/preset-typescript@npm:^7.24.7": + version: 7.27.1 + resolution: "@babel/preset-typescript@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-validator-option": ^7.27.1 + "@babel/plugin-syntax-jsx": ^7.27.1 + "@babel/plugin-transform-modules-commonjs": ^7.27.1 + "@babel/plugin-transform-typescript": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 38020f1b23e88ec4fbffd5737da455d8939244bddfb48a2516aef93fb5947bd9163fb807ce6eff3e43fa5ffe9113aa131305fef0fb5053998410bbfcfe6ce0ec + languageName: node + linkType: hard + +"@babel/register@npm:^7.24.6": + version: 7.27.1 + resolution: "@babel/register@npm:7.27.1" dependencies: clone-deep: ^4.0.1 find-cache-dir: ^2.0.0 @@ -2218,7 +2487,7 @@ __metadata: source-map-support: ^0.5.16 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 446316c80969df89ad3515576937ddf746cd4927810f226101a8d7f476b399c14c26847e77637e09355399c645fbf413d6e53ac6987b8cf240de7932a9372cb5 + checksum: 154ab3075f245466bbd7a3f0cf972328365961a6f621ecb7795ba67e70243596138c264ac7cb79df4a93527318021b5edbab1df39b669afc83159a9e6e560770 languageName: node linkType: hard @@ -2260,6 +2529,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.27.1": + version: 7.27.2 + resolution: "@babel/template@npm:7.27.2" + dependencies: + "@babel/code-frame": ^7.27.1 + "@babel/parser": ^7.27.2 + "@babel/types": ^7.27.1 + checksum: ff5628bc066060624afd970616090e5bba91c6240c2e4b458d13267a523572cbfcbf549391eec8217b94b064cf96571c6273f0c04b28a8567b96edc675c28e27 + languageName: node + linkType: hard + "@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.1, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.4, @babel/traverse@npm:^7.7.0": version: 7.25.6 resolution: "@babel/traverse@npm:7.25.6" @@ -2290,6 +2570,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/traverse@npm:7.27.1" + dependencies: + "@babel/code-frame": ^7.27.1 + "@babel/generator": ^7.27.1 + "@babel/parser": ^7.27.1 + "@babel/template": ^7.27.1 + "@babel/types": ^7.27.1 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 7ea3ec36a65e734f2921f5dba6f417f5dd0c90eb44a60f6addbacbbedb44e8c82eba415a74feb7d6df58e351519b81b11b6ca3c0c7c41a3f73ebeaf6895a826c + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0": version: 7.25.6 resolution: "@babel/types@npm:7.25.6" @@ -2311,6 +2606,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/types@npm:7.27.1" + dependencies: + "@babel/helper-string-parser": ^7.27.1 + "@babel/helper-validator-identifier": ^7.27.1 + checksum: 357c13f37aaa2f2e2cfcdb63f986d5f7abc9f38df20182b620ace34387d2460620415770fe5856eb54d70c9f0ba2f71230d29465e789188635a948476b830ae4 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -3211,25 +3516,26 @@ __metadata: languageName: node linkType: hard -"@react-native/assets-registry@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/assets-registry@npm:0.76.9" - checksum: 07e7da7a20745b6bdea99620e50d69c76219b7232b21cc43982696123a330cebd9d24e1a4be2a61588ab3af5155557e651267dfad9c91ad0bc8e098e6e7ad38f +"@react-native/assets-registry@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/assets-registry@npm:0.77.2" + checksum: a1a5b650f5e78769baddb75c4e53f3f7662e97a58fc5eeabe687d1a825eeccda28cc657f00869f3e9f3cb6a84af717b889e5e08430448910979e27c9b568685f languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/babel-plugin-codegen@npm:0.76.9" +"@react-native/babel-plugin-codegen@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/babel-plugin-codegen@npm:0.77.2" dependencies: - "@react-native/codegen": 0.76.9 - checksum: 13bba234a6c9e29fa4f7bf13a23ce8aecc5fc00da6cef6f6dd0462f82cdfeeeca62842c054ffe626662a92326774bf22723a90be5ac2158990386422ceee96c5 + "@babel/traverse": ^7.25.3 + "@react-native/codegen": 0.77.2 + checksum: 10f35a509208976f460b547a9ea747f12b6631e097d7accd7f5927ca209a92396288ae97b2905a3ac1da65c9f7dacbf2e5ffce6a81d3879fb8080cae926449a0 languageName: node linkType: hard -"@react-native/babel-preset@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/babel-preset@npm:0.76.9" +"@react-native/babel-preset@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/babel-preset@npm:0.77.2" dependencies: "@babel/core": ^7.25.2 "@babel/plugin-proposal-export-default-from": ^7.24.7 @@ -3272,47 +3578,45 @@ __metadata: "@babel/plugin-transform-typescript": ^7.25.2 "@babel/plugin-transform-unicode-regex": ^7.24.7 "@babel/template": ^7.25.0 - "@react-native/babel-plugin-codegen": 0.76.9 - babel-plugin-syntax-hermes-parser: ^0.25.1 + "@react-native/babel-plugin-codegen": 0.77.2 + babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: ^0.0.2 react-refresh: ^0.14.0 peerDependencies: "@babel/core": "*" - checksum: b48ac1195d4b52a14134f3dbfa26771aa66db0b787ebced6153d7c60802f1b959a3cf07b873da1b085e7db9b527507d1111302bb177ad52d7c77d635b6f3805b + checksum: b67d44d8ce4dcb4c9cdcb5df0ad8e00ed71adadfe76116ce110777f31419d1cf21b655f0e27625d7beff3763ab608369ee799dd082d596eb921631742a20ad67 languageName: node linkType: hard -"@react-native/codegen@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/codegen@npm:0.76.9" +"@react-native/codegen@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/codegen@npm:0.77.2" dependencies: "@babel/parser": ^7.25.3 glob: ^7.1.1 - hermes-parser: 0.23.1 + hermes-parser: 0.25.1 invariant: ^2.2.4 - jscodeshift: ^0.14.0 - mkdirp: ^0.5.1 + jscodeshift: ^17.0.0 nullthrows: ^1.1.1 yargs: ^17.6.2 peerDependencies: "@babel/preset-env": ^7.1.6 - checksum: fcb26bd5be6f923eafd05e356ab01c9bbd30cab5e950bb050312a651771bcb2cb8484a3ba511e1460d44f508700565b0b69d43039c8cc61e63b9eacca6b9c756 + checksum: 7839ee655de0372e0356d1edf369bf90eefc600d3b63ccfceb5e3e211ad0dce5611517136a65a510dd4c7814fe487f74e190766b4442f54039f9b716a06d1c44 languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/community-cli-plugin@npm:0.76.9" +"@react-native/community-cli-plugin@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/community-cli-plugin@npm:0.77.2" dependencies: - "@react-native/dev-middleware": 0.76.9 - "@react-native/metro-babel-transformer": 0.76.9 + "@react-native/dev-middleware": 0.77.2 + "@react-native/metro-babel-transformer": 0.77.2 chalk: ^4.0.0 - execa: ^5.1.1 + debug: ^2.2.0 invariant: ^2.2.4 - metro: ^0.81.0 - metro-config: ^0.81.0 - metro-core: ^0.81.0 - node-fetch: ^2.2.0 + metro: ^0.81.3 + metro-config: ^0.81.3 + metro-core: ^0.81.3 readline: ^1.3.0 semver: ^7.1.3 peerDependencies: @@ -3320,23 +3624,23 @@ __metadata: peerDependenciesMeta: "@react-native-community/cli": optional: true - checksum: 1c0c054d20b3b4c978928e80aa5e56cadeb8dfc1c80a374f67a23e80e2acac0fff5aea0b3f6413483f1ba2bad6a65749e8105dd0ebf2dcd6b045f88e3d7c8d24 + checksum: eb992f145dc27de54febd992437a5542eaf2fdc4fe35609679b5e8fe4909a5f68d1a91465cd2f44007e8ad9f66665d7e62cc3beedbe8127ab3026b5067781b3d languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/debugger-frontend@npm:0.76.9" - checksum: c537ae5be75bb9a0a549d88b6545762364d87a1166c8a7339ccd774257096a2c62f83efdd86c78553a3f1c4ef35cfa7708aba477bf6eeb76b7814ceab2b98069 +"@react-native/debugger-frontend@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/debugger-frontend@npm:0.77.2" + checksum: 154d32672fe9985a0e93c77a0ab0191a1100e01b5b18691606d7082d5145b73102b9adcd7fa54ee0f2628b01200fd125f4d05f44cd3f9efdbad1cac08a73742c languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/dev-middleware@npm:0.76.9" +"@react-native/dev-middleware@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/dev-middleware@npm:0.77.2" dependencies: "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.76.9 + "@react-native/debugger-frontend": 0.77.2 chrome-launcher: ^0.15.2 chromium-edge-launcher: ^0.2.0 connect: ^3.6.5 @@ -3345,19 +3649,19 @@ __metadata: nullthrows: ^1.1.1 open: ^7.0.3 selfsigned: ^2.4.1 - serve-static: ^1.13.1 + serve-static: ^1.16.2 ws: ^6.2.3 - checksum: 1f7750ae0c4d4d7970a73cd4f8443004a93b91b998a003ddb965274eb718d2a70ff06d182903dcaeccf15d8d245f488a397ea8ae53f6ed5f25e4d476d844b90f + checksum: 062495c7642e8061b300cb4e6c0045303e09aa25593404baa49d2b5cadac8b9b182d478ba556562f24ebfa69415814b4b9cf0d3438c7e600b457e66292618567 languageName: node linkType: hard -"@react-native/eslint-config@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/eslint-config@npm:0.76.9" +"@react-native/eslint-config@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/eslint-config@npm:0.77.2" dependencies: "@babel/core": ^7.25.2 "@babel/eslint-parser": ^7.25.1 - "@react-native/eslint-plugin": 0.76.9 + "@react-native/eslint-plugin": 0.77.2 "@typescript-eslint/eslint-plugin": ^7.1.1 "@typescript-eslint/parser": ^7.1.1 eslint-config-prettier: ^8.5.0 @@ -3370,54 +3674,54 @@ __metadata: peerDependencies: eslint: ">=8" prettier: ">=2" - checksum: 79147a2c55df65358ced8d28ca2c885206c95006e48f981aeebed21528ecfe607c7786c7dda5b65bcfce96a4dcb3d9e5786ec199994c8782256f375bedd88393 + checksum: 0a2f59d242f98c61acf5aa1151f5351ebce8f146961bac25b50cf3c80c713e7447f6837591b5fd4e134a96f85983385b3abeb2c9fa97c025a3c7a2573347d1f1 languageName: node linkType: hard -"@react-native/eslint-plugin@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/eslint-plugin@npm:0.76.9" - checksum: b932f7b44590142c6bf255b3dbfcd65ff1fd76805dc3d59f4874f9d1f3a4324d02a6854fbb46bde9d205e0d68d109db2875f6ab68ac12d5f567b64a82c86e340 +"@react-native/eslint-plugin@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/eslint-plugin@npm:0.77.2" + checksum: f3386e95e22646aa2bfef4989c72f45043e147ae81f90599bf9ce84eccc82e5ee275085b314d6228af29b7de98522c31dc83b3b78422695fc47e0ef82f3a5652 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/gradle-plugin@npm:0.76.9" - checksum: afc6010cf278ed7dba58fb67cb789965edb6cfb3608e54b518232ef46b651f541915b7f6eae0b298457ccd8626213c687962ec250143e714de5e3bd2dc6dc210 +"@react-native/gradle-plugin@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/gradle-plugin@npm:0.77.2" + checksum: 7a1ea02ab2d7cb48b2e3426c4352d1718c899605477a6a321de8eb77240236417f2e52744be92b4b2f7b9304ed37112e9b015ed9947572a189a444a3cd64cb92 languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/js-polyfills@npm:0.76.9" - checksum: c49aac99f6973b102a9013632c204f02a57d96da500901bc6730ab96f56950d6924417e39c87be640a3a59b67e1af2583432361f55bf42c959aff02a285bcafc +"@react-native/js-polyfills@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/js-polyfills@npm:0.77.2" + checksum: 5934885baa67414aa40785470c06b21c0eee1405f48ffb3b773dc1c9fd1da7f6cb9b9c9bf1c81d54b3e9399cb0cc0d54be88ea26bdcc4bca5134a563bd8003b6 languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/metro-babel-transformer@npm:0.76.9" +"@react-native/metro-babel-transformer@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/metro-babel-transformer@npm:0.77.2" dependencies: "@babel/core": ^7.25.2 - "@react-native/babel-preset": 0.76.9 - hermes-parser: 0.23.1 + "@react-native/babel-preset": 0.77.2 + hermes-parser: 0.25.1 nullthrows: ^1.1.1 peerDependencies: "@babel/core": "*" - checksum: cb38d150e30b3e07e2cb8e637e26b4dcb8b58d6accc95f51e507baea94bb970a0077573c319849a3e7d9bf976dadc39cf363bb505f53de1a209e1bb9ea0428f8 + checksum: 70526eb6fd1bc4b973daa06b836b2130891f1c5c44ea5f21612e7626bb5f2f2552f090b5b7be2bb0ab9c47077ba36ef28ded29f41892c489f9f263f7e4062dd4 languageName: node linkType: hard -"@react-native/metro-config@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/metro-config@npm:0.76.9" +"@react-native/metro-config@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/metro-config@npm:0.77.2" dependencies: - "@react-native/js-polyfills": 0.76.9 - "@react-native/metro-babel-transformer": 0.76.9 - metro-config: ^0.81.0 - metro-runtime: ^0.81.0 - checksum: c52dd64967e6ead75d735702def2e29767f56321d888eae48b683e65118852c567c066755fa0f18c554773a8a0cb44493b436f516bf2c96bb6625f86e7439fec + "@react-native/js-polyfills": 0.77.2 + "@react-native/metro-babel-transformer": 0.77.2 + metro-config: ^0.81.3 + metro-runtime: ^0.81.3 + checksum: c98bb93be27338752cedafff2551ceda0a5523fcf578c5ee51325887e68e92edd34bd02adfb34e758abb40bc259054132932e389b83464e91f11e7937d2a96f3 languageName: node linkType: hard @@ -3428,23 +3732,23 @@ __metadata: languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/normalize-colors@npm:0.76.9" - checksum: 4fddb977b8aad2e848cb698f13b9ffec539668e8ae891846327d5e23ce3de13dea59a2dfbea8a154ea034791c7abc3f7d1d4c8caae2114f7a683c78b221aed36 +"@react-native/normalize-colors@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/normalize-colors@npm:0.77.2" + checksum: 57902b123cd9421f8058b3ce9f9f3c535a97511f3a7c8e81d1090cfb727c6c231d7b7c366f0dbdabe485cfa690f9eb9baca7e98dc6672b9c78debe19b35a0753 languageName: node linkType: hard -"@react-native/typescript-config@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/typescript-config@npm:0.76.9" - checksum: 768240aacdfdc80dfab6593a497841f8e2bf2a227778f8abc60396b3e7a261d36f8243bd0926e850a34d1a98a4f372327d3cabb5c3ce1049fafbb775d852e0c1 +"@react-native/typescript-config@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/typescript-config@npm:0.77.2" + checksum: 28c513bf6e33eff27836f3feedc1e00504b6c24b83d337464ae1109b3ff248c58c7f0545c9ea5fdc942d1c930b4195c10edac892ae62e009b14de117aa082bf3 languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.76.9": - version: 0.76.9 - resolution: "@react-native/virtualized-lists@npm:0.76.9" +"@react-native/virtualized-lists@npm:0.77.2": + version: 0.77.2 + resolution: "@react-native/virtualized-lists@npm:0.77.2" dependencies: invariant: ^2.2.4 nullthrows: ^1.1.1 @@ -3455,7 +3759,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 697a04bdf4b5f430164bf666bf60cd0207f4d3fb06b0a62d7c39b54c166973b29c73640e5c1a44f1c6891d93398bedd63eb8addcbe78641d7ebb13b9ab022052 + checksum: 5cd03ec22d21bdb026601305317092e9774bb8585c530c40141e29f35bbdcb2f79d3ad236181c42fd4927bfd2cba25c4a691783a31daed5ac347c9646838fecb languageName: node linkType: hard @@ -3799,13 +4103,13 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^29.2.1": - version: 29.5.13 - resolution: "@types/jest@npm:29.5.13" +"@types/jest@npm:^29.5.13": + version: 29.5.14 + resolution: "@types/jest@npm:29.5.14" dependencies: expect: ^29.0.0 pretty-format: ^29.0.0 - checksum: 875ac23c2398cdcf22aa56c6ba24560f11d2afda226d4fa23936322dde6202f9fdbd2b91602af51c27ecba223d9fc3c1e33c9df7e47b3bf0e2aefc6baf13ce53 + checksum: 18dba4623f26661641d757c63da2db45e9524c9be96a29ef713c703a9a53792df9ecee9f7365a0858ddbd6440d98fe6b65ca67895ca5884b73cbc7ffc11f3838 languageName: node linkType: hard @@ -4564,12 +4868,12 @@ __metadata: languageName: node linkType: hard -"ast-types@npm:0.15.2": - version: 0.15.2 - resolution: "ast-types@npm:0.15.2" +"ast-types@npm:^0.16.1": + version: 0.16.1 + resolution: "ast-types@npm:0.16.1" dependencies: tslib: ^2.0.1 - checksum: 24f0d86bf9e4c8dae16fa24b13c1776f2c2677040bcfbd4eb4f27911db49020be4876885e45e6cfcc548ed4dfea3a0742d77e3346b84fae47379cb0b89e9daa0 + checksum: 21c186da9fdb1d8087b1b7dabbc4059f91aa5a1e593a9776b4393cc1eaa857e741b2dda678d20e34b16727b78fef3ab59cf8f0c75ed1ba649c78fe194e5c114b languageName: node linkType: hard @@ -4596,15 +4900,6 @@ __metadata: languageName: node linkType: hard -"babel-core@npm:^7.0.0-bridge.0": - version: 7.0.0-bridge.0 - resolution: "babel-core@npm:7.0.0-bridge.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2a1cb879019dffb08d17bec36e13c3a6d74c94773f41c1fd8b14de13f149cc34b705b0a1e07b42fcf35917b49d78db6ff0c5c3b00b202a5235013d517b5c6bbb - languageName: node - linkType: hard - "babel-eslint@npm:^10.0.0": version: 10.1.0 resolution: "babel-eslint@npm:10.1.0" @@ -4621,7 +4916,7 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^29.6.3, babel-jest@npm:^29.7.0": +"babel-jest@npm:^29.7.0": version: 29.7.0 resolution: "babel-jest@npm:29.7.0" dependencies: @@ -4725,16 +5020,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-syntax-hermes-parser@npm:^0.23.1": - version: 0.23.1 - resolution: "babel-plugin-syntax-hermes-parser@npm:0.23.1" - dependencies: - hermes-parser: 0.23.1 - checksum: 5412008e8e85b08cd0d78168f746ade68b8ed69c0068831ce5e3d028f01c644f546ca0e2b7c9a4a8c6b9d5f14aff84c2453ab44b19cbec55e4366b20bbba9040 - languageName: node - linkType: hard - -"babel-plugin-syntax-hermes-parser@npm:^0.25.1": +"babel-plugin-syntax-hermes-parser@npm:0.25.1": version: 0.25.1 resolution: "babel-plugin-syntax-hermes-parser@npm:0.25.1" dependencies: @@ -6659,7 +6945,7 @@ __metadata: languageName: node linkType: hard -"execa@npm:^5.0.0, execa@npm:^5.1.1": +"execa@npm:^5.0.0": version: 5.1.1 resolution: "execa@npm:5.1.1" dependencies: @@ -7213,7 +7499,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -7298,13 +7584,6 @@ __metadata: languageName: node linkType: hard -"hermes-estree@npm:0.23.1": - version: 0.23.1 - resolution: "hermes-estree@npm:0.23.1" - checksum: 0f63edc365099304f4cd8e91a3666a4fb5a2a47baee751dc120df9201640112865944cae93617f554af71be9827e96547f9989f4972d6964ecc121527295fec6 - languageName: node - linkType: hard - "hermes-estree@npm:0.25.1": version: 0.25.1 resolution: "hermes-estree@npm:0.25.1" @@ -7312,15 +7591,6 @@ __metadata: languageName: node linkType: hard -"hermes-parser@npm:0.23.1": - version: 0.23.1 - resolution: "hermes-parser@npm:0.23.1" - dependencies: - hermes-estree: 0.23.1 - checksum: a08008928aea9ea9a2cab2c0fac3cffa21f7869ab3fabb68e5add0fe057737a0c352d7a446426f7956172ccc8f2d4a215b4fc20d1d08354fc8dc16772c248fce - languageName: node - linkType: hard - "hermes-parser@npm:0.25.1": version: 0.25.1 resolution: "hermes-parser@npm:0.25.1" @@ -8529,34 +8799,36 @@ __metadata: languageName: node linkType: hard -"jscodeshift@npm:^0.14.0": - version: 0.14.0 - resolution: "jscodeshift@npm:0.14.0" +"jscodeshift@npm:^17.0.0": + version: 17.3.0 + resolution: "jscodeshift@npm:17.3.0" dependencies: - "@babel/core": ^7.13.16 - "@babel/parser": ^7.13.16 - "@babel/plugin-proposal-class-properties": ^7.13.0 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.13.8 - "@babel/plugin-proposal-optional-chaining": ^7.13.12 - "@babel/plugin-transform-modules-commonjs": ^7.13.8 - "@babel/preset-flow": ^7.13.13 - "@babel/preset-typescript": ^7.13.0 - "@babel/register": ^7.13.16 - babel-core: ^7.0.0-bridge.0 - chalk: ^4.1.2 + "@babel/core": ^7.24.7 + "@babel/parser": ^7.24.7 + "@babel/plugin-transform-class-properties": ^7.24.7 + "@babel/plugin-transform-modules-commonjs": ^7.24.7 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.7 + "@babel/plugin-transform-optional-chaining": ^7.24.7 + "@babel/plugin-transform-private-methods": ^7.24.7 + "@babel/preset-flow": ^7.24.7 + "@babel/preset-typescript": ^7.24.7 + "@babel/register": ^7.24.6 flow-parser: 0.* graceful-fs: ^4.2.4 - micromatch: ^4.0.4 + micromatch: ^4.0.7 neo-async: ^2.5.0 - node-dir: ^0.1.17 - recast: ^0.21.0 - temp: ^0.8.4 - write-file-atomic: ^2.3.0 + picocolors: ^1.0.1 + recast: ^0.23.11 + tmp: ^0.2.3 + write-file-atomic: ^5.0.1 peerDependencies: "@babel/preset-env": ^7.1.6 + peerDependenciesMeta: + "@babel/preset-env": + optional: true bin: jscodeshift: bin/jscodeshift.js - checksum: 54ea6d639455883336f80b38a70648821c88b7942315dc0fbab01bc34a9ad0f0f78e3bd69304b5ab167e4262d6ed7e6284c6d32525ab01c89d9118df89b3e2a0 + checksum: 6a529c8dcab8eef48381425c706d58a0a9205397cad367925872845ff1c35924f8f838bbd1397b28a065061032047c9fd843877000a3743240db4ba6ded2546b languageName: node linkType: hard @@ -9001,68 +9273,68 @@ __metadata: languageName: node linkType: hard -"metro-babel-transformer@npm:0.81.4": - version: 0.81.4 - resolution: "metro-babel-transformer@npm:0.81.4" +"metro-babel-transformer@npm:0.81.5": + version: 0.81.5 + resolution: "metro-babel-transformer@npm:0.81.5" dependencies: "@babel/core": ^7.25.2 flow-enums-runtime: ^0.0.6 hermes-parser: 0.25.1 nullthrows: ^1.1.1 - checksum: ebcac865e463b0e84d91ac7e03d16b01c7578e35698ca30a06ca30a5fe31d5921c1293b51c0aca47286eacb2629e56dbd4a271af7dd27126d318ebaeb32477ee + checksum: 687b0657fcb2c6a01784a29abaa9979539a9047c0632c299d7764e7cafa9412cbb17f4e866212dc4c96a73eb47381d30340b30628b2d083fef0c88523ae0a293 languageName: node linkType: hard -"metro-cache-key@npm:0.81.4": - version: 0.81.4 - resolution: "metro-cache-key@npm:0.81.4" +"metro-cache-key@npm:0.81.5": + version: 0.81.5 + resolution: "metro-cache-key@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 - checksum: 524f11de4b907024d27de1f190ea8520e3bd7ffa9cfa6d7d4c1a067ad41e4f2acd5b40c756c5dbf0def3e2dfaa5e0780fb54f7d960cd7888c124d44905b1dcfa + checksum: d5656bc8906ff4366d8093d19304d6ac386c59429e3e7e24050f4bc9f93ca4e04d8062af6bdd28874a5e4b9bcc84f248855933ffa80af56aeed8be5ff02c85bf languageName: node linkType: hard -"metro-cache@npm:0.81.4": - version: 0.81.4 - resolution: "metro-cache@npm:0.81.4" +"metro-cache@npm:0.81.5": + version: 0.81.5 + resolution: "metro-cache@npm:0.81.5" dependencies: exponential-backoff: ^3.1.1 flow-enums-runtime: ^0.0.6 - metro-core: 0.81.4 - checksum: 61e5e129a7eed60ea7b85224df145b959ee3379eab0f5f6d00d9268ee549ff411347e0cfe1738a827d1070ec0bacc225473c80f6cf72780bc3a81a518d5e0ec6 + metro-core: 0.81.5 + checksum: cba822d3f5c38163558e8240f7b8f189a597829c7df07a3f205c9565f66c0d3a9d7deab7be9449dec3bd1c615b71918c8cd05b0e2bf9cc21c517702405d468d1 languageName: node linkType: hard -"metro-config@npm:0.81.4, metro-config@npm:^0.81.0": - version: 0.81.4 - resolution: "metro-config@npm:0.81.4" +"metro-config@npm:0.81.5, metro-config@npm:^0.81.3": + version: 0.81.5 + resolution: "metro-config@npm:0.81.5" dependencies: connect: ^3.6.5 cosmiconfig: ^5.0.5 flow-enums-runtime: ^0.0.6 jest-validate: ^29.7.0 - metro: 0.81.4 - metro-cache: 0.81.4 - metro-core: 0.81.4 - metro-runtime: 0.81.4 - checksum: 3fcee46eb84045a00f708025bd9c710531d29661d9e561eb418f342e97ed4dbffbda1b677e6045f7ec92eb9c6e06d0e429df8372f1050ad005a9820ca9cf4ad4 + metro: 0.81.5 + metro-cache: 0.81.5 + metro-core: 0.81.5 + metro-runtime: 0.81.5 + checksum: 43ba163fcfcbd0bcf69c3416901779c3de94536b0ee451ad73cad6311734e931cb1bf2c007dd71317f35ddf346cca74bc07b5a3075adf5c09b0e6e859d2169e4 languageName: node linkType: hard -"metro-core@npm:0.81.4, metro-core@npm:^0.81.0": - version: 0.81.4 - resolution: "metro-core@npm:0.81.4" +"metro-core@npm:0.81.5, metro-core@npm:^0.81.3": + version: 0.81.5 + resolution: "metro-core@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 lodash.throttle: ^4.1.1 - metro-resolver: 0.81.4 - checksum: d39d5e25dbb949fdeae906c511b78ee19a2caee2ddd018116866715263038baf4be8376255ee0087f892ee7220aeb17f9c8cabbd244742100dc9e87193614f91 + metro-resolver: 0.81.5 + checksum: 5fb02d055669f0d37aaffc165444aa723741e9e9a74c1e17c54b53e635e4b7246d8ec582bfb951710ff02cd2d26d5565811182464f3f42728c1f346d0e699f8a languageName: node linkType: hard -"metro-file-map@npm:0.81.4": - version: 0.81.4 - resolution: "metro-file-map@npm:0.81.4" +"metro-file-map@npm:0.81.5": + version: 0.81.5 + resolution: "metro-file-map@npm:0.81.5" dependencies: debug: ^2.2.0 fb-watchman: ^2.0.0 @@ -9073,76 +9345,76 @@ __metadata: micromatch: ^4.0.4 nullthrows: ^1.1.1 walker: ^1.0.7 - checksum: 7a1008263b527aeefdeb606cede2287f58ab11c9da6b2b68b10ffc93524d6b595c6c8fc86e36ef16c696b11322f1631b905b592f275ec88121104b1feab4e74a + checksum: dcc975a6a3a0ceaf25048cca834d6b065b719b768f332c2a720d6a0341b6b640783625d1188dc1b85204e42420853240fa0419988bade2395ce3c054079c3b65 languageName: node linkType: hard -"metro-minify-terser@npm:0.81.4": - version: 0.81.4 - resolution: "metro-minify-terser@npm:0.81.4" +"metro-minify-terser@npm:0.81.5": + version: 0.81.5 + resolution: "metro-minify-terser@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 terser: ^5.15.0 - checksum: 985b0023354f523608d977bcb3c45edf3c5497ca0466fdb5b1125ff2c0cca56b6184a263106c7f6f9f381e950a035f15fb12e977ed169ca13089a75733c3314f + checksum: 4623743676e2bb8bb74b99bd2b2c26feb2509a8db5596f265e21042b43e84611f9025977ae298b8271644cb27e8da8a60b8dff791f57517b4bd2f5ae366f2945 languageName: node linkType: hard -"metro-resolver@npm:0.81.4": - version: 0.81.4 - resolution: "metro-resolver@npm:0.81.4" +"metro-resolver@npm:0.81.5": + version: 0.81.5 + resolution: "metro-resolver@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 - checksum: 0404d549ac144d5823e4b0383e6718d5fb969c60f3cf4db4a24748f94198b692b1527a92a874b9af00ba28284719063e7aaec5f2913e82438ac5b97d9b406241 + checksum: 84d9f3c10538a747c2718ddc1cf366c38b1a6080e2b6cdfd4731511e5a25cec45fbf35101fae8691bda59fd2e9aa3f559d436bc46e05b603c446072e4a1bc6e9 languageName: node linkType: hard -"metro-runtime@npm:0.81.4, metro-runtime@npm:^0.81.0": - version: 0.81.4 - resolution: "metro-runtime@npm:0.81.4" +"metro-runtime@npm:0.81.5, metro-runtime@npm:^0.81.3": + version: 0.81.5 + resolution: "metro-runtime@npm:0.81.5" dependencies: "@babel/runtime": ^7.25.0 flow-enums-runtime: ^0.0.6 - checksum: 96029d4be2b828792431318f3a28c4cb82dae0c0c6d5a393874362b9df08ada56ae3f283ad8b6eb0a8c3358518cc7c01b53712482b891fdf292e893d038eb7d1 + checksum: 43b54e07ce0534928c12f59a3d2e68ecf4fc7e7ad1a78cb691f90a406796eec381af21fcef5af73ecc5081153a4da5f935797ebe9ea4a025a5e526039bf19b21 languageName: node linkType: hard -"metro-source-map@npm:0.81.4, metro-source-map@npm:^0.81.0": - version: 0.81.4 - resolution: "metro-source-map@npm:0.81.4" +"metro-source-map@npm:0.81.5, metro-source-map@npm:^0.81.3": + version: 0.81.5 + resolution: "metro-source-map@npm:0.81.5" dependencies: "@babel/traverse": ^7.25.3 "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" "@babel/types": ^7.25.2 flow-enums-runtime: ^0.0.6 invariant: ^2.2.4 - metro-symbolicate: 0.81.4 + metro-symbolicate: 0.81.5 nullthrows: ^1.1.1 - ob1: 0.81.4 + ob1: 0.81.5 source-map: ^0.5.6 vlq: ^1.0.0 - checksum: 878fe5b2e69f3b658e80f50de61ca8af8085485dfffb67ec1641e80e725a87319cbcf51909ac56baaafcf6156a3a4ba78585901a164d237566b6a19767341633 + checksum: a31e459c8a18fe3fc6b3cc5d87a2f25b2f3794425d590bbbab8abafa537647110b18edd0ff025971d1783e16d3c114099bf13c406a01a6456e3e004a54f621d8 languageName: node linkType: hard -"metro-symbolicate@npm:0.81.4": - version: 0.81.4 - resolution: "metro-symbolicate@npm:0.81.4" +"metro-symbolicate@npm:0.81.5": + version: 0.81.5 + resolution: "metro-symbolicate@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 invariant: ^2.2.4 - metro-source-map: 0.81.4 + metro-source-map: 0.81.5 nullthrows: ^1.1.1 source-map: ^0.5.6 vlq: ^1.0.0 bin: metro-symbolicate: src/index.js - checksum: b5391c516499e2b761f366558cac4382e42c815fb7eb9551f1e64e95769e06688d6988329d59c7e769076af5ac2abb880a0544f367b523d786b249808b8fb050 + checksum: f1ec6df153be8b469c87179dcc0807e6e94e2523140e0b0044aa2fecedfd222f9d05a408bd142d3293e52e9c7ef59064332fce5f489cddb0f38d11d3ed897c2b languageName: node linkType: hard -"metro-transform-plugins@npm:0.81.4": - version: 0.81.4 - resolution: "metro-transform-plugins@npm:0.81.4" +"metro-transform-plugins@npm:0.81.5": + version: 0.81.5 + resolution: "metro-transform-plugins@npm:0.81.5" dependencies: "@babel/core": ^7.25.2 "@babel/generator": ^7.25.0 @@ -9150,34 +9422,34 @@ __metadata: "@babel/traverse": ^7.25.3 flow-enums-runtime: ^0.0.6 nullthrows: ^1.1.1 - checksum: 709e7a2ea8fef04d40dc63222cb9b42046b975c1b7eb838c6f9ca315e08a756ad18d0057f2d5e0beaf4e0561cd03be9dfb3b15de286ff102ee386cf49acbae57 + checksum: 2d156882c6545730638aeb362856288649e5049f336d532040dd4b9435ad53d35adbc808903f01519dfda5e7a9a1d80b6f2303171921f32aa823f86484ab2b60 languageName: node linkType: hard -"metro-transform-worker@npm:0.81.4": - version: 0.81.4 - resolution: "metro-transform-worker@npm:0.81.4" +"metro-transform-worker@npm:0.81.5": + version: 0.81.5 + resolution: "metro-transform-worker@npm:0.81.5" dependencies: "@babel/core": ^7.25.2 "@babel/generator": ^7.25.0 "@babel/parser": ^7.25.3 "@babel/types": ^7.25.2 flow-enums-runtime: ^0.0.6 - metro: 0.81.4 - metro-babel-transformer: 0.81.4 - metro-cache: 0.81.4 - metro-cache-key: 0.81.4 - metro-minify-terser: 0.81.4 - metro-source-map: 0.81.4 - metro-transform-plugins: 0.81.4 + metro: 0.81.5 + metro-babel-transformer: 0.81.5 + metro-cache: 0.81.5 + metro-cache-key: 0.81.5 + metro-minify-terser: 0.81.5 + metro-source-map: 0.81.5 + metro-transform-plugins: 0.81.5 nullthrows: ^1.1.1 - checksum: 947b892b0dc8836d55772d0367ed0a797fc68f8b53000e21be5b5c6cc66ab0269292e4cbff3fa9988f4c471dbd979a49dbb11fa780e7022e0ed26b810cbe19ff + checksum: 59d144c44e7979317ee702a0f11da19443e5bf56a4fb6be026e4e09377631a2704ca4aba4e7290711fbe481176e82006fe195a18cacd6007f01c6b1ebe2a7a84 languageName: node linkType: hard -"metro@npm:0.81.4, metro@npm:^0.81.0": - version: 0.81.4 - resolution: "metro@npm:0.81.4" +"metro@npm:0.81.5, metro@npm:^0.81.3": + version: 0.81.5 + resolution: "metro@npm:0.81.5" dependencies: "@babel/code-frame": ^7.24.7 "@babel/core": ^7.25.2 @@ -9200,18 +9472,18 @@ __metadata: jest-worker: ^29.7.0 jsc-safe-url: ^0.2.2 lodash.throttle: ^4.1.1 - metro-babel-transformer: 0.81.4 - metro-cache: 0.81.4 - metro-cache-key: 0.81.4 - metro-config: 0.81.4 - metro-core: 0.81.4 - metro-file-map: 0.81.4 - metro-resolver: 0.81.4 - metro-runtime: 0.81.4 - metro-source-map: 0.81.4 - metro-symbolicate: 0.81.4 - metro-transform-plugins: 0.81.4 - metro-transform-worker: 0.81.4 + metro-babel-transformer: 0.81.5 + metro-cache: 0.81.5 + metro-cache-key: 0.81.5 + metro-config: 0.81.5 + metro-core: 0.81.5 + metro-file-map: 0.81.5 + metro-resolver: 0.81.5 + metro-runtime: 0.81.5 + metro-source-map: 0.81.5 + metro-symbolicate: 0.81.5 + metro-transform-plugins: 0.81.5 + metro-transform-worker: 0.81.5 mime-types: ^2.1.27 nullthrows: ^1.1.1 serialize-error: ^2.1.0 @@ -9221,11 +9493,11 @@ __metadata: yargs: ^17.6.2 bin: metro: src/cli.js - checksum: 77d8ffa230500f9e7f834600d9d8a4a8b0a3214f17e3dd4e8b8c2039bd48e3d8322e01068b4faf29093fa8398225cef4a6f130b581c33fef53e94f5646e6e1a9 + checksum: 7665b811aa09abe5c7743764402f03cf64ccb3e1b381a46716470b58b05a952dde45e5e34c6a485f79154e2905b89fc178455c378831f9425767d76392418f9f languageName: node linkType: hard -"micromatch@npm:^4.0.4": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.7": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -9292,7 +9564,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -9519,29 +9791,6 @@ __metadata: languageName: node linkType: hard -"node-dir@npm:^0.1.17": - version: 0.1.17 - resolution: "node-dir@npm:0.1.17" - dependencies: - minimatch: ^3.0.2 - checksum: 29de9560e52cdac8d3f794d38d782f6799e13d4d11aaf96d3da8c28458e1c5e33bb5f8edfb42dc34172ec5516c50c5b8850c9e1526542616757a969267263328 - languageName: node - linkType: hard - -"node-fetch@npm:^2.2.0": - version: 2.7.0 - resolution: "node-fetch@npm:2.7.0" - dependencies: - whatwg-url: ^5.0.0 - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: d76d2f5edb451a3f05b15115ec89fc6be39de37c6089f1b6368df03b91e1633fd379a7e01b7ab05089a25034b2023d959b47e59759cb38d88341b2459e89d6e5 - languageName: node - linkType: hard - "node-forge@npm:^1": version: 1.3.1 resolution: "node-forge@npm:1.3.1" @@ -9679,12 +9928,12 @@ __metadata: languageName: node linkType: hard -"ob1@npm:0.81.4": - version: 0.81.4 - resolution: "ob1@npm:0.81.4" +"ob1@npm:0.81.5": + version: 0.81.5 + resolution: "ob1@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 - checksum: 76369043728f471ded35d294088e65a3c0876f2f7c73ad9a4dcdda68e1022a4ce72b8052a681f2604c93cd2e7ccf35e945bbb01855378122f7a1ef48ad1cc72c + checksum: 249ad576be69151a3099207b35b2f6da5c6bb39dfacb9295028ebdc182c2f61f6544d1f6f167af759a77174ab19d8997d1ae6aecdbd9bdc293b2826067e66c5b languageName: node linkType: hard @@ -10351,13 +10600,13 @@ __metadata: languageName: node linkType: hard -"react-devtools-core@npm:^5.3.1": - version: 5.3.1 - resolution: "react-devtools-core@npm:5.3.1" +"react-devtools-core@npm:^6.0.1": + version: 6.1.1 + resolution: "react-devtools-core@npm:6.1.1" dependencies: shell-quote: ^1.6.1 ws: ^7 - checksum: a68434a6af8261f5eb7defd823ebc77cc86f42a93521755bc58e5925956af579a312e109f9b27f652d016c2d580ef28f6e8d1643502624c0fe7913c93c743170 + checksum: 18b6d11a11a23b67eb1ff7d44b45adb914a18d9b26cdb378d8f3146834eda5d9bdefc131bb7fb793f3057f166c309681651e865814bbf491f2ea0d0bf06a2922 languageName: node linkType: hard @@ -10470,24 +10719,27 @@ __metadata: languageName: node linkType: hard -"react-native-mmkv@npm:2.11.0": - version: 2.11.0 - resolution: "react-native-mmkv@npm:2.11.0" +"react-native-mmkv@npm:3.2.0": + version: 3.2.0 + resolution: "react-native-mmkv@npm:3.2.0" peerDependencies: react: "*" - react-native: ">=0.71.0" - checksum: 23ba624db8a4c530532aaab78705b58d1c9eefc3173dae3b1f86c8cb4d0e5abe3d175079c263251bfed406dc9f6ccda3657f138177916866ea0c0dc8fa3d2389 + react-native: "*" + checksum: 766944a7cbf265e27b57576e51bff8604cd8f58c88eaec78bd93d4ce10ff9127d5f75f4c3bb03d6c7ce5dafa07c65e233d5363c0504db802cc88eaf1ccbffaa1 languageName: node linkType: hard -"react-native-navigation@npm:8.0.0": - version: 8.0.0 - resolution: "react-native-navigation@npm:8.0.0" +"react-native-navigation@npm:8.1.0-rc01-snapshot.1710": + version: 8.1.0-rc01-snapshot.1710 + resolution: "react-native-navigation@npm:8.1.0-rc01-snapshot.1710" dependencies: hoist-non-react-statics: 3.x.x lodash: 4.17.x prop-types: 15.x.x react-lifecycles-compat: ^3.0.4 + react-native-redash: ^12.6.1 + reanimated-color-picker: ^3.0.6 + ssim.js: ^3.5.0 tslib: 1.9.3 peerDependencies: react: "*" @@ -10498,7 +10750,7 @@ __metadata: optional: true bin: rnn-link: autolink/postlink/run.js - checksum: bcffb9ffba54558ba2be502e5cc0c6c65f0ef9a421743969063ffb5205b1c34e2fbe5a2de2fcaf70d21ca36830f1f87ff53169aac2d6ebcca40c9469239157b9 + checksum: 9535c77e5127e3ebe137fba783500ddb69359545d7f3dec71a86f1c6650f7205987e2ed25c1c5305046678659653d33b7d0ea2497c5a1693d540d5d0ba2c4e36 languageName: node linkType: hard @@ -10525,7 +10777,7 @@ __metadata: languageName: node linkType: hard -"react-native-redash@npm:^12.0.3": +"react-native-redash@npm:^12.0.3, react-native-redash@npm:^12.6.1": version: 12.6.1 resolution: "react-native-redash@npm:12.6.1" dependencies: @@ -10602,15 +10854,15 @@ __metadata: "@react-native-community/cli-platform-ios": 15.0.1 "@react-native-community/datetimepicker": ^3.4.6 "@react-native-community/netinfo": 11.3.3 - "@react-native/babel-preset": 0.76.9 - "@react-native/eslint-config": 0.76.9 - "@react-native/metro-config": 0.76.9 - "@react-native/typescript-config": 0.76.9 + "@react-native/babel-preset": 0.77.2 + "@react-native/eslint-config": 0.77.2 + "@react-native/metro-config": 0.77.2 + "@react-native/typescript-config": 0.77.2 "@shopify/flash-list": 1.7.6 "@testing-library/react-hooks": ^8.0.1 "@testing-library/react-native": ^11.5.1 "@types/hoist-non-react-statics": ^3.3.1 - "@types/jest": ^29.2.1 + "@types/jest": ^29.5.13 "@types/lodash": ^4.0.0 "@types/prop-types": ^15.5.3 "@types/react": 18.3.7 @@ -10620,7 +10872,6 @@ __metadata: "@typescript-eslint/eslint-plugin": ^5.3.1 "@typescript-eslint/parser": ^5.3.1 "@welldone-software/why-did-you-render": ^3.2.1 - babel-jest: ^29.6.3 babel-plugin-lodash: ^3.3.4 babel-plugin-module-resolver: ^5.0.0 babel-plugin-transform-inline-environment-variables: ^0.0.2 @@ -10649,13 +10900,13 @@ __metadata: react-autobind: ^1.0.6 react-dom: ^18.2.0 react-freeze: ^1.0.0 - react-native: 0.76.9 + react-native: 0.77.2 react-native-fs: ^2.20.0 react-native-gesture-handler: 2.22.1 react-native-haptic-feedback: ^1.11.0 react-native-linear-gradient: 2.6.2 - react-native-mmkv: 2.11.0 - react-native-navigation: 8.0.0 + react-native-mmkv: 3.2.0 + react-native-navigation: 8.1.0-rc01-snapshot.1710 react-native-reanimated: 3.16.7 react-native-redash: ^12.0.3 react-native-shimmer-placeholder: ^2.0.6 @@ -10664,6 +10915,7 @@ __metadata: react-test-renderer: 18.3.1 reassure: ^0.4.1 semver: ^5.5.0 + setimmediate: ^1.0.5 shell-utils: ^1.0.10 tinycolor2: ^1.4.2 typescript: 5.0.4 @@ -10679,23 +10931,23 @@ __metadata: languageName: unknown linkType: soft -"react-native@npm:0.76.9": - version: 0.76.9 - resolution: "react-native@npm:0.76.9" +"react-native@npm:0.77.2": + version: 0.77.2 + resolution: "react-native@npm:0.77.2" dependencies: "@jest/create-cache-key-function": ^29.6.3 - "@react-native/assets-registry": 0.76.9 - "@react-native/codegen": 0.76.9 - "@react-native/community-cli-plugin": 0.76.9 - "@react-native/gradle-plugin": 0.76.9 - "@react-native/js-polyfills": 0.76.9 - "@react-native/normalize-colors": 0.76.9 - "@react-native/virtualized-lists": 0.76.9 + "@react-native/assets-registry": 0.77.2 + "@react-native/codegen": 0.77.2 + "@react-native/community-cli-plugin": 0.77.2 + "@react-native/gradle-plugin": 0.77.2 + "@react-native/js-polyfills": 0.77.2 + "@react-native/normalize-colors": 0.77.2 + "@react-native/virtualized-lists": 0.77.2 abort-controller: ^3.0.0 anser: ^1.4.9 ansi-regex: ^5.0.0 babel-jest: ^29.7.0 - babel-plugin-syntax-hermes-parser: ^0.23.1 + babel-plugin-syntax-hermes-parser: 0.25.1 base64-js: ^1.5.1 chalk: ^4.0.0 commander: ^12.0.0 @@ -10706,13 +10958,12 @@ __metadata: jest-environment-node: ^29.6.3 jsc-android: ^250231.0.0 memoize-one: ^5.0.0 - metro-runtime: ^0.81.0 - metro-source-map: ^0.81.0 - mkdirp: ^0.5.1 + metro-runtime: ^0.81.3 + metro-source-map: ^0.81.3 nullthrows: ^1.1.1 pretty-format: ^29.7.0 promise: ^8.3.0 - react-devtools-core: ^5.3.1 + react-devtools-core: ^6.0.1 react-refresh: ^0.14.0 regenerator-runtime: ^0.13.2 scheduler: 0.24.0-canary-efb381bbf-20230505 @@ -10729,7 +10980,7 @@ __metadata: optional: true bin: react-native: cli.js - checksum: cf621cef0649920bac2b730998be6eaaf9762d516bc65d9073b46f634bb640dfb6b9b5d64ce6a6e09da64d52d114d96d96435a91c9db8ec61b76c818fe209827 + checksum: 95c503e124aa00e6b90a891410775bb23070fdfacb5e082ccb6434345e459b330a2188305c9b4db4e57209cd98bab993fe941685e8d4ebb9cc145720f813619e languageName: node linkType: hard @@ -10812,6 +11063,22 @@ __metadata: languageName: node linkType: hard +"reanimated-color-picker@npm:^3.0.6": + version: 3.0.6 + resolution: "reanimated-color-picker@npm:3.0.6" + peerDependencies: + expo: ">=44.0.0" + react: "*" + react-native: "*" + react-native-gesture-handler: ">=2.0.0" + react-native-reanimated: ^2.0.0 || ^3.0.0 + peerDependenciesMeta: + expo: + optional: true + checksum: e7106c5e6c2d1f5b512b97323f9f79c86c317055629706bd9263e9c2044ee6e1cdee02250876111f5682643029f2173c34c948f9708ad44d7c2ddc8edfd83c1c + languageName: node + linkType: hard + "reassure@npm:^0.4.1": version: 0.4.1 resolution: "reassure@npm:0.4.1" @@ -10822,15 +11089,16 @@ __metadata: languageName: node linkType: hard -"recast@npm:^0.21.0": - version: 0.21.5 - resolution: "recast@npm:0.21.5" +"recast@npm:^0.23.11": + version: 0.23.11 + resolution: "recast@npm:0.23.11" dependencies: - ast-types: 0.15.2 + ast-types: ^0.16.1 esprima: ~4.0.0 source-map: ~0.6.1 + tiny-invariant: ^1.3.3 tslib: ^2.0.1 - checksum: 03cc7f57562238ba258d468be67bf7446ce7a707bc87a087891dad15afead46c36e9aaeedf2130e2ab5a465244a9c62bfd4127849761cf8f4085abe2f3e5f485 + checksum: 1807159b1c33bc4a2d146e4ffea13b658e54bdcfab04fc4f9c9d7f1b4626c931e2ce41323e214516ec1e02a119037d686d825fc62f28072db27962b85e5b481d languageName: node linkType: hard @@ -11151,17 +11419,6 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:~2.6.2": - version: 2.6.3 - resolution: "rimraf@npm:2.6.3" - dependencies: - glob: ^7.1.3 - bin: - rimraf: ./bin.js - checksum: 3ea587b981a19016297edb96d1ffe48af7e6af69660e3b371dbfc73722a73a0b0e9be5c88089fbeeb866c389c1098e07f64929c7414290504b855f54f901ab10 - languageName: node - linkType: hard - "run-node@npm:^1.0.0": version: 1.0.0 resolution: "run-node@npm:1.0.0" @@ -11330,7 +11587,7 @@ __metadata: languageName: node linkType: hard -"serve-static@npm:^1.13.1": +"serve-static@npm:^1.13.1, serve-static@npm:^1.16.2": version: 1.16.2 resolution: "serve-static@npm:1.16.2" dependencies: @@ -11375,6 +11632,13 @@ __metadata: languageName: node linkType: hard +"setimmediate@npm:^1.0.5": + version: 1.0.5 + resolution: "setimmediate@npm:1.0.5" + checksum: c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd + languageName: node + linkType: hard + "setprototypeof@npm:1.2.0": version: 1.2.0 resolution: "setprototypeof@npm:1.2.0" @@ -11633,6 +11897,13 @@ __metadata: languageName: node linkType: hard +"ssim.js@npm:^3.5.0": + version: 3.5.0 + resolution: "ssim.js@npm:3.5.0" + checksum: 3f3a63ac8bec9c45e9f72252b786dcb4c91d7a74316b49c20e7935fd6e3869541e9324233b00eb0ab6bd15701016becd62740a5fb8c98f7b5115a9237efb2d4a + languageName: node + linkType: hard + "ssri@npm:^10.0.0": version: 10.0.6 resolution: "ssri@npm:10.0.6" @@ -11957,15 +12228,6 @@ __metadata: languageName: node linkType: hard -"temp@npm:^0.8.4": - version: 0.8.4 - resolution: "temp@npm:0.8.4" - dependencies: - rimraf: ~2.6.2 - checksum: f35bed78565355dfdf95f730b7b489728bd6b7e35071bcc6497af7c827fb6c111fbe9063afc7b8cbc19522a072c278679f9a0ee81e684aa2c8617cc0f2e9c191 - languageName: node - linkType: hard - "terser@npm:^5.15.0": version: 5.33.0 resolution: "terser@npm:5.33.0" @@ -12022,6 +12284,13 @@ __metadata: languageName: node linkType: hard +"tiny-invariant@npm:^1.3.3": + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 5e185c8cc2266967984ce3b352a4e57cb89dad5a8abb0dea21468a6ecaa67cd5bb47a3b7a85d08041008644af4f667fb8b6575ba38ba5fb00b3b5068306e59fe + languageName: node + linkType: hard + "tinycolor2@npm:^1.4.2": version: 1.6.0 resolution: "tinycolor2@npm:1.6.0" @@ -12038,6 +12307,13 @@ __metadata: languageName: node linkType: hard +"tmp@npm:^0.2.3": + version: 0.2.3 + resolution: "tmp@npm:0.2.3" + checksum: 73b5c96b6e52da7e104d9d44afb5d106bb1e16d9fa7d00dbeb9e6522e61b571fbdb165c756c62164be9a3bbe192b9b268c236d370a2a0955c7689cd2ae377b95 + languageName: node + linkType: hard + "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -12068,13 +12344,6 @@ __metadata: languageName: node linkType: hard -"tr46@npm:~0.0.3": - version: 0.0.3 - resolution: "tr46@npm:0.0.3" - checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3 - languageName: node - linkType: hard - "ts-api-utils@npm:^1.0.1": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" @@ -12538,13 +12807,6 @@ __metadata: languageName: node linkType: hard -"webidl-conversions@npm:^3.0.0": - version: 3.0.1 - resolution: "webidl-conversions@npm:3.0.1" - checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c - languageName: node - linkType: hard - "whatwg-fetch@npm:^3.0.0": version: 3.6.20 resolution: "whatwg-fetch@npm:3.6.20" @@ -12552,16 +12814,6 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^5.0.0": - version: 5.0.0 - resolution: "whatwg-url@npm:5.0.0" - dependencies: - tr46: ~0.0.3 - webidl-conversions: ^3.0.0 - checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c - languageName: node - linkType: hard - "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2" @@ -12731,17 +12983,6 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^2.3.0": - version: 2.4.3 - resolution: "write-file-atomic@npm:2.4.3" - dependencies: - graceful-fs: ^4.1.11 - imurmurhash: ^0.1.4 - signal-exit: ^3.0.2 - checksum: 2db81f92ae974fd87ab4a5e7932feacaca626679a7c98fcc73ad8fcea5a1950eab32fa831f79e9391ac99b562ca091ad49be37a79045bd65f595efbb8f4596ae - languageName: node - linkType: hard - "write-file-atomic@npm:^4.0.2": version: 4.0.2 resolution: "write-file-atomic@npm:4.0.2" @@ -12752,6 +12993,16 @@ __metadata: languageName: node linkType: hard +"write-file-atomic@npm:^5.0.1": + version: 5.0.1 + resolution: "write-file-atomic@npm:5.0.1" + dependencies: + imurmurhash: ^0.1.4 + signal-exit: ^4.0.1 + checksum: 8dbb0e2512c2f72ccc20ccedab9986c7d02d04039ed6e8780c987dc4940b793339c50172a1008eed7747001bfacc0ca47562668a069a7506c46c77d7ba3926a9 + languageName: node + linkType: hard + "ws@npm:^6.2.3": version: 6.2.3 resolution: "ws@npm:6.2.3"