From a7768d482669ab938965b5fe6d766e6f56a07b9e Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Mon, 4 May 2026 19:07:19 -0700 Subject: [PATCH 01/13] chore: add baseline-browser-mapping dependency and update Podfile for Xcode 26.4 compatibility --- example/ios/Podfile | 15 +++++++++++++++ package.json | 1 + yarn.lock | 17 +++++++++-------- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/example/ios/Podfile b/example/ios/Podfile index 1e06f7e4e..5427b9f9f 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -33,5 +33,20 @@ target 'ReactNativeSdkExample' do :mac_catalyst_enabled => false, # :ccache_enabled => true ) + + + ## Temporary workaround for Xcode 26.4 + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + # fmt/base.h unconditionally redefines FMT_USE_CONSTEVAL based on __cplusplus, + # so preprocessor defines are overwritten. The reliable fix is to compile fmt + # in C++17 mode: FMT_CPLUSPLUS (201703L) < 201709L → FMT_USE_CONSTEVAL = 0. + # All other pods stay in C++20 (React-perflogger needs std::unordered_map::contains). + if target.name == 'fmt' + config.build_settings['CLANG_CXX_LANGUAGE_STANDARD'] = 'c++17' + end + + end + end end end diff --git a/package.json b/package.json index 296749be5..d960d9a84 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "@types/react": "^19.0.0", "@typescript-eslint/eslint-plugin": "^8.13.0", "@typescript-eslint/parser": "^8.13.0", + "baseline-browser-mapping": "latest", "commitlint": "^19.6.1", "del-cli": "^5.1.0", "eslint": "^8.51.0", diff --git a/yarn.lock b/yarn.lock index 8e584876d..214eb7d93 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1992,6 +1992,7 @@ __metadata: "@types/react": ^19.0.0 "@typescript-eslint/eslint-plugin": ^8.13.0 "@typescript-eslint/parser": ^8.13.0 + baseline-browser-mapping: latest commitlint: ^19.6.1 del-cli: ^5.1.0 eslint: ^8.51.0 @@ -4695,12 +4696,12 @@ __metadata: languageName: node linkType: hard -"baseline-browser-mapping@npm:^2.8.9": - version: 2.8.17 - resolution: "baseline-browser-mapping@npm:2.8.17" +"baseline-browser-mapping@npm:^2.8.9, baseline-browser-mapping@npm:latest": + version: 2.10.27 + resolution: "baseline-browser-mapping@npm:2.10.27" bin: - baseline-browser-mapping: dist/cli.js - checksum: 2ff31d36b475b628b551e0b29b2fb1ac36f903b99392da4da208ef718beefdc659b24b612a2922664fcffa1fc9bf733bb52d2e29756dcf09c54d764c64f0b964 + baseline-browser-mapping: dist/cli.cjs + checksum: 7b89ecfcf34132b11a8f07249e21ede07363f02136f61b9750d953da22e376002a0a8f01163dfeb57ec7cee9eb32569f24113659f692b194125d89c64ea8156d languageName: node linkType: hard @@ -4968,9 +4969,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001746": - version: 1.0.30001751 - resolution: "caniuse-lite@npm:1.0.30001751" - checksum: d11e25c44e40c21e7b7492a25c9fd60f4c04e94aa265573f7c487666f5e1b5ca3ed09d09560336f959237063616255cb294d415511bb6cf0486eb2cb6a3a4318 + version: 1.0.30001791 + resolution: "caniuse-lite@npm:1.0.30001791" + checksum: 9b2f55d51b85abbb270a0d58c28b8e799ccb8fd5ef017179db3d328c8fead4f1738d95a354e75169af31c0424ffb1b691533722522ff280d4aab05d0fe4eddbd languageName: node linkType: hard From f831156f9e73d4f387b8fa985038f82130ca33b4 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Mon, 4 May 2026 19:50:50 -0700 Subject: [PATCH 02/13] chore: update React Native and related packages to version 0.79.7 in package.json and yarn.lock --- .../project.pbxproj | 68 +++---- example/package.json | 10 +- package.json | 10 +- yarn.lock | 188 +++++++++--------- 4 files changed, 139 insertions(+), 137 deletions(-) diff --git a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj index fb2f1926d..86ddff420 100644 --- a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj +++ b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj @@ -9,13 +9,13 @@ /* Begin PBXBuildFile section */ 00E356F31AD99517003FC87E /* ReactNativeSdkExampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* ReactNativeSdkExampleTests.m */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 340B7344440A7080C4C41481 /* libPods-ReactNativeSdkExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F33C80ED83377BE42557E7A1 /* libPods-ReactNativeSdkExample.a */; }; 779227342DFA3FB500D69EC0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 779227332DFA3FB500D69EC0 /* AppDelegate.swift */; }; 77E3B5772EA71A4B001449CE /* IterableJwtGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77E3B5742EA71A4B001449CE /* IterableJwtGenerator.swift */; }; 77E3B5782EA71A4B001449CE /* JwtTokenModule.mm in Sources */ = {isa = PBXBuildFile; fileRef = 77E3B5752EA71A4B001449CE /* JwtTokenModule.mm */; }; 77E3B5792EA71A4B001449CE /* JwtTokenModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77E3B5762EA71A4B001449CE /* JwtTokenModule.swift */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; A3A40C20801B8F02005FA4C0 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 1FC6B09E65A7BD9F6864C5D8 /* PrivacyInfo.xcprivacy */; }; + B804593B76DC91CD857236FC /* libPods-ReactNativeSdkExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA4B1C707F844C0A8CFB73F4 /* libPods-ReactNativeSdkExample.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -32,7 +32,7 @@ 00E356EE1AD99517003FC87E /* ReactNativeSdkExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ReactNativeSdkExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* ReactNativeSdkExampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReactNativeSdkExampleTests.m; sourceTree = ""; }; - 0E36B716BFEBCD6726A94808 /* Pods-ReactNativeSdkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.debug.xcconfig"; sourceTree = ""; }; + 09E5CA38B321A5355583A2DD /* Pods-ReactNativeSdkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.release.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* ReactNativeSdkExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ReactNativeSdkExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ReactNativeSdkExample/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ReactNativeSdkExample/Info.plist; sourceTree = ""; }; @@ -46,9 +46,9 @@ 77E3B5752EA71A4B001449CE /* JwtTokenModule.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = JwtTokenModule.mm; sourceTree = ""; }; 77E3B5762EA71A4B001449CE /* JwtTokenModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JwtTokenModule.swift; sourceTree = ""; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = ReactNativeSdkExample/LaunchScreen.storyboard; sourceTree = ""; }; + C1DA5444DC0081630EF179C0 /* Pods-ReactNativeSdkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.debug.xcconfig"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - F33C80ED83377BE42557E7A1 /* libPods-ReactNativeSdkExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSdkExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - F4BEA47FF573D84ED4C085C9 /* Pods-ReactNativeSdkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.release.xcconfig"; sourceTree = ""; }; + FA4B1C707F844C0A8CFB73F4 /* libPods-ReactNativeSdkExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSdkExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -63,7 +63,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 340B7344440A7080C4C41481 /* libPods-ReactNativeSdkExample.a in Frameworks */, + B804593B76DC91CD857236FC /* libPods-ReactNativeSdkExample.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -107,7 +107,7 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - F33C80ED83377BE42557E7A1 /* libPods-ReactNativeSdkExample.a */, + FA4B1C707F844C0A8CFB73F4 /* libPods-ReactNativeSdkExample.a */, ); name = Frameworks; sourceTree = ""; @@ -149,8 +149,8 @@ BBD78D7AC51CEA395F1C20DB /* Pods */ = { isa = PBXGroup; children = ( - 0E36B716BFEBCD6726A94808 /* Pods-ReactNativeSdkExample.debug.xcconfig */, - F4BEA47FF573D84ED4C085C9 /* Pods-ReactNativeSdkExample.release.xcconfig */, + C1DA5444DC0081630EF179C0 /* Pods-ReactNativeSdkExample.debug.xcconfig */, + 09E5CA38B321A5355583A2DD /* Pods-ReactNativeSdkExample.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -180,13 +180,13 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactNativeSdkExample" */; buildPhases = ( - 438E21A5836E9B59D38C5C82 /* [CP] Check Pods Manifest.lock */, + BC0ECB5C70E9CDFEE460DF64 /* [CP] Check Pods Manifest.lock */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 000604D101B3615CA902775E /* [CP] Embed Pods Frameworks */, - F8022DDAF9F0BC2A3E9694F4 /* [CP] Copy Pods Resources */, + E429DD2BC394E2F8DFDB9474 /* [CP] Embed Pods Frameworks */, + 0D1AB9D1827571B076AE8E96 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -255,40 +255,40 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 000604D101B3615CA902775E /* [CP] Embed Pods Frameworks */ = { + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-input-files.xcfilelist", + inputPaths = ( + "$(SRCROOT)/.xcode.env.local", + "$(SRCROOT)/.xcode.env", ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-output-files.xcfilelist", + name = "Bundle React Native code and images"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; }; - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + 0D1AB9D1827571B076AE8E96 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "$(SRCROOT)/.xcode.env.local", - "$(SRCROOT)/.xcode.env", + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "Bundle React Native code and images"; - outputPaths = ( + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources.sh\"\n"; + showEnvVarsInLog = 0; }; - 438E21A5836E9B59D38C5C82 /* [CP] Check Pods Manifest.lock */ = { + BC0ECB5C70E9CDFEE460DF64 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -310,21 +310,21 @@ 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; }; - F8022DDAF9F0BC2A3E9694F4 /* [CP] Copy Pods Resources */ = { + E429DD2BC394E2F8DFDB9474 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -420,7 +420,7 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0E36B716BFEBCD6726A94808 /* Pods-ReactNativeSdkExample.debug.xcconfig */; + baseConfigurationReference = C1DA5444DC0081630EF179C0 /* Pods-ReactNativeSdkExample.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -451,7 +451,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F4BEA47FF573D84ED4C085C9 /* Pods-ReactNativeSdkExample.release.xcconfig */; + baseConfigurationReference = 09E5CA38B321A5355583A2DD /* Pods-ReactNativeSdkExample.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; diff --git a/example/package.json b/example/package.json index 5e101d691..4c70a73cf 100644 --- a/example/package.json +++ b/example/package.json @@ -15,7 +15,7 @@ "@react-navigation/native-stack": "^7.0.0", "@react-navigation/stack": "^7.4.2", "react": "19.0.0", - "react-native": "0.79.3", + "react-native": "0.79.7", "react-native-gesture-handler": "^2.26.0", "react-native-safe-area-context": "^5.4.0", "react-native-screens": "^4.10.0", @@ -28,10 +28,10 @@ "@react-native-community/cli": "18.0.1", "@react-native-community/cli-platform-android": "18.0.0", "@react-native-community/cli-platform-ios": "18.0.0", - "@react-native/babel-preset": "0.79.3", - "@react-native/eslint-config": "0.79.3", - "@react-native/metro-config": "0.79.3", - "@react-native/typescript-config": "0.79.3", + "@react-native/babel-preset": "0.79.7", + "@react-native/eslint-config": "0.79.7", + "@react-native/metro-config": "0.79.7", + "@react-native/typescript-config": "0.79.7", "@types/jest": "^29.5.13", "@types/react": "^19.0.0", "@types/react-test-renderer": "^19.0.0", diff --git a/package.json b/package.json index d960d9a84..e2fd0aa0b 100644 --- a/package.json +++ b/package.json @@ -70,10 +70,10 @@ "@commitlint/config-conventional": "^19.6.0", "@evilmartians/lefthook": "^1.5.0", "@react-native-community/cli": "18.0.0", - "@react-native/babel-preset": "0.79.3", - "@react-native/eslint-config": "0.79.3", - "@react-native/metro-config": "0.79.3", - "@react-native/typescript-config": "0.79.3", + "@react-native/babel-preset": "0.79.7", + "@react-native/eslint-config": "0.79.7", + "@react-native/metro-config": "0.79.7", + "@react-native/typescript-config": "0.79.7", "@react-navigation/native": "^7.1.14", "@release-it/conventional-changelog": "^9.0.4", "@testing-library/jest-native": "^5.4.3", @@ -94,7 +94,7 @@ "prettier": "^3.0.3", "prettier-eslint": "^16.4.2", "react": "19.0.0", - "react-native": "0.79.3", + "react-native": "0.79.7", "react-native-builder-bob": "^0.40.4", "react-native-gesture-handler": "^2.26.0", "react-native-safe-area-context": "^5.4.0", diff --git a/yarn.lock b/yarn.lock index 214eb7d93..381e5895c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1950,10 +1950,10 @@ __metadata: "@react-native-community/cli": 18.0.1 "@react-native-community/cli-platform-android": 18.0.0 "@react-native-community/cli-platform-ios": 18.0.0 - "@react-native/babel-preset": 0.79.3 - "@react-native/eslint-config": 0.79.3 - "@react-native/metro-config": 0.79.3 - "@react-native/typescript-config": 0.79.3 + "@react-native/babel-preset": 0.79.7 + "@react-native/eslint-config": 0.79.7 + "@react-native/metro-config": 0.79.7 + "@react-native/typescript-config": 0.79.7 "@react-navigation/bottom-tabs": ^7.0.0 "@react-navigation/native": ^7.1.14 "@react-navigation/native-stack": ^7.0.0 @@ -1962,7 +1962,7 @@ __metadata: "@types/react": ^19.0.0 "@types/react-test-renderer": ^19.0.0 react: 19.0.0 - react-native: 0.79.3 + react-native: 0.79.7 react-native-builder-bob: ^0.30.2 react-native-dotenv: ^3.4.11 react-native-gesture-handler: ^2.26.0 @@ -1980,10 +1980,10 @@ __metadata: "@commitlint/config-conventional": ^19.6.0 "@evilmartians/lefthook": ^1.5.0 "@react-native-community/cli": 18.0.0 - "@react-native/babel-preset": 0.79.3 - "@react-native/eslint-config": 0.79.3 - "@react-native/metro-config": 0.79.3 - "@react-native/typescript-config": 0.79.3 + "@react-native/babel-preset": 0.79.7 + "@react-native/eslint-config": 0.79.7 + "@react-native/metro-config": 0.79.7 + "@react-native/typescript-config": 0.79.7 "@react-navigation/native": ^7.1.14 "@release-it/conventional-changelog": ^9.0.4 "@testing-library/jest-native": ^5.4.3 @@ -2004,7 +2004,7 @@ __metadata: prettier: ^3.0.3 prettier-eslint: ^16.4.2 react: 19.0.0 - react-native: 0.79.3 + react-native: 0.79.7 react-native-builder-bob: ^0.40.4 react-native-gesture-handler: ^2.26.0 react-native-safe-area-context: ^5.4.0 @@ -2957,26 +2957,26 @@ __metadata: languageName: node linkType: hard -"@react-native/assets-registry@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/assets-registry@npm:0.79.3" - checksum: a21674f2dcadaf2e759b564dbf5346a11d593eccd09de5d4e52cd3bf27acf12e84300116757dcae7244e4987a167e580f4774b7f7a2dec6d5dfec8992cb46871 +"@react-native/assets-registry@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/assets-registry@npm:0.79.7" + checksum: 4ba5f118177431be00b398368d1db7c69cf587308bc3cf2df84a34512e6ecc7be9e6b1687279ae85ff7bbcdcbc1a0608cf84f8d16fc3f9abb91e148470964f82 languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/babel-plugin-codegen@npm:0.79.3" +"@react-native/babel-plugin-codegen@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/babel-plugin-codegen@npm:0.79.7" dependencies: "@babel/traverse": ^7.25.3 - "@react-native/codegen": 0.79.3 - checksum: 4ae44062424e53450968aaa8dbce070ecb8bb6402c75af75127616f76b98d8ffbf43e644fb2f8449582e9be1f92ff1e20bcb89798bcfe9daaae8b8ccc85477d5 + "@react-native/codegen": 0.79.7 + checksum: 60df348c43739cfa0a3163835a019337d39c42f9050bba0f8bfbd5ca9b9b3577acdf647d2c961a05a81fedf5eed6e774315916b9bfdf08e16efae954da0d638d languageName: node linkType: hard -"@react-native/babel-preset@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/babel-preset@npm:0.79.3" +"@react-native/babel-preset@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/babel-preset@npm:0.79.7" dependencies: "@babel/core": ^7.25.2 "@babel/plugin-proposal-export-default-from": ^7.24.7 @@ -3019,20 +3019,22 @@ __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.79.3 + "@react-native/babel-plugin-codegen": 0.79.7 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: d42b8bced37a0c9bbfeef90ea699b5c8a3fc22392f8651c88801189384c2e45a1212c8a417d05830bc135de6ce7faf9e6ad8d190bb5b0e41587c4f0437f226ac + checksum: 77618ceaccc133c032182584e2162fc74d3fb6b7d853bbf593be58979093c404824995dd6f0889e42a29c36628b3dbe29029ad661cc273e53dd205ee84ce9281 languageName: node linkType: hard -"@react-native/codegen@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/codegen@npm:0.79.3" +"@react-native/codegen@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/codegen@npm:0.79.7" dependencies: + "@babel/core": ^7.25.2 + "@babel/parser": ^7.25.3 glob: ^7.1.1 hermes-parser: 0.25.1 invariant: ^2.2.4 @@ -3040,15 +3042,15 @@ __metadata: yargs: ^17.6.2 peerDependencies: "@babel/core": "*" - checksum: 26e3a24c47bf359e3f4ee0ac08eeca4086d0b4d0a2051e0e784e97f862f5566a3601f2cd006412c7f76614b6f1a51e2204dff062593992200973f4a94b03d432 + checksum: 61d8c21fe672c17ea0c4189cc8094dd27c2ee25e8aca1bd0e5afbf5464d97641e0bfe12cdc4d1d71aa43ebba4bd08517d0a03b2131a194688f043781959baa7d languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/community-cli-plugin@npm:0.79.3" +"@react-native/community-cli-plugin@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/community-cli-plugin@npm:0.79.7" dependencies: - "@react-native/dev-middleware": 0.79.3 + "@react-native/dev-middleware": 0.79.7 chalk: ^4.0.0 debug: ^2.2.0 invariant: ^2.2.4 @@ -3061,23 +3063,23 @@ __metadata: peerDependenciesMeta: "@react-native-community/cli": optional: true - checksum: 266c9a6895e25600e974349b9aa05136fa9f667c6fd6a16a228620044c387c7330e38bd56849b0e51c7ad0142bf91488ccc87b077bcf0e01e8b8e25ca2677104 + checksum: d43f701dc22cc67c0f9fb8aa8afbde585740da401264f9eb6bef536e26934a32a4bd73721a76db362011e385793c87026168bfc9280a75cc07c8cbbe6f975173 languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/debugger-frontend@npm:0.79.3" - checksum: 36cdf2203ab1333ec61915cab0e3bfb67f537fa960757508b2d239a044fa1f9a8786644727a0d80928bff434cde55a66632b797e75c8a46d5ee24ba6252c3e35 +"@react-native/debugger-frontend@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/debugger-frontend@npm:0.79.7" + checksum: c0b6992c4c9417f85869969df13816735c5d432dca10663f422ca38759ad595e70994f55d8b755c4e3ba6b77535b7eda4498011c5514e9d71fdaba2538cf1711 languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/dev-middleware@npm:0.79.3" +"@react-native/dev-middleware@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/dev-middleware@npm:0.79.7" dependencies: "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.79.3 + "@react-native/debugger-frontend": 0.79.7 chrome-launcher: ^0.15.2 chromium-edge-launcher: ^0.2.0 connect: ^3.6.5 @@ -3087,17 +3089,17 @@ __metadata: open: ^7.0.3 serve-static: ^1.16.2 ws: ^6.2.3 - checksum: 69349ea8253837d46c9fa59d228a4a3f99acf2016fd7ce093a454fe6ec06d6b567a8910b2e2dcfa6a06e012a02b9fb885708fbb56ddf4e79b964122b6a8156d2 + checksum: b223fb7d4079342e74440ce915ec9c0d0b8fb81d69c646bc8ed376cda8219c57d3823c9d9a72cacce11db60d028b72561be4acfa054957bc8fa3abaa1e5cec33 languageName: node linkType: hard -"@react-native/eslint-config@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/eslint-config@npm:0.79.3" +"@react-native/eslint-config@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/eslint-config@npm:0.79.7" dependencies: "@babel/core": ^7.25.2 "@babel/eslint-parser": ^7.25.1 - "@react-native/eslint-plugin": 0.79.3 + "@react-native/eslint-plugin": 0.79.7 "@typescript-eslint/eslint-plugin": ^7.1.1 "@typescript-eslint/parser": ^7.1.1 eslint-config-prettier: ^8.5.0 @@ -3110,74 +3112,74 @@ __metadata: peerDependencies: eslint: ">=8" prettier: ">=2" - checksum: a103f86358bdd32a7063d895de3d59aaffb8f210292cd16e6b57a0cdd7245b66c844644a21e8b9633d9fcfefcc9fe5b34fd8e5e0db82dc987c4c060f9d8f702b + checksum: 86362f2a5ad042e94e3398c33aac3b9387a75c037207de36717be2e3c5be5cd6a0dca8b53aa8e874d2e001e2800d12b920f6691fd23221f6bab49fe6a763d821 languageName: node linkType: hard -"@react-native/eslint-plugin@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/eslint-plugin@npm:0.79.3" - checksum: 5f902f27253bda41ffef146bc039cd9d3a4a8a1846bf8a97f49a5402511aa9909d0ffc7d7ac0f8e7c8c544ff304e99688c5544d95dac198ee9b2cf18f9d2c965 +"@react-native/eslint-plugin@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/eslint-plugin@npm:0.79.7" + checksum: e36362b5bee53d0dd21433eff8e42f43f452a06daff025a9d615b54e3790b59187edd1d2c3227287a0ab5155465972ce9f2412fbf8aec0731d0ea7e4ba4cdec5 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/gradle-plugin@npm:0.79.3" - checksum: 7eca88c207525109a435f39587c6d11f5546b7767df2fcc56e890938280a94604c82598ae2d67e95564533885cabfac7313518fb0b51146e9028e087bd1fd80d +"@react-native/gradle-plugin@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/gradle-plugin@npm:0.79.7" + checksum: c7a9761c2149a33a649a149c6be1109acf2960bb9857642170ba16a0e4556c6a1d18592dcb7ab95f5c23aaeb598af893f83c6a9f4bb9856c7c70ed919160ed88 languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/js-polyfills@npm:0.79.3" - checksum: 9b2ade205b801916faf8b032193bcc70792480676416ce99fe22df40ca7b6c4ac95b226be47230979954b5571ed6afc815f151da6dc0c4f614ef931df1f118c7 +"@react-native/js-polyfills@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/js-polyfills@npm:0.79.7" + checksum: 61c93a84c9d4eb8e2ba88d781d67677d76561bcc541793bb963d20f86f35fae80eac6e9c8d1b3da64657ddbaf3317d8b6e4ebf8122332eb2d780011576cfdc06 languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/metro-babel-transformer@npm:0.79.3" +"@react-native/metro-babel-transformer@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/metro-babel-transformer@npm:0.79.7" dependencies: "@babel/core": ^7.25.2 - "@react-native/babel-preset": 0.79.3 + "@react-native/babel-preset": 0.79.7 hermes-parser: 0.25.1 nullthrows: ^1.1.1 peerDependencies: "@babel/core": "*" - checksum: 493972ad2299d2f69787e2918334f43f371809098bec2a283c1a705b75ee0765a2d1869d4b62594da667ceefdb8fd91ac873c9308619e415d8cfe0739949ea69 + checksum: 2eb5bcdc460f3fc83dc84c93d32b7abcba0ec3b657940bed24cc920bb9a3b4984a7a5ff4df1ff492a7686d9b149cd34fd730c33ebfd8a79aca3897b9c33b1fd4 languageName: node linkType: hard -"@react-native/metro-config@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/metro-config@npm:0.79.3" +"@react-native/metro-config@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/metro-config@npm:0.79.7" dependencies: - "@react-native/js-polyfills": 0.79.3 - "@react-native/metro-babel-transformer": 0.79.3 + "@react-native/js-polyfills": 0.79.7 + "@react-native/metro-babel-transformer": 0.79.7 metro-config: ^0.82.0 metro-runtime: ^0.82.0 - checksum: 76feddea598998e1e3618fa62a05ee614b1d886f6552a05d040eee81f05d5c99a8f12364f2db7f6ef38967c2459ccb6dc112b4e5f84921137e6fc7167e6b5277 + checksum: 72ade5725fb1c56fc0268e979bf4d3363a5a00f8c3a45856b1742aee1911d20f372975289b92a0358bb54752b79f25d32e8516d3da731e7ba717456a31ee7c6f languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/normalize-colors@npm:0.79.3" - checksum: 2e37dc1549e51eaa2c51a216ca011b0b0c9af1d3d5d960bb1204fd3200f9ee1f3d39d1e6e17d429777a4ab833cadac056a6f6f80e48a11800894a3ce6f5734ab +"@react-native/normalize-colors@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/normalize-colors@npm:0.79.7" + checksum: 0c9420bbacb93965c50d872ab65edc17669a51ba7404ae845a6ee51356d0ef5c616c41782bb7b0af7b795f0a63e579ae28145450788fbcf053abf423038c2389 languageName: node linkType: hard -"@react-native/typescript-config@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/typescript-config@npm:0.79.3" - checksum: fdb57a622f4252b5ad81a09d11d24803988800a2bf189719f6c9b4f434aa99def49a1cbe04b572832ad8401c10613b655cc6a824cba42354212d0910a39c6a04 +"@react-native/typescript-config@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/typescript-config@npm:0.79.7" + checksum: add9f04e7019011fff96e72e270fad3cbf714776f028136255b2a84027faad461ed20e121587052d1da838fc0d66c4b4a0579312eb5f17d6210f93251e5a3041 languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.79.3": - version: 0.79.3 - resolution: "@react-native/virtualized-lists@npm:0.79.3" +"@react-native/virtualized-lists@npm:0.79.7": + version: 0.79.7 + resolution: "@react-native/virtualized-lists@npm:0.79.7" dependencies: invariant: ^2.2.4 nullthrows: ^1.1.1 @@ -3188,7 +3190,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 24b2f52275c8a4a5638821cd0ff894bee57dad2687e3cfaebde71c79bd2b0ca6d72218f15b51741d45eea6d04d8f19ba0f3658d4daed04824f1516fc4ddfb64f + checksum: 91e05a838a040d21f86221e2a5a89130148470b38e78d7505ba89bd5ebb12b3bafe05d27df52e525b966251c083737cd99c9aa5d70d1006c9c856e4a1a9c0408 languageName: node linkType: hard @@ -11682,18 +11684,18 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.79.3": - version: 0.79.3 - resolution: "react-native@npm:0.79.3" +"react-native@npm:0.79.7": + version: 0.79.7 + resolution: "react-native@npm:0.79.7" dependencies: "@jest/create-cache-key-function": ^29.7.0 - "@react-native/assets-registry": 0.79.3 - "@react-native/codegen": 0.79.3 - "@react-native/community-cli-plugin": 0.79.3 - "@react-native/gradle-plugin": 0.79.3 - "@react-native/js-polyfills": 0.79.3 - "@react-native/normalize-colors": 0.79.3 - "@react-native/virtualized-lists": 0.79.3 + "@react-native/assets-registry": 0.79.7 + "@react-native/codegen": 0.79.7 + "@react-native/community-cli-plugin": 0.79.7 + "@react-native/gradle-plugin": 0.79.7 + "@react-native/js-polyfills": 0.79.7 + "@react-native/normalize-colors": 0.79.7 + "@react-native/virtualized-lists": 0.79.7 abort-controller: ^3.0.0 anser: ^1.4.9 ansi-regex: ^5.0.0 @@ -11730,7 +11732,7 @@ __metadata: optional: true bin: react-native: cli.js - checksum: 9af72e5bf936744a4f727fb2c0b5fca6986361f445125081f108f99a1dea1dc6050c44ed4c1b654fd14a5a554da18d748f4d462161f7ab5d4ea6658d8fccce5f + checksum: f00501d0b86c009be18cbeeddd554ff3b31b4681c6748b6eab94e74143726cd285fd45909742eabe5fe3bceb089e321d9e96e0fc5ea5327016dc66fc3ec5d27f languageName: node linkType: hard From a06eebb690177da59e66db750e3bd758e05d8382 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Tue, 5 May 2026 15:05:52 -0700 Subject: [PATCH 03/13] chore: update React Native and related packages to versions 0.80.3 --- android/gradle.properties | 2 +- .../reactnativesdk/example/MainApplication.kt | 10 +- example/android/build.gradle | 2 +- .../android/gradle/wrapper/gradle-wrapper.jar | Bin 43453 -> 43705 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- example/android/gradlew | 4 +- example/android/gradlew.bat | 9 +- example/package.json | 24 +- package.json | 20 +- src/__mocks__/jest.setup.ts | 32 +- yarn.lock | 660 ++++++------------ 11 files changed, 295 insertions(+), 470 deletions(-) diff --git a/android/gradle.properties b/android/gradle.properties index 89c682313..df1b32db4 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,4 +1,4 @@ -RNIterable_kotlinVersion=2.0.21 +RNIterable_kotlinVersion=2.1.20 RNIterable_minSdkVersion=24 RNIterable_targetSdkVersion=35 RNIterable_compileSdkVersion=35 diff --git a/example/android/app/src/main/java/iterable/reactnativesdk/example/MainApplication.kt b/example/android/app/src/main/java/iterable/reactnativesdk/example/MainApplication.kt index 9c004c88b..a4e859599 100644 --- a/example/android/app/src/main/java/iterable/reactnativesdk/example/MainApplication.kt +++ b/example/android/app/src/main/java/iterable/reactnativesdk/example/MainApplication.kt @@ -4,13 +4,11 @@ import android.app.Application import com.facebook.react.PackageList import com.facebook.react.ReactApplication import com.facebook.react.ReactHost +import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative import com.facebook.react.ReactNativeHost import com.facebook.react.ReactPackage -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost -import com.facebook.react.soloader.OpenSourceMergedSoMapping -import com.facebook.soloader.SoLoader class MainApplication : Application(), ReactApplication { @@ -36,10 +34,6 @@ class MainApplication : Application(), ReactApplication { override fun onCreate() { super.onCreate() - SoLoader.init(this, OpenSourceMergedSoMapping) - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - // If you opted-in for the New Architecture, we load the native entry point for this app. - load() - } + loadReactNative(this) } } diff --git a/example/android/build.gradle b/example/android/build.gradle index ff7898f7e..c0b91c633 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -5,7 +5,7 @@ buildscript { compileSdkVersion = 35 targetSdkVersion = 35 ndkVersion = "27.1.12297006" - kotlinVersion = "2.0.21" + kotlinVersion = "2.1.20" } repositories { google() diff --git a/example/android/gradle/wrapper/gradle-wrapper.jar b/example/android/gradle/wrapper/gradle-wrapper.jar index e6441136f3d4ba8a0da8d277868979cfbc8ad796..9bbc975c742b298b441bfb90dbc124400a3751b9 100644 GIT binary patch delta 34877 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�{ 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 diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 37f853b1c..002b867c4 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/example/android/gradlew b/example/android/gradlew index faf93008b..23d15a936 100755 --- a/example/android/gradlew +++ b/example/android/gradlew @@ -114,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -213,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/example/android/gradlew.bat b/example/android/gradlew.bat index 9d21a2183..dd2b8eedb 100644 --- a/example/android/gradlew.bat +++ b/example/android/gradlew.bat @@ -1,3 +1,8 @@ +@REM Copyright (c) Meta Platforms, Inc. and affiliates. +@REM +@REM This source code is licensed under the MIT license found in the +@REM LICENSE file in the root directory of this source tree. + @rem @rem Copyright 2015 the original author or authors. @rem @@ -70,11 +75,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/example/package.json b/example/package.json index 4c70a73cf..e93bec5ac 100644 --- a/example/package.json +++ b/example/package.json @@ -14,8 +14,8 @@ "@react-navigation/native": "^7.1.14", "@react-navigation/native-stack": "^7.0.0", "@react-navigation/stack": "^7.4.2", - "react": "19.0.0", - "react-native": "0.79.7", + "react": "19.1.0", + "react-native": "0.80.3", "react-native-gesture-handler": "^2.26.0", "react-native-safe-area-context": "^5.4.0", "react-native-screens": "^4.10.0", @@ -25,19 +25,19 @@ "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", "@babel/runtime": "^7.25.0", - "@react-native-community/cli": "18.0.1", - "@react-native-community/cli-platform-android": "18.0.0", - "@react-native-community/cli-platform-ios": "18.0.0", - "@react-native/babel-preset": "0.79.7", - "@react-native/eslint-config": "0.79.7", - "@react-native/metro-config": "0.79.7", - "@react-native/typescript-config": "0.79.7", + "@react-native-community/cli": "19.1.2", + "@react-native-community/cli-platform-android": "19.1.2", + "@react-native-community/cli-platform-ios": "19.1.2", + "@react-native/babel-preset": "0.80.3", + "@react-native/eslint-config": "0.80.3", + "@react-native/metro-config": "0.80.3", + "@react-native/typescript-config": "0.80.3", "@types/jest": "^29.5.13", - "@types/react": "^19.0.0", - "@types/react-test-renderer": "^19.0.0", + "@types/react": "^19.1.0", + "@types/react-test-renderer": "^19.1.0", "react-native-builder-bob": "^0.30.2", "react-native-dotenv": "^3.4.11", - "react-test-renderer": "19.0.0" + "react-test-renderer": "19.1.0" }, "engines": { "node": ">=18" diff --git a/package.json b/package.json index e2fd0aa0b..3c901ce22 100644 --- a/package.json +++ b/package.json @@ -69,17 +69,17 @@ "devDependencies": { "@commitlint/config-conventional": "^19.6.0", "@evilmartians/lefthook": "^1.5.0", - "@react-native-community/cli": "18.0.0", - "@react-native/babel-preset": "0.79.7", - "@react-native/eslint-config": "0.79.7", - "@react-native/metro-config": "0.79.7", - "@react-native/typescript-config": "0.79.7", + "@react-native-community/cli": "19.1.2", + "@react-native/babel-preset": "0.80.3", + "@react-native/eslint-config": "0.80.3", + "@react-native/metro-config": "0.80.3", + "@react-native/typescript-config": "0.80.3", "@react-navigation/native": "^7.1.14", "@release-it/conventional-changelog": "^9.0.4", "@testing-library/jest-native": "^5.4.3", "@testing-library/react-native": "^13.3.3", "@types/jest": "^29.5.5", - "@types/react": "^19.0.0", + "@types/react": "^19.1.0", "@typescript-eslint/eslint-plugin": "^8.13.0", "@typescript-eslint/parser": "^8.13.0", "baseline-browser-mapping": "latest", @@ -93,14 +93,14 @@ "jest": "^29.7.0", "prettier": "^3.0.3", "prettier-eslint": "^16.4.2", - "react": "19.0.0", - "react-native": "0.79.7", + "react": "19.1.0", + "react-native": "0.80.3", "react-native-builder-bob": "^0.40.4", "react-native-gesture-handler": "^2.26.0", "react-native-safe-area-context": "^5.4.0", "react-native-screens": "^4.10.0", "react-native-webview": "^13.14.1", - "react-test-renderer": "19.0.0", + "react-test-renderer": "19.1.0", "release-it": "^17.10.0", "turbo": "^1.10.7", "typedoc": "^0.28.13", @@ -109,7 +109,7 @@ "typescript": "^5.2.2" }, "resolutions": { - "@types/react": "^19.0.0" + "@types/react": "^19.1.0" }, "peerDependencies": { "@react-navigation/native": "*", diff --git a/src/__mocks__/jest.setup.ts b/src/__mocks__/jest.setup.ts index a4e6c8264..96c17ca52 100644 --- a/src/__mocks__/jest.setup.ts +++ b/src/__mocks__/jest.setup.ts @@ -3,7 +3,36 @@ import * as ReactNative from 'react-native'; import { MockRNIterableAPI } from './MockRNIterableAPI'; import { MockLinking } from './MockLinking'; -jest.mock('react-native/Libraries/EventEmitter/NativeEventEmitter.js'); +const mockNativeEventEmitter = + new (require('events').EventEmitter)() as import('events').EventEmitter; + +const mockNativeEventEmitterConstructor = jest.fn().mockImplementation(() => ({ + addListener: ( + eventType: string, + listener: (...args: unknown[]) => void + ) => { + mockNativeEventEmitter.addListener(eventType, listener); + + return { + remove: () => mockNativeEventEmitter.removeListener(eventType, listener), + }; + }, + emit: (eventType: string, ...args: unknown[]) => + mockNativeEventEmitter.emit(eventType, ...args), + removeAllListeners: (eventType?: string) => + eventType + ? mockNativeEventEmitter.removeAllListeners(eventType) + : mockNativeEventEmitter.removeAllListeners(), + removeListener: ( + eventType: string, + listener: (...args: unknown[]) => void + ) => mockNativeEventEmitter.removeListener(eventType, listener), +})); + +jest.mock( + 'react-native/Libraries/EventEmitter/NativeEventEmitter', + () => mockNativeEventEmitterConstructor +); jest.mock('react-native-webview', () => { const { View } = require('react-native'); @@ -22,6 +51,7 @@ jest.doMock('react-native', () => { RNIterableAPI: MockRNIterableAPI, }, Linking: MockLinking, + NativeEventEmitter: mockNativeEventEmitterConstructor, }, ReactNative ); diff --git a/yarn.lock b/yarn.lock index 381e5895c..8e82ec609 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1947,29 +1947,29 @@ __metadata: "@babel/core": ^7.25.2 "@babel/preset-env": ^7.25.3 "@babel/runtime": ^7.25.0 - "@react-native-community/cli": 18.0.1 - "@react-native-community/cli-platform-android": 18.0.0 - "@react-native-community/cli-platform-ios": 18.0.0 - "@react-native/babel-preset": 0.79.7 - "@react-native/eslint-config": 0.79.7 - "@react-native/metro-config": 0.79.7 - "@react-native/typescript-config": 0.79.7 + "@react-native-community/cli": 19.1.2 + "@react-native-community/cli-platform-android": 19.1.2 + "@react-native-community/cli-platform-ios": 19.1.2 + "@react-native/babel-preset": 0.80.3 + "@react-native/eslint-config": 0.80.3 + "@react-native/metro-config": 0.80.3 + "@react-native/typescript-config": 0.80.3 "@react-navigation/bottom-tabs": ^7.0.0 "@react-navigation/native": ^7.1.14 "@react-navigation/native-stack": ^7.0.0 "@react-navigation/stack": ^7.4.2 "@types/jest": ^29.5.13 - "@types/react": ^19.0.0 - "@types/react-test-renderer": ^19.0.0 - react: 19.0.0 - react-native: 0.79.7 + "@types/react": ^19.1.0 + "@types/react-test-renderer": ^19.1.0 + react: 19.1.0 + react-native: 0.80.3 react-native-builder-bob: ^0.30.2 react-native-dotenv: ^3.4.11 react-native-gesture-handler: ^2.26.0 react-native-safe-area-context: ^5.4.0 react-native-screens: ^4.10.0 react-native-webview: ^13.14.1 - react-test-renderer: 19.0.0 + react-test-renderer: 19.1.0 languageName: unknown linkType: soft @@ -1979,17 +1979,17 @@ __metadata: dependencies: "@commitlint/config-conventional": ^19.6.0 "@evilmartians/lefthook": ^1.5.0 - "@react-native-community/cli": 18.0.0 - "@react-native/babel-preset": 0.79.7 - "@react-native/eslint-config": 0.79.7 - "@react-native/metro-config": 0.79.7 - "@react-native/typescript-config": 0.79.7 + "@react-native-community/cli": 19.1.2 + "@react-native/babel-preset": 0.80.3 + "@react-native/eslint-config": 0.80.3 + "@react-native/metro-config": 0.80.3 + "@react-native/typescript-config": 0.80.3 "@react-navigation/native": ^7.1.14 "@release-it/conventional-changelog": ^9.0.4 "@testing-library/jest-native": ^5.4.3 "@testing-library/react-native": ^13.3.3 "@types/jest": ^29.5.5 - "@types/react": ^19.0.0 + "@types/react": ^19.1.0 "@typescript-eslint/eslint-plugin": ^8.13.0 "@typescript-eslint/parser": ^8.13.0 baseline-browser-mapping: latest @@ -2003,14 +2003,14 @@ __metadata: jest: ^29.7.0 prettier: ^3.0.3 prettier-eslint: ^16.4.2 - react: 19.0.0 - react-native: 0.79.7 + react: 19.1.0 + react-native: 0.80.3 react-native-builder-bob: ^0.40.4 react-native-gesture-handler: ^2.26.0 react-native-safe-area-context: ^5.4.0 react-native-screens: ^4.10.0 react-native-webview: ^13.14.1 - react-test-renderer: 19.0.0 + react-test-renderer: 19.1.0 release-it: ^17.10.0 turbo: ^1.10.7 typedoc: ^0.28.13 @@ -2601,138 +2601,65 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli-clean@npm:18.0.0" - dependencies: - "@react-native-community/cli-tools": 18.0.0 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-glob: ^3.3.2 - checksum: 901f9ba9c124447de7da76b4e4a52dd6c374ffd117def571368e23393e2a4591e907076d937f8a6a6a81d97a24fcc6f73b7d026d327d9319bf3c4e83f84a79c5 - languageName: node - linkType: hard - -"@react-native-community/cli-clean@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli-clean@npm:18.0.1" +"@react-native-community/cli-clean@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli-clean@npm:19.1.2" dependencies: - "@react-native-community/cli-tools": 18.0.1 + "@react-native-community/cli-tools": 19.1.2 chalk: ^4.1.2 execa: ^5.0.0 fast-glob: ^3.3.2 - checksum: f2bd017b172e1ea23f91c717eefad145deb175c501b1b041bf91efffdfebfeedef7f33ac1cd5ab98dde8d4ccde520b3060422840cd6e6e24efb70b1b0aa72a9e + checksum: 6197254df61eba5ed53681ef6fdb9f270b496552b39f72dead36e48c25b0d5cc8e71037bd781562b83ae38b8994088711b7fb4a1b2fc46c794f6c466e9015f83 languageName: node linkType: hard -"@react-native-community/cli-config-android@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli-config-android@npm:18.0.0" +"@react-native-community/cli-config-android@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli-config-android@npm:19.1.2" dependencies: - "@react-native-community/cli-tools": 18.0.0 + "@react-native-community/cli-tools": 19.1.2 chalk: ^4.1.2 fast-glob: ^3.3.2 fast-xml-parser: ^4.4.1 - checksum: 60baf6f009f2ecbfa28c9320a83f32682336e4718697d18ac63530cebba7df7040a9209871ddf96c90cf8047f23b49cac11e8fc67c0cb3419f1f4758e8cc3efc - languageName: node - linkType: hard - -"@react-native-community/cli-config-android@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli-config-android@npm:18.0.1" - dependencies: - "@react-native-community/cli-tools": 18.0.1 - chalk: ^4.1.2 - fast-glob: ^3.3.2 - fast-xml-parser: ^4.4.1 - checksum: 5343fef8b5feb32e8104a416048e7675dcf5a83de3af2ed0f00dcb5bbb3360dca665d93a973a7379de2f6ff8e0bc6608f763cc272784b6dc1dace6b97b947af2 - languageName: node - linkType: hard - -"@react-native-community/cli-config-apple@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli-config-apple@npm:18.0.0" - dependencies: - "@react-native-community/cli-tools": 18.0.0 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-glob: ^3.3.2 - checksum: 2b085ccfb615d37cfb68389ee7534e76d8d277bb2966ee0497fd06ece372c00da05d677d72a7f50d759c7500ba380bd4f64f18c96a53bbbc2feab9d03a1ee9ba + checksum: 1f23ece0fe4a93391ee7b02b1f4986c04ab93ed7f51fb77d36ad98795ba0e379603b4d81d2140cff15d9f5da2be9d5aa6cd88a0e84e8cf726edf92d7ee730762 languageName: node linkType: hard -"@react-native-community/cli-config-apple@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli-config-apple@npm:18.0.1" +"@react-native-community/cli-config-apple@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli-config-apple@npm:19.1.2" dependencies: - "@react-native-community/cli-tools": 18.0.1 + "@react-native-community/cli-tools": 19.1.2 chalk: ^4.1.2 execa: ^5.0.0 fast-glob: ^3.3.2 - checksum: 4c8716a0941af2c5f9910df71245df1f4cbce37cdbca55baa5b6aaff55f0b5fee5f24488146df0d225c157b0d339f76df94ddcf0f19e4374c67f72383ebd0fd7 + checksum: 240afd7ae1dfea9c6f4e2676b239b9e0387d5d35510e4019048cd1127e3370401eb1e0cad473608a95173e26792400d0c153b653ffff6220a6fc97e8d5bbb079 languageName: node linkType: hard -"@react-native-community/cli-config@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli-config@npm:18.0.0" +"@react-native-community/cli-config@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli-config@npm:19.1.2" dependencies: - "@react-native-community/cli-tools": 18.0.0 + "@react-native-community/cli-tools": 19.1.2 chalk: ^4.1.2 cosmiconfig: ^9.0.0 deepmerge: ^4.3.0 fast-glob: ^3.3.2 joi: ^17.2.1 - checksum: d4df3fdce60753667f654da6029577d7cfecaaf7eb193ee6ff437a90fa594cbbf0afe3894c938eb120b47f2b97a6e57729c1ffc46daff8f504bf7022da4068b4 - languageName: node - linkType: hard - -"@react-native-community/cli-config@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli-config@npm:18.0.1" - dependencies: - "@react-native-community/cli-tools": 18.0.1 - chalk: ^4.1.2 - cosmiconfig: ^9.0.0 - deepmerge: ^4.3.0 - fast-glob: ^3.3.2 - joi: ^17.2.1 - checksum: b67d691e8ef47307a9079d42243e6126f780a16730ffedd3fca000cfb5719966f6d409b284012bd8b424df9af12d3f188fe57e64c6880c9e61ba51192ff78742 - languageName: node - linkType: hard - -"@react-native-community/cli-doctor@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli-doctor@npm:18.0.0" - dependencies: - "@react-native-community/cli-config": 18.0.0 - "@react-native-community/cli-platform-android": 18.0.0 - "@react-native-community/cli-platform-apple": 18.0.0 - "@react-native-community/cli-platform-ios": 18.0.0 - "@react-native-community/cli-tools": 18.0.0 - chalk: ^4.1.2 - command-exists: ^1.2.8 - deepmerge: ^4.3.0 - envinfo: ^7.13.0 - execa: ^5.0.0 - node-stream-zip: ^1.9.1 - ora: ^5.4.1 - semver: ^7.5.2 - wcwidth: ^1.0.1 - yaml: ^2.2.1 - checksum: bcf703aabf63cf9f06b2fa1b6a1f7b1bbfd50f2d0486621a718718ccd8a1ad5ebd47335e9d8b9809d354684d8836c495606b77f49552698970ef5dd9dedcd8b5 + checksum: 55d937f543994dc99a5dfa21a7e9bca0fa6105d6e92826511ddc6928f358e713f2b978d990beb83bd179dcbe687b98775524983154634387403ab7925c931568 languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli-doctor@npm:18.0.1" +"@react-native-community/cli-doctor@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli-doctor@npm:19.1.2" dependencies: - "@react-native-community/cli-config": 18.0.1 - "@react-native-community/cli-platform-android": 18.0.1 - "@react-native-community/cli-platform-apple": 18.0.1 - "@react-native-community/cli-platform-ios": 18.0.1 - "@react-native-community/cli-tools": 18.0.1 + "@react-native-community/cli-config": 19.1.2 + "@react-native-community/cli-platform-android": 19.1.2 + "@react-native-community/cli-platform-apple": 19.1.2 + "@react-native-community/cli-platform-ios": 19.1.2 + "@react-native-community/cli-tools": 19.1.2 chalk: ^4.1.2 command-exists: ^1.2.8 deepmerge: ^4.3.0 @@ -2743,85 +2670,50 @@ __metadata: semver: ^7.5.2 wcwidth: ^1.0.1 yaml: ^2.2.1 - checksum: 605b08c443456a65a44540aad224b282206f872fef4b43e0027a162eef5f2dddc028d20268241c862618175b27c5718ffbd22b0d3d73aee0b252589cc145b6eb - languageName: node - linkType: hard - -"@react-native-community/cli-platform-android@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli-platform-android@npm:18.0.0" - dependencies: - "@react-native-community/cli-config-android": 18.0.0 - "@react-native-community/cli-tools": 18.0.0 - chalk: ^4.1.2 - execa: ^5.0.0 - logkitty: ^0.7.1 - checksum: 9ea334d9add268faa33a9e346d0df21718e8c99306a13560380d734d8562688dd25486483735ab33d8caccc34f1eea07f2837932ab7d335d5d918b20902458fa + checksum: 23359d27f625be8abaffdaa41a84639a5ba7374d79f81f2d24f18f844bb24b55b3a9f25039a88e9d368d4e4fccdea350e87089020ccab3b0bb89d3f0caa5c12a languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli-platform-android@npm:18.0.1" +"@react-native-community/cli-platform-android@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli-platform-android@npm:19.1.2" dependencies: - "@react-native-community/cli-config-android": 18.0.1 - "@react-native-community/cli-tools": 18.0.1 + "@react-native-community/cli-config-android": 19.1.2 + "@react-native-community/cli-tools": 19.1.2 chalk: ^4.1.2 execa: ^5.0.0 logkitty: ^0.7.1 - checksum: 25a413e68cc2d41367a0445861fca37142ffd5c475a7983b4423e1d12d0014389ba632035bcd92ef5cd99df1087ce3554c275422fcb1b2197eb29b747e2aa978 - languageName: node - linkType: hard - -"@react-native-community/cli-platform-apple@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli-platform-apple@npm:18.0.0" - dependencies: - "@react-native-community/cli-config-apple": 18.0.0 - "@react-native-community/cli-tools": 18.0.0 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-xml-parser: ^4.4.1 - checksum: ef3381bfeabe83e75820c9e4e560791b9fd98ed9ca109ab11b7e70ff7f687fad11d301952060d60b2c2ffe91345a024cc024fa9c9d2f5973bf704d3dddef0c15 + checksum: 1e072728bab4682c3582d99e2642ab4036cd8186ac4dd184c0232a4b1ffaa20056550b2113bd0131baaabd6676eb1775e01fc4365c817683b48a0d111cb144a7 languageName: node linkType: hard -"@react-native-community/cli-platform-apple@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli-platform-apple@npm:18.0.1" +"@react-native-community/cli-platform-apple@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli-platform-apple@npm:19.1.2" dependencies: - "@react-native-community/cli-config-apple": 18.0.1 - "@react-native-community/cli-tools": 18.0.1 + "@react-native-community/cli-config-apple": 19.1.2 + "@react-native-community/cli-tools": 19.1.2 chalk: ^4.1.2 execa: ^5.0.0 fast-xml-parser: ^4.4.1 - checksum: 8efaa76b43521afca9bc6eb423b758839e38cee7b4cf3927bc0b6b3d348ad9c98bc8f33366f780f59c8604d02e487de2f4554814ca354700cff01e09430ba365 + checksum: efe91f453082d8dd2f2d0ec65f31d48421e9504f07bbfb67a877b5a87dcf4db7ce9c0e1489fdd5ec57af40361fd1995c14031a4fa843556f513e212b908a0faf languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli-platform-ios@npm:18.0.0" +"@react-native-community/cli-platform-ios@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli-platform-ios@npm:19.1.2" dependencies: - "@react-native-community/cli-platform-apple": 18.0.0 - checksum: 9d0786e41f5f1e8853c0fa43005f7a12b7926dde583163b8dd5b79c95df1a1e0cfdc3e80665c0646aa398f6a1b1bf82e952caeb2c56170204926421e7f5fcbea + "@react-native-community/cli-platform-apple": 19.1.2 + checksum: 5eb06bfce45911b22e954007f3b3e3b146b9da1d628e9ab0047b6c650d49b5a45f9708af96b4749d193741e618280c51111100f6dbc8b9804ef55f1b3c737892 languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli-platform-ios@npm:18.0.1" +"@react-native-community/cli-server-api@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli-server-api@npm:19.1.2" dependencies: - "@react-native-community/cli-platform-apple": 18.0.1 - checksum: 2eb0b662e9371721f524f242cfa04bccc62785d841ab110a3eef162a632216f7a5546d59afa0647bc4c3f7e0de305c030f96fd07119509df3cdef35e5f01f997 - languageName: node - linkType: hard - -"@react-native-community/cli-server-api@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli-server-api@npm:18.0.0" - dependencies: - "@react-native-community/cli-tools": 18.0.0 + "@react-native-community/cli-tools": 19.1.2 body-parser: ^1.20.3 compression: ^1.7.1 connect: ^3.6.5 @@ -2831,49 +2723,13 @@ __metadata: pretty-format: ^26.6.2 serve-static: ^1.13.1 ws: ^6.2.3 - checksum: 839e9a97b8cb8b875d00ca8a3743ad125beb7a85b74ee07adc9b712896b78d9ed5a35b46c2b7ea5dbfc312a797f9ee96af1bf3462d315252f10375aa22315fe8 + checksum: 1a9aa785dcb9b2be3561e301409e68151e545d19e31cb55c4f43033dc10a89c28cf90f5123b88c3a743a17f3ecfaf9acc2ed39247e3435e99246871d2688fe33 languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli-server-api@npm:18.0.1" - dependencies: - "@react-native-community/cli-tools": 18.0.1 - body-parser: ^1.20.3 - compression: ^1.7.1 - connect: ^3.6.5 - errorhandler: ^1.5.1 - nocache: ^3.0.1 - open: ^6.2.0 - pretty-format: ^26.6.2 - serve-static: ^1.13.1 - ws: ^6.2.3 - checksum: ba0543bd6b7debdd2ca6e04075959ca1b04a9f4b5d883638112d0dbab2ee6b6f187880a44fb171ab3d59281dbd951914ada765811e089365f76abbcc8485c22c - languageName: node - linkType: hard - -"@react-native-community/cli-tools@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli-tools@npm:18.0.0" - dependencies: - "@vscode/sudo-prompt": ^9.0.0 - appdirsjs: ^1.2.4 - chalk: ^4.1.2 - execa: ^5.0.0 - find-up: ^5.0.0 - launch-editor: ^2.9.1 - mime: ^2.4.1 - ora: ^5.4.1 - prompts: ^2.4.2 - semver: ^7.5.2 - checksum: 96a941c4b62da75dccd2fb09dc859dbc724e46be7ca2a9061a2235d58bb2a2c1d6040b203efcdc03dd0c8dbe9306b47a903073abc9fe2f300dcce9f8cd4afd84 - languageName: node - linkType: hard - -"@react-native-community/cli-tools@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli-tools@npm:18.0.1" +"@react-native-community/cli-tools@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli-tools@npm:19.1.2" dependencies: "@vscode/sudo-prompt": ^9.0.0 appdirsjs: ^1.2.4 @@ -2885,38 +2741,29 @@ __metadata: ora: ^5.4.1 prompts: ^2.4.2 semver: ^7.5.2 - checksum: b2f40e9d8e442aacb5914ebb1ca00a729878184b2da96a3fb21c51d0050fb5b1f97789e6d6dfd39af269e840b74027de5716cab17b5ef983aa6a778e03e77f2c + checksum: 60aaeb42299e99e030d9a607f4100869c7de9468931c0397b51474090f9359684fc04620bbac6ec4ce3c399bd1c649fdad02b474a52290bd2085efd341e2d11d languageName: node linkType: hard -"@react-native-community/cli-types@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli-types@npm:18.0.0" +"@react-native-community/cli-types@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli-types@npm:19.1.2" dependencies: joi: ^17.2.1 - checksum: 92768eb2dd74549069230b6b594b3ae4cdeae03f938504a642fcaed564c22b2b2bb516c4b6cd880a5b419f408206404d88034795e369f8bb8765bdb1f38ed07d + checksum: 5f996279892c680eddb60e4beb6e09261614581b0f7c9d501d33d24a9eda3c74c3ad6a8771311de8a34b3abb447a89d3496c220e9e73f1cf99e82b6616a544fa languageName: node linkType: hard -"@react-native-community/cli-types@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli-types@npm:18.0.1" +"@react-native-community/cli@npm:19.1.2": + version: 19.1.2 + resolution: "@react-native-community/cli@npm:19.1.2" dependencies: - joi: ^17.2.1 - checksum: 26c5a92d31021fb54ec4ea700736105e24b48db8369ef5c75de9490faeaef96fa9f6a39fa298466854f63d71941c85404c2713ed1c4323c8b04cd519de511699 - languageName: node - linkType: hard - -"@react-native-community/cli@npm:18.0.0": - version: 18.0.0 - resolution: "@react-native-community/cli@npm:18.0.0" - dependencies: - "@react-native-community/cli-clean": 18.0.0 - "@react-native-community/cli-config": 18.0.0 - "@react-native-community/cli-doctor": 18.0.0 - "@react-native-community/cli-server-api": 18.0.0 - "@react-native-community/cli-tools": 18.0.0 - "@react-native-community/cli-types": 18.0.0 + "@react-native-community/cli-clean": 19.1.2 + "@react-native-community/cli-config": 19.1.2 + "@react-native-community/cli-doctor": 19.1.2 + "@react-native-community/cli-server-api": 19.1.2 + "@react-native-community/cli-tools": 19.1.2 + "@react-native-community/cli-types": 19.1.2 chalk: ^4.1.2 commander: ^9.4.1 deepmerge: ^4.3.0 @@ -2928,55 +2775,30 @@ __metadata: semver: ^7.5.2 bin: rnc-cli: build/bin.js - checksum: bd4d4142c95339393f35509038042fa854b4dd2d7dd458fcb2226d2e63d947cff561f20ce47253249bde310db35c071f836195377761dd7a8e64cb1ce1e35217 + checksum: dadfbcf16e1d4005da9ab2b2c1b3e0872133dbd59059e8942dd64cdc429574ab9d106706f387c41d93f553e08c06e329492bc146817038c8510450a4ae3e6aa6 languageName: node linkType: hard -"@react-native-community/cli@npm:18.0.1": - version: 18.0.1 - resolution: "@react-native-community/cli@npm:18.0.1" - dependencies: - "@react-native-community/cli-clean": 18.0.1 - "@react-native-community/cli-config": 18.0.1 - "@react-native-community/cli-doctor": 18.0.1 - "@react-native-community/cli-server-api": 18.0.1 - "@react-native-community/cli-tools": 18.0.1 - "@react-native-community/cli-types": 18.0.1 - chalk: ^4.1.2 - commander: ^9.4.1 - deepmerge: ^4.3.0 - execa: ^5.0.0 - find-up: ^5.0.0 - fs-extra: ^8.1.0 - graceful-fs: ^4.1.3 - prompts: ^2.4.2 - semver: ^7.5.2 - bin: - rnc-cli: build/bin.js - checksum: 86b3154ce5fb27b654888e55529dab21ca0625b9c47143071d09bd3ee7741f63e8524b07c6c901734d7c9e33790990f1d63da541adf60f1279631cc33e9b25c2 - languageName: node - linkType: hard - -"@react-native/assets-registry@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/assets-registry@npm:0.79.7" - checksum: 4ba5f118177431be00b398368d1db7c69cf587308bc3cf2df84a34512e6ecc7be9e6b1687279ae85ff7bbcdcbc1a0608cf84f8d16fc3f9abb91e148470964f82 +"@react-native/assets-registry@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/assets-registry@npm:0.80.3" + checksum: cfd034da6b5747d01eea4633777813be984c8799536d087299430e8582ad6ea20c0b4e2b91dcd27aeea97edb63dc993ab35b0d9f596fc7248d01985d245b2a3e languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/babel-plugin-codegen@npm:0.79.7" +"@react-native/babel-plugin-codegen@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/babel-plugin-codegen@npm:0.80.3" dependencies: "@babel/traverse": ^7.25.3 - "@react-native/codegen": 0.79.7 - checksum: 60df348c43739cfa0a3163835a019337d39c42f9050bba0f8bfbd5ca9b9b3577acdf647d2c961a05a81fedf5eed6e774315916b9bfdf08e16efae954da0d638d + "@react-native/codegen": 0.80.3 + checksum: 7a72ed6de809898570a918bbe995cdc471146fbca2ffc1a9c7d0dc3fab598bbd72050b982fdf3a2ed6e53aa06e4e55341d804e4cd2cc16c4420506f7498a0a21 languageName: node linkType: hard -"@react-native/babel-preset@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/babel-preset@npm:0.79.7" +"@react-native/babel-preset@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/babel-preset@npm:0.80.3" dependencies: "@babel/core": ^7.25.2 "@babel/plugin-proposal-export-default-from": ^7.24.7 @@ -3019,87 +2841,87 @@ __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.79.7 - babel-plugin-syntax-hermes-parser: 0.25.1 + "@react-native/babel-plugin-codegen": 0.80.3 + babel-plugin-syntax-hermes-parser: 0.28.1 babel-plugin-transform-flow-enums: ^0.0.2 react-refresh: ^0.14.0 peerDependencies: "@babel/core": "*" - checksum: 77618ceaccc133c032182584e2162fc74d3fb6b7d853bbf593be58979093c404824995dd6f0889e42a29c36628b3dbe29029ad661cc273e53dd205ee84ce9281 + checksum: a28a049d627ec70f7978cc16feedcdee488782a6b6f5eed8b9d3a5cfbbf1389136603ae68385a05958165bc43ac19fa2841feda192187edfebf4f6dd0be94c46 languageName: node linkType: hard -"@react-native/codegen@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/codegen@npm:0.79.7" +"@react-native/codegen@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/codegen@npm:0.80.3" dependencies: "@babel/core": ^7.25.2 "@babel/parser": ^7.25.3 glob: ^7.1.1 - hermes-parser: 0.25.1 + hermes-parser: 0.28.1 invariant: ^2.2.4 nullthrows: ^1.1.1 yargs: ^17.6.2 peerDependencies: "@babel/core": "*" - checksum: 61d8c21fe672c17ea0c4189cc8094dd27c2ee25e8aca1bd0e5afbf5464d97641e0bfe12cdc4d1d71aa43ebba4bd08517d0a03b2131a194688f043781959baa7d + checksum: 8b1131d99d3af77251801a77a33b057b9c39afb9db12ea17804411fab1dbd8f85c1d2b980ad4e127d9b854758f03b36bb5b018f0b84a79aa42cdc45a56d1d50c languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/community-cli-plugin@npm:0.79.7" +"@react-native/community-cli-plugin@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/community-cli-plugin@npm:0.80.3" dependencies: - "@react-native/dev-middleware": 0.79.7 + "@react-native/dev-middleware": 0.80.3 chalk: ^4.0.0 - debug: ^2.2.0 + debug: ^4.4.0 invariant: ^2.2.4 - metro: ^0.82.0 - metro-config: ^0.82.0 - metro-core: ^0.82.0 + metro: ^0.82.2 + metro-config: ^0.82.2 + metro-core: ^0.82.2 semver: ^7.1.3 peerDependencies: "@react-native-community/cli": "*" peerDependenciesMeta: "@react-native-community/cli": optional: true - checksum: d43f701dc22cc67c0f9fb8aa8afbde585740da401264f9eb6bef536e26934a32a4bd73721a76db362011e385793c87026168bfc9280a75cc07c8cbbe6f975173 + checksum: 059e984d3f27c63e9449da6f48bd8985df752a7e1f7bef3b3349b4b2da53cbee60e3fb137c0af61ff74ecca5f36152a379d367f1709880bb0952d5b905d6def0 languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/debugger-frontend@npm:0.79.7" - checksum: c0b6992c4c9417f85869969df13816735c5d432dca10663f422ca38759ad595e70994f55d8b755c4e3ba6b77535b7eda4498011c5514e9d71fdaba2538cf1711 +"@react-native/debugger-frontend@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/debugger-frontend@npm:0.80.3" + checksum: ac59e32570efb8ff669ece7b39924c8386db761785b8fc893ee2623425f1e00698306621721e2052ec03ad555897726486d494720f3aab5511cb9b08da13e33a languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/dev-middleware@npm:0.79.7" +"@react-native/dev-middleware@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/dev-middleware@npm:0.80.3" dependencies: "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.79.7 + "@react-native/debugger-frontend": 0.80.3 chrome-launcher: ^0.15.2 chromium-edge-launcher: ^0.2.0 connect: ^3.6.5 - debug: ^2.2.0 + debug: ^4.4.0 invariant: ^2.2.4 nullthrows: ^1.1.1 open: ^7.0.3 serve-static: ^1.16.2 ws: ^6.2.3 - checksum: b223fb7d4079342e74440ce915ec9c0d0b8fb81d69c646bc8ed376cda8219c57d3823c9d9a72cacce11db60d028b72561be4acfa054957bc8fa3abaa1e5cec33 + checksum: f63a4c015043a8f02c471b31c61206fc362ac6f25567bcec8fa18df997f4b4a10f193d4476bbcc06946463ba9cd243b4d01db876ee1f4358ca10ecccdc84025f languageName: node linkType: hard -"@react-native/eslint-config@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/eslint-config@npm:0.79.7" +"@react-native/eslint-config@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/eslint-config@npm:0.80.3" dependencies: "@babel/core": ^7.25.2 "@babel/eslint-parser": ^7.25.1 - "@react-native/eslint-plugin": 0.79.7 + "@react-native/eslint-plugin": 0.80.3 "@typescript-eslint/eslint-plugin": ^7.1.1 "@typescript-eslint/parser": ^7.1.1 eslint-config-prettier: ^8.5.0 @@ -3107,79 +2929,79 @@ __metadata: eslint-plugin-ft-flow: ^2.0.1 eslint-plugin-jest: ^27.9.0 eslint-plugin-react: ^7.30.1 - eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-hooks: ^5.2.0 eslint-plugin-react-native: ^4.0.0 peerDependencies: eslint: ">=8" prettier: ">=2" - checksum: 86362f2a5ad042e94e3398c33aac3b9387a75c037207de36717be2e3c5be5cd6a0dca8b53aa8e874d2e001e2800d12b920f6691fd23221f6bab49fe6a763d821 + checksum: 1c80cdb98738f03136c56fb91eccfc7e210b4b45648648a4d84092b6584cf475a372e02ced1f2a0af0a1e49882cc8ea362d695bc0957df0b6a8b64268f81a32f languageName: node linkType: hard -"@react-native/eslint-plugin@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/eslint-plugin@npm:0.79.7" - checksum: e36362b5bee53d0dd21433eff8e42f43f452a06daff025a9d615b54e3790b59187edd1d2c3227287a0ab5155465972ce9f2412fbf8aec0731d0ea7e4ba4cdec5 +"@react-native/eslint-plugin@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/eslint-plugin@npm:0.80.3" + checksum: 39ef55e0c8eee9fda4f91c67fd26d7a35c953dc1cff52705ea789e1364693c205022f2f6d3a86dbd2fb909b7ad880f85e32ad9a87e2dd2f9c3b0a115dd53b61a languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/gradle-plugin@npm:0.79.7" - checksum: c7a9761c2149a33a649a149c6be1109acf2960bb9857642170ba16a0e4556c6a1d18592dcb7ab95f5c23aaeb598af893f83c6a9f4bb9856c7c70ed919160ed88 +"@react-native/gradle-plugin@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/gradle-plugin@npm:0.80.3" + checksum: 0677a0f2b2e0d2c4e3a38119a92fff62d9f9208f46afddd6de8587625fc1a4fab47dc5c173cc61432b3edaf087baf0d8fb3e083757666aea841940168911e5cd languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/js-polyfills@npm:0.79.7" - checksum: 61c93a84c9d4eb8e2ba88d781d67677d76561bcc541793bb963d20f86f35fae80eac6e9c8d1b3da64657ddbaf3317d8b6e4ebf8122332eb2d780011576cfdc06 +"@react-native/js-polyfills@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/js-polyfills@npm:0.80.3" + checksum: 45617c79793ed074e0b1efcc3ad821fd76ed319f007af8e30099dbba060a1afd0aeeee260802c5f4c5c140db35fd5640ac066e1669012b17d5793107587ee463 languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/metro-babel-transformer@npm:0.79.7" +"@react-native/metro-babel-transformer@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/metro-babel-transformer@npm:0.80.3" dependencies: "@babel/core": ^7.25.2 - "@react-native/babel-preset": 0.79.7 - hermes-parser: 0.25.1 + "@react-native/babel-preset": 0.80.3 + hermes-parser: 0.28.1 nullthrows: ^1.1.1 peerDependencies: "@babel/core": "*" - checksum: 2eb5bcdc460f3fc83dc84c93d32b7abcba0ec3b657940bed24cc920bb9a3b4984a7a5ff4df1ff492a7686d9b149cd34fd730c33ebfd8a79aca3897b9c33b1fd4 + checksum: 6007282b11fcdaf8a8e0d823fb71717c11fc1617c3a91a8edf2a16f7f1457b28e073d6374bf6a516026095937975b1ab711cc4554f617ea12764136e4bc3d832 languageName: node linkType: hard -"@react-native/metro-config@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/metro-config@npm:0.79.7" +"@react-native/metro-config@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/metro-config@npm:0.80.3" dependencies: - "@react-native/js-polyfills": 0.79.7 - "@react-native/metro-babel-transformer": 0.79.7 - metro-config: ^0.82.0 - metro-runtime: ^0.82.0 - checksum: 72ade5725fb1c56fc0268e979bf4d3363a5a00f8c3a45856b1742aee1911d20f372975289b92a0358bb54752b79f25d32e8516d3da731e7ba717456a31ee7c6f + "@react-native/js-polyfills": 0.80.3 + "@react-native/metro-babel-transformer": 0.80.3 + metro-config: ^0.82.2 + metro-runtime: ^0.82.2 + checksum: c8db7d39291b0c300ab17bd3c24773dffd8591ccf85aa497b8680b77a4a025354b7568ac13936252d327434f856190922a8a7535fb27f0d0c48ce5e7e1dc406a languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/normalize-colors@npm:0.79.7" - checksum: 0c9420bbacb93965c50d872ab65edc17669a51ba7404ae845a6ee51356d0ef5c616c41782bb7b0af7b795f0a63e579ae28145450788fbcf053abf423038c2389 +"@react-native/normalize-colors@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/normalize-colors@npm:0.80.3" + checksum: 2735f461ab40acffacdbd5ca90ae7ec0823179c4c89eec2179fea62ee11b15244ba7642fb29edec30ef25d61b6ade229b5560332fa9c12447cc5ba684b389023 languageName: node linkType: hard -"@react-native/typescript-config@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/typescript-config@npm:0.79.7" - checksum: add9f04e7019011fff96e72e270fad3cbf714776f028136255b2a84027faad461ed20e121587052d1da838fc0d66c4b4a0579312eb5f17d6210f93251e5a3041 +"@react-native/typescript-config@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/typescript-config@npm:0.80.3" + checksum: 7f23ad56346a2f6c1d0af6861666ebc8f6f02d2998a78f0fee80146bc3f8baab4afb31fe0b5af05359fe625074355f7ba1dab2e08df8aa7273ef2dd9ad3acf1d languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.79.7": - version: 0.79.7 - resolution: "@react-native/virtualized-lists@npm:0.79.7" +"@react-native/virtualized-lists@npm:0.80.3": + version: 0.80.3 + resolution: "@react-native/virtualized-lists@npm:0.80.3" dependencies: invariant: ^2.2.4 nullthrows: ^1.1.1 @@ -3190,7 +3012,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 91e05a838a040d21f86221e2a5a89130148470b38e78d7505ba89bd5ebb12b3bafe05d27df52e525b966251c083737cd99c9aa5d70d1006c9c856e4a1a9c0408 + checksum: f1b666ab5fc7dbce81d5d659c69cf51f79b09d2fd0a3ed4acdbfc7c454296b6887efcd01f4a4c22bf3ad721909d85ae473fd6df6489a0cb1a05b1a1954c81b19 languageName: node linkType: hard @@ -3611,7 +3433,7 @@ __metadata: languageName: node linkType: hard -"@types/react-test-renderer@npm:^19.0.0": +"@types/react-test-renderer@npm:^19.1.0": version: 19.1.0 resolution: "@types/react-test-renderer@npm:19.1.0" dependencies: @@ -3620,12 +3442,12 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^19.0.0": - version: 19.2.2 - resolution: "@types/react@npm:19.2.2" +"@types/react@npm:^19.1.0": + version: 19.2.14 + resolution: "@types/react@npm:19.2.14" dependencies: - csstype: ^3.0.2 - checksum: 7eb2d316dd5a6c02acb416524b50bae932c38d055d26e0f561ca23c009c686d16a2b22fcbb941eecbe2ecb167f119e29b9d0142d9d056dd381352c43413b60da + csstype: ^3.2.2 + checksum: ddd330292abf2dc2cfa65188e1c5f67cc6e90f8d8ffb088f753a38db9d123f942c23d324a6b7e8027ff04f22b395492150f54b9b520b6cbec1e8841e669f2c19 languageName: node linkType: hard @@ -4620,16 +4442,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-syntax-hermes-parser@npm:0.25.1": - version: 0.25.1 - resolution: "babel-plugin-syntax-hermes-parser@npm:0.25.1" - dependencies: - hermes-parser: 0.25.1 - checksum: dc80fafde1aed8e60cf86ecd2e9920e7f35ffe02b33bd4e772daaa786167bcf508aac3fc1aea425ff4c7a0be94d82528f3fe8619b7f41dac853264272d640c04 - languageName: node - linkType: hard - -"babel-plugin-syntax-hermes-parser@npm:^0.28.0": +"babel-plugin-syntax-hermes-parser@npm:0.28.1, babel-plugin-syntax-hermes-parser@npm:^0.28.0": version: 0.28.1 resolution: "babel-plugin-syntax-hermes-parser@npm:0.28.1" dependencies: @@ -5674,10 +5487,10 @@ __metadata: languageName: node linkType: hard -"csstype@npm:^3.0.2": - version: 3.1.3 - resolution: "csstype@npm:3.1.3" - checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 +"csstype@npm:^3.2.2": + version: 3.2.3 + resolution: "csstype@npm:3.2.3" + checksum: cb882521b3398958a1ce6ca98c011aec0bde1c77ecaf8a1dd4db3b112a189939beae3b1308243b2fe50fc27eb3edeb0f73a5a4d91d928765dc6d5ecc7bda92ee languageName: node linkType: hard @@ -6500,12 +6313,12 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:^4.6.0": - version: 4.6.2 - resolution: "eslint-plugin-react-hooks@npm:4.6.2" +"eslint-plugin-react-hooks@npm:^5.2.0": + version: 5.2.0 + resolution: "eslint-plugin-react-hooks@npm:5.2.0" peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 395c433610f59577cfcf3f2e42bcb130436c8a0b3777ac64f441d88c5275f4fcfc89094cedab270f2822daf29af1079151a7a6579a8e9ea8cee66540ba0384c4 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + checksum: 5920736a78c0075488e7e30e04fbe5dba5b6b5a6c8c4b5742fdae6f9b8adf4ee387bc45dc6e03b4012865e6fd39d134da7b83a40f57c90cc9eecf80692824e3a languageName: node linkType: hard @@ -6721,7 +6534,7 @@ __metadata: languageName: node linkType: hard -"event-target-shim@npm:^5.0.0, event-target-shim@npm:^5.0.1": +"event-target-shim@npm:^5.0.0": version: 5.0.1 resolution: "event-target-shim@npm:5.0.1" checksum: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166 @@ -7573,13 +7386,6 @@ __metadata: languageName: node linkType: hard -"hermes-estree@npm:0.25.1": - version: 0.25.1 - resolution: "hermes-estree@npm:0.25.1" - checksum: 97f42e9178dff61db017810b4f79f5a2cdbb3cde94b7d99ba84ed632ee2adfcae2244555587951b3151fc036676c68f48f57fbe2b49e253eb1f3f904d284a8b0 - languageName: node - linkType: hard - "hermes-estree@npm:0.28.1": version: 0.28.1 resolution: "hermes-estree@npm:0.28.1" @@ -7603,15 +7409,6 @@ __metadata: languageName: node linkType: hard -"hermes-parser@npm:0.25.1": - version: 0.25.1 - resolution: "hermes-parser@npm:0.25.1" - dependencies: - hermes-estree: 0.25.1 - checksum: 4edcfaa3030931343b540182b83c432aba4cdcb1925952521ab4cfb7ab90c2c1543dfcb042ccd51d5e81e4bfe2809420e85902c2ff95ef7c6c64644ce17138ea - languageName: node - linkType: hard - "hermes-parser@npm:0.28.1": version: 0.28.1 resolution: "hermes-parser@npm:0.28.1" @@ -9805,7 +9602,7 @@ __metadata: languageName: node linkType: hard -"metro-config@npm:0.82.5, metro-config@npm:^0.82.0": +"metro-config@npm:0.82.5, metro-config@npm:^0.82.2": version: 0.82.5 resolution: "metro-config@npm:0.82.5" dependencies: @@ -9832,7 +9629,7 @@ __metadata: languageName: node linkType: hard -"metro-core@npm:0.82.5, metro-core@npm:^0.82.0": +"metro-core@npm:0.82.5, metro-core@npm:^0.82.2": version: 0.82.5 resolution: "metro-core@npm:0.82.5" dependencies: @@ -9931,7 +9728,7 @@ __metadata: languageName: node linkType: hard -"metro-runtime@npm:0.82.5, metro-runtime@npm:^0.82.0": +"metro-runtime@npm:0.82.5, metro-runtime@npm:^0.82.2": version: 0.82.5 resolution: "metro-runtime@npm:0.82.5" dependencies: @@ -9958,7 +9755,7 @@ __metadata: languageName: node linkType: hard -"metro-source-map@npm:0.82.5, metro-source-map@npm:^0.82.0": +"metro-source-map@npm:0.82.5, metro-source-map@npm:^0.82.2": version: 0.82.5 resolution: "metro-source-map@npm:0.82.5" dependencies: @@ -10131,7 +9928,7 @@ __metadata: languageName: node linkType: hard -"metro@npm:0.82.5, metro@npm:^0.82.0": +"metro@npm:0.82.5, metro@npm:^0.82.2": version: 0.82.5 resolution: "metro@npm:0.82.5" dependencies: @@ -11542,7 +11339,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^19.0.0, react-is@npm:^19.1.0": +"react-is@npm:^19.1.0": version: 19.2.0 resolution: "react-is@npm:19.2.0" checksum: 9a23e1c2d0bbc13b383bc59a05f54e6eb95dd87e01aec8aa92a88618364b7b0ee8a5b057ad813cf61e2f7ae7d24503b624706acb609d07c54754e5ad2c522568 @@ -11684,55 +11481,54 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.79.7": - version: 0.79.7 - resolution: "react-native@npm:0.79.7" +"react-native@npm:0.80.3": + version: 0.80.3 + resolution: "react-native@npm:0.80.3" dependencies: "@jest/create-cache-key-function": ^29.7.0 - "@react-native/assets-registry": 0.79.7 - "@react-native/codegen": 0.79.7 - "@react-native/community-cli-plugin": 0.79.7 - "@react-native/gradle-plugin": 0.79.7 - "@react-native/js-polyfills": 0.79.7 - "@react-native/normalize-colors": 0.79.7 - "@react-native/virtualized-lists": 0.79.7 + "@react-native/assets-registry": 0.80.3 + "@react-native/codegen": 0.80.3 + "@react-native/community-cli-plugin": 0.80.3 + "@react-native/gradle-plugin": 0.80.3 + "@react-native/js-polyfills": 0.80.3 + "@react-native/normalize-colors": 0.80.3 + "@react-native/virtualized-lists": 0.80.3 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.25.1 + babel-plugin-syntax-hermes-parser: 0.28.1 base64-js: ^1.5.1 chalk: ^4.0.0 commander: ^12.0.0 - event-target-shim: ^5.0.1 flow-enums-runtime: ^0.0.6 glob: ^7.1.1 invariant: ^2.2.4 jest-environment-node: ^29.7.0 memoize-one: ^5.0.0 - metro-runtime: ^0.82.0 - metro-source-map: ^0.82.0 + metro-runtime: ^0.82.2 + metro-source-map: ^0.82.2 nullthrows: ^1.1.1 pretty-format: ^29.7.0 promise: ^8.3.0 react-devtools-core: ^6.1.1 react-refresh: ^0.14.0 regenerator-runtime: ^0.13.2 - scheduler: 0.25.0 + scheduler: 0.26.0 semver: ^7.1.3 stacktrace-parser: ^0.1.10 whatwg-fetch: ^3.0.0 ws: ^6.2.3 yargs: ^17.6.2 peerDependencies: - "@types/react": ^19.0.0 - react: ^19.0.0 + "@types/react": ^19.1.0 + react: ^19.1.0 peerDependenciesMeta: "@types/react": optional: true bin: react-native: cli.js - checksum: f00501d0b86c009be18cbeeddd554ff3b31b4681c6748b6eab94e74143726cd285fd45909742eabe5fe3bceb089e321d9e96e0fc5ea5327016dc66fc3ec5d27f + checksum: b1658efd61a93e11c3dd90484494906f0e47e196eddc02d588009de28e842e52fc25b6a0ee070796b5613875e29e5021449ffd45bebbf97f88b409a2e84d4e65 languageName: node linkType: hard @@ -11743,22 +11539,22 @@ __metadata: languageName: node linkType: hard -"react-test-renderer@npm:19.0.0": - version: 19.0.0 - resolution: "react-test-renderer@npm:19.0.0" +"react-test-renderer@npm:19.1.0": + version: 19.1.0 + resolution: "react-test-renderer@npm:19.1.0" dependencies: - react-is: ^19.0.0 - scheduler: ^0.25.0 + react-is: ^19.1.0 + scheduler: ^0.26.0 peerDependencies: - react: ^19.0.0 - checksum: 2e1e527588c69e822b7aa25262c9f4a48161ede9cee5109b88228ecafbd91ce82f7afed176645efcba903ba5a43d05842a8229cdde220049e42a0cf679715dbc + react: ^19.1.0 + checksum: e060239f8fbfbe54c2fa0e1d7a9eb1ee77787b0b29fd75ba6170dc22cd637c3a9052a82285db6be5a269309a65b8e8c40ddc8103620fbe1652cce693fd608acc languageName: node linkType: hard -"react@npm:19.0.0": - version: 19.0.0 - resolution: "react@npm:19.0.0" - checksum: 86de15d85b2465feb40297a90319c325cb07cf27191a361d47bcfe8c6126c973d660125aa67b8f4cbbe39f15a2f32efd0c814e98196d8e5b68c567ba40a399c6 +"react@npm:19.1.0": + version: 19.1.0 + resolution: "react@npm:19.1.0" + checksum: c0905f8cfb878b0543a5522727e5ed79c67c8111dc16ceee135b7fe19dce77b2c1c19293513061a8934e721292bfc1517e0487e262d1906f306bdf95fa54d02f languageName: node linkType: hard @@ -12264,10 +12060,10 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:0.25.0, scheduler@npm:^0.25.0": - version: 0.25.0 - resolution: "scheduler@npm:0.25.0" - checksum: b7bb9fddbf743e521e9aaa5198a03ae823f5e104ebee0cb9ec625392bb7da0baa1c28ab29cee4b1e407a94e76acc6eee91eeb749614f91f853efda2613531566 +"scheduler@npm:0.26.0, scheduler@npm:^0.26.0": + version: 0.26.0 + resolution: "scheduler@npm:0.26.0" + checksum: c63a9f1c0e5089b537231cff6c11f75455b5c8625ae09535c1d7cd0a1b0c77ceecdd9f1074e5e063da5d8dc11e73e8033dcac3361791088be08a6e60c0283ed9 languageName: node linkType: hard From 04d830acae13e9f932039cb8eacc4b75e6f86dfb Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Tue, 5 May 2026 15:19:00 -0700 Subject: [PATCH 04/13] chore: updated android so that it builds correctly --- example/android/gradle.properties | 7 ++++++- example/android/gradlew | 4 ++-- example/android/gradlew.bat | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/example/android/gradle.properties b/example/android/gradle.properties index c26b81501..a7c88e6cb 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -38,6 +38,11 @@ newArchEnabled=true # If set to false, you will be using JSC instead. hermesEnabled=true +# Use this property to enable edge-to-edge display support. +# This allows your app to draw behind system bars for an immersive UI. +# Note: Only works with ReactActivity and should not be used with custom Activity. +edgeToEdgeEnabled=false + # Needed for react-native-webview # See: https://github.com/react-native-webview/react-native-webview/blob/HEAD/docs/Getting-Started.md -android.enableJetifier=true \ No newline at end of file +android.enableJetifier=true diff --git a/example/android/gradlew b/example/android/gradlew index 23d15a936..faf93008b 100755 --- a/example/android/gradlew +++ b/example/android/gradlew @@ -114,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH="\\\"\\\"" +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -213,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + org.gradle.wrapper.GradleWrapperMain \ "$@" # Stop when "xargs" is not available. diff --git a/example/android/gradlew.bat b/example/android/gradlew.bat index dd2b8eedb..cfd8ef523 100644 --- a/example/android/gradlew.bat +++ b/example/android/gradlew.bat @@ -75,11 +75,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH= +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell From b2afdca8ff6f11fec704008cbd431800741a8643 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Tue, 5 May 2026 15:33:46 -0700 Subject: [PATCH 05/13] chore: add module name RNIterableAPI --- .../project.pbxproj | 48 +++++++++---------- example/ios/ReactNativeSdkExample/Info.plist | 9 ++-- ios/RNIterableAPI/RNIterableAPI.mm | 5 ++ 3 files changed, 34 insertions(+), 28 deletions(-) diff --git a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj index 86ddff420..bdaddcea3 100644 --- a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj +++ b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj @@ -15,7 +15,7 @@ 77E3B5792EA71A4B001449CE /* JwtTokenModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77E3B5762EA71A4B001449CE /* JwtTokenModule.swift */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; A3A40C20801B8F02005FA4C0 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 1FC6B09E65A7BD9F6864C5D8 /* PrivacyInfo.xcprivacy */; }; - B804593B76DC91CD857236FC /* libPods-ReactNativeSdkExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA4B1C707F844C0A8CFB73F4 /* libPods-ReactNativeSdkExample.a */; }; + EB0D43EFAA5400C8CE9BD718 /* libPods-ReactNativeSdkExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 274D967BFE0AC884F8ECC7AD /* libPods-ReactNativeSdkExample.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -32,13 +32,15 @@ 00E356EE1AD99517003FC87E /* ReactNativeSdkExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ReactNativeSdkExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* ReactNativeSdkExampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReactNativeSdkExampleTests.m; sourceTree = ""; }; - 09E5CA38B321A5355583A2DD /* Pods-ReactNativeSdkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.release.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* ReactNativeSdkExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ReactNativeSdkExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ReactNativeSdkExample/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ReactNativeSdkExample/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* ReactNativeSdkExample.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; name = ReactNativeSdkExample.entitlements; path = ReactNativeSdkExample/ReactNativeSdkExample.entitlements; sourceTree = ""; }; 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = ReactNativeSdkExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 1D5315AB364D7B554AB6BDBF /* Pods-ReactNativeSdkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.debug.xcconfig"; sourceTree = ""; }; 1FC6B09E65A7BD9F6864C5D8 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = ReactNativeSdkExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 274D967BFE0AC884F8ECC7AD /* libPods-ReactNativeSdkExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSdkExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2E75418810C1FA96EE7F2A52 /* Pods-ReactNativeSdkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.release.xcconfig"; sourceTree = ""; }; 779227312DFA3FB500D69EC0 /* ReactNativeSdkExample-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReactNativeSdkExample-Bridging-Header.h"; sourceTree = ""; }; 779227322DFA3FB500D69EC0 /* ReactNativeSdkExampleTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReactNativeSdkExampleTests-Bridging-Header.h"; sourceTree = ""; }; 779227332DFA3FB500D69EC0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = ReactNativeSdkExample/AppDelegate.swift; sourceTree = ""; }; @@ -46,9 +48,7 @@ 77E3B5752EA71A4B001449CE /* JwtTokenModule.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = JwtTokenModule.mm; sourceTree = ""; }; 77E3B5762EA71A4B001449CE /* JwtTokenModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JwtTokenModule.swift; sourceTree = ""; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = ReactNativeSdkExample/LaunchScreen.storyboard; sourceTree = ""; }; - C1DA5444DC0081630EF179C0 /* Pods-ReactNativeSdkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.debug.xcconfig"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - FA4B1C707F844C0A8CFB73F4 /* libPods-ReactNativeSdkExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSdkExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -63,7 +63,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B804593B76DC91CD857236FC /* libPods-ReactNativeSdkExample.a in Frameworks */, + EB0D43EFAA5400C8CE9BD718 /* libPods-ReactNativeSdkExample.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -107,7 +107,7 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - FA4B1C707F844C0A8CFB73F4 /* libPods-ReactNativeSdkExample.a */, + 274D967BFE0AC884F8ECC7AD /* libPods-ReactNativeSdkExample.a */, ); name = Frameworks; sourceTree = ""; @@ -149,8 +149,8 @@ BBD78D7AC51CEA395F1C20DB /* Pods */ = { isa = PBXGroup; children = ( - C1DA5444DC0081630EF179C0 /* Pods-ReactNativeSdkExample.debug.xcconfig */, - 09E5CA38B321A5355583A2DD /* Pods-ReactNativeSdkExample.release.xcconfig */, + 1D5315AB364D7B554AB6BDBF /* Pods-ReactNativeSdkExample.debug.xcconfig */, + 2E75418810C1FA96EE7F2A52 /* Pods-ReactNativeSdkExample.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -180,13 +180,13 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactNativeSdkExample" */; buildPhases = ( - BC0ECB5C70E9CDFEE460DF64 /* [CP] Check Pods Manifest.lock */, + 8611E06F81FDE97F529D2E6E /* [CP] Check Pods Manifest.lock */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - E429DD2BC394E2F8DFDB9474 /* [CP] Embed Pods Frameworks */, - 0D1AB9D1827571B076AE8E96 /* [CP] Copy Pods Resources */, + 1E23D51F2EED625C8E695921 /* [CP] Embed Pods Frameworks */, + 8BEEA55E95F34E408A649470 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -271,24 +271,24 @@ shellPath = /bin/sh; shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; }; - 0D1AB9D1827571B076AE8E96 /* [CP] Copy Pods Resources */ = { + 1E23D51F2EED625C8E695921 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - BC0ECB5C70E9CDFEE460DF64 /* [CP] Check Pods Manifest.lock */ = { + 8611E06F81FDE97F529D2E6E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -310,21 +310,21 @@ 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; }; - E429DD2BC394E2F8DFDB9474 /* [CP] Embed Pods Frameworks */ = { + 8BEEA55E95F34E408A649470 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -420,7 +420,7 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C1DA5444DC0081630EF179C0 /* Pods-ReactNativeSdkExample.debug.xcconfig */; + baseConfigurationReference = 1D5315AB364D7B554AB6BDBF /* Pods-ReactNativeSdkExample.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -451,7 +451,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 09E5CA38B321A5355583A2DD /* Pods-ReactNativeSdkExample.release.xcconfig */; + baseConfigurationReference = 2E75418810C1FA96EE7F2A52 /* Pods-ReactNativeSdkExample.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; diff --git a/example/ios/ReactNativeSdkExample/Info.plist b/example/ios/ReactNativeSdkExample/Info.plist index 19ccb2e8f..fc655fe80 100644 --- a/example/ios/ReactNativeSdkExample/Info.plist +++ b/example/ios/ReactNativeSdkExample/Info.plist @@ -22,15 +22,14 @@ ???? CFBundleVersion $(CURRENT_PROJECT_VERSION) - LSRequiresIPhoneOS - LSApplicationQueriesSchemes - javascript + javascript + LSRequiresIPhoneOS + NSAppTransportSecurity - NSAllowsArbitraryLoads NSAllowsLocalNetworking @@ -38,6 +37,8 @@ NSLocationWhenInUseUsageDescription + RCTNewArchEnabled + UILaunchStoryboardName LaunchScreen UIRequiredDeviceCapabilities diff --git a/ios/RNIterableAPI/RNIterableAPI.mm b/ios/RNIterableAPI/RNIterableAPI.mm index 025c4dc15..da90033f2 100644 --- a/ios/RNIterableAPI/RNIterableAPI.mm +++ b/ios/RNIterableAPI/RNIterableAPI.mm @@ -343,6 +343,11 @@ - (void)wakeApp { return std::make_shared(params); } ++ (NSString *)moduleName +{ + return @"RNIterableAPI"; +} + #else // MARK: - RCTBridgeModule integration for Legacy Architecture From 98c4324bb225c5ccc056bb4b6d5c7d8307e9f794 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Tue, 5 May 2026 15:38:48 -0700 Subject: [PATCH 06/13] refactor: remove redundant moduleName method from RNIterableAPI.mm --- ios/RNIterableAPI/RNIterableAPI.mm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ios/RNIterableAPI/RNIterableAPI.mm b/ios/RNIterableAPI/RNIterableAPI.mm index da90033f2..025c4dc15 100644 --- a/ios/RNIterableAPI/RNIterableAPI.mm +++ b/ios/RNIterableAPI/RNIterableAPI.mm @@ -343,11 +343,6 @@ - (void)wakeApp { return std::make_shared(params); } -+ (NSString *)moduleName -{ - return @"RNIterableAPI"; -} - #else // MARK: - RCTBridgeModule integration for Legacy Architecture From c0157a071709513c986de58a0be562e0d0b2fcba Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Tue, 5 May 2026 15:52:13 -0700 Subject: [PATCH 07/13] chore: update react-native-screens version range in package.json and yarn.lock --- .../project.pbxproj | 58 +++++++++---------- example/package.json | 2 +- package.json | 2 +- yarn.lock | 12 ++-- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj index bdaddcea3..8eeb004b2 100644 --- a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj +++ b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj @@ -15,7 +15,7 @@ 77E3B5792EA71A4B001449CE /* JwtTokenModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77E3B5762EA71A4B001449CE /* JwtTokenModule.swift */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; A3A40C20801B8F02005FA4C0 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 1FC6B09E65A7BD9F6864C5D8 /* PrivacyInfo.xcprivacy */; }; - EB0D43EFAA5400C8CE9BD718 /* libPods-ReactNativeSdkExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 274D967BFE0AC884F8ECC7AD /* libPods-ReactNativeSdkExample.a */; }; + EC8F867642C239490B660A0E /* libPods-ReactNativeSdkExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 75C8C5B6275D154ACC7A739D /* libPods-ReactNativeSdkExample.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -37,10 +37,9 @@ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ReactNativeSdkExample/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* ReactNativeSdkExample.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; name = ReactNativeSdkExample.entitlements; path = ReactNativeSdkExample/ReactNativeSdkExample.entitlements; sourceTree = ""; }; 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = ReactNativeSdkExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 1D5315AB364D7B554AB6BDBF /* Pods-ReactNativeSdkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.debug.xcconfig"; sourceTree = ""; }; + 1D4A10CD5A176A2672FEA843 /* Pods-ReactNativeSdkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.debug.xcconfig"; sourceTree = ""; }; 1FC6B09E65A7BD9F6864C5D8 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = ReactNativeSdkExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 274D967BFE0AC884F8ECC7AD /* libPods-ReactNativeSdkExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSdkExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2E75418810C1FA96EE7F2A52 /* Pods-ReactNativeSdkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.release.xcconfig"; sourceTree = ""; }; + 75C8C5B6275D154ACC7A739D /* libPods-ReactNativeSdkExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSdkExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 779227312DFA3FB500D69EC0 /* ReactNativeSdkExample-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReactNativeSdkExample-Bridging-Header.h"; sourceTree = ""; }; 779227322DFA3FB500D69EC0 /* ReactNativeSdkExampleTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReactNativeSdkExampleTests-Bridging-Header.h"; sourceTree = ""; }; 779227332DFA3FB500D69EC0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = ReactNativeSdkExample/AppDelegate.swift; sourceTree = ""; }; @@ -48,6 +47,7 @@ 77E3B5752EA71A4B001449CE /* JwtTokenModule.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = JwtTokenModule.mm; sourceTree = ""; }; 77E3B5762EA71A4B001449CE /* JwtTokenModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JwtTokenModule.swift; sourceTree = ""; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = ReactNativeSdkExample/LaunchScreen.storyboard; sourceTree = ""; }; + CB3BD018E1F9E12F16E951B0 /* Pods-ReactNativeSdkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.release.xcconfig"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ @@ -63,7 +63,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - EB0D43EFAA5400C8CE9BD718 /* libPods-ReactNativeSdkExample.a in Frameworks */, + EC8F867642C239490B660A0E /* libPods-ReactNativeSdkExample.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -107,7 +107,7 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 274D967BFE0AC884F8ECC7AD /* libPods-ReactNativeSdkExample.a */, + 75C8C5B6275D154ACC7A739D /* libPods-ReactNativeSdkExample.a */, ); name = Frameworks; sourceTree = ""; @@ -149,8 +149,8 @@ BBD78D7AC51CEA395F1C20DB /* Pods */ = { isa = PBXGroup; children = ( - 1D5315AB364D7B554AB6BDBF /* Pods-ReactNativeSdkExample.debug.xcconfig */, - 2E75418810C1FA96EE7F2A52 /* Pods-ReactNativeSdkExample.release.xcconfig */, + 1D4A10CD5A176A2672FEA843 /* Pods-ReactNativeSdkExample.debug.xcconfig */, + CB3BD018E1F9E12F16E951B0 /* Pods-ReactNativeSdkExample.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -180,13 +180,13 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactNativeSdkExample" */; buildPhases = ( - 8611E06F81FDE97F529D2E6E /* [CP] Check Pods Manifest.lock */, + F2E9324E7AD2F7B160944423 /* [CP] Check Pods Manifest.lock */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 1E23D51F2EED625C8E695921 /* [CP] Embed Pods Frameworks */, - 8BEEA55E95F34E408A649470 /* [CP] Copy Pods Resources */, + 7C9A38BA9F57B06E2BB2025C /* [CP] Embed Pods Frameworks */, + ECD8817AEA59779F686EFF7E /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -271,7 +271,7 @@ shellPath = /bin/sh; shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; }; - 1E23D51F2EED625C8E695921 /* [CP] Embed Pods Frameworks */ = { + 7C9A38BA9F57B06E2BB2025C /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -288,43 +288,43 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 8611E06F81FDE97F529D2E6E /* [CP] Check Pods Manifest.lock */ = { + ECD8817AEA59779F686EFF7E /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ReactNativeSdkExample-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-output-files.xcfilelist", ); 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-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 8BEEA55E95F34E408A649470 /* [CP] Copy Pods Resources */ = { + F2E9324E7AD2F7B160944423 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-ReactNativeSdkExample-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources.sh\"\n"; + 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; }; /* End PBXShellScriptBuildPhase section */ @@ -420,7 +420,7 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1D5315AB364D7B554AB6BDBF /* Pods-ReactNativeSdkExample.debug.xcconfig */; + baseConfigurationReference = 1D4A10CD5A176A2672FEA843 /* Pods-ReactNativeSdkExample.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -451,7 +451,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2E75418810C1FA96EE7F2A52 /* Pods-ReactNativeSdkExample.release.xcconfig */; + baseConfigurationReference = CB3BD018E1F9E12F16E951B0 /* Pods-ReactNativeSdkExample.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; diff --git a/example/package.json b/example/package.json index e93bec5ac..f2a65b42a 100644 --- a/example/package.json +++ b/example/package.json @@ -18,7 +18,7 @@ "react-native": "0.80.3", "react-native-gesture-handler": "^2.26.0", "react-native-safe-area-context": "^5.4.0", - "react-native-screens": "^4.10.0", + "react-native-screens": ">=4.14.0 <4.19.0", "react-native-webview": "^13.14.1" }, "devDependencies": { diff --git a/package.json b/package.json index 3c901ce22..3b0e7f43f 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "react-native-builder-bob": "^0.40.4", "react-native-gesture-handler": "^2.26.0", "react-native-safe-area-context": "^5.4.0", - "react-native-screens": "^4.10.0", + "react-native-screens": ">=4.14.0 <4.19.0", "react-native-webview": "^13.14.1", "react-test-renderer": "19.1.0", "release-it": "^17.10.0", diff --git a/yarn.lock b/yarn.lock index 8e82ec609..baae78afc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1967,7 +1967,7 @@ __metadata: react-native-dotenv: ^3.4.11 react-native-gesture-handler: ^2.26.0 react-native-safe-area-context: ^5.4.0 - react-native-screens: ^4.10.0 + react-native-screens: ">=4.14.0 <4.19.0" react-native-webview: ^13.14.1 react-test-renderer: 19.1.0 languageName: unknown @@ -2008,7 +2008,7 @@ __metadata: react-native-builder-bob: ^0.40.4 react-native-gesture-handler: ^2.26.0 react-native-safe-area-context: ^5.4.0 - react-native-screens: ^4.10.0 + react-native-screens: ">=4.14.0 <4.19.0" react-native-webview: ^13.14.1 react-test-renderer: 19.1.0 release-it: ^17.10.0 @@ -11455,16 +11455,16 @@ __metadata: languageName: node linkType: hard -"react-native-screens@npm:^4.10.0": - version: 4.17.1 - resolution: "react-native-screens@npm:4.17.1" +"react-native-screens@npm:>=4.14.0 <4.19.0": + version: 4.18.0 + resolution: "react-native-screens@npm:4.18.0" dependencies: react-freeze: ^1.0.0 warn-once: ^0.1.0 peerDependencies: react: "*" react-native: "*" - checksum: 7c17118bc1313acd6001e63bf1d6c6a95ca5250c9a06450cceec50768571648d2d5f3e17ed19fb757d176a65bbe80fcba142b937a92cbbc795a6da71243c375e + checksum: b7942efe7bf316ad66aabf6e3b8b999268d3b88b3d23affb0f90f627d8dd980172f79b48abf476d10c3466ba5123240ee3f18f8d0ff7db5b79b9772cb520afa0 languageName: node linkType: hard From e86bd435b762fb8fb48da46a0051f5885c35e702 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Tue, 5 May 2026 16:17:18 -0700 Subject: [PATCH 08/13] docs: update README to clarify support for React Native's Legacy Architecture --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 16266121f..a08e2cc4a 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,12 @@ View the [API documentation](https://iterable-react-native-sdk.netlify.app). ## Architecture Support -Iterable's React Native SDK now fully supports [React Native's New Architecture](https://reactnative.dev/architecture/landing-page), including TurboModules and Fabric. You can use the SDK with either the legacy architecture or the New Architecture. +Iterable's React Native SDK supports [React Native's New +Architecture](https://reactnative.dev/architecture/landing-page), including +TurboModules and Fabric. + +**IMPORTANT**: Iterable's React Native SDK supports React Native's Legacy Architecture, but it +is no longer actively maintained. Use at your own risk. Notes: From 541edb3fc048d5e222630a0223efe6c4fa392f62 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Tue, 5 May 2026 18:11:09 -0700 Subject: [PATCH 09/13] chore: update React Native and related packages to versions 0.81.6 --- android/gradle.properties | 4 +- .../android/app/src/debug/AndroidManifest.xml | 9 - .../android/app/src/main/AndroidManifest.xml | 1 + example/android/build.gradle | 6 +- example/android/gradle.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../project.pbxproj | 64 +- example/package.json | 26 +- package.json | 22 +- yarn.lock | 813 ++++++++++-------- 10 files changed, 519 insertions(+), 430 deletions(-) delete mode 100644 example/android/app/src/debug/AndroidManifest.xml diff --git a/android/gradle.properties b/android/gradle.properties index df1b32db4..7f126ed6b 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,7 +1,7 @@ RNIterable_kotlinVersion=2.1.20 RNIterable_minSdkVersion=24 -RNIterable_targetSdkVersion=35 -RNIterable_compileSdkVersion=35 +RNIterable_targetSdkVersion=36 +RNIterable_compileSdkVersion=36 RNIterable_ndkversion=27.1.12297006 android.useAndroidX=true android.enableJetifier=true diff --git a/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index eb98c01af..000000000 --- a/example/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index ca5b5e90c..4bebef5b8 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -17,6 +17,7 @@ android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme" + android:usesCleartextTraffic="${usesCleartextTraffic}" android:supportsRtl="true"> /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; }; + 7236575B738F319BB76459BD /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -420,7 +420,7 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1D4A10CD5A176A2672FEA843 /* Pods-ReactNativeSdkExample.debug.xcconfig */; + baseConfigurationReference = 68C3783E340D622A535D62AE /* Pods-ReactNativeSdkExample.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -451,7 +451,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CB3BD018E1F9E12F16E951B0 /* Pods-ReactNativeSdkExample.release.xcconfig */; + baseConfigurationReference = A0A99AFB521B60001D3191A3 /* Pods-ReactNativeSdkExample.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; diff --git a/example/package.json b/example/package.json index f2a65b42a..f424e224c 100644 --- a/example/package.json +++ b/example/package.json @@ -14,10 +14,10 @@ "@react-navigation/native": "^7.1.14", "@react-navigation/native-stack": "^7.0.0", "@react-navigation/stack": "^7.4.2", - "react": "19.1.0", - "react-native": "0.80.3", + "react": "19.1.4", + "react-native": "0.81.6", "react-native-gesture-handler": "^2.26.0", - "react-native-safe-area-context": "^5.4.0", + "react-native-safe-area-context": "^5.5.2", "react-native-screens": ">=4.14.0 <4.19.0", "react-native-webview": "^13.14.1" }, @@ -25,21 +25,21 @@ "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", "@babel/runtime": "^7.25.0", - "@react-native-community/cli": "19.1.2", - "@react-native-community/cli-platform-android": "19.1.2", - "@react-native-community/cli-platform-ios": "19.1.2", - "@react-native/babel-preset": "0.80.3", - "@react-native/eslint-config": "0.80.3", - "@react-native/metro-config": "0.80.3", - "@react-native/typescript-config": "0.80.3", + "@react-native-community/cli": "20.0.0", + "@react-native-community/cli-platform-android": "20.0.0", + "@react-native-community/cli-platform-ios": "20.0.0", + "@react-native/babel-preset": "0.81.6", + "@react-native/eslint-config": "0.81.6", + "@react-native/metro-config": "0.81.6", + "@react-native/typescript-config": "0.81.6", "@types/jest": "^29.5.13", - "@types/react": "^19.1.0", + "@types/react": "^19.1.4", "@types/react-test-renderer": "^19.1.0", "react-native-builder-bob": "^0.30.2", "react-native-dotenv": "^3.4.11", - "react-test-renderer": "19.1.0" + "react-test-renderer": "19.1.4" }, "engines": { - "node": ">=18" + "node": ">=20" } } diff --git a/package.json b/package.json index 3b0e7f43f..a38ba04d0 100644 --- a/package.json +++ b/package.json @@ -69,17 +69,17 @@ "devDependencies": { "@commitlint/config-conventional": "^19.6.0", "@evilmartians/lefthook": "^1.5.0", - "@react-native-community/cli": "19.1.2", - "@react-native/babel-preset": "0.80.3", - "@react-native/eslint-config": "0.80.3", - "@react-native/metro-config": "0.80.3", - "@react-native/typescript-config": "0.80.3", + "@react-native-community/cli": "20.0.0", + "@react-native/babel-preset": "0.81.6", + "@react-native/eslint-config": "0.81.6", + "@react-native/metro-config": "0.81.6", + "@react-native/typescript-config": "0.81.6", "@react-navigation/native": "^7.1.14", "@release-it/conventional-changelog": "^9.0.4", "@testing-library/jest-native": "^5.4.3", "@testing-library/react-native": "^13.3.3", "@types/jest": "^29.5.5", - "@types/react": "^19.1.0", + "@types/react": "^19.1.4", "@typescript-eslint/eslint-plugin": "^8.13.0", "@typescript-eslint/parser": "^8.13.0", "baseline-browser-mapping": "latest", @@ -93,23 +93,23 @@ "jest": "^29.7.0", "prettier": "^3.0.3", "prettier-eslint": "^16.4.2", - "react": "19.1.0", - "react-native": "0.80.3", + "react": "19.1.4", + "react-native": "0.81.6", "react-native-builder-bob": "^0.40.4", "react-native-gesture-handler": "^2.26.0", "react-native-safe-area-context": "^5.4.0", "react-native-screens": ">=4.14.0 <4.19.0", "react-native-webview": "^13.14.1", - "react-test-renderer": "19.1.0", + "react-test-renderer": "19.1.4", "release-it": "^17.10.0", "turbo": "^1.10.7", "typedoc": "^0.28.13", "typedoc-plugin-coverage": "^3.3.0", "typedoc-plugin-mermaid": "^1.12.0", - "typescript": "^5.2.2" + "typescript": "^5.8.3" }, "resolutions": { - "@types/react": "^19.1.0" + "@types/react": "^19.1.4" }, "peerDependencies": { "@react-navigation/native": "*", diff --git a/yarn.lock b/yarn.lock index baae78afc..351574901 100644 --- a/yarn.lock +++ b/yarn.lock @@ -30,7 +30,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.26.2, @babel/code-frame@npm:^7.27.1": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.26.2, @babel/code-frame@npm:^7.27.1": version: 7.27.1 resolution: "@babel/code-frame@npm:7.27.1" dependencies: @@ -41,6 +41,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/code-frame@npm:7.29.0" + dependencies: + "@babel/helper-validator-identifier": ^7.28.5 + js-tokens: ^4.0.0 + picocolors: ^1.1.1 + checksum: 39f5b303757e4d63bbff8133e251094cd4f952b46e3fa9febc7368d907583911d6a1eded6090876dc1feeff5cf6e134fb19b706f8d58d26c5402cd50e5e1aeb2 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.27.2, @babel/compat-data@npm:^7.27.7, @babel/compat-data@npm:^7.28.0": version: 7.28.4 resolution: "@babel/compat-data@npm:7.28.4" @@ -85,7 +96,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.28.3, @babel/generator@npm:^7.7.2": +"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.28.3, @babel/generator@npm:^7.7.2": version: 7.28.3 resolution: "@babel/generator@npm:7.28.3" dependencies: @@ -98,6 +109,19 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.29.0, @babel/generator@npm:^7.29.1": + version: 7.29.1 + resolution: "@babel/generator@npm:7.29.1" + dependencies: + "@babel/parser": ^7.29.0 + "@babel/types": ^7.29.0 + "@jridgewell/gen-mapping": ^0.3.12 + "@jridgewell/trace-mapping": ^0.3.28 + jsesc: ^3.0.2 + checksum: d8e6863b2d04f684e65ad72731049ac7d754d3a3d1a67cdfc20807b109ba3180ed90d7ccef58ce5d38ded2eaeb71983a76c711eecb9b6266118262378f6c7226 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.27.1, @babel/helper-annotate-as-pure@npm:^7.27.3": version: 7.27.3 resolution: "@babel/helper-annotate-as-pure@npm:7.27.3" @@ -271,6 +295,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/helper-validator-identifier@npm:7.28.5" + checksum: 5a251a6848e9712aea0338f659a1a3bd334d26219d5511164544ca8ec20774f098c3a6661e9da65a0d085c745c00bb62c8fada38a62f08fa1f8053bc0aeb57e4 + 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" @@ -310,6 +341,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0": + version: 7.29.3 + resolution: "@babel/parser@npm:7.29.3" + dependencies: + "@babel/types": ^7.29.0 + bin: + parser: ./bin/babel-parser.js + checksum: 046f46996bf4053b6e29f8a7f420f9e0a2878593c1c9a9914a36faca23fc544a307c78a0101ba3ae98936ade68bdde686a83e1ab2b74c2ebb80dc4a9df48476d + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.27.1" @@ -1513,7 +1555,18 @@ __metadata: languageName: node linkType: hard -"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.0, @babel/traverse@npm:^7.28.3, @babel/traverse@npm:^7.28.4": +"@babel/template@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/template@npm:7.28.6" + dependencies: + "@babel/code-frame": ^7.28.6 + "@babel/parser": ^7.28.6 + "@babel/types": ^7.28.6 + checksum: 8ab6383053e226025d9491a6e795293f2140482d14f60c1244bece6bf53610ed1e251d5e164de66adab765629881c7d9416e1e540c716541d2fd0f8f36a013d7 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.0, @babel/traverse@npm:^7.28.3, @babel/traverse@npm:^7.28.4": version: 7.28.4 resolution: "@babel/traverse@npm:7.28.4" dependencies: @@ -1528,7 +1581,22 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.4, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": +"@babel/traverse@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/traverse@npm:7.29.0" + dependencies: + "@babel/code-frame": ^7.29.0 + "@babel/generator": ^7.29.0 + "@babel/helper-globals": ^7.28.0 + "@babel/parser": ^7.29.0 + "@babel/template": ^7.28.6 + "@babel/types": ^7.29.0 + debug: ^4.3.1 + checksum: fbb5085aa525b5d4ecd9fe2f5885d88413fff6ad9c0fac244c37f96069b6d3af9ce825750cd16af1d97d26fa3d354b38dbbdb5f31430e0d99ed89660ab65430e + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.4, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.28.4 resolution: "@babel/types@npm:7.28.4" dependencies: @@ -1538,6 +1606,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/types@npm:7.29.0" + dependencies: + "@babel/helper-string-parser": ^7.27.1 + "@babel/helper-validator-identifier": ^7.28.5 + checksum: 83f190438e94c22b2574aaeef7501830311ef266eaabfb06523409f64e2fe855e522951607085d71cad286719adef14e1ba37b671f334a7cd25b0f8506a01e0b + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -1947,29 +2025,29 @@ __metadata: "@babel/core": ^7.25.2 "@babel/preset-env": ^7.25.3 "@babel/runtime": ^7.25.0 - "@react-native-community/cli": 19.1.2 - "@react-native-community/cli-platform-android": 19.1.2 - "@react-native-community/cli-platform-ios": 19.1.2 - "@react-native/babel-preset": 0.80.3 - "@react-native/eslint-config": 0.80.3 - "@react-native/metro-config": 0.80.3 - "@react-native/typescript-config": 0.80.3 + "@react-native-community/cli": 20.0.0 + "@react-native-community/cli-platform-android": 20.0.0 + "@react-native-community/cli-platform-ios": 20.0.0 + "@react-native/babel-preset": 0.81.6 + "@react-native/eslint-config": 0.81.6 + "@react-native/metro-config": 0.81.6 + "@react-native/typescript-config": 0.81.6 "@react-navigation/bottom-tabs": ^7.0.0 "@react-navigation/native": ^7.1.14 "@react-navigation/native-stack": ^7.0.0 "@react-navigation/stack": ^7.4.2 "@types/jest": ^29.5.13 - "@types/react": ^19.1.0 + "@types/react": ^19.1.4 "@types/react-test-renderer": ^19.1.0 - react: 19.1.0 - react-native: 0.80.3 + react: 19.1.4 + react-native: 0.81.6 react-native-builder-bob: ^0.30.2 react-native-dotenv: ^3.4.11 react-native-gesture-handler: ^2.26.0 react-native-safe-area-context: ^5.4.0 react-native-screens: ">=4.14.0 <4.19.0" react-native-webview: ^13.14.1 - react-test-renderer: 19.1.0 + react-test-renderer: 19.1.4 languageName: unknown linkType: soft @@ -1979,17 +2057,17 @@ __metadata: dependencies: "@commitlint/config-conventional": ^19.6.0 "@evilmartians/lefthook": ^1.5.0 - "@react-native-community/cli": 19.1.2 - "@react-native/babel-preset": 0.80.3 - "@react-native/eslint-config": 0.80.3 - "@react-native/metro-config": 0.80.3 - "@react-native/typescript-config": 0.80.3 + "@react-native-community/cli": 20.0.0 + "@react-native/babel-preset": 0.81.6 + "@react-native/eslint-config": 0.81.6 + "@react-native/metro-config": 0.81.6 + "@react-native/typescript-config": 0.81.6 "@react-navigation/native": ^7.1.14 "@release-it/conventional-changelog": ^9.0.4 "@testing-library/jest-native": ^5.4.3 "@testing-library/react-native": ^13.3.3 "@types/jest": ^29.5.5 - "@types/react": ^19.1.0 + "@types/react": ^19.1.4 "@typescript-eslint/eslint-plugin": ^8.13.0 "@typescript-eslint/parser": ^8.13.0 baseline-browser-mapping: latest @@ -2003,14 +2081,14 @@ __metadata: jest: ^29.7.0 prettier: ^3.0.3 prettier-eslint: ^16.4.2 - react: 19.1.0 - react-native: 0.80.3 + react: 19.1.4 + react-native: 0.81.6 react-native-builder-bob: ^0.40.4 react-native-gesture-handler: ^2.26.0 react-native-safe-area-context: ^5.4.0 react-native-screens: ">=4.14.0 <4.19.0" react-native-webview: ^13.14.1 - react-test-renderer: 19.1.0 + react-test-renderer: 19.1.4 release-it: ^17.10.0 turbo: ^1.10.7 typedoc: ^0.28.13 @@ -2277,19 +2355,6 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^26.6.2": - version: 26.6.2 - resolution: "@jest/types@npm:26.6.2" - dependencies: - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^15.0.0 - chalk: ^4.0.0 - checksum: a0bd3d2f22f26ddb23f41fddf6e6a30bf4fab2ce79ec1cb6ce6fdfaf90a72e00f4c71da91ec61e13db3b10c41de22cf49d07c57ff2b59171d64b29f909c1d8d6 - languageName: node - linkType: hard - "@jest/types@npm:^29.6.3": version: 29.6.3 resolution: "@jest/types@npm:29.6.3" @@ -2601,65 +2666,65 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli-clean@npm:19.1.2" +"@react-native-community/cli-clean@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-clean@npm:20.0.0" dependencies: - "@react-native-community/cli-tools": 19.1.2 + "@react-native-community/cli-tools": 20.0.0 chalk: ^4.1.2 execa: ^5.0.0 fast-glob: ^3.3.2 - checksum: 6197254df61eba5ed53681ef6fdb9f270b496552b39f72dead36e48c25b0d5cc8e71037bd781562b83ae38b8994088711b7fb4a1b2fc46c794f6c466e9015f83 + checksum: 61e44c35d4dab0f037a3c8993056ac870c2b9492bc8452cabbc61ea7ff5ce3a55f4c5c1be799f9a943ad470911985783024863d0cfd2b81fee79063023a1d52b languageName: node linkType: hard -"@react-native-community/cli-config-android@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli-config-android@npm:19.1.2" +"@react-native-community/cli-config-android@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-config-android@npm:20.0.0" dependencies: - "@react-native-community/cli-tools": 19.1.2 + "@react-native-community/cli-tools": 20.0.0 chalk: ^4.1.2 fast-glob: ^3.3.2 fast-xml-parser: ^4.4.1 - checksum: 1f23ece0fe4a93391ee7b02b1f4986c04ab93ed7f51fb77d36ad98795ba0e379603b4d81d2140cff15d9f5da2be9d5aa6cd88a0e84e8cf726edf92d7ee730762 + checksum: cae974e97e1e814add722718f79b6fed5195beb9599209c327f5f26e51c24ba7cec551c4c6240cccfca455d6986f7ca2e8a64c3542d2117c0e0728f281569a30 languageName: node linkType: hard -"@react-native-community/cli-config-apple@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli-config-apple@npm:19.1.2" +"@react-native-community/cli-config-apple@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-config-apple@npm:20.0.0" dependencies: - "@react-native-community/cli-tools": 19.1.2 + "@react-native-community/cli-tools": 20.0.0 chalk: ^4.1.2 execa: ^5.0.0 fast-glob: ^3.3.2 - checksum: 240afd7ae1dfea9c6f4e2676b239b9e0387d5d35510e4019048cd1127e3370401eb1e0cad473608a95173e26792400d0c153b653ffff6220a6fc97e8d5bbb079 + checksum: b8ffb7d528dca06f1a6e99f5429f65bc6dee10b61059f229bc8c07a7a1096377495905020b7ead6251d47ed1faf1f85db9a68b3db69286a9b6d0753663d52266 languageName: node linkType: hard -"@react-native-community/cli-config@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli-config@npm:19.1.2" +"@react-native-community/cli-config@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-config@npm:20.0.0" dependencies: - "@react-native-community/cli-tools": 19.1.2 + "@react-native-community/cli-tools": 20.0.0 chalk: ^4.1.2 cosmiconfig: ^9.0.0 deepmerge: ^4.3.0 fast-glob: ^3.3.2 joi: ^17.2.1 - checksum: 55d937f543994dc99a5dfa21a7e9bca0fa6105d6e92826511ddc6928f358e713f2b978d990beb83bd179dcbe687b98775524983154634387403ab7925c931568 + checksum: 5d516474dfde07b2c725fc8b3755a7928bb3bb9c279cb574bd05e76851de8a91aa46879729b7a5ba0f65cd81f793fe69b891e9229d34d497914d83fb986c6a38 languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli-doctor@npm:19.1.2" +"@react-native-community/cli-doctor@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-doctor@npm:20.0.0" dependencies: - "@react-native-community/cli-config": 19.1.2 - "@react-native-community/cli-platform-android": 19.1.2 - "@react-native-community/cli-platform-apple": 19.1.2 - "@react-native-community/cli-platform-ios": 19.1.2 - "@react-native-community/cli-tools": 19.1.2 + "@react-native-community/cli-config": 20.0.0 + "@react-native-community/cli-platform-android": 20.0.0 + "@react-native-community/cli-platform-apple": 20.0.0 + "@react-native-community/cli-platform-ios": 20.0.0 + "@react-native-community/cli-tools": 20.0.0 chalk: ^4.1.2 command-exists: ^1.2.8 deepmerge: ^4.3.0 @@ -2670,66 +2735,66 @@ __metadata: semver: ^7.5.2 wcwidth: ^1.0.1 yaml: ^2.2.1 - checksum: 23359d27f625be8abaffdaa41a84639a5ba7374d79f81f2d24f18f844bb24b55b3a9f25039a88e9d368d4e4fccdea350e87089020ccab3b0bb89d3f0caa5c12a + checksum: aa80df1ebaf71741292608806ae408d506707e3c7e5894cf34c2470b1f0635fa4ef79dc653febcc2bad6dcddbc357f93a99706f758dc450a0a44f8b163df5227 languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli-platform-android@npm:19.1.2" +"@react-native-community/cli-platform-android@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-platform-android@npm:20.0.0" dependencies: - "@react-native-community/cli-config-android": 19.1.2 - "@react-native-community/cli-tools": 19.1.2 + "@react-native-community/cli-config-android": 20.0.0 + "@react-native-community/cli-tools": 20.0.0 chalk: ^4.1.2 execa: ^5.0.0 logkitty: ^0.7.1 - checksum: 1e072728bab4682c3582d99e2642ab4036cd8186ac4dd184c0232a4b1ffaa20056550b2113bd0131baaabd6676eb1775e01fc4365c817683b48a0d111cb144a7 + checksum: c619c5f871b90d49b06cb96630884d8e8439f56d43d9734401c77f062ba5312134049168a4754ecd55770b86a0a7708c8f2e52b06f058f443415a0b008932829 languageName: node linkType: hard -"@react-native-community/cli-platform-apple@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli-platform-apple@npm:19.1.2" +"@react-native-community/cli-platform-apple@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-platform-apple@npm:20.0.0" dependencies: - "@react-native-community/cli-config-apple": 19.1.2 - "@react-native-community/cli-tools": 19.1.2 + "@react-native-community/cli-config-apple": 20.0.0 + "@react-native-community/cli-tools": 20.0.0 chalk: ^4.1.2 execa: ^5.0.0 fast-xml-parser: ^4.4.1 - checksum: efe91f453082d8dd2f2d0ec65f31d48421e9504f07bbfb67a877b5a87dcf4db7ce9c0e1489fdd5ec57af40361fd1995c14031a4fa843556f513e212b908a0faf + checksum: 10c457a95b8bf69463dadd3a6d426550866f91cbd5de9a1f2c76e08098f37c3422e41edfb5fb1b1252dd4ff4ca4740bd71411d81213ddb93c0069426f8c63988 languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli-platform-ios@npm:19.1.2" +"@react-native-community/cli-platform-ios@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-platform-ios@npm:20.0.0" dependencies: - "@react-native-community/cli-platform-apple": 19.1.2 - checksum: 5eb06bfce45911b22e954007f3b3e3b146b9da1d628e9ab0047b6c650d49b5a45f9708af96b4749d193741e618280c51111100f6dbc8b9804ef55f1b3c737892 + "@react-native-community/cli-platform-apple": 20.0.0 + checksum: c7fc89332a7cb9fa71c1c5d4fe928d39b0514c74fdcc85251a7a35344f1f5e9e3b4cd23a85a70ce447dded6e6552a5edfa848cf07d8b26127a0c3b05ce3e1768 languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli-server-api@npm:19.1.2" +"@react-native-community/cli-server-api@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-server-api@npm:20.0.0" dependencies: - "@react-native-community/cli-tools": 19.1.2 + "@react-native-community/cli-tools": 20.0.0 body-parser: ^1.20.3 compression: ^1.7.1 connect: ^3.6.5 errorhandler: ^1.5.1 nocache: ^3.0.1 open: ^6.2.0 - pretty-format: ^26.6.2 + pretty-format: ^29.7.0 serve-static: ^1.13.1 ws: ^6.2.3 - checksum: 1a9aa785dcb9b2be3561e301409e68151e545d19e31cb55c4f43033dc10a89c28cf90f5123b88c3a743a17f3ecfaf9acc2ed39247e3435e99246871d2688fe33 + checksum: 60dfd1d0cb9f0026cd2b267ab57902a4ecc57513240230fd8263b683c6ad9356c6202595f4262fc2a07d23cafbdf7b9d4c95fa7fae25472f25c7b87905c13305 languageName: node linkType: hard -"@react-native-community/cli-tools@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli-tools@npm:19.1.2" +"@react-native-community/cli-tools@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-tools@npm:20.0.0" dependencies: "@vscode/sudo-prompt": ^9.0.0 appdirsjs: ^1.2.4 @@ -2741,29 +2806,29 @@ __metadata: ora: ^5.4.1 prompts: ^2.4.2 semver: ^7.5.2 - checksum: 60aaeb42299e99e030d9a607f4100869c7de9468931c0397b51474090f9359684fc04620bbac6ec4ce3c399bd1c649fdad02b474a52290bd2085efd341e2d11d + checksum: 6169f18e399a507e7f8b6fc8ddea113c0272b22b0af8cffdeb3f4ce77d61eaef97aff8aaede17c6501d470adaaf9e87411e1978e1be61202a98f53abe10ac224 languageName: node linkType: hard -"@react-native-community/cli-types@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli-types@npm:19.1.2" +"@react-native-community/cli-types@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-types@npm:20.0.0" dependencies: joi: ^17.2.1 - checksum: 5f996279892c680eddb60e4beb6e09261614581b0f7c9d501d33d24a9eda3c74c3ad6a8771311de8a34b3abb447a89d3496c220e9e73f1cf99e82b6616a544fa + checksum: b64b03ff09eb3952c37ba96544156f0b6ffa76e616361a48254e645f914beaa844943ff77ee1fba46445ef8b45f726109fc9ad249afb9d360602cb03db846368 languageName: node linkType: hard -"@react-native-community/cli@npm:19.1.2": - version: 19.1.2 - resolution: "@react-native-community/cli@npm:19.1.2" +"@react-native-community/cli@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli@npm:20.0.0" dependencies: - "@react-native-community/cli-clean": 19.1.2 - "@react-native-community/cli-config": 19.1.2 - "@react-native-community/cli-doctor": 19.1.2 - "@react-native-community/cli-server-api": 19.1.2 - "@react-native-community/cli-tools": 19.1.2 - "@react-native-community/cli-types": 19.1.2 + "@react-native-community/cli-clean": 20.0.0 + "@react-native-community/cli-config": 20.0.0 + "@react-native-community/cli-doctor": 20.0.0 + "@react-native-community/cli-server-api": 20.0.0 + "@react-native-community/cli-tools": 20.0.0 + "@react-native-community/cli-types": 20.0.0 chalk: ^4.1.2 commander: ^9.4.1 deepmerge: ^4.3.0 @@ -2775,30 +2840,30 @@ __metadata: semver: ^7.5.2 bin: rnc-cli: build/bin.js - checksum: dadfbcf16e1d4005da9ab2b2c1b3e0872133dbd59059e8942dd64cdc429574ab9d106706f387c41d93f553e08c06e329492bc146817038c8510450a4ae3e6aa6 + checksum: 70a48fef9a9b5c70c3c8cceae076ee25a791e57e20b956a63d24790d8c3a571a069f9114f731384e1cb14fa56721a82faec3a53095a8c4062a2584e2ee862542 languageName: node linkType: hard -"@react-native/assets-registry@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/assets-registry@npm:0.80.3" - checksum: cfd034da6b5747d01eea4633777813be984c8799536d087299430e8582ad6ea20c0b4e2b91dcd27aeea97edb63dc993ab35b0d9f596fc7248d01985d245b2a3e +"@react-native/assets-registry@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/assets-registry@npm:0.81.6" + checksum: a371b1d8508a324f9a534fe14af86a1d81c318264ca81979866520b247655c6ebe7a3ae2c1a520131894f2047173f0824c2fa22c2b80361d4cbbc57fb06ee2f2 languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/babel-plugin-codegen@npm:0.80.3" +"@react-native/babel-plugin-codegen@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/babel-plugin-codegen@npm:0.81.6" dependencies: "@babel/traverse": ^7.25.3 - "@react-native/codegen": 0.80.3 - checksum: 7a72ed6de809898570a918bbe995cdc471146fbca2ffc1a9c7d0dc3fab598bbd72050b982fdf3a2ed6e53aa06e4e55341d804e4cd2cc16c4420506f7498a0a21 + "@react-native/codegen": 0.81.6 + checksum: 6b7a68e3db575dc732fe6f6e1a23a3f7c15f755f7c9834a7b6b4cd846fc8fcbba136b0592eadf00cda5e0c574d272a07c3ccb06f9431ea7eac4ce1814d3d7115 languageName: node linkType: hard -"@react-native/babel-preset@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/babel-preset@npm:0.80.3" +"@react-native/babel-preset@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/babel-preset@npm:0.81.6" dependencies: "@babel/core": ^7.25.2 "@babel/plugin-proposal-export-default-from": ^7.24.7 @@ -2841,67 +2906,69 @@ __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.80.3 - babel-plugin-syntax-hermes-parser: 0.28.1 + "@react-native/babel-plugin-codegen": 0.81.6 + babel-plugin-syntax-hermes-parser: 0.29.1 babel-plugin-transform-flow-enums: ^0.0.2 react-refresh: ^0.14.0 peerDependencies: "@babel/core": "*" - checksum: a28a049d627ec70f7978cc16feedcdee488782a6b6f5eed8b9d3a5cfbbf1389136603ae68385a05958165bc43ac19fa2841feda192187edfebf4f6dd0be94c46 + checksum: ff35d409d1183013d28076ec82554c807ba8b07577baeefb1f2efbc2968b10d7b3885bd6690b929b0275c6ca3fd2e2e696195726a62a61f513abf326bb1af088 languageName: node linkType: hard -"@react-native/codegen@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/codegen@npm:0.80.3" +"@react-native/codegen@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/codegen@npm:0.81.6" dependencies: "@babel/core": ^7.25.2 "@babel/parser": ^7.25.3 glob: ^7.1.1 - hermes-parser: 0.28.1 + hermes-parser: 0.29.1 invariant: ^2.2.4 nullthrows: ^1.1.1 yargs: ^17.6.2 peerDependencies: "@babel/core": "*" - checksum: 8b1131d99d3af77251801a77a33b057b9c39afb9db12ea17804411fab1dbd8f85c1d2b980ad4e127d9b854758f03b36bb5b018f0b84a79aa42cdc45a56d1d50c + checksum: 0e987b6816b0bf09ebde8b04e0ca834fe72c0fde82d78546e1cb48388187c125457d0bac224cd8755642f307867f5cb45b4063ce05d9223d626b111214ba86c9 languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/community-cli-plugin@npm:0.80.3" +"@react-native/community-cli-plugin@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/community-cli-plugin@npm:0.81.6" dependencies: - "@react-native/dev-middleware": 0.80.3 - chalk: ^4.0.0 + "@react-native/dev-middleware": 0.81.6 debug: ^4.4.0 invariant: ^2.2.4 - metro: ^0.82.2 - metro-config: ^0.82.2 - metro-core: ^0.82.2 + metro: ^0.83.1 + metro-config: ^0.83.1 + metro-core: ^0.83.1 semver: ^7.1.3 peerDependencies: "@react-native-community/cli": "*" + "@react-native/metro-config": "*" peerDependenciesMeta: "@react-native-community/cli": optional: true - checksum: 059e984d3f27c63e9449da6f48bd8985df752a7e1f7bef3b3349b4b2da53cbee60e3fb137c0af61ff74ecca5f36152a379d367f1709880bb0952d5b905d6def0 + "@react-native/metro-config": + optional: true + checksum: 15de3772a840679baca0a982f04a5a8ae919044136f7445223744b95560bcfe9b04edb99d2eec86fb0fd7442330683b81fbaa7c5ab235d3636178817c26ab68b languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/debugger-frontend@npm:0.80.3" - checksum: ac59e32570efb8ff669ece7b39924c8386db761785b8fc893ee2623425f1e00698306621721e2052ec03ad555897726486d494720f3aab5511cb9b08da13e33a +"@react-native/debugger-frontend@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/debugger-frontend@npm:0.81.6" + checksum: 167581f649a522e788e6e1ba436fa4c05ac6949b47aaea2046ef140ae6d6b4038186d519b2eb35ba126e85a377045bd0231870e8731dc5c2b9afd9d36ab1de6e languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/dev-middleware@npm:0.80.3" +"@react-native/dev-middleware@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/dev-middleware@npm:0.81.6" dependencies: "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.80.3 + "@react-native/debugger-frontend": 0.81.6 chrome-launcher: ^0.15.2 chromium-edge-launcher: ^0.2.0 connect: ^3.6.5 @@ -2911,17 +2978,17 @@ __metadata: open: ^7.0.3 serve-static: ^1.16.2 ws: ^6.2.3 - checksum: f63a4c015043a8f02c471b31c61206fc362ac6f25567bcec8fa18df997f4b4a10f193d4476bbcc06946463ba9cd243b4d01db876ee1f4358ca10ecccdc84025f + checksum: a711f46a2ece338b19d0478254a85950124c930f48d02d8a46182049c53846dc64f9064b563476242c930dcb7313e9dfbda54659560badfa13d9d01102d094b5 languageName: node linkType: hard -"@react-native/eslint-config@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/eslint-config@npm:0.80.3" +"@react-native/eslint-config@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/eslint-config@npm:0.81.6" dependencies: "@babel/core": ^7.25.2 "@babel/eslint-parser": ^7.25.1 - "@react-native/eslint-plugin": 0.80.3 + "@react-native/eslint-plugin": 0.81.6 "@typescript-eslint/eslint-plugin": ^7.1.1 "@typescript-eslint/parser": ^7.1.1 eslint-config-prettier: ^8.5.0 @@ -2934,85 +3001,85 @@ __metadata: peerDependencies: eslint: ">=8" prettier: ">=2" - checksum: 1c80cdb98738f03136c56fb91eccfc7e210b4b45648648a4d84092b6584cf475a372e02ced1f2a0af0a1e49882cc8ea362d695bc0957df0b6a8b64268f81a32f + checksum: 6b898112940149d61747952962e192659d7487697111099cc05c6ad9728191f1294f8f0c0c16077fd0b87eb5f6f736cfffd4ec3ede2b33536e3b219675669712 languageName: node linkType: hard -"@react-native/eslint-plugin@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/eslint-plugin@npm:0.80.3" - checksum: 39ef55e0c8eee9fda4f91c67fd26d7a35c953dc1cff52705ea789e1364693c205022f2f6d3a86dbd2fb909b7ad880f85e32ad9a87e2dd2f9c3b0a115dd53b61a +"@react-native/eslint-plugin@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/eslint-plugin@npm:0.81.6" + checksum: d9f0f30032a094407cb17c3a648fb47e69fbb7d07417722163e7695b10d0975f6ed48653674ac2240145b44ac501b87a85cee63dcfc085cbc1d12b2721674bfd languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/gradle-plugin@npm:0.80.3" - checksum: 0677a0f2b2e0d2c4e3a38119a92fff62d9f9208f46afddd6de8587625fc1a4fab47dc5c173cc61432b3edaf087baf0d8fb3e083757666aea841940168911e5cd +"@react-native/gradle-plugin@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/gradle-plugin@npm:0.81.6" + checksum: ddc4c140f3a36cdf6a97ed554fe49fe8e203cf7dd59e7dea9f37dea2a98fc19a9808cebd00b54175fc6d1eb96bc402fd6de9acc70cdc5463d34be68e53707060 languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/js-polyfills@npm:0.80.3" - checksum: 45617c79793ed074e0b1efcc3ad821fd76ed319f007af8e30099dbba060a1afd0aeeee260802c5f4c5c140db35fd5640ac066e1669012b17d5793107587ee463 +"@react-native/js-polyfills@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/js-polyfills@npm:0.81.6" + checksum: 8b6787a08e1b8a13b11705c69cb98aee94daaf6b6d54aed8fbc5a68db4a8a4aec709c7a546fb22fa54ef501d0030450f64a5ef48af3fdaeecf1adcfa918b0df9 languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/metro-babel-transformer@npm:0.80.3" +"@react-native/metro-babel-transformer@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/metro-babel-transformer@npm:0.81.6" dependencies: "@babel/core": ^7.25.2 - "@react-native/babel-preset": 0.80.3 - hermes-parser: 0.28.1 + "@react-native/babel-preset": 0.81.6 + hermes-parser: 0.29.1 nullthrows: ^1.1.1 peerDependencies: "@babel/core": "*" - checksum: 6007282b11fcdaf8a8e0d823fb71717c11fc1617c3a91a8edf2a16f7f1457b28e073d6374bf6a516026095937975b1ab711cc4554f617ea12764136e4bc3d832 + checksum: 997d11e0d9b5a3e226ea8f07a2811d8bb5ebde1aacacac80e3be1d985193296e9f96158170b4d5f38d6e300dc3b1895ebfac37e95946990020ef1d3ed9fa6ea3 languageName: node linkType: hard -"@react-native/metro-config@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/metro-config@npm:0.80.3" +"@react-native/metro-config@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/metro-config@npm:0.81.6" dependencies: - "@react-native/js-polyfills": 0.80.3 - "@react-native/metro-babel-transformer": 0.80.3 - metro-config: ^0.82.2 - metro-runtime: ^0.82.2 - checksum: c8db7d39291b0c300ab17bd3c24773dffd8591ccf85aa497b8680b77a4a025354b7568ac13936252d327434f856190922a8a7535fb27f0d0c48ce5e7e1dc406a + "@react-native/js-polyfills": 0.81.6 + "@react-native/metro-babel-transformer": 0.81.6 + metro-config: ^0.83.1 + metro-runtime: ^0.83.1 + checksum: 0e39fa974a61f51172f6bae6b5bc90cbefb104685acbbd68e7886bc7687fda11d533ddbec22538e2a4981b626cbc710b34ad6e0a49b866f8d870c22b926fcb9b languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/normalize-colors@npm:0.80.3" - checksum: 2735f461ab40acffacdbd5ca90ae7ec0823179c4c89eec2179fea62ee11b15244ba7642fb29edec30ef25d61b6ade229b5560332fa9c12447cc5ba684b389023 +"@react-native/normalize-colors@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/normalize-colors@npm:0.81.6" + checksum: 713fc7c463ee80feac665abd5851aa9a67665a0245b6993cfd9d65e8559ee67655644921f04304cf306c923878075ea433a0258c9f686b487967d4da457df2a9 languageName: node linkType: hard -"@react-native/typescript-config@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/typescript-config@npm:0.80.3" - checksum: 7f23ad56346a2f6c1d0af6861666ebc8f6f02d2998a78f0fee80146bc3f8baab4afb31fe0b5af05359fe625074355f7ba1dab2e08df8aa7273ef2dd9ad3acf1d +"@react-native/typescript-config@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/typescript-config@npm:0.81.6" + checksum: bfde8a72136526bb3a95f0a442feb53ed60a0ed698df42d7e6551d52eb19d11553e7b39cbc82f16e95b5f83b3b28fb59603161740be2dd01420a1520fee95fdf languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.80.3": - version: 0.80.3 - resolution: "@react-native/virtualized-lists@npm:0.80.3" +"@react-native/virtualized-lists@npm:0.81.6": + version: 0.81.6 + resolution: "@react-native/virtualized-lists@npm:0.81.6" dependencies: invariant: ^2.2.4 nullthrows: ^1.1.1 peerDependencies: - "@types/react": ^19.0.0 + "@types/react": ^19.1.4 react: "*" react-native: "*" peerDependenciesMeta: "@types/react": optional: true - checksum: f1b666ab5fc7dbce81d5d659c69cf51f79b09d2fd0a3ed4acdbfc7c454296b6887efcd01f4a4c22bf3ad721909d85ae473fd6df6489a0cb1a05b1a1954c81b19 + checksum: bb6c11149cb253ac7767839540ba1d70a0d03aa44ccdf6a1547e84a531cf80342b4d678ec9aeed7ce096f14ebfb245b25d5d9ca78c009dfed58205fd43fc0ddc languageName: node linkType: hard @@ -3442,7 +3509,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^19.1.0": +"@types/react@npm:^19.1.4": version: 19.2.14 resolution: "@types/react@npm:19.2.14" dependencies: @@ -3479,15 +3546,6 @@ __metadata: languageName: node linkType: hard -"@types/yargs@npm:^15.0.0": - version: 15.0.19 - resolution: "@types/yargs@npm:15.0.19" - dependencies: - "@types/yargs-parser": "*" - checksum: 6a509db36304825674f4f00300323dce2b4d850e75819c3db87e9e9f213ac2c4c6ed3247a3e4eed6e8e45b3f191b133a356d3391dd694d9ea27a0507d914ef4c - languageName: node - linkType: hard - "@types/yargs@npm:^17.0.8": version: 17.0.33 resolution: "@types/yargs@npm:17.0.33" @@ -3931,6 +3989,16 @@ __metadata: languageName: node linkType: hard +"accepts@npm:^2.0.0": + version: 2.0.0 + resolution: "accepts@npm:2.0.0" + dependencies: + mime-types: ^3.0.0 + negotiator: ^1.0.0 + checksum: 49fe6c050cb6f6ff4e771b4d88324fca4d3127865f2473872e818dca127d809ba3aa8fdfc7acb51dd3c5bade7311ca6b8cfff7015ea6db2f7eb9c8444d223a4f + languageName: node + linkType: hard + "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -4442,7 +4510,16 @@ __metadata: languageName: node linkType: hard -"babel-plugin-syntax-hermes-parser@npm:0.28.1, babel-plugin-syntax-hermes-parser@npm:^0.28.0": +"babel-plugin-syntax-hermes-parser@npm:0.29.1": + version: 0.29.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.29.1" + dependencies: + hermes-parser: 0.29.1 + checksum: bbb1eed253b4255f8c572e1cb2664868d9aa2238363e48a2d1e95e952b2c1d59e86a7051f44956407484df2c9bc6623608740eec10e2095946d241b795262cec + languageName: node + linkType: hard + +"babel-plugin-syntax-hermes-parser@npm:^0.28.0": version: 0.28.1 resolution: "babel-plugin-syntax-hermes-parser@npm:0.28.1" dependencies: @@ -7400,6 +7477,13 @@ __metadata: languageName: node linkType: hard +"hermes-estree@npm:0.35.0": + version: 0.35.0 + resolution: "hermes-estree@npm:0.35.0" + checksum: da25f2f5a9aedf1ca0844a64fad21aa3262f4998ee584da4237408d8bc08562ff6a3923b1bf52aa85b9a9c5b2b29ce54d00c61fe9f2424dae9e67261441d73ac + languageName: node + linkType: hard + "hermes-parser@npm:0.23.1": version: 0.23.1 resolution: "hermes-parser@npm:0.23.1" @@ -7427,6 +7511,15 @@ __metadata: languageName: node linkType: hard +"hermes-parser@npm:0.35.0": + version: 0.35.0 + resolution: "hermes-parser@npm:0.35.0" + dependencies: + hermes-estree: 0.35.0 + checksum: 097572045fc574afc7a1d35ab3304651605408770371f8eb74ef7a971b48b0e3cf82e45156fa431ba60bf5ee196100c69d4fa107e6fc2d4e18757aa0a1ae0382 + languageName: node + linkType: hard + "hoist-non-react-statics@npm:^3.3.0": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" @@ -9533,15 +9626,16 @@ __metadata: languageName: node linkType: hard -"metro-babel-transformer@npm:0.82.5": - version: 0.82.5 - resolution: "metro-babel-transformer@npm:0.82.5" +"metro-babel-transformer@npm:0.83.7": + version: 0.83.7 + resolution: "metro-babel-transformer@npm:0.83.7" dependencies: "@babel/core": ^7.25.2 flow-enums-runtime: ^0.0.6 - hermes-parser: 0.29.1 + hermes-parser: 0.35.0 + metro-cache-key: 0.83.7 nullthrows: ^1.1.1 - checksum: 3a3a8a9404c74290b5687290236e242f7b4edb3bc25cad6afe2424ddab8632a657b55ccbbd49dfa9b26078b5f3184f00930b8aa8b50d7c922247fd7d63ada395 + checksum: 49a1b289b16d429b11588204abdf9e42f450109f49bbcc1e8dad09fdfd0de627446104df9154f84313afff9a44d1b897bc4f640cd2a29a7655d5e5781d96044d languageName: node linkType: hard @@ -9554,12 +9648,12 @@ __metadata: languageName: node linkType: hard -"metro-cache-key@npm:0.82.5": - version: 0.82.5 - resolution: "metro-cache-key@npm:0.82.5" +"metro-cache-key@npm:0.83.7": + version: 0.83.7 + resolution: "metro-cache-key@npm:0.83.7" dependencies: flow-enums-runtime: ^0.0.6 - checksum: d5dcd86249905c7adad0375111a4bef395a5021df251a463f840eb21bf7b34f4e581ae919a88fb612a63c48a5f379ce50f104a576bd71e052693d89ae6a0d9f0 + checksum: bc0110eb61ce5903dae3992528f6933146889883d0999f8f01464a3b5bdd255dffa6a562bb921738004194cdf55d175b96cfaffdc17a5df6468c629b22ff7286 languageName: node linkType: hard @@ -9574,15 +9668,15 @@ __metadata: languageName: node linkType: hard -"metro-cache@npm:0.82.5": - version: 0.82.5 - resolution: "metro-cache@npm:0.82.5" +"metro-cache@npm:0.83.7": + version: 0.83.7 + resolution: "metro-cache@npm:0.83.7" dependencies: exponential-backoff: ^3.1.1 flow-enums-runtime: ^0.0.6 https-proxy-agent: ^7.0.5 - metro-core: 0.82.5 - checksum: d0d193845063b1e1241a770d928630c68418b6bff2a25d7d14e71b88e905c640b65817ac069abf807b6e7c6db5470b8c52fe6236b3850ae55ce68e910747eb63 + metro-core: 0.83.7 + checksum: a3205f1bce14b68346e276ae196ab3baf46abf36f1c8ec2cd072c35fa5a2cd0f3115597929bb9c5d92d15055324d17ae9f4bdbf3df5d774357854a76f2f121f2 languageName: node linkType: hard @@ -9602,19 +9696,19 @@ __metadata: languageName: node linkType: hard -"metro-config@npm:0.82.5, metro-config@npm:^0.82.2": - version: 0.82.5 - resolution: "metro-config@npm:0.82.5" +"metro-config@npm:0.83.7, metro-config@npm:^0.83.1": + version: 0.83.7 + resolution: "metro-config@npm:0.83.7" dependencies: connect: ^3.6.5 - cosmiconfig: ^5.0.5 flow-enums-runtime: ^0.0.6 jest-validate: ^29.7.0 - metro: 0.82.5 - metro-cache: 0.82.5 - metro-core: 0.82.5 - metro-runtime: 0.82.5 - checksum: 641c88d795394e551fffe238670ad09f3c8637b45da767ee95c5b401e11b65d5a4e86694fb68bd13fde1fc148d9c4f738439a0a427fe5325bd36aa19ea7a5fc9 + metro: 0.83.7 + metro-cache: 0.83.7 + metro-core: 0.83.7 + metro-runtime: 0.83.7 + yaml: ^2.6.1 + checksum: 948e4549ae46dcd502ff92aa924a8619e9818483d83cb40d38e087237016a365a8855d5bdea97a6059fa3ba664085fe031bb9bd9dd7f61e74ac77f90f6fde59a languageName: node linkType: hard @@ -9629,14 +9723,14 @@ __metadata: languageName: node linkType: hard -"metro-core@npm:0.82.5, metro-core@npm:^0.82.2": - version: 0.82.5 - resolution: "metro-core@npm:0.82.5" +"metro-core@npm:0.83.7, metro-core@npm:^0.83.1": + version: 0.83.7 + resolution: "metro-core@npm:0.83.7" dependencies: flow-enums-runtime: ^0.0.6 lodash.throttle: ^4.1.1 - metro-resolver: 0.82.5 - checksum: f6f0c91240ad4ff2ebd61e5cb23f433309fc82e8042e240da1347f8edf61cc6b893bd176cabecad0dc91d214dd315d501af21cb518459aeb0ed613881619b583 + metro-resolver: 0.83.7 + checksum: 0148326919fc782c64e355e035590272b868e43b145d82db4254f1fe94157b13e333040dd10fb5419b1abf1ade6f50bc61c11f821efbe04bd0a61cb444b4072c languageName: node linkType: hard @@ -9663,9 +9757,9 @@ __metadata: languageName: node linkType: hard -"metro-file-map@npm:0.82.5": - version: 0.82.5 - resolution: "metro-file-map@npm:0.82.5" +"metro-file-map@npm:0.83.7": + version: 0.83.7 + resolution: "metro-file-map@npm:0.83.7" dependencies: debug: ^4.4.0 fb-watchman: ^2.0.0 @@ -9676,7 +9770,7 @@ __metadata: micromatch: ^4.0.4 nullthrows: ^1.1.1 walker: ^1.0.7 - checksum: 46bda99f0ae892071c1b48b09f884f017f48d564c30b2a1f858f6fae1c6c1848bbbce20f66a5be086d7e0acfec3d8c1ddbf69699aaf2829f10954ae39d8a27d7 + checksum: d28fe621c96f6bca0585d2c62a031fd635700245483cea0b64a8893befeea26f8ae6588639b8e205a384f19606932986128a39d6180452275c77697318608237 languageName: node linkType: hard @@ -9690,13 +9784,13 @@ __metadata: languageName: node linkType: hard -"metro-minify-terser@npm:0.82.5": - version: 0.82.5 - resolution: "metro-minify-terser@npm:0.82.5" +"metro-minify-terser@npm:0.83.7": + version: 0.83.7 + resolution: "metro-minify-terser@npm:0.83.7" dependencies: flow-enums-runtime: ^0.0.6 terser: ^5.15.0 - checksum: 754c150f0928460e1254e90e4e11bd87e069a0b286d21906758cb71fb8b4ec50dc8f78337bf8a9f8a28ddbd34230f5c66dad0fecf18dbe49715bf1300e5318c2 + checksum: 195bc658adbd4b49e13e4df6c00bbabd868a9449def0ee8d87d2706868e10731c337697130381a07e4477bb67f2d2f16dea2f369a1bdb80f78e15a0c4abab70b languageName: node linkType: hard @@ -9709,12 +9803,12 @@ __metadata: languageName: node linkType: hard -"metro-resolver@npm:0.82.5": - version: 0.82.5 - resolution: "metro-resolver@npm:0.82.5" +"metro-resolver@npm:0.83.7": + version: 0.83.7 + resolution: "metro-resolver@npm:0.83.7" dependencies: flow-enums-runtime: ^0.0.6 - checksum: d1f7b57687c9cbb100114474689fee2fcfb86428a1228499b28391d16378573ac0f07c750874a2d75eabe237d67eb32a5c947bbbd70cd851885f1f6b13992472 + checksum: b8565cd3d049dcb4ac5fd69830a63998a8239bb736078426415041d77070aff127ca73f34df96fd9a32d814e53c9fbc69ed28528aa105350b77ad1af0677cb65 languageName: node linkType: hard @@ -9728,13 +9822,13 @@ __metadata: languageName: node linkType: hard -"metro-runtime@npm:0.82.5, metro-runtime@npm:^0.82.2": - version: 0.82.5 - resolution: "metro-runtime@npm:0.82.5" +"metro-runtime@npm:0.83.7, metro-runtime@npm:^0.83.1": + version: 0.83.7 + resolution: "metro-runtime@npm:0.83.7" dependencies: "@babel/runtime": ^7.25.0 flow-enums-runtime: ^0.0.6 - checksum: 931c2b581ac1527899cfec6b9c4bbbac75545c78bf192abd8efddd4dbff481b052513857c8544507e7900e7c06f08a8da75e16c864cd86ec3a8c3d6c05738dae + checksum: 2f846513d3575487635fd2087a2426317224d87440a6c60f1d749320740d296acd85bb38739ef5880019897ad9daf5645f692ce5276cac71e32f686503228a04 languageName: node linkType: hard @@ -9755,21 +9849,20 @@ __metadata: languageName: node linkType: hard -"metro-source-map@npm:0.82.5, metro-source-map@npm:^0.82.2": - version: 0.82.5 - resolution: "metro-source-map@npm:0.82.5" +"metro-source-map@npm:0.83.7, metro-source-map@npm:^0.83.1": + version: 0.83.7 + resolution: "metro-source-map@npm:0.83.7" dependencies: - "@babel/traverse": ^7.25.3 - "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" - "@babel/types": ^7.25.2 + "@babel/traverse": ^7.29.0 + "@babel/types": ^7.29.0 flow-enums-runtime: ^0.0.6 invariant: ^2.2.4 - metro-symbolicate: 0.82.5 + metro-symbolicate: 0.83.7 nullthrows: ^1.1.1 - ob1: 0.82.5 + ob1: 0.83.7 source-map: ^0.5.6 vlq: ^1.0.0 - checksum: 1bb53abe636524593207c578bfd0e15f47f4e15db919793a49b89359726d043cd69107244b6e1c2c8194983b8df7faa8b56ffa73a5f81c0fefc0cc1727907177 + checksum: ece389f731d12a3cf94761d4079bc8152d252337c49461873bf72fdbad5e8e9f047a971031ddaee0434b20c4d6ebe26170efb2628cbd937e5e780321cee869a8 languageName: node linkType: hard @@ -9790,19 +9883,19 @@ __metadata: languageName: node linkType: hard -"metro-symbolicate@npm:0.82.5": - version: 0.82.5 - resolution: "metro-symbolicate@npm:0.82.5" +"metro-symbolicate@npm:0.83.7": + version: 0.83.7 + resolution: "metro-symbolicate@npm:0.83.7" dependencies: flow-enums-runtime: ^0.0.6 invariant: ^2.2.4 - metro-source-map: 0.82.5 + metro-source-map: 0.83.7 nullthrows: ^1.1.1 source-map: ^0.5.6 vlq: ^1.0.0 bin: metro-symbolicate: src/index.js - checksum: ae91be09cca42567ea3c2bee695e0db42512fc8bf28cf2aa281ae8043edc3bbddcadd0793b401b6bcb7e0cc1df1428647662462a8f515ab6c47420421b1e96f8 + checksum: 54b715c3cb7423faab0fd9f0bb6921b34c5c5efe32740fd3ec25e5c269972067d879c7c907880bedd4b90d99f48ba00b613261044f93eb7cd8c0c653b381e477 languageName: node linkType: hard @@ -9820,17 +9913,17 @@ __metadata: languageName: node linkType: hard -"metro-transform-plugins@npm:0.82.5": - version: 0.82.5 - resolution: "metro-transform-plugins@npm:0.82.5" +"metro-transform-plugins@npm:0.83.7": + version: 0.83.7 + resolution: "metro-transform-plugins@npm:0.83.7" dependencies: "@babel/core": ^7.25.2 - "@babel/generator": ^7.25.0 - "@babel/template": ^7.25.0 - "@babel/traverse": ^7.25.3 + "@babel/generator": ^7.29.1 + "@babel/template": ^7.28.6 + "@babel/traverse": ^7.29.0 flow-enums-runtime: ^0.0.6 nullthrows: ^1.1.1 - checksum: 891838d529df2c3170614de9e55025d37fb799a8d444d9e898fc203496ec33620ad8066e0ab06244b7abb806ffdae4728b84047d0d01bceee877ea5d69240d04 + checksum: 2e98e550af93b50da8bbb0b382fb8e85113942df56f8befe9b3c9339645fc5f9a62c192de30f96aef3b779d274a65d3b31e0599d98db2f86bead7e0e4b2e7764 languageName: node linkType: hard @@ -9855,24 +9948,24 @@ __metadata: languageName: node linkType: hard -"metro-transform-worker@npm:0.82.5": - version: 0.82.5 - resolution: "metro-transform-worker@npm:0.82.5" +"metro-transform-worker@npm:0.83.7": + version: 0.83.7 + resolution: "metro-transform-worker@npm:0.83.7" dependencies: "@babel/core": ^7.25.2 - "@babel/generator": ^7.25.0 - "@babel/parser": ^7.25.3 - "@babel/types": ^7.25.2 + "@babel/generator": ^7.29.1 + "@babel/parser": ^7.29.0 + "@babel/types": ^7.29.0 flow-enums-runtime: ^0.0.6 - metro: 0.82.5 - metro-babel-transformer: 0.82.5 - metro-cache: 0.82.5 - metro-cache-key: 0.82.5 - metro-minify-terser: 0.82.5 - metro-source-map: 0.82.5 - metro-transform-plugins: 0.82.5 + metro: 0.83.7 + metro-babel-transformer: 0.83.7 + metro-cache: 0.83.7 + metro-cache-key: 0.83.7 + metro-minify-terser: 0.83.7 + metro-source-map: 0.83.7 + metro-transform-plugins: 0.83.7 nullthrows: ^1.1.1 - checksum: 653868f5fc525ad5b36181e7d1b3bb893c49ce6647791c21b585dd29cccc2f00e68d66b16e00eeb385fcb0c5f205a713aba0fe57971b1ab2bf150938cb820aaa + checksum: 1a65db6bf8efacb3bf28f06a4e14cf886048a12aaea666af3d179060c0ea70fd64f5a9c942197248ddd1c7f4582e32e66f43112df19fc3130c9ca500dc37ca8f languageName: node linkType: hard @@ -9928,44 +10021,43 @@ __metadata: languageName: node linkType: hard -"metro@npm:0.82.5, metro@npm:^0.82.2": - version: 0.82.5 - resolution: "metro@npm:0.82.5" +"metro@npm:0.83.7, metro@npm:^0.83.1": + version: 0.83.7 + resolution: "metro@npm:0.83.7" dependencies: - "@babel/code-frame": ^7.24.7 + "@babel/code-frame": ^7.29.0 "@babel/core": ^7.25.2 - "@babel/generator": ^7.25.0 - "@babel/parser": ^7.25.3 - "@babel/template": ^7.25.0 - "@babel/traverse": ^7.25.3 - "@babel/types": ^7.25.2 - accepts: ^1.3.7 - chalk: ^4.0.0 + "@babel/generator": ^7.29.1 + "@babel/parser": ^7.29.0 + "@babel/template": ^7.28.6 + "@babel/traverse": ^7.29.0 + "@babel/types": ^7.29.0 + accepts: ^2.0.0 ci-info: ^2.0.0 connect: ^3.6.5 debug: ^4.4.0 error-stack-parser: ^2.0.6 flow-enums-runtime: ^0.0.6 graceful-fs: ^4.2.4 - hermes-parser: 0.29.1 + hermes-parser: 0.35.0 image-size: ^1.0.2 invariant: ^2.2.4 jest-worker: ^29.7.0 jsc-safe-url: ^0.2.2 lodash.throttle: ^4.1.1 - metro-babel-transformer: 0.82.5 - metro-cache: 0.82.5 - metro-cache-key: 0.82.5 - metro-config: 0.82.5 - metro-core: 0.82.5 - metro-file-map: 0.82.5 - metro-resolver: 0.82.5 - metro-runtime: 0.82.5 - metro-source-map: 0.82.5 - metro-symbolicate: 0.82.5 - metro-transform-plugins: 0.82.5 - metro-transform-worker: 0.82.5 - mime-types: ^2.1.27 + metro-babel-transformer: 0.83.7 + metro-cache: 0.83.7 + metro-cache-key: 0.83.7 + metro-config: 0.83.7 + metro-core: 0.83.7 + metro-file-map: 0.83.7 + metro-resolver: 0.83.7 + metro-runtime: 0.83.7 + metro-source-map: 0.83.7 + metro-symbolicate: 0.83.7 + metro-transform-plugins: 0.83.7 + metro-transform-worker: 0.83.7 + mime-types: ^3.0.1 nullthrows: ^1.1.1 serialize-error: ^2.1.0 source-map: ^0.5.6 @@ -9974,7 +10066,7 @@ __metadata: yargs: ^17.6.2 bin: metro: src/cli.js - checksum: 391411e1be9463f4d52e804f0a9680e59be1cfc5c76ca890f3a9e9c014561da65bbf6e3ccc44f7f52601add064b3b70862b3813c963384a0df2218a345a304e5 + checksum: ee138b9b4d213f4e55892ad1481f68abad0d828891916e293b97e16ef16dcd49b419614551a9af5ab8c77965cd0ff58bc5662bf04dcdad140fe2a99e95fdbf10 languageName: node linkType: hard @@ -9995,7 +10087,7 @@ __metadata: languageName: node linkType: hard -"mime-db@npm:>= 1.43.0 < 2": +"mime-db@npm:>= 1.43.0 < 2, mime-db@npm:^1.54.0": version: 1.54.0 resolution: "mime-db@npm:1.54.0" checksum: e99aaf2f23f5bd607deb08c83faba5dd25cf2fec90a7cc5b92d8260867ee08dab65312e1a589e60093dc7796d41e5fae013268418482f1db4c7d52d0a0960ac9 @@ -10011,6 +10103,15 @@ __metadata: languageName: node linkType: hard +"mime-types@npm:^3.0.0, mime-types@npm:^3.0.1": + version: 3.0.2 + resolution: "mime-types@npm:3.0.2" + dependencies: + mime-db: ^1.54.0 + checksum: 70b74794f408419e4b6a8e3c93ccbed79b6a6053973a3957c5cc04ff4ad8d259f0267da179e3ecae34c3edfb4bfd7528db23a101e32d21ad8e196178c8b7b75a + languageName: node + linkType: hard + "mime@npm:1.6.0": version: 1.6.0 resolution: "mime@npm:1.6.0" @@ -10423,12 +10524,12 @@ __metadata: languageName: node linkType: hard -"ob1@npm:0.82.5": - version: 0.82.5 - resolution: "ob1@npm:0.82.5" +"ob1@npm:0.83.7": + version: 0.83.7 + resolution: "ob1@npm:0.83.7" dependencies: flow-enums-runtime: ^0.0.6 - checksum: 3faa161e5b5307188b6bbbf7e21727b1e434b8f6c31c51386808b2efd5e7238cf85a7ce71416d9a3f073625afb5a2212f80ec267996dc88fe086944adbb525d9 + checksum: ae366176de833457e77db78b60f2c514550f16eb53a08f5c53bc660d0e5d3126d782107d71b77a49d3bfdc8b1c614320510efea5318864e6ed49d915f7ef4b89 languageName: node linkType: hard @@ -11068,18 +11169,6 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^26.6.2": - version: 26.6.2 - resolution: "pretty-format@npm:26.6.2" - dependencies: - "@jest/types": ^26.6.2 - ansi-regex: ^5.0.0 - ansi-styles: ^4.0.0 - react-is: ^17.0.1 - checksum: e3b808404d7e1519f0df1aa1f25cee0054ab475775c6b2b8c5568ff23194a92d54bf93274139b6f584ca70fd773be4eaa754b0e03f12bb0a8d1426b07f079976 - languageName: node - linkType: hard - "pretty-format@npm:^29.0.0, pretty-format@npm:^29.0.3, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" @@ -11299,7 +11388,7 @@ __metadata: languageName: node linkType: hard -"react-devtools-core@npm:^6.1.1": +"react-devtools-core@npm:^6.1.5": version: 6.1.5 resolution: "react-devtools-core@npm:6.1.5" dependencies: @@ -11325,13 +11414,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^17.0.1": - version: 17.0.2 - resolution: "react-is@npm:17.0.2" - checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 - languageName: node - linkType: hard - "react-is@npm:^18.0.0, react-is@npm:^18.3.1": version: 18.3.1 resolution: "react-is@npm:18.3.1" @@ -11346,6 +11428,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^19.1.4": + version: 19.2.5 + resolution: "react-is@npm:19.2.5" + checksum: 303f022cdec5e3dee3c0ad731ed54b3db41b8aa8ef9503d37904a7acb404dcc656049b19119d37af4d2526a6921c7ad1675b8b3da76402664af56f8e198fd38b + languageName: node + linkType: hard + "react-native-builder-bob@npm:^0.30.2": version: 0.30.3 resolution: "react-native-builder-bob@npm:0.30.3" @@ -11481,37 +11570,36 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.80.3": - version: 0.80.3 - resolution: "react-native@npm:0.80.3" +"react-native@npm:0.81.6": + version: 0.81.6 + resolution: "react-native@npm:0.81.6" dependencies: "@jest/create-cache-key-function": ^29.7.0 - "@react-native/assets-registry": 0.80.3 - "@react-native/codegen": 0.80.3 - "@react-native/community-cli-plugin": 0.80.3 - "@react-native/gradle-plugin": 0.80.3 - "@react-native/js-polyfills": 0.80.3 - "@react-native/normalize-colors": 0.80.3 - "@react-native/virtualized-lists": 0.80.3 + "@react-native/assets-registry": 0.81.6 + "@react-native/codegen": 0.81.6 + "@react-native/community-cli-plugin": 0.81.6 + "@react-native/gradle-plugin": 0.81.6 + "@react-native/js-polyfills": 0.81.6 + "@react-native/normalize-colors": 0.81.6 + "@react-native/virtualized-lists": 0.81.6 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.28.1 + babel-plugin-syntax-hermes-parser: 0.29.1 base64-js: ^1.5.1 - chalk: ^4.0.0 commander: ^12.0.0 flow-enums-runtime: ^0.0.6 glob: ^7.1.1 invariant: ^2.2.4 jest-environment-node: ^29.7.0 memoize-one: ^5.0.0 - metro-runtime: ^0.82.2 - metro-source-map: ^0.82.2 + metro-runtime: ^0.83.1 + metro-source-map: ^0.83.1 nullthrows: ^1.1.1 pretty-format: ^29.7.0 promise: ^8.3.0 - react-devtools-core: ^6.1.1 + react-devtools-core: ^6.1.5 react-refresh: ^0.14.0 regenerator-runtime: ^0.13.2 scheduler: 0.26.0 @@ -11521,14 +11609,14 @@ __metadata: ws: ^6.2.3 yargs: ^17.6.2 peerDependencies: - "@types/react": ^19.1.0 - react: ^19.1.0 + "@types/react": ^19.1.4 + react: ^19.1.4 peerDependenciesMeta: "@types/react": optional: true bin: react-native: cli.js - checksum: b1658efd61a93e11c3dd90484494906f0e47e196eddc02d588009de28e842e52fc25b6a0ee070796b5613875e29e5021449ffd45bebbf97f88b409a2e84d4e65 + checksum: f786bfb952b6e6100c0ed9966e0f289d1d4a9c843d3ceb764ec38cbe1f55c5b9f1fce75527d95c082b4565d0b2c584697df227a8c115139456eb561280ccf7c1 languageName: node linkType: hard @@ -11539,22 +11627,22 @@ __metadata: languageName: node linkType: hard -"react-test-renderer@npm:19.1.0": - version: 19.1.0 - resolution: "react-test-renderer@npm:19.1.0" +"react-test-renderer@npm:19.1.4": + version: 19.1.4 + resolution: "react-test-renderer@npm:19.1.4" dependencies: - react-is: ^19.1.0 + react-is: ^19.1.4 scheduler: ^0.26.0 peerDependencies: - react: ^19.1.0 - checksum: e060239f8fbfbe54c2fa0e1d7a9eb1ee77787b0b29fd75ba6170dc22cd637c3a9052a82285db6be5a269309a65b8e8c40ddc8103620fbe1652cce693fd608acc + react: ^19.1.4 + checksum: 03f369edf8fc1322d543b2e50aa31824c0802e916ffad5cd7f7434cd2d4a78cbd2f7430d60b7a80f8345df114b5cfafeb2d87e4736812392f823d4d84aee870c languageName: node linkType: hard -"react@npm:19.1.0": - version: 19.1.0 - resolution: "react@npm:19.1.0" - checksum: c0905f8cfb878b0543a5522727e5ed79c67c8111dc16ceee135b7fe19dce77b2c1c19293513061a8934e721292bfc1517e0487e262d1906f306bdf95fa54d02f +"react@npm:19.1.4": + version: 19.1.4 + resolution: "react@npm:19.1.4" + checksum: 6b4fb102b9723df56fc5d30a46c9f9ed9435422c7df4eb55617d2fa7eaf9d527ee63f827b261608fad5946e4d88fb708240bd9fe01f08d62851ec090b4233462 languageName: node linkType: hard @@ -13799,6 +13887,15 @@ __metadata: languageName: node linkType: hard +"yaml@npm:^2.6.1": + version: 2.8.4 + resolution: "yaml@npm:2.8.4" + bin: + yaml: bin.mjs + checksum: 04658713380cecf0b2c13fce255a5ea39c694e4b38a3e8416834e1dc84b70e4cebe0f3d8cbaa5f14901f581b904739b977b0fb6d04aa2e0e0ac95857e2ac37f0 + languageName: node + linkType: hard + "yargs-parser@npm:21.1.1, yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" From c645a1776f1862b11a0d4396c7014cbd7fbb6216 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Tue, 5 May 2026 18:41:53 -0700 Subject: [PATCH 10/13] chore: update packages to the correct ones for rn version --- example/package.json | 6 +++--- package.json | 6 +++--- yarn.lock | 43 ++++++++++++++++++++++--------------------- 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/example/package.json b/example/package.json index f424e224c..bf524b19b 100644 --- a/example/package.json +++ b/example/package.json @@ -16,9 +16,9 @@ "@react-navigation/stack": "^7.4.2", "react": "19.1.4", "react-native": "0.81.6", - "react-native-gesture-handler": "^2.26.0", - "react-native-safe-area-context": "^5.5.2", - "react-native-screens": ">=4.14.0 <4.19.0", + "react-native-gesture-handler": "^2.28.0", + "react-native-safe-area-context": "^5.6.0", + "react-native-screens": ">=4.19.0 <4.25.0", "react-native-webview": "^13.14.1" }, "devDependencies": { diff --git a/package.json b/package.json index a38ba04d0..7d745e049 100644 --- a/package.json +++ b/package.json @@ -96,9 +96,9 @@ "react": "19.1.4", "react-native": "0.81.6", "react-native-builder-bob": "^0.40.4", - "react-native-gesture-handler": "^2.26.0", - "react-native-safe-area-context": "^5.4.0", - "react-native-screens": ">=4.14.0 <4.19.0", + "react-native-gesture-handler": "^2.28.0", + "react-native-safe-area-context": "^5.6.0", + "react-native-screens": ">=4.19.0 <4.25.0", "react-native-webview": "^13.14.1", "react-test-renderer": "19.1.4", "release-it": "^17.10.0", diff --git a/yarn.lock b/yarn.lock index 351574901..63ec5189b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2043,9 +2043,9 @@ __metadata: react-native: 0.81.6 react-native-builder-bob: ^0.30.2 react-native-dotenv: ^3.4.11 - react-native-gesture-handler: ^2.26.0 - react-native-safe-area-context: ^5.4.0 - react-native-screens: ">=4.14.0 <4.19.0" + react-native-gesture-handler: ^2.28.0 + react-native-safe-area-context: ^5.6.0 + react-native-screens: ">=4.19.0 <4.25.0" react-native-webview: ^13.14.1 react-test-renderer: 19.1.4 languageName: unknown @@ -2084,9 +2084,9 @@ __metadata: react: 19.1.4 react-native: 0.81.6 react-native-builder-bob: ^0.40.4 - react-native-gesture-handler: ^2.26.0 - react-native-safe-area-context: ^5.4.0 - react-native-screens: ">=4.14.0 <4.19.0" + react-native-gesture-handler: ^2.28.0 + react-native-safe-area-context: ^5.6.0 + react-native-screens: ">=4.19.0 <4.25.0" react-native-webview: ^13.14.1 react-test-renderer: 19.1.4 release-it: ^17.10.0 @@ -2094,7 +2094,7 @@ __metadata: typedoc: ^0.28.13 typedoc-plugin-coverage: ^3.3.0 typedoc-plugin-mermaid: ^1.12.0 - typescript: ^5.2.2 + typescript: ^5.8.3 peerDependencies: "@react-navigation/native": "*" react: "*" @@ -11510,17 +11510,18 @@ __metadata: languageName: node linkType: hard -"react-native-gesture-handler@npm:^2.26.0": - version: 2.28.0 - resolution: "react-native-gesture-handler@npm:2.28.0" +"react-native-gesture-handler@npm:^2.28.0": + version: 2.31.2 + resolution: "react-native-gesture-handler@npm:2.31.2" dependencies: "@egjs/hammerjs": ^2.0.17 + "@types/react-test-renderer": ^19.1.0 hoist-non-react-statics: ^3.3.0 invariant: ^2.2.4 peerDependencies: react: "*" react-native: "*" - checksum: 7bcd7db784b12565fdd5916bbebc2d3511a63159ca553d33e430008940ba7d209f1e85ef02968a920ed19c414fabe7d2c18cc0e967dd4889aae266788562d1e9 + checksum: 0caa56d14b4deadf776e48c73084a69e19e9e0e86e6c6b2bbb97cb44190cfa25806bf8aff35782410ae33e2d3d429068013602a5a011ae1c47fe52cebb7b0df8 languageName: node linkType: hard @@ -11534,26 +11535,26 @@ __metadata: languageName: node linkType: hard -"react-native-safe-area-context@npm:^5.4.0": - version: 5.6.1 - resolution: "react-native-safe-area-context@npm:5.6.1" +"react-native-safe-area-context@npm:^5.6.0": + version: 5.7.0 + resolution: "react-native-safe-area-context@npm:5.7.0" peerDependencies: react: "*" react-native: "*" - checksum: f346615d5f8f26c0c8459d29c149ea3f66684b8ae79cea6fd48d118d039851a69a92955d67b455d0e7ab46639155c4357ebf58ec1859b2377ee459e2a04b602b + checksum: 0d831f4dc64e8453c67c095fe02d68ccf21b808c6338ef6a4db1cfacf3167956b682db40308a3f3152e59e9a5203b025f4bf28c2968c95e3afa22d9f52062ee0 languageName: node linkType: hard -"react-native-screens@npm:>=4.14.0 <4.19.0": - version: 4.18.0 - resolution: "react-native-screens@npm:4.18.0" +"react-native-screens@npm:>=4.19.0 <4.25.0": + version: 4.24.0 + resolution: "react-native-screens@npm:4.24.0" dependencies: react-freeze: ^1.0.0 warn-once: ^0.1.0 peerDependencies: react: "*" react-native: "*" - checksum: b7942efe7bf316ad66aabf6e3b8b999268d3b88b3d23affb0f90f627d8dd980172f79b48abf476d10c3466ba5123240ee3f18f8d0ff7db5b79b9772cb520afa0 + checksum: 670873e5a358db95a7eeaae94a1548f5461e3a0d315bb81b7c52b544826a245fed878b13dab8037eb2371c54d3ebced472642c18889892c17f91a92964d40108 languageName: node linkType: hard @@ -13298,7 +13299,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.2.2": +"typescript@npm:^5.8.3": version: 5.9.3 resolution: "typescript@npm:5.9.3" bin: @@ -13308,7 +13309,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^5.2.2#~builtin": +"typescript@patch:typescript@^5.8.3#~builtin": version: 5.9.3 resolution: "typescript@patch:typescript@npm%3A5.9.3#~builtin::version=5.9.3&hash=14eedb" bin: From ef16e2619f4c7ad0304de43d6a9f656819eab221 Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Wed, 13 May 2026 08:35:22 -0700 Subject: [PATCH 11/13] chore: update baseline-browser-mapping dependency to version ^2.10.29 in package.json and yarn.lock --- package.json | 2 +- yarn.lock | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index e2fd0aa0b..eda525a79 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "@types/react": "^19.0.0", "@typescript-eslint/eslint-plugin": "^8.13.0", "@typescript-eslint/parser": "^8.13.0", - "baseline-browser-mapping": "latest", + "baseline-browser-mapping": "^2.10.29", "commitlint": "^19.6.1", "del-cli": "^5.1.0", "eslint": "^8.51.0", diff --git a/yarn.lock b/yarn.lock index 381e5895c..2c475bd04 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1992,7 +1992,7 @@ __metadata: "@types/react": ^19.0.0 "@typescript-eslint/eslint-plugin": ^8.13.0 "@typescript-eslint/parser": ^8.13.0 - baseline-browser-mapping: latest + baseline-browser-mapping: ^2.10.29 commitlint: ^19.6.1 del-cli: ^5.1.0 eslint: ^8.51.0 @@ -4698,7 +4698,16 @@ __metadata: languageName: node linkType: hard -"baseline-browser-mapping@npm:^2.8.9, baseline-browser-mapping@npm:latest": +"baseline-browser-mapping@npm:^2.10.29": + version: 2.10.29 + resolution: "baseline-browser-mapping@npm:2.10.29" + bin: + baseline-browser-mapping: dist/cli.cjs + checksum: 632f19359cda715beed0af93118aa6463506f897c680c5092523c7105dd9f5e08a95552078f6bab0c261a16b1221842a8f9d5b0da02921d3329a5894d2a38688 + languageName: node + linkType: hard + +"baseline-browser-mapping@npm:^2.8.9": version: 2.10.27 resolution: "baseline-browser-mapping@npm:2.10.27" bin: From 868a1091074a68940211c3f088eeeb3d79e1ba1f Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Wed, 13 May 2026 16:35:58 -0700 Subject: [PATCH 12/13] chore: update Node.js version in .nvmrc to v20.19.4 --- .nvmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nvmrc b/.nvmrc index 3bf34c276..70f6554c7 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20.19.0 \ No newline at end of file +v20.19.4 From 4c3fb4c9b59686a3df0144a5d17b667a8463717b Mon Sep 17 00:00:00 2001 From: Loren Posen Date: Wed, 13 May 2026 17:17:26 -0700 Subject: [PATCH 13/13] chore: clean up Info.plist and entitlements, update project.pbxproj references --- .../project.pbxproj | 58 +++++++++---------- example/ios/ReactNativeSdkExample/Info.plist | 2 - .../ReactNativeSdkExample.entitlements | 5 +- 3 files changed, 30 insertions(+), 35 deletions(-) diff --git a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj index 60936098f..6b1428cab 100644 --- a/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj +++ b/example/ios/ReactNativeSdkExample.xcodeproj/project.pbxproj @@ -9,7 +9,7 @@ /* Begin PBXBuildFile section */ 00E356F31AD99517003FC87E /* ReactNativeSdkExampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* ReactNativeSdkExampleTests.m */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 4A7F7036500DF3DAF3004BAD /* libPods-ReactNativeSdkExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 01856097CF2EA080C5E1EE51 /* libPods-ReactNativeSdkExample.a */; }; + 5501F9E2D489B695999030B9 /* libPods-ReactNativeSdkExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C407491B96F3239D3FA319BA /* libPods-ReactNativeSdkExample.a */; }; 779227342DFA3FB500D69EC0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 779227332DFA3FB500D69EC0 /* AppDelegate.swift */; }; 77E3B5772EA71A4B001449CE /* IterableJwtGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77E3B5742EA71A4B001449CE /* IterableJwtGenerator.swift */; }; 77E3B5782EA71A4B001449CE /* JwtTokenModule.mm in Sources */ = {isa = PBXBuildFile; fileRef = 77E3B5752EA71A4B001449CE /* JwtTokenModule.mm */; }; @@ -32,14 +32,12 @@ 00E356EE1AD99517003FC87E /* ReactNativeSdkExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ReactNativeSdkExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* ReactNativeSdkExampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReactNativeSdkExampleTests.m; sourceTree = ""; }; - 01856097CF2EA080C5E1EE51 /* libPods-ReactNativeSdkExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSdkExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07F961A680F5B00A75B9A /* ReactNativeSdkExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ReactNativeSdkExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ReactNativeSdkExample/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ReactNativeSdkExample/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* ReactNativeSdkExample.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; name = ReactNativeSdkExample.entitlements; path = ReactNativeSdkExample/ReactNativeSdkExample.entitlements; sourceTree = ""; }; 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = ReactNativeSdkExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; 1FC6B09E65A7BD9F6864C5D8 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = ReactNativeSdkExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 68C3783E340D622A535D62AE /* Pods-ReactNativeSdkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.debug.xcconfig"; sourceTree = ""; }; 779227312DFA3FB500D69EC0 /* ReactNativeSdkExample-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReactNativeSdkExample-Bridging-Header.h"; sourceTree = ""; }; 779227322DFA3FB500D69EC0 /* ReactNativeSdkExampleTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReactNativeSdkExampleTests-Bridging-Header.h"; sourceTree = ""; }; 779227332DFA3FB500D69EC0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = ReactNativeSdkExample/AppDelegate.swift; sourceTree = ""; }; @@ -47,7 +45,9 @@ 77E3B5752EA71A4B001449CE /* JwtTokenModule.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = JwtTokenModule.mm; sourceTree = ""; }; 77E3B5762EA71A4B001449CE /* JwtTokenModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JwtTokenModule.swift; sourceTree = ""; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = ReactNativeSdkExample/LaunchScreen.storyboard; sourceTree = ""; }; - A0A99AFB521B60001D3191A3 /* Pods-ReactNativeSdkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.release.xcconfig"; sourceTree = ""; }; + B21CBA84AB4D219A875C6609 /* Pods-ReactNativeSdkExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.release.xcconfig"; sourceTree = ""; }; + C407491B96F3239D3FA319BA /* libPods-ReactNativeSdkExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSdkExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + CF0932DA81E6EDCE2122946B /* Pods-ReactNativeSdkExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSdkExample.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample.debug.xcconfig"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ @@ -63,7 +63,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4A7F7036500DF3DAF3004BAD /* libPods-ReactNativeSdkExample.a in Frameworks */, + 5501F9E2D489B695999030B9 /* libPods-ReactNativeSdkExample.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -107,7 +107,7 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 01856097CF2EA080C5E1EE51 /* libPods-ReactNativeSdkExample.a */, + C407491B96F3239D3FA319BA /* libPods-ReactNativeSdkExample.a */, ); name = Frameworks; sourceTree = ""; @@ -149,8 +149,8 @@ BBD78D7AC51CEA395F1C20DB /* Pods */ = { isa = PBXGroup; children = ( - 68C3783E340D622A535D62AE /* Pods-ReactNativeSdkExample.debug.xcconfig */, - A0A99AFB521B60001D3191A3 /* Pods-ReactNativeSdkExample.release.xcconfig */, + CF0932DA81E6EDCE2122946B /* Pods-ReactNativeSdkExample.debug.xcconfig */, + B21CBA84AB4D219A875C6609 /* Pods-ReactNativeSdkExample.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -180,13 +180,13 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactNativeSdkExample" */; buildPhases = ( - 32A8010D6F8AC4ED60F6C361 /* [CP] Check Pods Manifest.lock */, + 8BB77450C2101562A7B06FF2 /* [CP] Check Pods Manifest.lock */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 7236575B738F319BB76459BD /* [CP] Embed Pods Frameworks */, - 029780C9D3AA5F360FBA8EE1 /* [CP] Copy Pods Resources */, + C8FD75D6011148FDDE4136F1 /* [CP] Embed Pods Frameworks */, + B55A06BA11FAFC83DD873B8D /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -271,46 +271,46 @@ shellPath = /bin/sh; shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; }; - 029780C9D3AA5F360FBA8EE1 /* [CP] Copy Pods Resources */ = { + 8BB77450C2101562A7B06FF2 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-ReactNativeSdkExample-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources.sh\"\n"; + 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; }; - 32A8010D6F8AC4ED60F6C361 /* [CP] Check Pods Manifest.lock */ = { + B55A06BA11FAFC83DD873B8D /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ReactNativeSdkExample-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources-${CONFIGURATION}-output-files.xcfilelist", ); 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-ReactNativeSdkExample/Pods-ReactNativeSdkExample-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 7236575B738F319BB76459BD /* [CP] Embed Pods Frameworks */ = { + C8FD75D6011148FDDE4136F1 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -420,7 +420,7 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68C3783E340D622A535D62AE /* Pods-ReactNativeSdkExample.debug.xcconfig */; + baseConfigurationReference = CF0932DA81E6EDCE2122946B /* Pods-ReactNativeSdkExample.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -451,7 +451,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A0A99AFB521B60001D3191A3 /* Pods-ReactNativeSdkExample.release.xcconfig */; + baseConfigurationReference = B21CBA84AB4D219A875C6609 /* Pods-ReactNativeSdkExample.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; diff --git a/example/ios/ReactNativeSdkExample/Info.plist b/example/ios/ReactNativeSdkExample/Info.plist index fc655fe80..9c6596ee4 100644 --- a/example/ios/ReactNativeSdkExample/Info.plist +++ b/example/ios/ReactNativeSdkExample/Info.plist @@ -35,8 +35,6 @@ NSAllowsLocalNetworking - NSLocationWhenInUseUsageDescription - RCTNewArchEnabled UILaunchStoryboardName diff --git a/example/ios/ReactNativeSdkExample/ReactNativeSdkExample.entitlements b/example/ios/ReactNativeSdkExample/ReactNativeSdkExample.entitlements index 4884860d8..0c67376eb 100644 --- a/example/ios/ReactNativeSdkExample/ReactNativeSdkExample.entitlements +++ b/example/ios/ReactNativeSdkExample/ReactNativeSdkExample.entitlements @@ -1,8 +1,5 @@ - - com.apple.developer.web-browser - - +