From abd3d0aef160e6986dc8350ebcb37327bafd1402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Wed, 24 Jun 2026 14:25:17 +0800 Subject: [PATCH 01/16] feat!: upgrade android sdk to 7.7.0 and ios sdk to 10.14.0 --- README.md | 2 +- android/build.gradle | 2 +- example/android/app/build.gradle | 2 +- example/android/build.gradle | 8 ++-- example/package.json | 2 +- react-native-navigation-sdk.podspec | 2 +- yarn.lock | 60 +++++++++++++---------------- 7 files changed, 35 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index d9444dad..bdfb4a5e 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ android { } dependencies { - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.4' + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.5' } ``` diff --git a/android/build.gradle b/android/build.gradle index 49426d7e..b06178a6 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -59,6 +59,6 @@ dependencies { implementation "androidx.car.app:app:1.4.0" implementation "androidx.car.app:app-projected:1.4.0" implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation "com.google.android.libraries.navigation:navigation:7.6.1" + implementation "com.google.android.libraries.navigation:navigation:7.7.0" api 'com.google.guava:guava:31.0.1-android' } diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 5ba13511..c94211fc 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -153,7 +153,7 @@ dependencies { implementation "androidx.car.app:app-projected:1.4.0" // Include the Google Navigation SDK. - implementation 'com.google.android.libraries.navigation:navigation:7.6.1' + implementation 'com.google.android.libraries.navigation:navigation:7.7.0' } secrets { diff --git a/example/android/build.gradle b/example/android/build.gradle index 961f70e7..b98f6183 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -33,9 +33,9 @@ buildscript { gradlePluginPortal() } dependencies { - classpath("com.android.tools.build:gradle") + classpath("com.android.tools.build:gradle:8.13.2") classpath("com.facebook.react:react-native-gradle-plugin") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21") classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") classpath('com.ncorti.ktfmt.gradle:plugin:0.21.0') } @@ -57,7 +57,7 @@ allprojects { exclude group: 'com.google.android.gms', module: 'play-services-maps' } } - + subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { @@ -69,7 +69,7 @@ allprojects { dependencies { // Desugar Java 8+ APIs (NIO flavor required for Navigation SDK 7.5.0+) - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.4' + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.5' } } } diff --git a/example/package.json b/example/package.json index 22ef94fa..6f66df2a 100644 --- a/example/package.json +++ b/example/package.json @@ -27,7 +27,7 @@ "@react-navigation/stack": "^6.4.1", "react": "19.2.0", "react-native": "0.83.1", - "react-native-gesture-handler": "2.29.1", + "react-native-gesture-handler": "3.0.2", "react-native-pager-view": "^6.9.1", "react-native-permissions": "^5.1.0", "react-native-safe-area-context": "^5.5.2", diff --git a/react-native-navigation-sdk.podspec b/react-native-navigation-sdk.podspec index 537626c8..7755390e 100644 --- a/react-native-navigation-sdk.podspec +++ b/react-native-navigation-sdk.podspec @@ -35,7 +35,7 @@ Pod::Spec.new do |s| s.public_header_files = "ios/**/*.h" s.dependency "React-Core" - s.dependency "GoogleNavigation", "10.13.0" + s.dependency "GoogleNavigation", "10.14.0" install_modules_dependencies(s) end diff --git a/yarn.lock b/yarn.lock index f292e945..34245d39 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1718,15 +1718,6 @@ __metadata: languageName: node linkType: hard -"@egjs/hammerjs@npm:^2.0.17": - version: 2.0.17 - resolution: "@egjs/hammerjs@npm:2.0.17" - dependencies: - "@types/hammerjs": ^2.0.36 - checksum: 8945137cec5837edd70af3f2e0ea621543eb0aa3b667e6269ec6485350f4d120c2434b37c7c30b1cf42a65275dd61c1f24626749c616696d3956ac0c008c4766 - languageName: node - linkType: hard - "@emnapi/core@npm:^1.4.3": version: 1.7.1 resolution: "@emnapi/core@npm:1.7.1" @@ -2968,13 +2959,6 @@ __metadata: languageName: node linkType: hard -"@types/hammerjs@npm:^2.0.36": - version: 2.0.46 - resolution: "@types/hammerjs@npm:2.0.46" - checksum: caba6ec788d19905c71092670b58514b3d1f5eee5382bf9205e8df688d51e7857b7994e2dd7aed57fac8977bdf0e456d67fbaf23440a4385b8ce25fe2af1ec39 - languageName: node - linkType: hard - "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.6 resolution: "@types/istanbul-lib-coverage@npm:2.0.6" @@ -3049,6 +3033,24 @@ __metadata: languageName: node linkType: hard +"@types/react-test-renderer@npm:^19.1.0": + version: 19.1.0 + resolution: "@types/react-test-renderer@npm:19.1.0" + dependencies: + "@types/react": "*" + checksum: 2ef3aec0f2fd638902cda606d70c8531d66f8e8944334427986b99dcac9755ee60b700c5c3a19ac354680f9c45669e98077b84f79cac60e950bdb7d38aebffde + languageName: node + linkType: hard + +"@types/react@npm:*": + version: 19.2.17 + resolution: "@types/react@npm:19.2.17" + dependencies: + csstype: ^3.2.2 + checksum: 9704dc2001b6bcc32efc6e3fe144e18c411d5ee8a5c8dfe572535e44bd300424c4e7bddc9314299eeec28efb547816368b5c9851c93a3082e8ad1265786f3d31 + languageName: node + linkType: hard + "@types/react@npm:19.2.0": version: 19.2.0 resolution: "@types/react@npm:19.2.0" @@ -4756,7 +4758,7 @@ __metadata: languageName: node linkType: hard -"csstype@npm:^3.0.2": +"csstype@npm:^3.0.2, csstype@npm:^3.2.2": version: 3.2.3 resolution: "csstype@npm:3.2.3" checksum: cb882521b3398958a1ce6ca98c011aec0bde1c77ecaf8a1dd4db3b112a189939beae3b1308243b2fe50fc27eb3edeb0f73a5a4d91d928765dc6d5ecc7bda92ee @@ -6573,15 +6575,6 @@ __metadata: 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" - dependencies: - react-is: ^16.7.0 - checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 - languageName: node - linkType: hard - "hosted-git-info@npm:^4.0.1": version: 4.1.0 resolution: "hosted-git-info@npm:4.1.0" @@ -9765,7 +9758,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.13.0, react-is@npm:^16.13.1, react-is@npm:^16.7.0": +"react-is@npm:^16.13.0, react-is@npm:^16.13.1": version: 16.13.1 resolution: "react-is@npm:16.13.1" checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f @@ -9818,17 +9811,16 @@ __metadata: languageName: node linkType: hard -"react-native-gesture-handler@npm:2.29.1": - version: 2.29.1 - resolution: "react-native-gesture-handler@npm:2.29.1" +"react-native-gesture-handler@npm:3.0.2": + version: 3.0.2 + resolution: "react-native-gesture-handler@npm:3.0.2" dependencies: - "@egjs/hammerjs": ^2.0.17 - hoist-non-react-statics: ^3.3.0 + "@types/react-test-renderer": ^19.1.0 invariant: ^2.2.4 peerDependencies: react: "*" react-native: "*" - checksum: dddabdb12ce31d68ef71796e8fcaa57acd4608cca14412f36ce36fee14911fb629f325f0ced86bea1336a64673a434e34cde32a63be8d33f29d9a7bed292c5b2 + checksum: 28505ddc9f30ad81952af033f49c66969332ab848421c27eb3161f3245a89d58afbb56acd21c9fcf85b561c09d63b3950c3401a43be19f970bcf990b90b17ad2 languageName: node linkType: hard @@ -9874,7 +9866,7 @@ __metadata: react: 19.2.0 react-native: 0.83.1 react-native-builder-bob: ^0.40.13 - react-native-gesture-handler: 2.29.1 + react-native-gesture-handler: 3.0.2 react-native-monorepo-config: ^0.1.9 react-native-pager-view: ^6.9.1 react-native-permissions: ^5.1.0 From da03f72da15eeaa00097d1a9fa89d9120b92b543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Wed, 24 Jun 2026 16:45:59 +0800 Subject: [PATCH 02/16] docs: updated migrating docs for 0.17.0 release --- MIGRATING.md | 92 ++++++++++++++++++++++++++++++++++++ example/android/build.gradle | 2 +- 2 files changed, 93 insertions(+), 1 deletion(-) diff --git a/MIGRATING.md b/MIGRATING.md index 88f63838..207e5df6 100644 --- a/MIGRATING.md +++ b/MIGRATING.md @@ -4,10 +4,102 @@ This document covers breaking changes and migration steps between major versions ## Table of Contents +- [Migrating from 0.16.x to 0.17.x](#migrating-from-016x-to-017x) - [Migrating from 0.13.x to 0.14.x](#migrating-from-013x-to-014x) --- +## Migrating from 0.16.x to 0.17.x + +Version 0.17.0 upgrades the underlying Google Navigation SDKs and raises the minimum Android build toolchain requirements. + +### Summary of Breaking Changes + +| Category | Change | +| ----------------- | --------------------------------------------------------------------------------------- | +| Native SDKs | Android Navigation SDK upgraded to `7.7.0`, iOS Navigation SDK upgraded to `10.14.0` | +| Kotlin | Minimum required Kotlin version is now `2.3.0` | +| Android Gradle | Android Gradle Plugin (AGP) must be `8.13.2` or newer | +| Kotlin Gradle | Kotlin Gradle Plugin must be `2.3.21` or newer | + +### What changed + +This release updates the native Navigation SDK dependencies to: + +- **Android:** Google Maps Navigation SDK `7.7.0` +- **iOS:** Google Maps Navigation SDK `10.14.0` + +There are no JavaScript API changes in this release, but **Android projects must update their Gradle/Kotlin toolchain** to build successfully. + +### Step 1: Update your Android build toolchain + +React Native's default Android Gradle Plugin and Kotlin Gradle Plugin versions are not new enough for this release, so you must override them in your Android project. + +> [!NOTE] +> This is a temporary compatibility requirement. Future React Native releases are expected to update their default AGP and Kotlin plugin versions. + +#### Minimum required versions + +- **AGP:** `8.13.2` or newer +- **Kotlin Gradle Plugin:** `2.3.21` or newer +- **Kotlin language version:** `2.3.0` or newer + +#### Example root `android/build.gradle` + +If your app uses a root `build.gradle` with a `buildscript` block, update it like this: + +```diff +buildscript { + ext { +- kotlinVersion = "" ++ kotlinVersion = "2.3.0" + } + dependencies { +- classpath("com.android.tools.build:gradle") +- classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") ++ classpath("com.android.tools.build:gradle:8.13.2") ++ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21") + } +} +``` + +### Step 2: Sync and rebuild Android + +After updating Gradle and Kotlin versions: + +```bash +cd android +./gradlew clean +``` + +Then rebuild your app. + +If you run into dependency or build cache issues, reinstall dependencies and rebuild from scratch. + +### Step 3: Reinstall iOS pods + +The iOS SDK is upgraded to `10.14.0`, so after upgrading the package you should reinstall pods: + +```bash +cd ios && pod install +``` + +### Release notes + +For native SDK changes introduced upstream, review the official release notes: + +- [Android Navigation SDK 7.7.0 release notes](https://developers.google.com/maps/documentation/navigation/android-sdk/release-notes) +- [iOS Navigation SDK 10.14.0 release notes](https://developers.google.com/maps/documentation/navigation/ios-sdk/release-notes) + +### Troubleshooting + +If Android builds start failing after upgrading, first verify: + +1. Your project is using **AGP 8.13.2+** +2. Your project is using **Kotlin Gradle Plugin 2.3.21+** +3. Your Kotlin version is at least **2.3.0** +4. You have refreshed Gradle dependencies and rebuilt the app + ## Migrating from 0.13.x to 0.14.x Version 0.14.0 introduces React Native's **New Architecture** (Fabric & TurboModules) as a requirement, dropping support for the legacy architecture. This release also includes breaking API changes and new features. diff --git a/example/android/build.gradle b/example/android/build.gradle index b98f6183..93f2f190 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -25,7 +25,7 @@ buildscript { compileSdkVersion = 36 targetSdkVersion = 36 ndkVersion = "27.1.12297006" - kotlinVersion = "2.0.21" + kotlinVersion = "2.3.0" } repositories { google() From aa437e7397a2235e4d9e99dd632621a1584a884b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Wed, 24 Jun 2026 17:19:44 +0800 Subject: [PATCH 03/16] docs: changes to migration docs for 0.17.0 release --- MIGRATING.md | 8 +++++--- example/android/build.gradle | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/MIGRATING.md b/MIGRATING.md index 207e5df6..c4b4e35c 100644 --- a/MIGRATING.md +++ b/MIGRATING.md @@ -33,10 +33,12 @@ There are no JavaScript API changes in this release, but **Android projects must ### Step 1: Update your Android build toolchain -React Native's default Android Gradle Plugin and Kotlin Gradle Plugin versions are not new enough for this release, so you must override them in your Android project. +React Native's default Android Gradle Plugin and Kotlin Gradle Plugin versions are not yet new enough for this release, so you must override them in your Android project. > [!NOTE] -> This is a temporary compatibility requirement. Future React Native releases are expected to update their default AGP and Kotlin plugin versions. +> This is currently required because the latest React Native release (`0.86.0`) still does not provide new enough default AGP and Kotlin plugin versions. This should be temporary, as future React Native releases are expected to update these defaults. +> +> Some Android dependencies in your app may not yet be compatible with these manual toolchain upgrades. If upgrading AGP/Kotlin causes build or compatibility issues in your project, we recommend staying on `0.16.x` of this package until those dependencies are updated. #### Minimum required versions @@ -52,7 +54,7 @@ If your app uses a root `build.gradle` with a `buildscript` block, update it lik buildscript { ext { - kotlinVersion = "" -+ kotlinVersion = "2.3.0" ++ kotlinVersion = "2.3.21" } dependencies { - classpath("com.android.tools.build:gradle") diff --git a/example/android/build.gradle b/example/android/build.gradle index 93f2f190..55cbb77d 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -25,7 +25,7 @@ buildscript { compileSdkVersion = 36 targetSdkVersion = 36 ndkVersion = "27.1.12297006" - kotlinVersion = "2.3.0" + kotlinVersion = "2.3.21" } repositories { google() From 5216d7eac5505236d43f2b219129e1904343d4cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Thu, 23 Jul 2026 16:12:13 +0800 Subject: [PATCH 04/16] feat!: upgrade android sdk to 7.8.0 and ios sdk to 10.15.0 --- android/build.gradle | 2 +- example/android/app/build.gradle | 2 +- react-native-navigation-sdk.podspec | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index b06178a6..ffc6f7fa 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -59,6 +59,6 @@ dependencies { implementation "androidx.car.app:app:1.4.0" implementation "androidx.car.app:app-projected:1.4.0" implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation "com.google.android.libraries.navigation:navigation:7.7.0" + implementation "com.google.android.libraries.navigation:navigation:7.8.0" api 'com.google.guava:guava:31.0.1-android' } diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index c94211fc..02df1258 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -153,7 +153,7 @@ dependencies { implementation "androidx.car.app:app-projected:1.4.0" // Include the Google Navigation SDK. - implementation 'com.google.android.libraries.navigation:navigation:7.7.0' + implementation 'com.google.android.libraries.navigation:navigation:7.8.0' } secrets { diff --git a/react-native-navigation-sdk.podspec b/react-native-navigation-sdk.podspec index 7755390e..3b1cc381 100644 --- a/react-native-navigation-sdk.podspec +++ b/react-native-navigation-sdk.podspec @@ -35,7 +35,7 @@ Pod::Spec.new do |s| s.public_header_files = "ios/**/*.h" s.dependency "React-Core" - s.dependency "GoogleNavigation", "10.14.0" + s.dependency "GoogleNavigation", "10.15.0" install_modules_dependencies(s) end From 7e1aff65ed6670548da3f7de6d07ab78858ac72c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Fri, 24 Jul 2026 13:36:19 +0800 Subject: [PATCH 05/16] feat: migrate to new audioguidance function from deprecated one --- .../react/navsdk/EnumTranslationUtil.java | 17 +++++++---------- .../google/android/react/navsdk/NavModule.java | 6 +++++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/android/src/main/java/com/google/android/react/navsdk/EnumTranslationUtil.java b/android/src/main/java/com/google/android/react/navsdk/EnumTranslationUtil.java index f63b3ced..8653da2b 100644 --- a/android/src/main/java/com/google/android/react/navsdk/EnumTranslationUtil.java +++ b/android/src/main/java/com/google/android/react/navsdk/EnumTranslationUtil.java @@ -17,6 +17,7 @@ import com.google.android.gms.maps.GoogleMap.CameraPerspective; import com.google.android.gms.maps.model.MapColorScheme; import com.google.android.libraries.navigation.AlternateRoutesStrategy; +import com.google.android.libraries.navigation.AudioGuidanceSettings; import com.google.android.libraries.navigation.ForceNightMode; import com.google.android.libraries.navigation.Navigator; import com.google.android.libraries.navigation.RoutingOptions; @@ -33,16 +34,12 @@ public static AlternateRoutesStrategy getAlternateRoutesStrategyFromJsValue(int } } - public static @Navigator.AudioGuidance int getAudioGuidanceFromJsValue(int jsValue) { - switch (jsValue) { - case 0: - return Navigator.AudioGuidance.SILENT; - case 1: - return Navigator.AudioGuidance.VOICE_ALERTS_ONLY; - case 2: - default: - return Navigator.AudioGuidance.VOICE_ALERTS_AND_GUIDANCE; - } + public static AudioGuidanceSettings.GuidanceMode getAudioGuidanceModeFromJsValue(int jsValue) { + return switch (jsValue) { + case 0 -> AudioGuidanceSettings.GuidanceMode.SILENT; + case 1 -> AudioGuidanceSettings.GuidanceMode.VOICE_ALERTS_ONLY; + default -> AudioGuidanceSettings.GuidanceMode.VOICE_ALERTS_AND_GUIDANCE; + }; } public static @Navigator.TaskRemovedBehavior int getTaskRemovedBehaviourFromJsValue(int jsValue) { diff --git a/android/src/main/java/com/google/android/react/navsdk/NavModule.java b/android/src/main/java/com/google/android/react/navsdk/NavModule.java index 2bd2ed61..b85e58eb 100644 --- a/android/src/main/java/com/google/android/react/navsdk/NavModule.java +++ b/android/src/main/java/com/google/android/react/navsdk/NavModule.java @@ -31,6 +31,7 @@ import com.google.android.libraries.mapsplatform.turnbyturn.model.NavInfo; import com.google.android.libraries.mapsplatform.turnbyturn.model.StepInfo; import com.google.android.libraries.navigation.ArrivalEvent; +import com.google.android.libraries.navigation.AudioGuidanceSettings; import com.google.android.libraries.navigation.CustomRoutesOptions; import com.google.android.libraries.navigation.DisplayOptions; import com.google.android.libraries.navigation.ListenableResultFuture; @@ -821,7 +822,10 @@ public void setAudioGuidanceType(double index, final Promise promise) { UiThreadUtil.runOnUiThread( () -> { - mNavigator.setAudioGuidance(EnumTranslationUtil.getAudioGuidanceFromJsValue(jsValue)); + mNavigator.setAudioGuidanceSettings( + AudioGuidanceSettings.builder() + .setGuidanceMode(EnumTranslationUtil.getAudioGuidanceModeFromJsValue(jsValue)) + .build()); }); promise.resolve(null); } From fd485c208759a176b6c04bb5f34baade1843c180 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Wed, 19 Aug 2026 14:39:46 +0800 Subject: [PATCH 06/16] chore: upgrade rn version and android sdk --- .nvmrc | 2 +- MIGRATING.md | 62 +- README.md | 8 +- android/build.gradle | 6 +- example/Gemfile.lock | 22 +- example/android/app/build.gradle | 4 +- example/android/build.gradle | 6 +- example/android/gradle.properties | 5 + .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../ios/SampleApp.xcodeproj/project.pbxproj | 14 +- example/package.json | 28 +- example/src/helpers/overlayModal.tsx | 2 +- package.json | 10 +- yarn.lock | 1264 ++++++++++------- 14 files changed, 822 insertions(+), 613 deletions(-) diff --git a/.nvmrc b/.nvmrc index 53d1c14d..2c022021 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v22 +v22.13.0 diff --git a/MIGRATING.md b/MIGRATING.md index c4b4e35c..fddf58e7 100644 --- a/MIGRATING.md +++ b/MIGRATING.md @@ -17,38 +17,38 @@ Version 0.17.0 upgrades the underlying Google Navigation SDKs and raises the min | Category | Change | | ----------------- | --------------------------------------------------------------------------------------- | -| Native SDKs | Android Navigation SDK upgraded to `7.7.0`, iOS Navigation SDK upgraded to `10.14.0` | -| Kotlin | Minimum required Kotlin version is now `2.3.0` | -| Android Gradle | Android Gradle Plugin (AGP) must be `8.13.2` or newer | -| Kotlin Gradle | Kotlin Gradle Plugin must be `2.3.21` or newer | +| React Native | Minimum supported React Native version is now `0.87.0` | +| Native SDKs | Android Navigation SDK upgraded to `7.9.0`, iOS Navigation SDK upgraded to `10.15.0` | +| Kotlin | Kotlin Gradle Plugin `2.3.0+` is required; `2.3.21` is the tested version | ### What changed This release updates the native Navigation SDK dependencies to: -- **Android:** Google Maps Navigation SDK `7.7.0` -- **iOS:** Google Maps Navigation SDK `10.14.0` +- **Android:** Google Maps Navigation SDK `7.9.0` +- **iOS:** Google Maps Navigation SDK `10.15.0` -There are no JavaScript API changes in this release, but **Android projects must update their Gradle/Kotlin toolchain** to build successfully. +There are no JavaScript API changes in this release. React Native `0.87.0` is required and its bundled Android Gradle Plugin (AGP) `9.2.1` is compatible with Navigation SDK `7.9.0`. -### Step 1: Update your Android build toolchain +### Step 1: Update the Kotlin Gradle Plugin -React Native's default Android Gradle Plugin and Kotlin Gradle Plugin versions are not yet new enough for this release, so you must override them in your Android project. +Navigation SDK requires Kotlin Gradle Plugin `2.3.0+`. React Native `0.87.0` bundles Kotlin `2.2.0`, so Android projects must override it. This SDK is tested with Kotlin Gradle Plugin `2.3.21`. > [!NOTE] -> This is currently required because the latest React Native release (`0.86.0`) still does not provide new enough default AGP and Kotlin plugin versions. This should be temporary, as future React Native releases are expected to update these defaults. -> -> Some Android dependencies in your app may not yet be compatible with these manual toolchain upgrades. If upgrading AGP/Kotlin causes build or compatibility issues in your project, we recommend staying on `0.16.x` of this package until those dependencies are updated. +> Do not override the AGP version when using React Native `0.87.0`; it already supplies a compatible AGP version. Navigation SDK `7.9.0` also fixes the Cronet namespace collision that prevented builds with AGP `9.0.0+`. + +#### Configure AGP 9 compatibility -#### Minimum required versions +React Native `0.87.0` uses AGP 9. Add these properties to `android/gradle.properties` so AGP uses the overridden Kotlin Gradle Plugin and retains the DSL used by React Native and its libraries: -- **AGP:** `8.13.2` or newer -- **Kotlin Gradle Plugin:** `2.3.21` or newer -- **Kotlin language version:** `2.3.0` or newer +```properties +android.builtInKotlin=false +android.newDsl=false +``` -#### Example root `android/build.gradle` +#### Root `android/build.gradle` -If your app uses a root `build.gradle` with a `buildscript` block, update it like this: +If your app uses a root `build.gradle` with a `buildscript` block, update only the Kotlin entries: ```diff buildscript { @@ -57,17 +57,25 @@ buildscript { + kotlinVersion = "2.3.21" } dependencies { -- classpath("com.android.tools.build:gradle") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") -+ classpath("com.android.tools.build:gradle:8.13.2") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21") } } ``` +#### Plugin DSL + +If your project declares plugins in `settings.gradle`, set the Kotlin plugin version there instead: + +```groovy +plugins { + id("org.jetbrains.kotlin.android") version "2.3.21" apply false +} +``` + ### Step 2: Sync and rebuild Android -After updating Gradle and Kotlin versions: +After updating the Kotlin Gradle Plugin: ```bash cd android @@ -80,7 +88,7 @@ If you run into dependency or build cache issues, reinstall dependencies and reb ### Step 3: Reinstall iOS pods -The iOS SDK is upgraded to `10.14.0`, so after upgrading the package you should reinstall pods: +The iOS SDK is upgraded to `10.15.0`, so after upgrading the package you should reinstall pods: ```bash cd ios && pod install @@ -90,16 +98,16 @@ cd ios && pod install For native SDK changes introduced upstream, review the official release notes: -- [Android Navigation SDK 7.7.0 release notes](https://developers.google.com/maps/documentation/navigation/android-sdk/release-notes) -- [iOS Navigation SDK 10.14.0 release notes](https://developers.google.com/maps/documentation/navigation/ios-sdk/release-notes) +- [Android Navigation SDK 7.9.0 release notes](https://developers.google.com/maps/documentation/navigation/android-sdk/release-notes) +- [iOS Navigation SDK 10.15.0 release notes](https://developers.google.com/maps/documentation/navigation/ios-sdk/release-notes) ### Troubleshooting If Android builds start failing after upgrading, first verify: -1. Your project is using **AGP 8.13.2+** -2. Your project is using **Kotlin Gradle Plugin 2.3.21+** -3. Your Kotlin version is at least **2.3.0** +1. Your project uses **React Native 0.87.0+** +2. Your project uses **Kotlin Gradle Plugin 2.3.0+** (`2.3.21` is tested) +3. You have not overridden React Native 0.87's bundled AGP version 4. You have refreshed Gradle dependencies and rebuilt the app ## Migrating from 0.13.x to 0.14.x diff --git a/README.md b/README.md index eae2d3ba..bbb4d9d3 100644 --- a/README.md +++ b/README.md @@ -31,15 +31,13 @@ This repository contains a React Native plugin that provides a [Google Navigatio ## React Native Compatibility -The current version of this package has been tested and verified to work with the following React Native versions: - -**0.83.1, 0.82.1, 0.81.5, 0.80.3, 0.79.6** +The current version of this package has been tested and verified with **React Native 0.87.0**. > [!IMPORTANT] -> This package requires React Native 0.79+ with the new architecture (Fabric & TurboModules) enabled. Make sure the new architecture is enabled in your project configuration as shown in the [Installation](#installation) section. +> This package requires React Native 0.87+ with the new architecture (Fabric & TurboModules) enabled. Make sure the new architecture is enabled in your project configuration as shown in the [Installation](#installation) section. > [!NOTE] -> React Native 0.78.x and below are not supported due to Kotlin version incompatibility. If you need to use older React Native versions, please use version 0.13.x of this package with the old architecture. +> Navigation SDK requires Kotlin Gradle Plugin 2.3.0+. React Native 0.87 bundles Kotlin 2.2.0, so override it with Kotlin Gradle Plugin 2.3.21 as described in the [Migration Guide](./MIGRATING.md). > [!NOTE] > For users upgrading from versions prior to 0.14.0, please refer to the [Migration Guide](./MIGRATING.md) for instructions on migrating to the new architecture and updated API. diff --git a/android/build.gradle b/android/build.gradle index ffc6f7fa..7e46c0b4 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -38,9 +38,9 @@ android { buildConfig true } - lintOptions { + lint { abortOnError false - disable "GradleCompatible" + disable += "GradleCompatible" } sourceSets { @@ -59,6 +59,6 @@ dependencies { implementation "androidx.car.app:app:1.4.0" implementation "androidx.car.app:app-projected:1.4.0" implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation "com.google.android.libraries.navigation:navigation:7.8.0" + implementation "com.google.android.libraries.navigation:navigation:7.9.0" api 'com.google.guava:guava:31.0.1-android' } diff --git a/example/Gemfile.lock b/example/Gemfile.lock index 2aab4a69..2dc92d38 100644 --- a/example/Gemfile.lock +++ b/example/Gemfile.lock @@ -5,18 +5,12 @@ GEM base64 nkf rexml - activesupport (7.2.2.2) - base64 - benchmark (>= 0.3) - bigdecimal - concurrent-ruby (~> 1.0, >= 1.3.1) - connection_pool (>= 2.2.5) - drb + activesupport (6.1.7.10) + concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) - logger (>= 1.4.2) minitest (>= 5.1) - securerandom (>= 0.3) - tzinfo (~> 2.0, >= 2.0.5) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) algoliasearch (1.27.5) @@ -66,8 +60,6 @@ GEM cocoapods-try (1.2.0) colored2 (3.1.2) concurrent-ruby (1.3.3) - connection_pool (2.5.3) - drb (2.2.3) escape (0.0.4) ethon (0.15.0) ffi (>= 1.15.0) @@ -79,9 +71,9 @@ GEM mutex_m i18n (1.14.7) concurrent-ruby (~> 1.0) - json (2.13.2) + json (2.7.6) logger (1.7.0) - minitest (5.25.5) + minitest (5.25.4) molinillo (0.8.0) mutex_m (0.3.0) nanaimo (0.3.0) @@ -91,7 +83,6 @@ GEM public_suffix (4.0.7) rexml (3.4.2) ruby-macho (2.5.1) - securerandom (0.4.1) typhoeus (1.5.0) ethon (>= 0.9.0, < 0.16.0) tzinfo (2.0.6) @@ -103,6 +94,7 @@ GEM colored2 (~> 3.1) nanaimo (~> 0.3.0) rexml (>= 3.3.6, < 4.0) + zeitwerk (2.6.18) PLATFORMS ruby diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 02df1258..1fd5b786 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -127,7 +127,7 @@ android { // see https://reactnative.dev/docs/signed-apk-android. signingConfig signingConfigs.debug minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro", "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro" + proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro", "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro" } } compileOptions { @@ -153,7 +153,7 @@ dependencies { implementation "androidx.car.app:app-projected:1.4.0" // Include the Google Navigation SDK. - implementation 'com.google.android.libraries.navigation:navigation:7.8.0' + implementation 'com.google.android.libraries.navigation:navigation:7.9.0' } secrets { diff --git a/example/android/build.gradle b/example/android/build.gradle index 55cbb77d..d1f8e830 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -20,9 +20,9 @@ def enableDesugaring = true buildscript { ext { - buildToolsVersion = "36.0.0" + buildToolsVersion = "37.0.0" minSdkVersion = 34 - compileSdkVersion = 36 + compileSdkVersion = 37 targetSdkVersion = 36 ndkVersion = "27.1.12297006" kotlinVersion = "2.3.21" @@ -33,7 +33,7 @@ buildscript { gradlePluginPortal() } dependencies { - classpath("com.android.tools.build:gradle:8.13.2") + classpath("com.android.tools.build:gradle") classpath("com.facebook.react:react-native-gradle-plugin") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21") classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") diff --git a/example/android/gradle.properties b/example/android/gradle.properties index 5d3c5cf6..8f89aa0c 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -49,3 +49,8 @@ hermesEnabled=true # 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 + +# RN 0.87 uses AGP 9, whose built-in Kotlin and new DSL behavior must remain +# disabled while this app overrides Kotlin to satisfy the Navigation SDK. +android.builtInKotlin=false +android.newDsl=false diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 2a84e188..c61a118f 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-9.0.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/example/ios/SampleApp.xcodeproj/project.pbxproj b/example/ios/SampleApp.xcodeproj/project.pbxproj index d5f7504b..df02e920 100644 --- a/example/ios/SampleApp.xcodeproj/project.pbxproj +++ b/example/ios/SampleApp.xcodeproj/project.pbxproj @@ -818,7 +818,10 @@ ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "$(inherited)"; + OTHER_CFLAGS = ( + "$(inherited)", + "-DRCT_REMOVE_LEGACY_ARCH=1", + ); OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-DFOLLY_NO_CONFIG", @@ -826,7 +829,9 @@ "-DFOLLY_USE_LIBCPP=1", "-DFOLLY_CFG_NO_COROUTINES=1", "-DFOLLY_HAVE_CLOCK_GETTIME=1", + "-DRCT_REMOVE_LEGACY_ARCH=1", ); + PODFILE_DIR = "$(SRCROOT)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; @@ -887,7 +892,10 @@ "\"$(inherited)\"", ); MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "$(inherited)"; + OTHER_CFLAGS = ( + "$(inherited)", + "-DRCT_REMOVE_LEGACY_ARCH=1", + ); OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-DFOLLY_NO_CONFIG", @@ -895,7 +903,9 @@ "-DFOLLY_USE_LIBCPP=1", "-DFOLLY_CFG_NO_COROUTINES=1", "-DFOLLY_HAVE_CLOCK_GETTIME=1", + "-DRCT_REMOVE_LEGACY_ARCH=1", ); + PODFILE_DIR = "$(SRCROOT)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; USE_HERMES = true; diff --git a/example/package.json b/example/package.json index 6f66df2a..e0e3a66d 100644 --- a/example/package.json +++ b/example/package.json @@ -23,28 +23,28 @@ "detox:test:android-release": "detox test --configuration android.emu.release" }, "dependencies": { - "@react-navigation/native": "^6.1.18", - "@react-navigation/stack": "^6.4.1", - "react": "19.2.0", - "react-native": "0.83.1", + "@react-navigation/native": "^7.3.16", + "@react-navigation/stack": "^7.10.22", + "react": "19.2.3", + "react-native": "0.87.0", "react-native-gesture-handler": "3.0.2", "react-native-pager-view": "^6.9.1", "react-native-permissions": "^5.1.0", - "react-native-safe-area-context": "^5.5.2", - "react-native-screens": "4.15.4", + "react-native-safe-area-context": "^5.9.0", + "react-native-screens": "4.27.0", "react-native-select-dropdown": "^4.0.1", - "react-native-snackbar": "^2.8.0" + "react-native-snackbar": "^3.0.1" }, "devDependencies": { "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", "@babel/runtime": "^7.25.0", - "@react-native-community/cli": "20.1.0", - "@react-native-community/cli-platform-android": "20.1.0", - "@react-native-community/cli-platform-ios": "20.1.0", - "@react-native/babel-preset": "0.83.1", - "@react-native/metro-config": "0.83.1", - "@react-native/typescript-config": "0.83.1", + "@react-native-community/cli": "20.2.0", + "@react-native-community/cli-platform-android": "20.2.0", + "@react-native-community/cli-platform-ios": "20.2.0", + "@react-native/babel-preset": "0.87.0", + "@react-native/metro-config": "0.87.0", + "@react-native/typescript-config": "0.87.0", "@types/jest": "^29.5.14", "@types/node": "^22.9.0", "detox": "^20.47.0", @@ -54,6 +54,6 @@ "ts-jest": "^29.2.5" }, "engines": { - "node": ">=20" + "node": ">=22.13.0" } } diff --git a/example/src/helpers/overlayModal.tsx b/example/src/helpers/overlayModal.tsx index e5bf049f..1c2e6ada 100644 --- a/example/src/helpers/overlayModal.tsx +++ b/example/src/helpers/overlayModal.tsx @@ -76,7 +76,7 @@ const styles = StyleSheet.create({ justifyContent: 'flex-end', }, overlayTouchable: { - ...StyleSheet.absoluteFillObject, + ...StyleSheet.absoluteFill, }, modalContent: { height: '60%', diff --git a/package.json b/package.json index 97c967e6..998d6677 100644 --- a/package.json +++ b/package.json @@ -61,8 +61,8 @@ "devDependencies": { "@commitlint/config-conventional": "^19.2.2", "@evilmartians/lefthook": "^1.5.0", - "@react-native/babel-preset": "^0.83.1", - "@react-native/typescript-config": "^0.83.1", + "@react-native/babel-preset": "0.87.0", + "@react-native/typescript-config": "0.87.0", "@testing-library/react-native": "^13.3.3", "@types/react": "19.2.0", "@typescript-eslint/eslint-plugin": "^8.43.0", @@ -79,10 +79,10 @@ "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-native": "^5.0.0", "prettier": "^3.6.2", - "react": "19.2.0", - "react-native": "0.83.1", + "react": "19.2.3", + "react-native": "0.87.0", "react-native-builder-bob": "^0.40.13", - "react-test-renderer": "19.2.0", + "react-test-renderer": "19.2.3", "turbo": "^1.10.7", "typescript": "^5.8.3" }, diff --git a/yarn.lock b/yarn.lock index 34245d39..cf8fc46b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21,7 +21,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.27.1": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.27.1": version: 7.27.1 resolution: "@babel/code-frame@npm:7.27.1" dependencies: @@ -32,6 +32,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.29.0, @babel/code-frame@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/code-frame@npm:7.29.7" + dependencies: + "@babel/helper-validator-identifier": ^7.29.7 + js-tokens: ^4.0.0 + picocolors: ^1.1.1 + checksum: 21b12fe2356e36f6cc3cd8a3721f878bfeea80ce38356979a0518b47b3aafdcc0bd263da75ccc9d51c64d40b1b6df00e768ce2446acb0b7cbec0ae8f905663ad + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.27.2, @babel/compat-data@npm:^7.27.7, @babel/compat-data@npm:^7.28.5": version: 7.28.5 resolution: "@babel/compat-data@npm:7.28.5" @@ -62,7 +73,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.28.5, @babel/generator@npm:^7.7.2": +"@babel/generator@npm:^7.28.5, @babel/generator@npm:^7.7.2": version: 7.28.5 resolution: "@babel/generator@npm:7.28.5" dependencies: @@ -75,6 +86,19 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.29.1, @babel/generator@npm:^7.29.8": + version: 7.29.8 + resolution: "@babel/generator@npm:7.29.8" + dependencies: + "@babel/parser": ^7.29.8 + "@babel/types": ^7.29.8 + "@jridgewell/gen-mapping": ^0.3.12 + "@jridgewell/trace-mapping": ^0.3.28 + jsesc: ^3.0.2 + checksum: e3d80ad2ce45ca974cb14e084350d590aa62e840d5028bb7771e910b1727b6646afcc9815560e3c6e3526f115b71b18a7f7139ada76a80287d5bd25b84c17e8d + 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" @@ -149,6 +173,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-globals@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-globals@npm:7.29.7" + checksum: 6deaf9846a415c7f110ac153e8c3d81e3543c9b685aa9fd9a59b4235f402e2b760129d3df49466daea9162f0cf73ff98a0ec7f180448a3449ca14ae5e1117b42 + languageName: node + linkType: hard + "@babel/helper-member-expression-to-functions@npm:^7.27.1, @babel/helper-member-expression-to-functions@npm:^7.28.5": version: 7.28.5 resolution: "@babel/helper-member-expression-to-functions@npm:7.28.5" @@ -241,6 +272,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-string-parser@npm:7.29.7" + checksum: 4c229d2c2296b6c94439e87ecddf3a93cee3ffd2d4cee0b4c28079275bed3de4e02cd943e4cb06036d1d9407549c4e3423006b61a46215c482fce902ee02bc0b + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.27.1, @babel/helper-validator-identifier@npm:^7.28.5": version: 7.28.5 resolution: "@babel/helper-validator-identifier@npm:7.28.5" @@ -248,6 +286,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-validator-identifier@npm:7.29.7" + checksum: cc7779e96fe9c9478c96ca4bf04fc338b95b501aa5abe78178307dea282d4a5dc23d443efb12dde8e8c5636d03dd00e443532e6ed7f15fa7977349af1f87ba4d + 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" @@ -276,7 +321,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5": version: 7.28.5 resolution: "@babel/parser@npm:7.28.5" dependencies: @@ -287,6 +332,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.29.0, @babel/parser@npm:^7.29.7, @babel/parser@npm:^7.29.8": + version: 7.29.8 + resolution: "@babel/parser@npm:7.29.8" + dependencies: + "@babel/types": ^7.29.8 + bin: + parser: ./bin/babel-parser.js + checksum: c8bbea3c87b8593e78e8901841b068cc004ece24bf3ee44e11b4a3e04f10dab513125ca290c2cc04ba981399b662dbebb0a675016417d600e99272e86d59b375 + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.28.5": version: 7.28.5 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.28.5" @@ -609,7 +665,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.24.7, @babel/plugin-transform-arrow-functions@npm:^7.27.1": +"@babel/plugin-transform-arrow-functions@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1" dependencies: @@ -708,7 +764,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.24.7, @babel/plugin-transform-computed-properties@npm:^7.27.1": +"@babel/plugin-transform-computed-properties@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-computed-properties@npm:7.27.1" dependencies: @@ -836,7 +892,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.25.1, @babel/plugin-transform-function-name@npm:^7.27.1": +"@babel/plugin-transform-function-name@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-function-name@npm:7.27.1" dependencies: @@ -860,7 +916,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.25.2, @babel/plugin-transform-literals@npm:^7.27.1": +"@babel/plugin-transform-literals@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-literals@npm:7.27.1" dependencies: @@ -871,7 +927,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7, @babel/plugin-transform-logical-assignment-operators@npm:^7.28.5": +"@babel/plugin-transform-logical-assignment-operators@npm:^7.28.5": version: 7.28.5 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.28.5" dependencies: @@ -977,7 +1033,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.7, @babel/plugin-transform-numeric-separator@npm:^7.27.1": +"@babel/plugin-transform-numeric-separator@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-numeric-separator@npm:7.27.1" dependencies: @@ -988,7 +1044,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.7, @babel/plugin-transform-object-rest-spread@npm:^7.28.4": +"@babel/plugin-transform-object-rest-spread@npm:^7.28.4": version: 7.28.4 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.28.4" dependencies: @@ -1038,7 +1094,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.27.7": +"@babel/plugin-transform-parameters@npm:^7.27.7": version: 7.27.7 resolution: "@babel/plugin-transform-parameters@npm:7.27.7" dependencies: @@ -1206,7 +1262,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.24.7, @babel/plugin-transform-shorthand-properties@npm:^7.27.1": +"@babel/plugin-transform-shorthand-properties@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1" dependencies: @@ -1217,7 +1273,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.24.7, @babel/plugin-transform-spread@npm:^7.27.1": +"@babel/plugin-transform-spread@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-spread@npm:7.27.1" dependencies: @@ -1229,7 +1285,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.24.7, @babel/plugin-transform-sticky-regex@npm:^7.27.1": +"@babel/plugin-transform-sticky-regex@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1" dependencies: @@ -1466,7 +1522,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.25.0, @babel/template@npm:^7.27.1, @babel/template@npm:^7.27.2, @babel/template@npm:^7.3.3": +"@babel/template@npm:^7.27.1, @babel/template@npm:^7.27.2, @babel/template@npm:^7.3.3": version: 7.27.2 resolution: "@babel/template@npm:7.27.2" dependencies: @@ -1477,7 +1533,18 @@ __metadata: languageName: node linkType: hard -"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @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/traverse@npm:^7.28.5": +"@babel/template@npm:^7.28.6, @babel/template@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/template@npm:7.29.7" + dependencies: + "@babel/code-frame": ^7.29.7 + "@babel/parser": ^7.29.7 + "@babel/types": ^7.29.7 + checksum: 521eb6a1fd4735074ca8dac0d70810860a80edf3bf78105851571993cd13701a2041987e7398ccc9376eb6235ea1258bf494ccaccf3b67fa98dbe954154a2e93 + languageName: node + linkType: hard + +"@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/traverse@npm:^7.28.5": version: 7.28.5 resolution: "@babel/traverse@npm:7.28.5" dependencies: @@ -1492,7 +1559,22 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.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.28.5, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": +"@babel/traverse@npm:^7.29.0": + version: 7.29.8 + resolution: "@babel/traverse@npm:7.29.8" + dependencies: + "@babel/code-frame": ^7.29.7 + "@babel/generator": ^7.29.8 + "@babel/helper-globals": ^7.29.7 + "@babel/parser": ^7.29.8 + "@babel/template": ^7.29.7 + "@babel/types": ^7.29.8 + debug: ^4.3.1 + checksum: 7c33eb59db5c67411305ed1d29fe50dbde74b220f4500840951d776fbcc3fbddca09f57302e8961d2533871ef4719ec0f2f05969870263b180d6ff4217f7acee + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.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.28.5, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.28.5 resolution: "@babel/types@npm:7.28.5" dependencies: @@ -1502,6 +1584,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.29.0, @babel/types@npm:^7.29.7, @babel/types@npm:^7.29.8": + version: 7.29.8 + resolution: "@babel/types@npm:7.29.8" + dependencies: + "@babel/helper-string-parser": ^7.29.7 + "@babel/helper-validator-identifier": ^7.29.7 + checksum: 9ac45d1fc702bce8e51f74566c85211f4a5d06b6f921c297e07f05742ac0eb9660d4380f96ac18d882415e4e1172e92a3fc7a20b29afd2277b713efc5b3c7cf6 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -1811,8 +1903,8 @@ __metadata: dependencies: "@commitlint/config-conventional": ^19.2.2 "@evilmartians/lefthook": ^1.5.0 - "@react-native/babel-preset": ^0.83.1 - "@react-native/typescript-config": ^0.83.1 + "@react-native/babel-preset": 0.87.0 + "@react-native/typescript-config": 0.87.0 "@testing-library/react-native": ^13.3.3 "@types/react": 19.2.0 "@typescript-eslint/eslint-plugin": ^8.43.0 @@ -1829,10 +1921,10 @@ __metadata: eslint-plugin-react-hooks: ^5.2.0 eslint-plugin-react-native: ^5.0.0 prettier: ^3.6.2 - react: 19.2.0 - react-native: 0.83.1 + react: 19.2.3 + react-native: 0.87.0 react-native-builder-bob: ^0.40.13 - react-test-renderer: 19.2.0 + react-test-renderer: 19.2.3 turbo: ^1.10.7 typescript: ^5.8.3 peerDependencies: @@ -2003,15 +2095,6 @@ __metadata: languageName: node linkType: hard -"@jest/create-cache-key-function@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/create-cache-key-function@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - checksum: 681bc761fa1d6fa3dd77578d444f97f28296ea80755e90e46d1c8fa68661b9e67f54dd38b988742db636d26cf160450dc6011892cec98b3a7ceb58cad8ff3aae - languageName: node - linkType: hard - "@jest/diff-sequences@npm:30.0.1": version: 30.0.1 resolution: "@jest/diff-sequences@npm:30.0.1" @@ -2275,6 +2358,13 @@ __metadata: languageName: node linkType: hard +"@nodable/entities@npm:^3.0.0": + version: 3.0.0 + resolution: "@nodable/entities@npm:3.0.0" + checksum: ac37bc86140f8e0074a4595598b553aecd607889abdf996f24cdb37e220973c8d233a56af79fe1b6b35319512ca986c442018eb22e7a6c3c6a51352d77718b92 + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -2331,65 +2421,65 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-clean@npm:20.1.0" +"@react-native-community/cli-clean@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-clean@npm:20.2.0" dependencies: - "@react-native-community/cli-tools": 20.1.0 + "@react-native-community/cli-tools": 20.2.0 execa: ^5.0.0 fast-glob: ^3.3.2 picocolors: ^1.1.1 - checksum: 697fe513380955b8a0590e23769378044d16d26fed5a71c4655f7ba2796b8653523b9fad0476882c02c73c1d2bc89f84f6459c0f3eba3346dbf7c287dff8a413 + checksum: fb460bb18ab257ab8e5f80e3a42448459342f615dfb975bbdac030ed79ecf0ac1c84b130ed0f86cae7165a3ea9f13dd0e811d19f255f63d481655f0913c097bb languageName: node linkType: hard -"@react-native-community/cli-config-android@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-config-android@npm:20.1.0" +"@react-native-community/cli-config-android@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-config-android@npm:20.2.0" dependencies: - "@react-native-community/cli-tools": 20.1.0 + "@react-native-community/cli-tools": 20.2.0 fast-glob: ^3.3.2 - fast-xml-parser: ^4.4.1 + fast-xml-parser: ^5.3.6 picocolors: ^1.1.1 - checksum: 71e5e55dc683d8dea944e1c92de821e7371d6d6ac445b9a36f293322545c4e6fdc0cea75f1887993ae424427fe573cbc8ed58fdce04e9ecced004e86ab9fbca2 + checksum: f85f9b6481e3a2c8c5819e99afe162779decd3199a650559cf8fb0ec1fd3f3b95172021aaf066e6ec497c5807d86ea14c494c93df63442151aafe7d01275a3a7 languageName: node linkType: hard -"@react-native-community/cli-config-apple@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-config-apple@npm:20.1.0" +"@react-native-community/cli-config-apple@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-config-apple@npm:20.2.0" dependencies: - "@react-native-community/cli-tools": 20.1.0 + "@react-native-community/cli-tools": 20.2.0 execa: ^5.0.0 fast-glob: ^3.3.2 picocolors: ^1.1.1 - checksum: 4dc9bd588ddb297b32dfb97df344da53d5734606eeb99747d1058908688dca9acbbfcced406b375eda2663c49277aa762c500a497eb2700b4caeb85c58f6fe87 + checksum: f610f36a9847c10160a9e6575c38b4e38c8cf548091ceb56eb4c211a85db0efbb31c983a32a4fc0cbdcb108ea6f997038df6d08035534814ae51f0ef2de0fd7b languageName: node linkType: hard -"@react-native-community/cli-config@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-config@npm:20.1.0" +"@react-native-community/cli-config@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-config@npm:20.2.0" dependencies: - "@react-native-community/cli-tools": 20.1.0 + "@react-native-community/cli-tools": 20.2.0 cosmiconfig: ^9.0.0 deepmerge: ^4.3.0 fast-glob: ^3.3.2 joi: ^17.2.1 picocolors: ^1.1.1 - checksum: ff904fd5d160c675ce641f6fe1d2d43c5a7d451d63481051945d7c2e9c5ab4e189de324f443c19af96c1bc8f8cd5642675a5645ce6948c1c3a05fc80b7d1b470 + checksum: d0acbbc63aec3abf0dd022aa05c64e84a0629d594c283c8ee976341a54b953efa82980a828842471d2a317cef95b32fa171e1294a5bc5039eecf82cec2a0f872 languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-doctor@npm:20.1.0" +"@react-native-community/cli-doctor@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-doctor@npm:20.2.0" dependencies: - "@react-native-community/cli-config": 20.1.0 - "@react-native-community/cli-platform-android": 20.1.0 - "@react-native-community/cli-platform-apple": 20.1.0 - "@react-native-community/cli-platform-ios": 20.1.0 - "@react-native-community/cli-tools": 20.1.0 + "@react-native-community/cli-config": 20.2.0 + "@react-native-community/cli-platform-android": 20.2.0 + "@react-native-community/cli-platform-apple": 20.2.0 + "@react-native-community/cli-platform-ios": 20.2.0 + "@react-native-community/cli-tools": 20.2.0 command-exists: ^1.2.8 deepmerge: ^4.3.0 envinfo: ^7.13.0 @@ -2400,51 +2490,51 @@ __metadata: semver: ^7.5.2 wcwidth: ^1.0.1 yaml: ^2.2.1 - checksum: fd2cd1892cb5ff4c1111cdf684225827b5975d7251fa23bd8df7b8611d288c8c33cd192268c6345bce6639927d63d3a6594baf667de49e64510f1fb1cf9e6c43 + checksum: 065c85149b05954e032622cb6be2a97f2cea0b776d87017b0d631df42f449b42e80469f2e2392ee039b9d63afb3f49477c8b3a263162d4294b145eb967f71c6d languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-platform-android@npm:20.1.0" +"@react-native-community/cli-platform-android@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-platform-android@npm:20.2.0" dependencies: - "@react-native-community/cli-config-android": 20.1.0 - "@react-native-community/cli-tools": 20.1.0 + "@react-native-community/cli-config-android": 20.2.0 + "@react-native-community/cli-tools": 20.2.0 execa: ^5.0.0 logkitty: ^0.7.1 picocolors: ^1.1.1 - checksum: 200974fc1425ee66482e547e875fb91d911dad11321dc897361da223c4b41828d1a04d5239b9f628db46f0e205c35a502548ff856d44b780e1f3072d102e43da + checksum: 0051a73be6173e7349f9ec90766004959db15e7d4851a6d1445878571a59e644cfd1bdbca69d22391f31269815e6f12c8365868fb5182f92e88bff570d2bc981 languageName: node linkType: hard -"@react-native-community/cli-platform-apple@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-platform-apple@npm:20.1.0" +"@react-native-community/cli-platform-apple@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-platform-apple@npm:20.2.0" dependencies: - "@react-native-community/cli-config-apple": 20.1.0 - "@react-native-community/cli-tools": 20.1.0 + "@react-native-community/cli-config-apple": 20.2.0 + "@react-native-community/cli-tools": 20.2.0 execa: ^5.0.0 - fast-xml-parser: ^4.4.1 + fast-xml-parser: ^5.3.6 picocolors: ^1.1.1 - checksum: 63c8ce8c215c74d4517408d108568d5400d639437dc5d5bbca305bbf052f3a43334fb1bc035a524714fa2be682eb8fbe8fd95201cb122fcff55ca1bd8953daa4 + checksum: 4d3461ca3a48781d6fe352648cb22cd02fe58084da0309cf9c1cc508310665af5e4dd85e5e3988d19895c37f1fb0ededb54426078e3c16db1acb50d6b9f15422 languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-platform-ios@npm:20.1.0" +"@react-native-community/cli-platform-ios@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-platform-ios@npm:20.2.0" dependencies: - "@react-native-community/cli-platform-apple": 20.1.0 - checksum: da425c68bb20ade47f6283eba247d210206ddd651c9f80191c1b6e92ee5978a35b69df7a96c323dad9a0cf4dce7236ab84f34d9a6c51aa1d776d61de48f657eb + "@react-native-community/cli-platform-apple": 20.2.0 + checksum: 5ccec2a92842043bdabfa3464226571dc1c9bf8e73dac2adbd3dea98a1d9f6e75d2dcb5b4fee9ea48c2acf6921013ba70f9b751a7255715f59ce9e0d66e1a4fc languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-server-api@npm:20.1.0" +"@react-native-community/cli-server-api@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-server-api@npm:20.2.0" dependencies: - "@react-native-community/cli-tools": 20.1.0 - body-parser: ^1.20.3 + "@react-native-community/cli-tools": 20.2.0 + body-parser: ^2.2.2 compression: ^1.7.1 connect: ^3.6.5 errorhandler: ^1.5.1 @@ -2453,13 +2543,13 @@ __metadata: pretty-format: ^29.7.0 serve-static: ^1.13.1 ws: ^6.2.3 - checksum: 8c9923aaf40879bc2827fa6f89f8394b9ee25b3e8864b4eba0ddf0c285ea9426f953b2227509fde2b5ece512a2a39a89e835d30071b841764aeac8176bfa86f7 + checksum: d5089cb09c171ca4ce6d59501c931bb42d3283840a6c7b28ee767bf74bc594c6019cbe7e8def2de7c752130d48beef990f05b16b22815b15c767f795a415f461 languageName: node linkType: hard -"@react-native-community/cli-tools@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-tools@npm:20.1.0" +"@react-native-community/cli-tools@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-tools@npm:20.2.0" dependencies: "@vscode/sudo-prompt": ^9.0.0 appdirsjs: ^1.2.4 @@ -2471,29 +2561,29 @@ __metadata: picocolors: ^1.1.1 prompts: ^2.4.2 semver: ^7.5.2 - checksum: b856b7a0403511c6110a50185abc73efc88399cc76510a01035a1002b581cbebed2b0bd47ccde6c9887479da75a80a38b0c29c8a805ade7039f03d08fa3fca54 + checksum: 15afb79d88bb078e95631fc25964b554202b0ff0faf607c7af21e22882ffff926c36dbfc76250f1793747a9809872645869c0b00273bc02afbc667c0221855d4 languageName: node linkType: hard -"@react-native-community/cli-types@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli-types@npm:20.1.0" +"@react-native-community/cli-types@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli-types@npm:20.2.0" dependencies: joi: ^17.2.1 - checksum: 1ae86701a98ac21d0e67f2fcce3859e44c2315c55076aaf82cf80ebf19e91fe95f177208803fddd562f6578549f6ee816356406b5ce106fa0a4e7d30f5aafcdc + checksum: 218fb539c8fb33bf18afe67500ca0a2d929e4e9b4ad33041101bf5f718abf8814249fae704fa60c9838dd2cfa8b3f97cf71dd35c5440055a6edffced67f50042 languageName: node linkType: hard -"@react-native-community/cli@npm:20.1.0": - version: 20.1.0 - resolution: "@react-native-community/cli@npm:20.1.0" +"@react-native-community/cli@npm:20.2.0": + version: 20.2.0 + resolution: "@react-native-community/cli@npm:20.2.0" dependencies: - "@react-native-community/cli-clean": 20.1.0 - "@react-native-community/cli-config": 20.1.0 - "@react-native-community/cli-doctor": 20.1.0 - "@react-native-community/cli-server-api": 20.1.0 - "@react-native-community/cli-tools": 20.1.0 - "@react-native-community/cli-types": 20.1.0 + "@react-native-community/cli-clean": 20.2.0 + "@react-native-community/cli-config": 20.2.0 + "@react-native-community/cli-doctor": 20.2.0 + "@react-native-community/cli-server-api": 20.2.0 + "@react-native-community/cli-tools": 20.2.0 + "@react-native-community/cli-types": 20.2.0 commander: ^9.4.1 deepmerge: ^4.3.0 execa: ^5.0.0 @@ -2505,30 +2595,30 @@ __metadata: semver: ^7.5.2 bin: rnc-cli: build/bin.js - checksum: c6e8c3873885a60389b859123a42669c7698c33de4a94aaaa680a67fd0ba67944346bcfc87c7066e39fdbb015834db85446f188aa5ee1ff804da3fad41d130ca + checksum: c9b5796c3d9c920f419be2fced9ac2deaf476cffc44cfa4459401272cb33b1ca033db221dada1cafda627330566eba1a67cd23cb6854dd132253ad70af62552c languageName: node linkType: hard -"@react-native/assets-registry@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/assets-registry@npm:0.83.1" - checksum: ec788b086fb1be0813d47660c34cdd758eb54dada0e9e1a2e8b55d888adab3bd9e6431742d645317f94033522805fc2c7902aa9de567d7c77d37b9619d927cd5 +"@react-native/asset-utils@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/asset-utils@npm:0.87.0" + checksum: 0c9856792fe8a42ca18eb95b38f54918dc33ca6f74e0d67b8bb713c49c5aed62bc5f7a6e7991c448a08cef88c75133b5baaf8bf2810c754d8c92574d8b617729 languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/babel-plugin-codegen@npm:0.83.1" +"@react-native/babel-plugin-codegen@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/babel-plugin-codegen@npm:0.87.0" dependencies: - "@babel/traverse": ^7.25.3 - "@react-native/codegen": 0.83.1 - checksum: 39e44ed3576b823434de4acea4d6fc1312da867d1dce9522d2634bce42f3bf061e94e0887b060825aa739d696b7324fda276469b4be4f8be86eea7d648b6dc55 + "@babel/traverse": ^7.29.0 + "@react-native/codegen": 0.87.0 + checksum: 24227d5cbd8639fc03f787cef3733813d4922b92165ed037a94cf3da4bdb0a6a9a2228bb00519c11faf21370ed7ad1c66ef1f9928a918b52a946ffbcf903155d languageName: node linkType: hard -"@react-native/babel-preset@npm:0.83.1, @react-native/babel-preset@npm:^0.83.1": - version: 0.83.1 - resolution: "@react-native/babel-preset@npm:0.83.1" +"@react-native/babel-preset@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/babel-preset@npm:0.87.0" dependencies: "@babel/core": ^7.25.2 "@babel/plugin-proposal-export-default-from": ^7.24.7 @@ -2536,27 +2626,19 @@ __metadata: "@babel/plugin-syntax-export-default-from": ^7.24.7 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-transform-arrow-functions": ^7.24.7 "@babel/plugin-transform-async-generator-functions": ^7.25.4 "@babel/plugin-transform-async-to-generator": ^7.24.7 "@babel/plugin-transform-block-scoping": ^7.25.0 "@babel/plugin-transform-class-properties": ^7.25.4 "@babel/plugin-transform-classes": ^7.25.4 - "@babel/plugin-transform-computed-properties": ^7.24.7 "@babel/plugin-transform-destructuring": ^7.24.8 "@babel/plugin-transform-flow-strip-types": ^7.25.2 "@babel/plugin-transform-for-of": ^7.24.7 - "@babel/plugin-transform-function-name": ^7.25.1 - "@babel/plugin-transform-literals": ^7.25.2 - "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 "@babel/plugin-transform-modules-commonjs": ^7.24.8 "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.7 "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.7 - "@babel/plugin-transform-numeric-separator": ^7.24.7 - "@babel/plugin-transform-object-rest-spread": ^7.24.7 "@babel/plugin-transform-optional-catch-binding": ^7.24.7 "@babel/plugin-transform-optional-chaining": ^7.24.8 - "@babel/plugin-transform-parameters": ^7.24.7 "@babel/plugin-transform-private-methods": ^7.24.7 "@babel/plugin-transform-private-property-in-object": ^7.24.7 "@babel/plugin-transform-react-display-name": ^7.24.7 @@ -2565,88 +2647,84 @@ __metadata: "@babel/plugin-transform-react-jsx-source": ^7.24.7 "@babel/plugin-transform-regenerator": ^7.24.7 "@babel/plugin-transform-runtime": ^7.24.7 - "@babel/plugin-transform-shorthand-properties": ^7.24.7 - "@babel/plugin-transform-spread": ^7.24.7 - "@babel/plugin-transform-sticky-regex": ^7.24.7 "@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.83.1 - babel-plugin-syntax-hermes-parser: 0.32.0 + "@react-native/babel-plugin-codegen": 0.87.0 + babel-plugin-syntax-hermes-parser: 0.36.1 babel-plugin-transform-flow-enums: ^0.0.2 react-refresh: ^0.14.0 peerDependencies: "@babel/core": "*" - checksum: fbff4569a44063d779de784e0e87871d1069438f30a909520f1902e04c72df4d36682b582dc834def8c71b06c4ac4f3481f61751c4b23cb720cf514d13f12b23 + checksum: 0b3681078df49ec60f5c56153fdc16e7bb70ca2bece12b1503d47ba0e2c9f396bbc6b4efcb1d974cf480162aaffdb2c1279d3ec52bc4aa8f93d1b6e89545de31 languageName: node linkType: hard -"@react-native/codegen@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/codegen@npm:0.83.1" +"@react-native/codegen@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/codegen@npm:0.87.0" dependencies: "@babel/core": ^7.25.2 - "@babel/parser": ^7.25.3 - glob: ^7.1.1 - hermes-parser: 0.32.0 + "@babel/parser": ^7.29.0 + hermes-parser: 0.36.1 invariant: ^2.2.4 nullthrows: ^1.1.1 + tinyglobby: ^0.2.15 yargs: ^17.6.2 peerDependencies: "@babel/core": "*" - checksum: 49c7e79b81d2595df33617b29aea981716ac36d92083301977c896a8299d1e1ce86054a804c85e1411a3732fd4e1b71e6e9edf53830b577ec5a9dd9120ca45a0 + checksum: fd86df5e90a638900be87715926d5e47cb6de7657d634f40e02ff809a25cff5d455d0853afc2d88ac5a13884f58a53b1181a5485550b29a77c13001ff98ec79d languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/community-cli-plugin@npm:0.83.1" +"@react-native/community-cli-plugin@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/community-cli-plugin@npm:0.87.0" dependencies: - "@react-native/dev-middleware": 0.83.1 + "@react-native/asset-utils": 0.87.0 + "@react-native/dev-middleware": 0.87.0 debug: ^4.4.0 invariant: ^2.2.4 - metro: ^0.83.3 - metro-config: ^0.83.3 - metro-core: ^0.83.3 + metro: ^0.87.0 semver: ^7.1.3 peerDependencies: "@react-native-community/cli": "*" - "@react-native/metro-config": "*" + "@react-native/metro-config": 0.87.0 peerDependenciesMeta: "@react-native-community/cli": optional: true "@react-native/metro-config": optional: true - checksum: 75d2a9e4de37bb4eb59d787e31c12e4e36db363b765d6ceaae68ab1f4c7cad021f9f8358eeef4c795949172d6af94f4d93081f98e4110a39d14868cecfde75bd + checksum: 78c2d58251362e5fe2bb5d4b9cda0d87f885e5b57184525a3174a8e7baf2e608bc34b9dc6ff6243219022ecfbbb411d6cf0911f1dcb038c5c67487328f7960e9 languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/debugger-frontend@npm:0.83.1" - checksum: 6eb15797a5a136a99443e9d8ee1da14a22cc3fdf629272811018a046d2d5abc0c9f60ccc41d7f95c5e04fbd361b4cdae924f79b81f7a11bdb119e15a072c08f7 +"@react-native/debugger-frontend@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/debugger-frontend@npm:0.87.0" + checksum: 051acdc1b60fadecd91ce64de11f6df8a4610fddfbc9a0316df8469d4074858171134c43388076a44089be4ebb97fe15783d102c0d047c23fcd701103823b93b languageName: node linkType: hard -"@react-native/debugger-shell@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/debugger-shell@npm:0.83.1" +"@react-native/debugger-shell@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/debugger-shell@npm:0.87.0" dependencies: cross-spawn: ^7.0.6 + debug: ^4.4.0 fb-dotslash: 0.5.8 - checksum: 22f45aeb7f3f9f93c7e9615b66bf158e7f3764d5c31e4aea80b85ffef28369d82a2e6208c7dca80e0ceeadf3fa17616f4c90b8fdbab41826a8c72d4ff194309b + checksum: f82afbb0039aca31edb48b12c29b2eb7e64938b179bb950f60edf4ee5ec3c06787da44a7bab707ff3229d6e80244214bcc272182ccdc3e4e0c80e896a3992f9c languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/dev-middleware@npm:0.83.1" +"@react-native/dev-middleware@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/dev-middleware@npm:0.87.0" dependencies: "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.83.1 - "@react-native/debugger-shell": 0.83.1 + "@react-native/debugger-frontend": 0.87.0 + "@react-native/debugger-shell": 0.87.0 chrome-launcher: ^0.15.2 - chromium-edge-launcher: ^0.2.0 + chromium-edge-launcher: ^0.3.0 connect: ^3.6.5 debug: ^4.4.0 invariant: ^2.2.4 @@ -2654,148 +2732,160 @@ __metadata: open: ^7.0.3 serve-static: ^1.16.2 ws: ^7.5.10 - checksum: d8439119cd99a8db0649b97a1f459222f49bb9425e1248d1466e4f7f4a104915d1e6ccc11403a5a0f3aa810eea3aa836f921ff11f44c4d3a06769d96083beb86 + checksum: 0e73996658a14e1f2eab78dbc950bfa50889804b765c38a97eb4c95b5c1c5bfc923b2e4ea783551c2f8aef3a75a2a6df810db271083f4268e8b4e87fd53796c8 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/gradle-plugin@npm:0.83.1" - checksum: dcf126b36fc46d06d2c8e5482a63566aca36273c3b2da79c67e158ea82f25445775456077afc1fbaf0c198d3307aa94bda814d177c31a149fc1ee06ab0614105 +"@react-native/gradle-plugin@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/gradle-plugin@npm:0.87.0" + checksum: 441df68ffc57bd61be2d82f560d3cf3c3cb700afe03aa31e607edfff9ed71f5f274dc7a52f5573c286eb9c486894226e3cbb60b893c7878c0f1da2acfee1c9b1 languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/js-polyfills@npm:0.83.1" - checksum: 1c3fbceac6371252d6e54f9e76b852bfaec7a7472455f9856467dd73a87b8445eda03fb38fc65bc9abd76606e6e52041c754db41f2a23c74dbf5e052e9af129a +"@react-native/js-polyfills@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/js-polyfills@npm:0.87.0" + checksum: bc14a20ba288c447267ce8624fa78b053cf6347cf394a5a4ccb2bfcd86d12a26962cc7897d6a2233b6020f0c02055680cff05df5b902f1e8512786bbb34b2a23 languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/metro-babel-transformer@npm:0.83.1" +"@react-native/metro-babel-transformer@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/metro-babel-transformer@npm:0.87.0" dependencies: "@babel/core": ^7.25.2 - "@react-native/babel-preset": 0.83.1 - hermes-parser: 0.32.0 + "@react-native/babel-preset": 0.87.0 + hermes-parser: 0.36.1 nullthrows: ^1.1.1 peerDependencies: "@babel/core": "*" - checksum: c5b9fff540ae9d8df789823f6119e42415374079745bdd187be32ea919e0e7862f839e7311e102e0d3d3c5583c078021d4c3bb7a91374d306ef8ce4fe70a3793 + checksum: 097c453644dd4f908b92813aa0d01549102068e5d19e0deade3a8eede7ebaf868e470c118dd03becf3de9be80751ee1d7dcba122303ce80ec5ec6f6582fa775e languageName: node linkType: hard -"@react-native/metro-config@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/metro-config@npm:0.83.1" +"@react-native/metro-config@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/metro-config@npm:0.87.0" dependencies: - "@react-native/js-polyfills": 0.83.1 - "@react-native/metro-babel-transformer": 0.83.1 - metro-config: ^0.83.3 - metro-runtime: ^0.83.3 - checksum: dd5c4962e33aeecbb71fc70199de8bd7cf808d2e92b310eac2337e497683b92af68f388f206298988425f84c509768ea99a35802bcde405a07f32676107d691b + "@react-native/js-polyfills": 0.87.0 + "@react-native/metro-babel-transformer": 0.87.0 + metro-config: ^0.87.0 + metro-runtime: ^0.87.0 + checksum: a7fee4869996f7681baeb4ae153473da62827bd34ffd1a43af189843ec32bd6a1d0255911b0ce9aa43a0d445d4ad703bdb9b22c92327b452ba5402ca03546a6d languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/normalize-colors@npm:0.83.1" - checksum: dd87c889218522affe58059d424404cee28f168bc3641f015ee2620c55b3e29930d279eed6916f866c166bb53d425cd160ccfaab546a6123b6c74e9931eac5d1 +"@react-native/normalize-colors@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/normalize-colors@npm:0.87.0" + checksum: 9c6cfabef6e975b12d4b10a5701678fa9bca95c092b3f535c2041e58b864e1bcef33c6539a4ce4cb4e686311d32d5f63c1bb1d65b620cf20bfc883679fcfad09 languageName: node linkType: hard -"@react-native/typescript-config@npm:0.83.1, @react-native/typescript-config@npm:^0.83.1": - version: 0.83.1 - resolution: "@react-native/typescript-config@npm:0.83.1" - checksum: fb0d4716fb0fc01cf50cb872ed417d6387e64d25a283dffa22053db3986550b0adb57c09d2e6c6fa3114b13bf366da06e2cc466e77c4aeb71106448bfd166847 +"@react-native/typescript-config@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/typescript-config@npm:0.87.0" + checksum: 002aa089d713c5d4df50116394b34f8872c746910775aad316333bacdb2a15bba98a4ed258e9b14189fa84b198d93cb6147b03806a5e911b851a9e1750d8ada2 languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.83.1": - version: 0.83.1 - resolution: "@react-native/virtualized-lists@npm:0.83.1" +"@react-native/virtualized-lists@npm:0.87.0": + version: 0.87.0 + resolution: "@react-native/virtualized-lists@npm:0.87.0" dependencies: invariant: ^2.2.4 nullthrows: ^1.1.1 peerDependencies: "@types/react": ^19.2.0 react: "*" - react-native: "*" + react-native: 0.87.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 35205e505c53ff95c71434c82d02d11a454c28d603189b84c83207fa121874d3c6e5a0b0605495fbaa6eef797a71aa42df8d1780e2e2c64ee1e6b2548a815e27 + checksum: afd5a69c3a8e742ba007a4b58343d96aa75da1a3f806a46ea85f4385415aa32f8b47ecc0525655f2652aeb112851c93ded20cebfcfe0340204f390fe5a7eea30 languageName: node linkType: hard -"@react-navigation/core@npm:^6.4.17": - version: 6.4.17 - resolution: "@react-navigation/core@npm:6.4.17" +"@react-navigation/core@npm:^7.21.12": + version: 7.21.12 + resolution: "@react-navigation/core@npm:7.21.12" dependencies: - "@react-navigation/routers": ^6.1.9 + "@react-navigation/routers": ^7.6.4 escape-string-regexp: ^4.0.0 - nanoid: ^3.1.23 + fast-deep-equal: ^3.1.3 + nanoid: ^3.3.11 query-string: ^7.1.3 - react-is: ^16.13.0 - use-latest-callback: ^0.2.1 + react-is: ^19.1.0 + use-latest-callback: ^0.2.4 + use-sync-external-store: ^1.5.0 peerDependencies: - react: "*" - checksum: 5e7315bb6ebff8e796eaccb0442d00696466750cc387e93f5edb5293d4ad3f409c1525ef76192894488e2d0979b762b236a1b0fbbb7500b2f065bf4745d509c0 + react: ">= 18.2.0" + checksum: 96768c9f6b4269db5356a00c613edacaa36326bc2c029f415bd26364734b95cb935f177bce14b6abd3d007859dc8fe050dbf3d2ebb9d0c52fd812e6542d253a9 languageName: node linkType: hard -"@react-navigation/elements@npm:^1.3.31": - version: 1.3.31 - resolution: "@react-navigation/elements@npm:1.3.31" +"@react-navigation/elements@npm:^2.9.38": + version: 2.9.38 + resolution: "@react-navigation/elements@npm:2.9.38" + dependencies: + color: ^4.2.3 + use-latest-callback: ^0.2.4 + use-sync-external-store: ^1.5.0 peerDependencies: - "@react-navigation/native": ^6.0.0 - react: "*" + "@react-native-masked-view/masked-view": ">= 0.2.0" + "@react-navigation/native": ^7.3.16 + react: ">= 18.2.0" react-native: "*" - react-native-safe-area-context: ">= 3.0.0" - checksum: 1e4a65ccd9fab757d01bf41f605aafd6ca8301ae25ad7d3f1769320793418cca9fe2f25ac9337578ce1e0a1560bbbc3a88f18b899867aacd4d31de7a789e417e + react-native-safe-area-context: ">= 4.0.0" + peerDependenciesMeta: + "@react-native-masked-view/masked-view": + optional: true + checksum: db44be714ba6638bfcf38c4eaf0690aba99947e5b14cfecf78db0196d48a903e5a34969e31dd68cad4b0ae6d31b372699381ae110adb2f4f5da2805a791377cc languageName: node linkType: hard -"@react-navigation/native@npm:^6.1.18": - version: 6.1.18 - resolution: "@react-navigation/native@npm:6.1.18" +"@react-navigation/native@npm:^7.3.16": + version: 7.3.16 + resolution: "@react-navigation/native@npm:7.3.16" dependencies: - "@react-navigation/core": ^6.4.17 + "@react-navigation/core": ^7.21.12 escape-string-regexp: ^4.0.0 fast-deep-equal: ^3.1.3 - nanoid: ^3.1.23 + nanoid: ^3.3.11 + standard-navigation: ^0.0.8 + use-latest-callback: ^0.2.4 peerDependencies: - react: "*" + react: ">= 18.2.0" react-native: "*" - checksum: 82aeea67723f5dc41403e1c260f04942696f6cde95e30629c383521c3837d18d2d5c21bd78f0ade50beb81ac5edca2d7d38980dcd3a79e3acc86f45d0c09a4b8 + checksum: 7037ffde1100b1ecc6430e3fe1e9c4ec473e7159ea8343b257bfe98fd66770048c913ed48bbfe440765004140b7101ed9ccd89b6df254bf356e607e1b6e840ee languageName: node linkType: hard -"@react-navigation/routers@npm:^6.1.9": - version: 6.1.9 - resolution: "@react-navigation/routers@npm:6.1.9" +"@react-navigation/routers@npm:^7.6.4": + version: 7.6.4 + resolution: "@react-navigation/routers@npm:7.6.4" dependencies: - nanoid: ^3.1.23 - checksum: 3a3392ce095d6a2bd2aad69856f513b35774f943a3dc73d8ffb75127de6773203e3264188d87058bdea4c0c9a7d43ed28d0cbf3a1f1cdc086df3ee255d8e1e27 + nanoid: ^3.3.11 + checksum: 4a111285cd99ddf91a456c464a302b1bb5da94359fcf426c819ae79d24f71d808bda23c12b5497778bc6a8c581114e267f4ec3b12f0ec57847a7af91e8a89b55 languageName: node linkType: hard -"@react-navigation/stack@npm:^6.4.1": - version: 6.4.1 - resolution: "@react-navigation/stack@npm:6.4.1" +"@react-navigation/stack@npm:^7.10.22": + version: 7.10.22 + resolution: "@react-navigation/stack@npm:7.10.22" dependencies: - "@react-navigation/elements": ^1.3.31 + "@react-navigation/elements": ^2.9.38 color: ^4.2.3 - warn-once: ^0.1.0 + use-latest-callback: ^0.2.4 peerDependencies: - "@react-navigation/native": ^6.0.0 - react: "*" + "@react-navigation/native": ^7.3.16 + react: ">= 18.2.0" react-native: "*" - react-native-gesture-handler: ">= 1.0.0" - react-native-safe-area-context: ">= 3.0.0" - react-native-screens: ">= 3.0.0" - checksum: 09bcfb001db0f411df881da9f2551b7015c4d5259a77fcb93196de308838035d016dc4dcb654d16d9cd4cc99f09f5e48add796aa903f9a253678947c35b18199 + react-native-gesture-handler: ">= 2.0.0" + react-native-safe-area-context: ">= 4.0.0" + react-native-screens: ">= 4.0.0" + checksum: df6d7b7921fe915a982b4a7e019414e67fefe5973aabbb6a4438fa3212a456adf70d00173bd7a4f4dc22b2bf73177f02742b72cbf8959a88d4a276cd372e5bfa languageName: node linkType: hard @@ -3422,16 +3512,17 @@ __metadata: languageName: node linkType: hard -"abort-controller@npm:^3.0.0": - version: 3.0.0 - resolution: "abort-controller@npm:3.0.0" +"accepts@npm:^2.0.0": + version: 2.0.0 + resolution: "accepts@npm:2.0.0" dependencies: - event-target-shim: ^5.0.0 - checksum: 170bdba9b47b7e65906a28c8ce4f38a7a369d78e2271706f020849c1bfe0ee2067d4261df8bbb66eb84f79208fd5b710df759d64191db58cfba7ce8ef9c54b75 + mime-types: ^3.0.0 + negotiator: ^1.0.0 + checksum: 49fe6c050cb6f6ff4e771b4d88324fca4d3127865f2473872e818dca127d809ba3aa8fdfc7acb51dd3c5bade7311ca6b8cfff7015ea6db2f7eb9c8444d223a4f languageName: node linkType: hard -"accepts@npm:^1.3.7, accepts@npm:~1.3.7": +"accepts@npm:~1.3.7": version: 1.3.8 resolution: "accepts@npm:1.3.8" dependencies: @@ -3600,6 +3691,13 @@ __metadata: languageName: node linkType: hard +"anynum@npm:^1.0.1": + version: 1.0.1 + resolution: "anynum@npm:1.0.1" + checksum: 42b4b624ec5b6ba3cf2ba457568a66f48adfe59c7ea5dae3931aec1d5292f1549ee436d54ab1e205beb7c7c7eed136daa03c878e8d4575cd6b5e712df2f84146 + languageName: node + linkType: hard + "appdirsjs@npm:^1.2.4": version: 1.2.7 resolution: "appdirsjs@npm:1.2.7" @@ -3900,12 +3998,12 @@ __metadata: languageName: node linkType: hard -"babel-plugin-syntax-hermes-parser@npm:0.32.0": - version: 0.32.0 - resolution: "babel-plugin-syntax-hermes-parser@npm:0.32.0" +"babel-plugin-syntax-hermes-parser@npm:0.36.1": + version: 0.36.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.36.1" dependencies: - hermes-parser: 0.32.0 - checksum: ec76abeefabf940e2d571db3b47d022a9be7602286133291e8e047d4855af6a8afc079e4631bc9a56209d751fad54b5199932a55753b1e2b56a719d20e2d5065 + hermes-parser: 0.36.1 + checksum: e04c93e1b36c72dc2b2cef447932f4978dc7e1924ea0ecc24dc3cc25809c4f816c72fc7caaae64b50b3359a20acc4e16cc573a1b2a153c38ad2ab6bdc639544b languageName: node linkType: hard @@ -4005,23 +4103,20 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:^1.20.3": - version: 1.20.3 - resolution: "body-parser@npm:1.20.3" +"body-parser@npm:^2.2.2": + version: 2.3.0 + resolution: "body-parser@npm:2.3.0" dependencies: - bytes: 3.1.2 - content-type: ~1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.14.1 - raw-body: 2.5.2 - type-is: ~1.6.18 - unpipe: 1.0.0 - checksum: 1a35c59a6be8d852b00946330141c4f142c6af0f970faa87f10ad74f1ee7118078056706a05ae3093c54dabca9cd3770fa62a170a85801da1a4324f04381167d + bytes: ^3.1.2 + content-type: ^2.0.0 + debug: ^4.4.3 + http-errors: ^2.0.1 + iconv-lite: ^0.7.2 + on-finished: ^2.4.1 + qs: ^6.15.2 + raw-body: ^3.0.2 + type-is: ^2.1.0 + checksum: 44d681aaa2d6ffe3efb4f6c098e7c4f7beae0d158580f7abea1cd487fc05b485488815f5c6fc71aa05975541c00042b4becdb485c441ddd63ce9c71b63b7ea4d languageName: node linkType: hard @@ -4191,7 +4286,7 @@ __metadata: languageName: node linkType: hard -"bytes@npm:3.1.2": +"bytes@npm:3.1.2, bytes@npm:^3.1.2, bytes@npm:~3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" checksum: e4bcd3948d289c5127591fbedf10c0b639ccbf00243504e4e127374a15c3bc8eed0d28d4aaab08ff6f1cf2abc0cce6ba3085ed32f4f90e82a5683ce0014e1b6e @@ -4341,17 +4436,16 @@ __metadata: languageName: node linkType: hard -"chromium-edge-launcher@npm:^0.2.0": - version: 0.2.0 - resolution: "chromium-edge-launcher@npm:0.2.0" +"chromium-edge-launcher@npm:^0.3.0": + version: 0.3.0 + resolution: "chromium-edge-launcher@npm:0.3.0" dependencies: "@types/node": "*" escape-string-regexp: ^4.0.0 is-wsl: ^2.2.0 lighthouse-logger: ^1.0.0 mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: 9b56d1f8f18e84e34d6da89a4d97787ef323a1ade6551dcc83a6899af17c1bfc27a844c23422a29f51c6a315d1e04e2ad12595aaf07d3822335c2fce15914feb + checksum: 23992453ad683c950dd3e532b491cdf6188b09d1495b012829c4ed52e2b37450ef1c7011e9ceed75a53669e4bae9444bde783bfb693fa43486b423acb7cc13e3 languageName: node linkType: hard @@ -4638,10 +4732,10 @@ __metadata: languageName: node linkType: hard -"content-type@npm:~1.0.5": - version: 1.0.5 - resolution: "content-type@npm:1.0.5" - checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766 +"content-type@npm:^2.0.0": + version: 2.1.0 + resolution: "content-type@npm:2.1.0" + checksum: d49ee84ba26900bfd57c95913be9baffdc2b51c4c8cc9bcdfa815d29aa7af6dce547d04007a356519da4b45a75a21fedbaee244aaef84a55e32900fcb79bce0b languageName: node linkType: hard @@ -4821,7 +4915,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0, debug@npm:^4.4.1": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0, debug@npm:^4.4.1, debug@npm:^4.4.3": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -4989,7 +5083,7 @@ __metadata: languageName: node linkType: hard -"depd@npm:2.0.0": +"depd@npm:2.0.0, depd@npm:~2.0.0": version: 2.0.0 resolution: "depd@npm:2.0.0" checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a @@ -5775,13 +5869,6 @@ __metadata: languageName: node linkType: hard -"event-target-shim@npm:^5.0.0": - version: 5.0.1 - resolution: "event-target-shim@npm:5.0.1" - checksum: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166 - languageName: node - linkType: hard - "execa@npm:^4.0.3": version: 4.1.0 resolution: "execa@npm:4.1.0" @@ -5898,14 +5985,29 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:^4.4.1": - version: 4.5.3 - resolution: "fast-xml-parser@npm:4.5.3" +"fast-xml-builder@npm:^1.2.0": + version: 1.3.1 + resolution: "fast-xml-builder@npm:1.3.1" dependencies: - strnum: ^1.1.1 + path-expression-matcher: ^1.6.2 + xml-naming: ^0.3.0 + checksum: e243f8b2adeb9ffbea8318f9bed9518dfff8d607b10b66ca6dd07793a3dbc87a674518f27ad27ef1c227cb9019954eee92fed938daeb6bdf69260b85204b495b + languageName: node + linkType: hard + +"fast-xml-parser@npm:^5.3.6": + version: 5.11.0 + resolution: "fast-xml-parser@npm:5.11.0" + dependencies: + "@nodable/entities": ^3.0.0 + fast-xml-builder: ^1.2.0 + is-unsafe: ^2.0.0 + path-expression-matcher: ^1.6.2 + strnum: ^2.4.2 + xml-naming: ^0.3.0 bin: fxparser: src/cli/cli.js - checksum: cd6a184941ec6c23f9e6b514421a3f396cfdff5f4a8c7c27bd0eff896edb4a2b55c27da16f09b789663613dfc4933602b9b71ac3e9d1d2ddcc0492fc46c8fa52 + checksum: 07b543368d4d721f2b798b92d180a514dd39bb058f8db6bcf04db8d4cdcb459774a4fd9549ae341b30f80aaef42c832a70756474e9e6abf259167d86c4dddcaf languageName: node linkType: hard @@ -6351,7 +6453,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4": +"glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -6536,10 +6638,10 @@ __metadata: languageName: node linkType: hard -"hermes-compiler@npm:0.14.0": - version: 0.14.0 - resolution: "hermes-compiler@npm:0.14.0" - checksum: 5b614ebe621e92550efd77a6aefe85d9cbab865386dc36de9895d4684ba0af13623d045b99f5b834f91a42ba3f00982462908eaf7cb6c8423056e9d5c8280ab3 +"hermes-compiler@npm:250829098.0.16": + version: 250829098.0.16 + resolution: "hermes-compiler@npm:250829098.0.16" + checksum: cc027cb8c672eea9a5c9ef4d4555f066d38793288a067db2b22538350f89a1cd044d0c175dd7fbd1902f1d7a81f3c134119688410c8210391ba6bfd55de87659 languageName: node linkType: hard @@ -6550,10 +6652,10 @@ __metadata: languageName: node linkType: hard -"hermes-estree@npm:0.32.0": - version: 0.32.0 - resolution: "hermes-estree@npm:0.32.0" - checksum: 7b0606a8d2cf4593634d01b0eae0764c0e4703bc5cd73cbb0547fb8dda9445a27a83345117c08eef64f6bdab1287e3c5a4e3001deed465a715d26f4e918c8b22 +"hermes-estree@npm:0.36.1": + version: 0.36.1 + resolution: "hermes-estree@npm:0.36.1" + checksum: 254b0aa82272ed32f1c444283eb107142da9eee16b1bc2bb9928668fb95626581975543de5d5c23af542bfe0fab0b0b34af671442381b110b8a2b196f0321efb languageName: node linkType: hard @@ -6566,12 +6668,12 @@ __metadata: languageName: node linkType: hard -"hermes-parser@npm:0.32.0": - version: 0.32.0 - resolution: "hermes-parser@npm:0.32.0" +"hermes-parser@npm:0.36.1": + version: 0.36.1 + resolution: "hermes-parser@npm:0.36.1" dependencies: - hermes-estree: 0.32.0 - checksum: 7ec172ec763ee5ba1d01f273084ab4c7ad7a543d1ed11e887ea3a9eba7c0b83854dde08e835e38f29b74146b5ce17e67d556774324a63f8afe16fb57021bfdcb + hermes-estree: 0.36.1 + checksum: f0898177dcaf5b4b2d742a067265a15607f04ca1bb58e6b14159b61dd5b3bd3212f873ebdb6ba2185d6df78c2b735daec8272409acbfe44ea1fbcd552ea04774 languageName: node linkType: hard @@ -6611,6 +6713,19 @@ __metadata: languageName: node linkType: hard +"http-errors@npm:^2.0.1, http-errors@npm:~2.0.1": + version: 2.0.1 + resolution: "http-errors@npm:2.0.1" + dependencies: + depd: ~2.0.0 + inherits: ~2.0.4 + setprototypeof: ~1.2.0 + statuses: ~2.0.2 + toidentifier: ~1.0.1 + checksum: 155d1a100a06e4964597013109590b97540a177b69c3600bbc93efc746465a99a2b718f43cdf76b3791af994bbe3a5711002046bf668cdc007ea44cea6df7ccd + languageName: node + linkType: hard + "http-proxy-agent@npm:^7.0.0": version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" @@ -6645,15 +6760,6 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: ">= 2.1.2 < 3" - checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 - languageName: node - linkType: hard - "iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" @@ -6663,6 +6769,15 @@ __metadata: languageName: node linkType: hard +"iconv-lite@npm:^0.7.2, iconv-lite@npm:~0.7.0": + version: 0.7.3 + resolution: "iconv-lite@npm:0.7.3" + dependencies: + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 36b3dc2f5a25c2cac15f7df42a1f23e796f1616b2b4103b205a5c237d9b40483184a8c07bbc2d72b01ca28f4770506fad5a43203adae9c97a5d4733af684b6a8 + languageName: node + linkType: hard + "ieee754@npm:^1.1.13": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -6755,7 +6870,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 @@ -7190,6 +7305,13 @@ __metadata: languageName: node linkType: hard +"is-unsafe@npm:^2.0.0": + version: 2.0.0 + resolution: "is-unsafe@npm:2.0.0" + checksum: a18c9891578569c7bd41a8296f7be5bf78fe4ddc4c0cf3c4e4aaa94487ceeddfdd2e4e33f765d578bb42ef33caa5ff15de43da25167c6f6a67351c900a42165b + languageName: node + linkType: hard + "is-weakmap@npm:^2.0.2": version: 2.0.2 resolution: "is-weakmap@npm:2.0.2" @@ -8385,10 +8507,10 @@ __metadata: languageName: node linkType: hard -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: af1b38516c28ec95d6b0826f6c8f276c58aec391f76be42aa07646b4e39d317723e869700933ca6995b056db4b09a78c92d5440dc23657e6764be5d28874bba1 +"media-typer@npm:^1.1.0": + version: 1.1.1 + resolution: "media-typer@npm:1.1.1" + checksum: ceef972e43912621b846f816e8937c200dcd83d0bdd4fdd19f28be62a9334f4e6605d0c952fe804bfab7f63a07d14c0d1bea1d9357c35ad6d3b04b184f09e397 languageName: node linkType: hard @@ -8440,69 +8562,69 @@ __metadata: languageName: node linkType: hard -"metro-babel-transformer@npm:0.83.3": - version: 0.83.3 - resolution: "metro-babel-transformer@npm:0.83.3" +"metro-babel-transformer@npm:0.87.0": + version: 0.87.0 + resolution: "metro-babel-transformer@npm:0.87.0" dependencies: "@babel/core": ^7.25.2 flow-enums-runtime: ^0.0.6 - hermes-parser: 0.32.0 + hermes-parser: 0.36.1 + metro-cache-key: 0.87.0 nullthrows: ^1.1.1 - checksum: dd178409d1718dae12dfffb6572ebc5bb78f1e0d7e93dce829c945957f8a686cb1b4c466c69585d7b982b3937fbea28d5c53a80691f2fc66717a0bcc800bc5b8 + checksum: 55e159b2677f49248d1557b3f2e60ec2c3dcfcf612fce07d860f46d59b719f73fa0223e546b12fb12f679a59991bc7dffd49d08a57712eea973fd1ab817a7ebf languageName: node linkType: hard -"metro-cache-key@npm:0.83.3": - version: 0.83.3 - resolution: "metro-cache-key@npm:0.83.3" +"metro-cache-key@npm:0.87.0": + version: 0.87.0 + resolution: "metro-cache-key@npm:0.87.0" dependencies: flow-enums-runtime: ^0.0.6 - checksum: a6f9d2bf8b810f57d330d6f8f1ebf029e1224f426c5895f73d9bc1007482684048bfc7513a855626ee7f3ae72ca46e1b08cf983aefbfa84321bb7c0cef4ba4ae + checksum: 4daf5f48e01c6aeb0d1cd1645a9931573ad54308fbc26f20c10e99aefd7d63fc91c039cbd1dfa1eee0e64c4bf61f47e047d56563c627b03a86f5ad129c0264f6 languageName: node linkType: hard -"metro-cache@npm:0.83.3": - version: 0.83.3 - resolution: "metro-cache@npm:0.83.3" +"metro-cache@npm:0.87.0": + version: 0.87.0 + resolution: "metro-cache@npm:0.87.0" dependencies: exponential-backoff: ^3.1.1 flow-enums-runtime: ^0.0.6 https-proxy-agent: ^7.0.5 - metro-core: 0.83.3 - checksum: 95606275411d85de071fd95171a9548406cd1154320850a554bf00207804f7844ed252f9750a802d6612ade839c579b23bd87927ae173f43c368e8f5d900149d + metro-core: 0.87.0 + checksum: b0da3dc1d6b39b2409638c5fd16c007e0495d0e20d85dd9283fcdc1593e3b3db3e0fdf2abecb49b93f36efccdee11276e6abad43df3746546dd3002ae812a057 languageName: node linkType: hard -"metro-config@npm:0.83.3, metro-config@npm:^0.83.3": - version: 0.83.3 - resolution: "metro-config@npm:0.83.3" +"metro-config@npm:0.87.0, metro-config@npm:^0.87.0": + version: 0.87.0 + resolution: "metro-config@npm:0.87.0" dependencies: connect: ^3.6.5 flow-enums-runtime: ^0.0.6 jest-validate: ^29.7.0 - metro: 0.83.3 - metro-cache: 0.83.3 - metro-core: 0.83.3 - metro-runtime: 0.83.3 - yaml: ^2.6.1 - checksum: a14b77668a9712abbcebe5bf6a0081f0fd46caf8d37405174f261765abcd44d7a99910533fcc05edde3de10f9b22820cc9910c7dee2b01e761692a0a322f2608 + metro: 0.87.0 + metro-cache: 0.87.0 + metro-core: 0.87.0 + metro-runtime: 0.87.0 + checksum: 204b18733b3d0c1fb73c6d545cd9c0365d98cd17c2ccd41996b6c3b2abb820b8a2fd98b43336479e1c1d4ac4883a60c3c0e12f4afc18eafd2e8d0f8dbb84e285 languageName: node linkType: hard -"metro-core@npm:0.83.3, metro-core@npm:^0.83.3": - version: 0.83.3 - resolution: "metro-core@npm:0.83.3" +"metro-core@npm:0.87.0": + version: 0.87.0 + resolution: "metro-core@npm:0.87.0" dependencies: flow-enums-runtime: ^0.0.6 lodash.throttle: ^4.1.1 - metro-resolver: 0.83.3 - checksum: d06871313310cd718094ecbae805bcacea3f325340f6dff3c5044b62457c4690dd729cdb938349bdd3c41efa6f28032ae07696467ef006d5509fec9045c1966f + metro-resolver: 0.87.0 + checksum: e09a0bb49c2b264e649aba35ff2b4521331740ccb97d34f7e9b8d94e3b413b53cecafbdbb2daa825f051bcc7d42a7be1073e750d3d016ff18711d17cb2938168 languageName: node linkType: hard -"metro-file-map@npm:0.83.3": - version: 0.83.3 - resolution: "metro-file-map@npm:0.83.3" +"metro-file-map@npm:0.87.0": + version: 0.87.0 + resolution: "metro-file-map@npm:0.87.0" dependencies: debug: ^4.4.0 fb-watchman: ^2.0.0 @@ -8513,146 +8635,144 @@ __metadata: micromatch: ^4.0.4 nullthrows: ^1.1.1 walker: ^1.0.7 - checksum: 0dea599206e93b6e8628be2aa98452d4dae16e805b810759ec8b50cebcd83f2d053f7e5865196d464f3793f86b3b5003830c6713f91bf62fa406a4af7c93a776 + checksum: 4a14f3cf735a1d18ded5f73c10d8642a918c0d52c81c181d34799b38d2d9f16fb71d4a956e75095928f1b57b6e66bda3052a71c191c34b183a74ddfae586772a languageName: node linkType: hard -"metro-minify-terser@npm:0.83.3": - version: 0.83.3 - resolution: "metro-minify-terser@npm:0.83.3" +"metro-minify-terser@npm:0.87.0": + version: 0.87.0 + resolution: "metro-minify-terser@npm:0.87.0" dependencies: flow-enums-runtime: ^0.0.6 terser: ^5.15.0 - checksum: 1de88b70b7c903147807baa46497491a87600594fd0868b6538bbb9d7785242cabfbe8bccf36cc2285d0e17be72445b512d00c496952a159572545f3e6bcb199 + checksum: cad40275dfdc37a13ce981b01233ec51c9d096a8479cd57f0fe6abd5f2230149e17a96c6a00294042fde9b4fb1f9b358896995d9649ed8dcf2e515cd98989b9c languageName: node linkType: hard -"metro-resolver@npm:0.83.3": - version: 0.83.3 - resolution: "metro-resolver@npm:0.83.3" +"metro-resolver@npm:0.87.0": + version: 0.87.0 + resolution: "metro-resolver@npm:0.87.0" dependencies: flow-enums-runtime: ^0.0.6 - checksum: de2ae5ced6239b004a97712f98934c6e830870d11614e2dba48250930214581f0746df8a4f0f1cb71060fe21c2cf919d3359106ad4f375c2500ba08e10922896 + checksum: 280de1ad4c55bc6ee99e54e89289a885fd16778f0463044b66243d8fbf75d85ad2f34560351e562d7d2bf8d897212e5ea2181b3bcda710eb11dfda808ec23358 languageName: node linkType: hard -"metro-runtime@npm:0.83.3, metro-runtime@npm:^0.83.3": - version: 0.83.3 - resolution: "metro-runtime@npm:0.83.3" +"metro-runtime@npm:0.87.0, metro-runtime@npm:^0.87.0": + version: 0.87.0 + resolution: "metro-runtime@npm:0.87.0" dependencies: "@babel/runtime": ^7.25.0 flow-enums-runtime: ^0.0.6 - checksum: dcbdc5502020d1e20cee1a3a8019323ab2f3ca2aa2d6ddb2b7a2b8547835a20b84fe4afc23c397f788584e108c70411db93df2f61322b44a4f0f119275052d03 + checksum: 5d0daf6371cf292287f1d906265eaed6d47faf96008255de0e5ac18735119ddf4806840cb81c5f76effb9d37f497a82d8b005e94025ca984578a944a1ac32fe9 languageName: node linkType: hard -"metro-source-map@npm:0.83.3, metro-source-map@npm:^0.83.3": - version: 0.83.3 - resolution: "metro-source-map@npm:0.83.3" +"metro-source-map@npm:0.87.0, metro-source-map@npm:^0.87.0": + version: 0.87.0 + resolution: "metro-source-map@npm:0.87.0" 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.83.3 + metro-symbolicate: 0.87.0 nullthrows: ^1.1.1 - ob1: 0.83.3 + ob1: 0.87.0 source-map: ^0.5.6 vlq: ^1.0.0 - checksum: 5bf3b7a1561bc1f0ad6ab3b7b550d4b4581da31964a7f218727a3201576912076c909a2e50fba4dd3c649d79312324dec683a37228f4559811c37b69ecca8831 + checksum: 5f48e10166fdbb5359607682c8ec6093afade03a0e779b9b937ed2bba6ce73c906ea22b7e265bc54f646ff0ed243d63500bff2e6dc0b7ac8f5e6e934a3b6159a languageName: node linkType: hard -"metro-symbolicate@npm:0.83.3": - version: 0.83.3 - resolution: "metro-symbolicate@npm:0.83.3" +"metro-symbolicate@npm:0.87.0": + version: 0.87.0 + resolution: "metro-symbolicate@npm:0.87.0" dependencies: flow-enums-runtime: ^0.0.6 invariant: ^2.2.4 - metro-source-map: 0.83.3 + metro-source-map: 0.87.0 nullthrows: ^1.1.1 source-map: ^0.5.6 vlq: ^1.0.0 bin: metro-symbolicate: src/index.js - checksum: 943cc2456d56ae2ed8369495c18966d91feff636b37909b5225ffb8ce2a50eba8fbedf116f3bea3059d431ebc621c9c9af8a8bfd181b0cd1fece051507e10ffd + checksum: 801a7ef82a2e9976cdf0c33a69008f91dca4c99055e03c3a670ee7b53df137d6cd5fd7f0d617aa4540a45f9dbecebed1268dc6d49da93410d2861e98dbed558e languageName: node linkType: hard -"metro-transform-plugins@npm:0.83.3": - version: 0.83.3 - resolution: "metro-transform-plugins@npm:0.83.3" +"metro-transform-plugins@npm:0.87.0": + version: 0.87.0 + resolution: "metro-transform-plugins@npm:0.87.0" 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: 6f92b9dfa53bdb63e79038bbd4d68791379ab26cf874679e64563618c578eeed3a828795debf8076ffd518431dff53191990784fb619046bcc03fff114b0cb21 + checksum: c76430a7ef9d38a44596891fe8eb6e3c01df9bf1b7207f80dc77d05d6fb8c05b50647c812a1a9f565c305cb324c225ddf46d0eb77cbc021317f65398e3e2c111 languageName: node linkType: hard -"metro-transform-worker@npm:0.83.3": - version: 0.83.3 - resolution: "metro-transform-worker@npm:0.83.3" +"metro-transform-worker@npm:0.87.0": + version: 0.87.0 + resolution: "metro-transform-worker@npm:0.87.0" 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.83.3 - metro-babel-transformer: 0.83.3 - metro-cache: 0.83.3 - metro-cache-key: 0.83.3 - metro-minify-terser: 0.83.3 - metro-source-map: 0.83.3 - metro-transform-plugins: 0.83.3 + metro: 0.87.0 + metro-babel-transformer: 0.87.0 + metro-cache: 0.87.0 + metro-cache-key: 0.87.0 + metro-minify-terser: 0.87.0 + metro-source-map: 0.87.0 + metro-transform-plugins: 0.87.0 nullthrows: ^1.1.1 - checksum: fcb25ebc1ce703d830ef60c9af87325f996af4c3946325ab957b65ca59d12d181fe6c527c9ba1f932cd954d23a400052293117fe56f9a2727dfbc0a118e7bb27 + checksum: 31805f68b923fd1763433db003b3a08c1ab7db9dbfce9d89bffb5bb1825c56867d85ee715acd6d530232b3168ea59d2c5f2f86b6ca79fccf1d31819828f4c9af languageName: node linkType: hard -"metro@npm:0.83.3, metro@npm:^0.83.3": - version: 0.83.3 - resolution: "metro@npm:0.83.3" +"metro@npm:0.87.0, metro@npm:^0.87.0": + version: 0.87.0 + resolution: "metro@npm:0.87.0" 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.32.0 + hermes-parser: 0.36.1 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.83.3 - metro-cache: 0.83.3 - metro-cache-key: 0.83.3 - metro-config: 0.83.3 - metro-core: 0.83.3 - metro-file-map: 0.83.3 - metro-resolver: 0.83.3 - metro-runtime: 0.83.3 - metro-source-map: 0.83.3 - metro-symbolicate: 0.83.3 - metro-transform-plugins: 0.83.3 - metro-transform-worker: 0.83.3 - mime-types: ^2.1.27 + metro-babel-transformer: 0.87.0 + metro-cache: 0.87.0 + metro-cache-key: 0.87.0 + metro-config: 0.87.0 + metro-core: 0.87.0 + metro-file-map: 0.87.0 + metro-resolver: 0.87.0 + metro-runtime: 0.87.0 + metro-source-map: 0.87.0 + metro-symbolicate: 0.87.0 + metro-transform-plugins: 0.87.0 + metro-transform-worker: 0.87.0 + mime-types: ^3.0.1 nullthrows: ^1.1.1 serialize-error: ^2.1.0 source-map: ^0.5.6 @@ -8661,7 +8781,7 @@ __metadata: yargs: ^17.6.2 bin: metro: src/cli.js - checksum: 306d8c06b5a1a45e18df6e41f494bbc8b439700985429284eea7b3c3c82108e3c3795d859a8ab3ed7a85793d64e3160519be9aa84c6418d6ed37bd5ae4500b57 + checksum: d31a4755ca8622b64b7050a781ea28335f4f167b664b5bd167f6489c9421cc7de257a3c32b2ff5fc18b89d3a915db7846c5ded97d727cff634ec4f8d89b665c6 languageName: node linkType: hard @@ -8682,14 +8802,23 @@ __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 languageName: node linkType: hard -"mime-types@npm:^2.1.27, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"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-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -8938,12 +9067,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.1.23": - version: 3.3.11 - resolution: "nanoid@npm:3.3.11" +"nanoid@npm:^3.3.11": + version: 3.3.18 + resolution: "nanoid@npm:3.3.18" bin: nanoid: bin/nanoid.cjs - checksum: 3be20d8866a57a6b6d218e82549711c8352ed969f9ab3c45379da28f405363ad4c9aeb0b39e9abc101a529ca65a72ff9502b00bf74a912c4b64a9d62dfd26c29 + checksum: db804317d337b41602666f23014e399d1263033d13a903955c246378256fd4e002519e87199ca40b19aff52274965ac7cc6e70c13a63e194e15c4664724602d3 languageName: node linkType: hard @@ -9105,12 +9234,12 @@ __metadata: languageName: node linkType: hard -"ob1@npm:0.83.3": - version: 0.83.3 - resolution: "ob1@npm:0.83.3" +"ob1@npm:0.87.0": + version: 0.87.0 + resolution: "ob1@npm:0.87.0" dependencies: flow-enums-runtime: ^0.0.6 - checksum: 20dfe91d48d0cadd97159cfd53f5abdca435b55d58b1f562e0687485e8f44f8a95e8ab3c835badd13d0d8c01e3d7b14d639a316aa4bf82841ac78b49611d4e5c + checksum: 76e6fec7553f6efc83690f460a91beecbc875f9ad153f9e498b2e5536bc8c6a8ef31a65baac866d3e0488c0a050584d0aa5e6d1e47f74b07fafbf9271ae3a3d2 languageName: node linkType: hard @@ -9196,7 +9325,7 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:2.4.1": +"on-finished@npm:2.4.1, on-finished@npm:^2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" dependencies: @@ -9444,6 +9573,13 @@ __metadata: languageName: node linkType: hard +"path-expression-matcher@npm:^1.6.2": + version: 1.6.2 + resolution: "path-expression-matcher@npm:1.6.2" + checksum: a367990364461d48801a695db23f63d2842a3d9be60bf364148cfd69546f1eb621b76fd86c4c5c0b2545ac60fea0db85a8149a37094db0efc9d120beb5060172 + languageName: node + linkType: hard + "path-is-absolute@npm:^1.0.0": version: 1.0.1 resolution: "path-is-absolute@npm:1.0.1" @@ -9503,6 +9639,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.4": + version: 4.0.5 + resolution: "picomatch@npm:4.0.5" + checksum: 44f305aa44f33c15d304f2e887409961d1c14eebd465b5553d8aefddcfe7b5e40d208148adef8c21a21183dda2fdba1e83c8a56918e3b5e5d3db6bcaba5b7e12 + languageName: node + linkType: hard + "pirates@npm:^4.0.4": version: 4.0.7 resolution: "pirates@npm:4.0.7" @@ -9676,12 +9819,13 @@ __metadata: languageName: node linkType: hard -"qs@npm:6.14.1": - version: 6.14.1 - resolution: "qs@npm:6.14.1" +"qs@npm:^6.15.2": + version: 6.15.3 + resolution: "qs@npm:6.15.3" dependencies: - side-channel: ^1.1.0 - checksum: 7fffab0344fd75bfb6b8c94b8ba17f3d3e823d25b615900f68b473c3a078e497de8eaa08f709eaaa170eedfcee50638a7159b98abef7d8c89c2ede79291522f2 + es-define-property: ^1.0.1 + side-channel: ^1.1.1 + checksum: b59a0f20498f323d1f990f1fad3b808ee328f96c3c45575beeb0d51ec27dc0ed3422d9e9308a7c09f6000cb914b95dfb6eb7cca8636bc4d1befdc2a10cf59d2b languageName: node linkType: hard @@ -9727,15 +9871,15 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:2.5.2": - version: 2.5.2 - resolution: "raw-body@npm:2.5.2" +"raw-body@npm:^3.0.2": + version: 3.0.2 + resolution: "raw-body@npm:3.0.2" dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - checksum: ba1583c8d8a48e8fbb7a873fdbb2df66ea4ff83775421bfe21ee120140949ab048200668c47d9ae3880012f6e217052690628cf679ddfbd82c9fc9358d574676 + bytes: ~3.1.2 + http-errors: ~2.0.1 + iconv-lite: ~0.7.0 + unpipe: ~1.0.0 + checksum: bf8ce8e9734f273f24d81f9fed35609dbd25c2869faa5fb5075f7ee225c0913e2240adda03759d7e72f2a757f8012d58bb7a871a80261d5140ad65844caeb5bd languageName: node linkType: hard @@ -9758,7 +9902,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.13.0, react-is@npm:^16.13.1": +"react-is@npm:^16.13.1": version: 16.13.1 resolution: "react-is@npm:16.13.1" checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f @@ -9772,10 +9916,10 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^19.2.0": - version: 19.2.4 - resolution: "react-is@npm:19.2.4" - checksum: 646d4f0f11b50131f3f7ac5b50d12b79de35be20fa84bce33fd3fc91557589e388562cb6203b5237098fd983cd1cdf12c5fb952b7f9903ac014de9a5a6cc7e28 +"react-is@npm:^19.1.0, react-is@npm:^19.2.3": + version: 19.2.8 + resolution: "react-is@npm:19.2.8" + checksum: ec955b3b167cbe041a1f474063d15aa0c5a4d67a75b95e3e4090e9b964986a1fcf66370f3aa4deb34342c898e5d95da37d725d089c40e537598e0c3cc8bba00e languageName: node linkType: hard @@ -9824,16 +9968,6 @@ __metadata: languageName: node linkType: hard -"react-native-is-edge-to-edge@npm:^1.2.1": - version: 1.2.1 - resolution: "react-native-is-edge-to-edge@npm:1.2.1" - peerDependencies: - react: "*" - react-native: "*" - checksum: 8fb6d8ab7b953c7d7cec8c987cef24f1c5348a293a85cb49c7c53b54ef110c0ca746736ae730e297603c8c76020df912e93915fb17518c4f2f91143757177aba - languageName: node - linkType: hard - "react-native-monorepo-config@npm:^0.1.8, react-native-monorepo-config@npm:^0.1.9": version: 0.1.10 resolution: "react-native-monorepo-config@npm:0.1.10" @@ -9851,29 +9985,29 @@ __metadata: "@babel/core": ^7.25.2 "@babel/preset-env": ^7.25.3 "@babel/runtime": ^7.25.0 - "@react-native-community/cli": 20.1.0 - "@react-native-community/cli-platform-android": 20.1.0 - "@react-native-community/cli-platform-ios": 20.1.0 - "@react-native/babel-preset": 0.83.1 - "@react-native/metro-config": 0.83.1 - "@react-native/typescript-config": 0.83.1 - "@react-navigation/native": ^6.1.18 - "@react-navigation/stack": ^6.4.1 + "@react-native-community/cli": 20.2.0 + "@react-native-community/cli-platform-android": 20.2.0 + "@react-native-community/cli-platform-ios": 20.2.0 + "@react-native/babel-preset": 0.87.0 + "@react-native/metro-config": 0.87.0 + "@react-native/typescript-config": 0.87.0 + "@react-navigation/native": ^7.3.16 + "@react-navigation/stack": ^7.10.22 "@types/jest": ^29.5.14 "@types/node": ^22.9.0 detox: ^20.47.0 jest: ^29.7.0 - react: 19.2.0 - react-native: 0.83.1 + react: 19.2.3 + react-native: 0.87.0 react-native-builder-bob: ^0.40.13 react-native-gesture-handler: 3.0.2 react-native-monorepo-config: ^0.1.9 react-native-pager-view: ^6.9.1 react-native-permissions: ^5.1.0 - react-native-safe-area-context: ^5.5.2 - react-native-screens: 4.15.4 + react-native-safe-area-context: ^5.9.0 + react-native-screens: 4.27.0 react-native-select-dropdown: ^4.0.1 - react-native-snackbar: ^2.8.0 + react-native-snackbar: ^3.0.1 ts-jest: ^29.2.5 languageName: unknown linkType: soft @@ -9902,27 +10036,26 @@ __metadata: languageName: node linkType: hard -"react-native-safe-area-context@npm:^5.5.2": - version: 5.6.2 - resolution: "react-native-safe-area-context@npm:5.6.2" +"react-native-safe-area-context@npm:^5.9.0": + version: 5.9.0 + resolution: "react-native-safe-area-context@npm:5.9.0" peerDependencies: react: "*" react-native: "*" - checksum: 7b15cdd07df4f3650cf443fb322ee2d51b3ab45c652789cbea4cb48a8e6fd2b66e2be01e9f63e614ceaf28d9d228af681ca8857b2ed8dabe48f23964076d40c3 + checksum: ce1d0a61dc9d127ca7075c3d4c93f8f135864ed7091046e8aa9abae4739bf148712651c929d208b1b1e2866514846056f320896abbda20378310dd5152823c16 languageName: node linkType: hard -"react-native-screens@npm:4.15.4": - version: 4.15.4 - resolution: "react-native-screens@npm:4.15.4" +"react-native-screens@npm:4.27.0": + version: 4.27.0 + resolution: "react-native-screens@npm:4.27.0" dependencies: react-freeze: ^1.0.0 - react-native-is-edge-to-edge: ^1.2.1 warn-once: ^0.1.0 peerDependencies: react: "*" react-native: "*" - checksum: e0e5fbfcb77f0cd1b5358faa09b46661ef26fbcfa191ac49019967f2068feccf7cd3fa83e8dd7d52207443cd5f6263831440c365ba276fbb97def596a77626bb + checksum: 5f09b4f2a03fdbf85ca83900cd67cbd1c7c81513e4f9b9f5c0ac1ed1a1ea226959c43c85873757febad1059ac44edba0625d62a608acd21f8433731687561e77 languageName: node linkType: hard @@ -9933,43 +10066,37 @@ __metadata: languageName: node linkType: hard -"react-native-snackbar@npm:^2.8.0": - version: 2.9.0 - resolution: "react-native-snackbar@npm:2.9.0" +"react-native-snackbar@npm:^3.0.1": + version: 3.0.1 + resolution: "react-native-snackbar@npm:3.0.1" peerDependencies: - react: ">=16" - react-native: ">=0.60" - checksum: ea80b525306fd207e390c7852cf8a4d8d0345c1c48c56713316e1f28e4676f3307f381ed3b80ff966e4ecaa6db1041079e92f9816100df7d4f39ca4f365cc9d5 + react: "*" + react-native: "*" + checksum: 2a11f53716ed35dd95e5283d15541171d5204418871af9a8961e66f1b59af2e192a9015a0300110d17df78cc924924a5eeb3132b88b553e9a7bf6327dd2c51a4 languageName: node linkType: hard -"react-native@npm:0.83.1": - version: 0.83.1 - resolution: "react-native@npm:0.83.1" +"react-native@npm:0.87.0": + version: 0.87.0 + resolution: "react-native@npm:0.87.0" dependencies: - "@jest/create-cache-key-function": ^29.7.0 - "@react-native/assets-registry": 0.83.1 - "@react-native/codegen": 0.83.1 - "@react-native/community-cli-plugin": 0.83.1 - "@react-native/gradle-plugin": 0.83.1 - "@react-native/js-polyfills": 0.83.1 - "@react-native/normalize-colors": 0.83.1 - "@react-native/virtualized-lists": 0.83.1 - abort-controller: ^3.0.0 + "@react-native/asset-utils": 0.87.0 + "@react-native/codegen": 0.87.0 + "@react-native/community-cli-plugin": 0.87.0 + "@react-native/gradle-plugin": 0.87.0 + "@react-native/normalize-colors": 0.87.0 + "@react-native/virtualized-lists": 0.87.0 anser: ^1.4.9 ansi-regex: ^5.0.0 - babel-jest: ^29.7.0 - babel-plugin-syntax-hermes-parser: 0.32.0 + babel-plugin-syntax-hermes-parser: 0.36.1 base64-js: ^1.5.1 commander: ^12.0.0 flow-enums-runtime: ^0.0.6 - glob: ^7.1.1 - hermes-compiler: 0.14.0 + hermes-compiler: 250829098.0.16 invariant: ^2.2.4 - jest-environment-node: ^29.7.0 memoize-one: ^5.0.0 - metro-runtime: ^0.83.3 - metro-source-map: ^0.83.3 + metro-runtime: ^0.87.0 + metro-source-map: ^0.87.0 nullthrows: ^1.1.1 pretty-format: ^29.7.0 promise: ^8.3.0 @@ -9979,18 +10106,19 @@ __metadata: scheduler: 0.27.0 semver: ^7.1.3 stacktrace-parser: ^0.1.10 + tinyglobby: ^0.2.15 whatwg-fetch: ^3.0.0 ws: ^7.5.10 yargs: ^17.6.2 peerDependencies: "@types/react": ^19.1.1 - react: ^19.2.0 + react: ^19.2.3 peerDependenciesMeta: "@types/react": optional: true bin: react-native: cli.js - checksum: 9de956e38287afb5d989a1dde5d5488d6c2499f6acb90d07a9526e92c0822b0c9884cd871cfe42daacc2f006bc95acc8d395ba794af415758b2a8a7e8ca1cce8 + checksum: 2ee3e8f084d5f8ae91195f1fbbbaa699a64c107733c4a301df31fce4ce5471880ae8f3db172d6e860154313615793c7940ed2b51457326677a7306d26fb3993d languageName: node linkType: hard @@ -10001,22 +10129,22 @@ __metadata: languageName: node linkType: hard -"react-test-renderer@npm:19.2.0": - version: 19.2.0 - resolution: "react-test-renderer@npm:19.2.0" +"react-test-renderer@npm:19.2.3": + version: 19.2.3 + resolution: "react-test-renderer@npm:19.2.3" dependencies: - react-is: ^19.2.0 + react-is: ^19.2.3 scheduler: ^0.27.0 peerDependencies: - react: ^19.2.0 - checksum: f33306398e6eda59df37a392af845712566465b478b7a5bad57f4a1642e96b5ccbe3f8bebcea22a298311a6a8cb2b2d809ce92a85bb2adc0f5cc1a7878feba33 + react: ^19.2.3 + checksum: 3dffbf1c340953bb79f67e9abb126f2f977e4109f29be66b9056dfaaaaf6b06dfa29fe7e0efc16023d56c0dbcdaad07607a672812df35145f7aa1475fcdca613 languageName: node linkType: hard -"react@npm:19.2.0": - version: 19.2.0 - resolution: "react@npm:19.2.0" - checksum: 33dd01bf699e1c5040eb249e0f552519adf7ee90b98c49d702a50bf23af6852ea46023a5f7f93966ab10acd7a45428fa0f193c686ecdaa7a75a03886e53ec3fe +"react@npm:19.2.3": + version: 19.2.3 + resolution: "react@npm:19.2.3" + checksum: 506e369ae13cb46b7f303c0201aadf856642f482cdf5b1c3730c3a6d1762fd5a3ae1dd31196a4686bfbbe56456dcd0c48a4656c75cbcb45620e3028c54789ae9 languageName: node linkType: hard @@ -10401,7 +10529,7 @@ __metadata: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": +"safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 @@ -10535,7 +10663,7 @@ __metadata: languageName: node linkType: hard -"setprototypeof@npm:1.2.0": +"setprototypeof@npm:1.2.0, setprototypeof@npm:~1.2.0": version: 1.2.0 resolution: "setprototypeof@npm:1.2.0" checksum: be18cbbf70e7d8097c97f713a2e76edf84e87299b40d085c6bf8b65314e994cc15e2e317727342fa6996e38e1f52c59720b53fe621e2eb593a6847bf0356db89 @@ -10575,6 +10703,16 @@ __metadata: languageName: node linkType: hard +"side-channel-list@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-list@npm:1.0.1" + dependencies: + es-errors: ^1.3.0 + object-inspect: ^1.13.4 + checksum: 3499671cd52adaee739eac1e14d07530b8e3530192741aeb05e7fe4ad1b51d1368ceea2cd3c21b0f62b05410a5c70a7c4d997ba4b143303ef73d0c65dfd1c252 + languageName: node + linkType: hard + "side-channel-map@npm:^1.0.1": version: 1.0.1 resolution: "side-channel-map@npm:1.0.1" @@ -10613,6 +10751,19 @@ __metadata: languageName: node linkType: hard +"side-channel@npm:^1.1.1": + version: 1.1.1 + resolution: "side-channel@npm:1.1.1" + dependencies: + es-errors: ^1.3.0 + object-inspect: ^1.13.4 + side-channel-list: ^1.0.1 + side-channel-map: ^1.0.1 + side-channel-weakmap: ^1.0.2 + checksum: e0f217140c463636ee556260bbc8f47ba2931f1248826f58e1502704135814c763b325dd9ab122a04176aa45b4a4f8cc556415bcab7a0179d85250fb7812f063 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -10833,6 +10984,15 @@ __metadata: languageName: node linkType: hard +"standard-navigation@npm:^0.0.8": + version: 0.0.8 + resolution: "standard-navigation@npm:0.0.8" + peerDependencies: + react: "*" + checksum: 06f45f2a7dacf88e42ac675b6ae33efd30bb3d81d44e5470d2ea9eb206bf6d5fb2c1546c75c463034a98c6761f099be933d8813ed6d581196854c65946d35bb9 + languageName: node + linkType: hard + "statuses@npm:2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" @@ -10847,6 +11007,13 @@ __metadata: languageName: node linkType: hard +"statuses@npm:~2.0.2": + version: 2.0.2 + resolution: "statuses@npm:2.0.2" + checksum: 6927feb50c2a75b2a4caab2c565491f7a93ad3d8dbad7b1398d52359e9243a20e2ebe35e33726dee945125ef7a515e9097d8a1b910ba2bbd818265a2f6c39879 + languageName: node + linkType: hard + "stop-iteration-iterator@npm:^1.1.0": version: 1.1.0 resolution: "stop-iteration-iterator@npm:1.1.0" @@ -11070,10 +11237,12 @@ __metadata: languageName: node linkType: hard -"strnum@npm:^1.1.1": - version: 1.1.2 - resolution: "strnum@npm:1.1.2" - checksum: a85219eda13e97151c95e343a9e5960eacfb0a0ff98104b4c9cb7a212e3008bddf0c9714c9c37c2e508be78e741a04afc80027c2dc18509d1b5ffd4c37191fc2 +"strnum@npm:^2.4.2": + version: 2.4.2 + resolution: "strnum@npm:2.4.2" + dependencies: + anynum: ^1.0.1 + checksum: aec8958f66eee511e4bfc2d3e607a9e6821b7ed760da2df3cf6ac3e80b73f9e0a98d809766d10b12d39608d551fdbe2c6ee9a5512e95043c41ff3bc2aa51e715 languageName: node linkType: hard @@ -11210,6 +11379,16 @@ __metadata: languageName: node linkType: hard +"tinyglobby@npm:^0.2.15": + version: 0.2.17 + resolution: "tinyglobby@npm:0.2.17" + dependencies: + fdir: ^6.5.0 + picomatch: ^4.0.4 + checksum: 041e73eae568152c376551b21b8a27909d474166a8f405cdb0345991c50cf6afd0f878d7a387645d9c05d8ea2c9a55cc2fd2cfe6c5d5a5264770972b1adcad86 + languageName: node + linkType: hard + "tmp@npm:^0.2.1": version: 0.2.5 resolution: "tmp@npm:0.2.5" @@ -11233,7 +11412,7 @@ __metadata: languageName: node linkType: hard -"toidentifier@npm:1.0.1": +"toidentifier@npm:1.0.1, toidentifier@npm:~1.0.1": version: 1.0.1 resolution: "toidentifier@npm:1.0.1" checksum: 952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 @@ -11462,13 +11641,14 @@ __metadata: languageName: node linkType: hard -"type-is@npm:~1.6.18": - version: 1.6.18 - resolution: "type-is@npm:1.6.18" +"type-is@npm:^2.1.0": + version: 2.1.0 + resolution: "type-is@npm:2.1.0" dependencies: - media-typer: 0.3.0 - mime-types: ~2.1.24 - checksum: 2c8e47675d55f8b4e404bcf529abdf5036c537a04c2b20177bcf78c9e3c1da69da3942b1346e6edb09e823228c0ee656ef0e033765ec39a70d496ef601a0c657 + content-type: ^2.0.0 + media-typer: ^1.1.0 + mime-types: ^3.0.0 + checksum: 214a44fc635fd1396bb656af1f0392d151e44e31f622ca2d030f4b4bb4f20069dab250c6798a6c6f4b215f87cd6f68099cbfdb0975696c3383f7a4cad26f6174 languageName: node linkType: hard @@ -11657,7 +11837,7 @@ __metadata: languageName: node linkType: hard -"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": +"unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 @@ -11754,7 +11934,7 @@ __metadata: languageName: node linkType: hard -"use-latest-callback@npm:^0.2.1": +"use-latest-callback@npm:^0.2.4": version: 0.2.6 resolution: "use-latest-callback@npm:0.2.6" peerDependencies: @@ -11763,6 +11943,15 @@ __metadata: languageName: node linkType: hard +"use-sync-external-store@npm:^1.5.0": + version: 1.6.0 + resolution: "use-sync-external-store@npm:1.6.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 61a62e910713adfaf91bdb72ff2cd30e5ba83687accaf3b6e75a903b45bf635f5722e3694af30d83a03e92cb533c0a5c699298d2fef639a03ffc86b469f4eee2 + languageName: node + linkType: hard + "utf8-byte-length@npm:^1.0.1": version: 1.0.5 resolution: "utf8-byte-length@npm:1.0.5" @@ -12070,6 +12259,13 @@ __metadata: languageName: node linkType: hard +"xml-naming@npm:^0.3.0": + version: 0.3.0 + resolution: "xml-naming@npm:0.3.0" + checksum: 842b816c0db75497588dd77ead8a6ff8a6be20b90a8fe24219b425ce91ab797e208eff8b0ddb26c0e1e69bfbc855ce6e4d4fbf7277cbe3785bbe6f28018ac804 + languageName: node + linkType: hard + "y18n@npm:^4.0.0": version: 4.0.3 resolution: "y18n@npm:4.0.3" @@ -12105,7 +12301,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.2.1, yaml@npm:^2.6.1": +"yaml@npm:^2.2.1": version: 2.8.1 resolution: "yaml@npm:2.8.1" bin: From ac65e5701369788c7a94d9457d416f27e6ae45c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Wed, 19 Aug 2026 15:12:00 +0800 Subject: [PATCH 07/16] fix: snackbar example app fix --- example/src/helpers/snackbar.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/src/helpers/snackbar.ts b/example/src/helpers/snackbar.ts index 5536e586..3e99064c 100644 --- a/example/src/helpers/snackbar.ts +++ b/example/src/helpers/snackbar.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import Snackbar from 'react-native-snackbar'; +import { Snackbar } from 'react-native-snackbar'; /** * Shows a snackbar message. From accdfda6edf94590be593358e447085deea1e5e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 24 Aug 2026 11:39:22 +0800 Subject: [PATCH 08/16] chore: resolve Google Navigation through SPM --- .github/workflows/ci.yml | 4 +- MIGRATING.md | 6 +- README.md | 6 ++ example/README.md | 2 +- example/ios/Podfile | 6 +- .../ios/SampleApp.xcodeproj/project.pbxproj | 58 ++++++++++++++----- .../xcshareddata/swiftpm/Package.resolved | 24 ++++++++ react-native-navigation-sdk.podspec | 15 ++++- 8 files changed, 95 insertions(+), 26 deletions(-) create mode 100644 example/ios/SampleApp.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9bf6ecf8..af411045 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -231,7 +231,7 @@ jobs: with: path: | **/ios/Pods - key: ${{ runner.os }}-cocoapods-${{ hashFiles('**/package.json') }} + key: ${{ runner.os }}-cocoapods-${{ hashFiles('**/package.json', '**/*.podspec', '**/Podfile.lock') }} restore-keys: | ${{ runner.os }}-cocoapods- @@ -239,7 +239,7 @@ jobs: if: env.turbo_cache_hit != 1 || steps.cocoapods-cache.outputs.cache-hit != 'true' run: | cd example/ios - RCT_NEW_ARCH_ENABLED=0 pod install + USE_FRAMEWORKS=dynamic pod install env: NO_FLIPPER: 1 diff --git a/MIGRATING.md b/MIGRATING.md index fddf58e7..800ea807 100644 --- a/MIGRATING.md +++ b/MIGRATING.md @@ -18,7 +18,7 @@ Version 0.17.0 upgrades the underlying Google Navigation SDKs and raises the min | Category | Change | | ----------------- | --------------------------------------------------------------------------------------- | | React Native | Minimum supported React Native version is now `0.87.0` | -| Native SDKs | Android Navigation SDK upgraded to `7.9.0`, iOS Navigation SDK upgraded to `10.15.0` | +| Native SDKs | Android Navigation SDK upgraded to `7.9.0`; iOS Navigation SDK `10.15.0` is now resolved through Swift Package Manager | | Kotlin | Kotlin Gradle Plugin `2.3.0+` is required; `2.3.21` is the tested version | ### What changed @@ -26,7 +26,7 @@ Version 0.17.0 upgrades the underlying Google Navigation SDKs and raises the min This release updates the native Navigation SDK dependencies to: - **Android:** Google Maps Navigation SDK `7.9.0` -- **iOS:** Google Maps Navigation SDK `10.15.0` +- **iOS:** Google Maps Navigation SDK `10.15.0`, resolved through Swift Package Manager rather than CocoaPods There are no JavaScript API changes in this release. React Native `0.87.0` is required and its bundled Android Gradle Plugin (AGP) `9.2.1` is compatible with Navigation SDK `7.9.0`. @@ -88,7 +88,7 @@ If you run into dependency or build cache issues, reinstall dependencies and reb ### Step 3: Reinstall iOS pods -The iOS SDK is upgraded to `10.15.0`, so after upgrading the package you should reinstall pods: +Google Navigation is now resolved through Swift Package Manager during `pod install`, rather than through a CocoaPods `GoogleNavigation` dependency. React Native `0.87.0+` is required. CocoaPods continues to manage React Native autolinking and other pods, but it no longer fetches Google Navigation. Configure framework linkage in your app's Podfile according to your app's dependency requirements; the example app uses dynamic frameworks. Reinstall pods after upgrading: ```bash cd ios && pod install diff --git a/README.md b/README.md index bbb4d9d3..9ad729d5 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,12 @@ This package requires React Native's new architecture. Make sure new architectur ENV['RCT_NEW_ARCH_ENABLED'] = '1' ``` +#### Swift Package Manager dependency + +Google Navigation is resolved through Swift Package Manager when you run `pod install`; it is not installed from CocoaPods. This requires React Native 0.87 or later. + +CocoaPods continues to manage React Native autolinking and other pods, but it no longer fetches Google Navigation. Configure framework linkage in your app's Podfile according to your app's dependency requirements; the example app uses dynamic frameworks. + #### Set Google Maps API Key To set up, specify your API key in the application delegate `ios/Runner/AppDelegate.m`: diff --git a/example/README.md b/example/README.md index 9af829fe..f08813ec 100644 --- a/example/README.md +++ b/example/README.md @@ -22,7 +22,7 @@ First, make sure you go through the setup from the main [README](../README.md). `pod install` - Note: This example app requires React Native's new architecture to be enabled (RCT_NEW_ARCH_ENABLED=1), which is configured in the Podfile. + Note: This example app requires React Native's new architecture and dynamic framework linkage, both configured in the Podfile. Open `SampleApp.xcworkspace` in Xcode after installing pods. 2. Copy the `Keys.plist.sample` file located in `example/ios/SampleApp/` to a new file named `Keys.plist`. This file is git ignored and won't be accidentally committed. In your Google cloud console, add the Google API key to the project and add this newly created API key to the `Keys.plist` file. diff --git a/example/ios/Podfile b/example/ios/Podfile index 20b0857b..5e27170d 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -23,11 +23,7 @@ setup_permissions([ 'Notifications', ]) -linkage = ENV['USE_FRAMEWORKS'] -if linkage != nil - Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green - use_frameworks! :linkage => linkage.to_sym -end +use_frameworks! :linkage => :dynamic config = use_native_modules! diff --git a/example/ios/SampleApp.xcodeproj/project.pbxproj b/example/ios/SampleApp.xcodeproj/project.pbxproj index df02e920..0a89131a 100644 --- a/example/ios/SampleApp.xcodeproj/project.pbxproj +++ b/example/ios/SampleApp.xcodeproj/project.pbxproj @@ -8,12 +8,9 @@ /* Begin PBXBuildFile section */ 00E356F31AD99517003FC87E /* SampleAppTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* SampleAppTests.mm */; }; - 062AC10D618662A05665211C /* libPods-SampleAppCarPlay.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F7A476D4E03B73E48762E4D4 /* libPods-SampleAppCarPlay.a */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.mm */; }; - 29F89EA4FF546EABE968E1D2 /* libPods-SampleApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 354226CC8A58229ECC025410 /* libPods-SampleApp.a */; }; 2A20E8122C8994DB00DB7ADA /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.mm */; }; - 2A20E8142C8994DB00DB7ADA /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; 2A20E8282C899A1400DB7ADA /* Info-CarPlay.plist in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB61A68108700A75B9A /* Info-CarPlay.plist */; }; 2AB8C27A2C89A07000250560 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 52D4271C2C81D3F300C7FB36 /* Keys.plist */; }; 2AB8C27E2C89A0B400250560 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; @@ -25,8 +22,10 @@ 52206E862C8B2FEC00B34D22 /* PhoneSceneDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 52206E822C8B2FEC00B34D22 /* PhoneSceneDelegate.mm */; }; 52206E892C8B303700B34D22 /* AppDelegateCarPlay.mm in Sources */ = {isa = PBXBuildFile; fileRef = 52206E882C8B303700B34D22 /* AppDelegateCarPlay.mm */; }; 52D4271D2C81D3F300C7FB36 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 52D4271C2C81D3F300C7FB36 /* Keys.plist */; }; - 77BA6ED186FC355B21D3A62F /* libPods-SampleAppTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 36A733F29B6732CA2CF27A17 /* libPods-SampleAppTests.a */; }; + 64D1697D489B0F3255985321 /* Pods_SampleAppCarPlay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95931FFADA3D5522923A0F5B /* Pods_SampleAppCarPlay.framework */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; + AA3CA297C8EC7B693A13A44B /* Pods_SampleAppTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33E9EBE1CFC402F90D5DE484 /* Pods_SampleAppTests.framework */; }; + C89FA619825746794A19ACB5 /* Pods_SampleApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B0D6ABF2B0017DFBAB6F7A58 /* Pods_SampleApp.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -51,8 +50,7 @@ 2A20E8202C8994DB00DB7ADA /* SampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 2AB8C27C2C89A09D00250560 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = SampleApp/Info.plist; sourceTree = ""; }; 2AEB719D2C7C80F9002224A5 /* SampleApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = SampleApp.entitlements; path = SampleApp/SampleApp.entitlements; sourceTree = ""; }; - 354226CC8A58229ECC025410 /* libPods-SampleApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SampleApp.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 36A733F29B6732CA2CF27A17 /* libPods-SampleAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SampleAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33E9EBE1CFC402F90D5DE484 /* Pods_SampleAppTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SampleAppTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3B4392A12AC88292D35C810B /* Pods-SampleApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SampleApp.debug.xcconfig"; path = "Target Support Files/Pods-SampleApp/Pods-SampleApp.debug.xcconfig"; sourceTree = ""; }; 4735EA9AB0E8831D741A3A3E /* Pods-SampleAppCarPlay.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SampleAppCarPlay.debug.xcconfig"; path = "Target Support Files/Pods-SampleAppCarPlay/Pods-SampleAppCarPlay.debug.xcconfig"; sourceTree = ""; }; 5205C1212C8B314F00D0FC6B /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = SampleApp/AppDelegate.mm; sourceTree = ""; }; @@ -70,9 +68,10 @@ 750C10660A3F190F6072C5DA /* Pods-SampleAppCarPlay.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SampleAppCarPlay.release.xcconfig"; path = "Target Support Files/Pods-SampleAppCarPlay/Pods-SampleAppCarPlay.release.xcconfig"; sourceTree = ""; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = SampleApp/LaunchScreen.storyboard; sourceTree = ""; }; 89C6BE57DB24E9ADA2F236DE /* Pods-SampleApp-SampleAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SampleApp-SampleAppTests.release.xcconfig"; path = "Target Support Files/Pods-SampleApp-SampleAppTests/Pods-SampleApp-SampleAppTests.release.xcconfig"; sourceTree = ""; }; + 95931FFADA3D5522923A0F5B /* Pods_SampleAppCarPlay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SampleAppCarPlay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A9D547919643FC330CF84EC3 /* Pods-SampleAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SampleAppTests.release.xcconfig"; path = "Target Support Files/Pods-SampleAppTests/Pods-SampleAppTests.release.xcconfig"; sourceTree = ""; }; + B0D6ABF2B0017DFBAB6F7A58 /* Pods_SampleApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SampleApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - F7A476D4E03B73E48762E4D4 /* libPods-SampleAppCarPlay.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SampleAppCarPlay.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -80,7 +79,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 77BA6ED186FC355B21D3A62F /* libPods-SampleAppTests.a in Frameworks */, + AA3CA297C8EC7B693A13A44B /* Pods_SampleAppTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -88,7 +87,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 062AC10D618662A05665211C /* libPods-SampleAppCarPlay.a in Frameworks */, + 64D1697D489B0F3255985321 /* Pods_SampleAppCarPlay.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -96,8 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2A20E8142C8994DB00DB7ADA /* BuildFile in Frameworks */, - 29F89EA4FF546EABE968E1D2 /* libPods-SampleApp.a in Frameworks */, + C89FA619825746794A19ACB5 /* Pods_SampleApp.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -148,9 +146,9 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - F7A476D4E03B73E48762E4D4 /* libPods-SampleAppCarPlay.a */, - 36A733F29B6732CA2CF27A17 /* libPods-SampleAppTests.a */, - 354226CC8A58229ECC025410 /* libPods-SampleApp.a */, + B0D6ABF2B0017DFBAB6F7A58 /* Pods_SampleApp.framework */, + 95931FFADA3D5522923A0F5B /* Pods_SampleAppCarPlay.framework */, + 33E9EBE1CFC402F90D5DE484 /* Pods_SampleAppTests.framework */, ); name = Frameworks; sourceTree = ""; @@ -806,6 +804,22 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "${PODS_ROOT}/ReactCommon", + "${PODS_ROOT}/ReactCommon/react/nativemodule/core", + "${PODS_ROOT}/React-runtimeexecutor", + "${PODS_ROOT}/React-runtimeexecutor/platform/ios", + "${PODS_ROOT}/ReactCommon-Samples", + "${PODS_ROOT}/ReactCommon-Samples/platform/ios", + "${PODS_ROOT}/React-Fabric/react/renderer/components/view/platform/cxx", + "${PODS_ROOT}/React-NativeModulesApple", + "${PODS_ROOT}/React-bridging", + "${PODS_ROOT}/React-graphics", + "${PODS_ROOT}/React-graphics/react/renderer/graphics/platform/ios", + "${PODS_ROOT}/React-featureflags", + "${PODS_ROOT}/React-renderercss", + ); IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, @@ -881,6 +895,22 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "${PODS_ROOT}/ReactCommon", + "${PODS_ROOT}/ReactCommon/react/nativemodule/core", + "${PODS_ROOT}/React-runtimeexecutor", + "${PODS_ROOT}/React-runtimeexecutor/platform/ios", + "${PODS_ROOT}/ReactCommon-Samples", + "${PODS_ROOT}/ReactCommon-Samples/platform/ios", + "${PODS_ROOT}/React-Fabric/react/renderer/components/view/platform/cxx", + "${PODS_ROOT}/React-NativeModulesApple", + "${PODS_ROOT}/React-bridging", + "${PODS_ROOT}/React-graphics", + "${PODS_ROOT}/React-graphics/react/renderer/graphics/platform/ios", + "${PODS_ROOT}/React-featureflags", + "${PODS_ROOT}/React-renderercss", + ); IPHONEOS_DEPLOYMENT_TARGET = 16.6; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, diff --git a/example/ios/SampleApp.xcworkspace/xcshareddata/swiftpm/Package.resolved b/example/ios/SampleApp.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 00000000..3166778c --- /dev/null +++ b/example/ios/SampleApp.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,24 @@ +{ + "originHash" : "d019271120bd6ba66c643fd40240ec82425d2ff6bfc56160815084a565cd83bf", + "pins" : [ + { + "identity" : "ios-maps-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/googlemaps/ios-maps-sdk", + "state" : { + "revision" : "a951b24ac0ca7720f87d4be3d5bd539552d13882", + "version" : "10.15.0" + } + }, + { + "identity" : "ios-navigation-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/googlemaps/ios-navigation-sdk.git", + "state" : { + "revision" : "d7deb8c592e6832d7089eea037d517f76b4a7429", + "version" : "10.15.0" + } + } + ], + "version" : 3 +} diff --git a/react-native-navigation-sdk.podspec b/react-native-navigation-sdk.podspec index 3b1cc381..bb7f8160 100644 --- a/react-native-navigation-sdk.podspec +++ b/react-native-navigation-sdk.podspec @@ -35,7 +35,20 @@ Pod::Spec.new do |s| s.public_header_files = "ios/**/*.h" s.dependency "React-Core" - s.dependency "GoogleNavigation", "10.15.0" + + unless defined?(spm_dependency) + raise Pod::Informative, <<~MESSAGE + react-native-navigation-sdk requires React Native support for Swift Package Manager dependencies. + Upgrade React Native to 0.87 or later to install GoogleNavigation through Swift Package Manager. + MESSAGE + end + + spm_dependency( + s, + url: "https://github.com/googlemaps/ios-navigation-sdk.git", + requirement: { kind: "exactVersion", version: "10.15.0" }, + products: ["GoogleNavigation"] + ) install_modules_dependencies(s) end From 8dc0c3e763f1a7a4b10b38bbdddda88b9c1352d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 24 Aug 2026 15:10:47 +0800 Subject: [PATCH 09/16] feat: upgrade Google Navigation iOS SDK to 11.0.0 --- MIGRATING.md | 12 +++++--- README.md | 11 +++++-- .../xcshareddata/swiftpm/Package.resolved | 8 ++--- example/ios/SampleApp/Info-CarPlay.plist | 2 ++ example/ios/SampleApp/Info.plist | 2 ++ ios/react-native-navigation-sdk/NavModule.mm | 30 ++++++++----------- .../NavViewController.h | 2 -- .../NavViewController.mm | 20 ------------- react-native-navigation-sdk.podspec | 2 +- src/navigation/navigation/types.ts | 16 +++------- 10 files changed, 43 insertions(+), 62 deletions(-) diff --git a/MIGRATING.md b/MIGRATING.md index 800ea807..deb6729b 100644 --- a/MIGRATING.md +++ b/MIGRATING.md @@ -18,7 +18,7 @@ Version 0.17.0 upgrades the underlying Google Navigation SDKs and raises the min | Category | Change | | ----------------- | --------------------------------------------------------------------------------------- | | React Native | Minimum supported React Native version is now `0.87.0` | -| Native SDKs | Android Navigation SDK upgraded to `7.9.0`; iOS Navigation SDK `10.15.0` is now resolved through Swift Package Manager | +| Native SDKs | Android Navigation SDK upgraded to `7.9.0`; iOS Navigation SDK `11.0.0` is resolved through Swift Package Manager | | Kotlin | Kotlin Gradle Plugin `2.3.0+` is required; `2.3.21` is the tested version | ### What changed @@ -26,7 +26,7 @@ Version 0.17.0 upgrades the underlying Google Navigation SDKs and raises the min This release updates the native Navigation SDK dependencies to: - **Android:** Google Maps Navigation SDK `7.9.0` -- **iOS:** Google Maps Navigation SDK `10.15.0`, resolved through Swift Package Manager rather than CocoaPods +- **iOS:** Google Maps Navigation SDK `11.0.0`, resolved through Swift Package Manager rather than CocoaPods There are no JavaScript API changes in this release. React Native `0.87.0` is required and its bundled Android Gradle Plugin (AGP) `9.2.1` is compatible with Navigation SDK `7.9.0`. @@ -88,7 +88,11 @@ If you run into dependency or build cache issues, reinstall dependencies and reb ### Step 3: Reinstall iOS pods -Google Navigation is now resolved through Swift Package Manager during `pod install`, rather than through a CocoaPods `GoogleNavigation` dependency. React Native `0.87.0+` is required. CocoaPods continues to manage React Native autolinking and other pods, but it no longer fetches Google Navigation. Configure framework linkage in your app's Podfile according to your app's dependency requirements; the example app uses dynamic frameworks. Reinstall pods after upgrading: +Google Navigation is now resolved through Swift Package Manager during `pod install`, rather than through a CocoaPods `GoogleNavigation` dependency. React Native `0.87.0+` is required. CocoaPods continues to manage React Native autolinking and other pods, but it no longer fetches Google Navigation. Configure framework linkage in your app's Podfile according to your app's dependency requirements; the example app uses dynamic frameworks. + +Navigation SDK 11 always displays traffic lights and stop signs during navigation. The deprecated `showTrafficLights` and `showStopSigns` display options have no effect on iOS, but continue to apply on Android. Terrain map type is no longer available during active navigation on iOS; `MapType.TERRAIN` remains available for non-navigation maps. Add an `NSMotionUsageDescription` entry to your app's `Info.plist` to prevent future motion sensor-related crashes. + +Reinstall pods after upgrading: ```bash cd ios && pod install @@ -99,7 +103,7 @@ cd ios && pod install For native SDK changes introduced upstream, review the official release notes: - [Android Navigation SDK 7.9.0 release notes](https://developers.google.com/maps/documentation/navigation/android-sdk/release-notes) -- [iOS Navigation SDK 10.15.0 release notes](https://developers.google.com/maps/documentation/navigation/ios-sdk/release-notes) +- [iOS Navigation SDK 11.0.0 release notes](https://developers.google.com/maps/documentation/navigation/ios-sdk/release-notes) ### Troubleshooting diff --git a/README.md b/README.md index 9ad729d5..f79570bd 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,15 @@ Google Navigation is resolved through Swift Package Manager when you run `pod in CocoaPods continues to manage React Native autolinking and other pods, but it no longer fetches Google Navigation. Configure framework linkage in your app's Podfile according to your app's dependency requirements; the example app uses dynamic frameworks. +#### Motion sensor usage description + +Navigation SDK 11 requires an `NSMotionUsageDescription` entry in your app's `Info.plist` to prevent future motion sensor-related crashes: + +```xml +NSMotionUsageDescription +Used to improve navigation features. +``` + #### Set Google Maps API Key To set up, specify your API key in the application delegate `ios/Runner/AppDelegate.m`: @@ -304,8 +313,6 @@ try { const displayOptions: DisplayOptions = { showDestinationMarkers: true, - showStopSigns: true, - showTrafficLights: true, }; await navigationController.setDestinations([waypoint], { routingOptions, displayOptions }); diff --git a/example/ios/SampleApp.xcworkspace/xcshareddata/swiftpm/Package.resolved b/example/ios/SampleApp.xcworkspace/xcshareddata/swiftpm/Package.resolved index 3166778c..b6355040 100644 --- a/example/ios/SampleApp.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/example/ios/SampleApp.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -6,8 +6,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/googlemaps/ios-maps-sdk", "state" : { - "revision" : "a951b24ac0ca7720f87d4be3d5bd539552d13882", - "version" : "10.15.0" + "revision" : "c37c4946d60f0ab069476d5781053b837771546e", + "version" : "11.0.0" } }, { @@ -15,8 +15,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/googlemaps/ios-navigation-sdk.git", "state" : { - "revision" : "d7deb8c592e6832d7089eea037d517f76b4a7429", - "version" : "10.15.0" + "revision" : "a1918c947b971570a8f7167a6ec09e9d08ee2b3f", + "version" : "11.0.0" } } ], diff --git a/example/ios/SampleApp/Info-CarPlay.plist b/example/ios/SampleApp/Info-CarPlay.plist index 09ed6a74..8b039bdc 100644 --- a/example/ios/SampleApp/Info-CarPlay.plist +++ b/example/ios/SampleApp/Info-CarPlay.plist @@ -39,6 +39,8 @@ [Enter any description related to the key] NSLocationWhenInUseUsageDescription [Add your description here] + NSMotionUsageDescription + Used to improve navigation features. UIApplicationSceneManifest UIApplicationSupportsMultipleScenes diff --git a/example/ios/SampleApp/Info.plist b/example/ios/SampleApp/Info.plist index 882d8bcf..f73a671a 100644 --- a/example/ios/SampleApp/Info.plist +++ b/example/ios/SampleApp/Info.plist @@ -43,6 +43,8 @@ [Add your description here] NSLocationWhenInUseUsageDescription [Add your description here] + NSMotionUsageDescription + Used to improve navigation features. RCTNewArchEnabled UIBackgroundModes diff --git a/ios/react-native-navigation-sdk/NavModule.mm b/ios/react-native-navigation-sdk/NavModule.mm index a13d210e..36701c77 100644 --- a/ios/react-native-navigation-sdk/NavModule.mm +++ b/ios/react-native-navigation-sdk/NavModule.mm @@ -16,6 +16,7 @@ #import "NavModule.h" #import +#import #import "NavAutoModule.h" #import "NavViewModule.h" #import "ObjectTranslationUtil.h" @@ -28,6 +29,7 @@ @"Make sure to initialize the navigator is ready before executing."; static NSString *const kNoDestinationsErrorCode = @"NO_DESTINATIONS"; static NSString *const kNoDestinationsErrorMessage = @"Destinations not set"; +static dispatch_once_t deprecatedDisplayOptionsWarningOnce; @implementation NavModule { GMSNavigationSession *_session; @@ -468,11 +470,14 @@ - (void)setDestinations:(NSArray *)waypoints std::optional showDestinationMarkers = displayOptionsCopy.showDestinationMarkers(); std::optional showStopSigns = displayOptionsCopy.showStopSigns(); std::optional showTrafficLights = displayOptionsCopy.showTrafficLights(); - if (showDestinationMarkers.has_value() || showStopSigns.has_value() || - showTrafficLights.has_value()) { - [strongSelf applyNavigationUISettingsShowDestinationMarkers:showDestinationMarkers - showStopSigns:showStopSigns - showTrafficLights:showTrafficLights]; + if (showDestinationMarkers.has_value()) { + [strongSelf applyNavigationUISettingsShowDestinationMarkers:showDestinationMarkers]; + } + if (showStopSigns.has_value() || showTrafficLights.has_value()) { + dispatch_once(&deprecatedDisplayOptionsWarningOnce, ^{ + RCTLogWarn(@"showStopSigns and showTrafficLights are ignored on iOS because " + "Navigation SDK 11 always shows them during navigation."); + }); } } @@ -551,20 +556,11 @@ - (void)setDestinations:(NSArray *)waypoints }); } -- (void)applyNavigationUISettingsShowDestinationMarkers:(std::optional)showDestinationMarkers - showStopSigns:(std::optional)showStopSigns - showTrafficLights:(std::optional)showTrafficLights { +- (void)applyNavigationUISettingsShowDestinationMarkers: + (std::optional)showDestinationMarkers { for (NavViewController *viewController in [[NavViewModule viewControllersRegistry] objectEnumerator]) { - if (showDestinationMarkers.has_value()) { - [viewController setShowDestinationMarkersEnabled:showDestinationMarkers.value()]; - } - if (showStopSigns.has_value()) { - [viewController setShowStopSignsEnabled:showStopSigns.value()]; - } - if (showTrafficLights.has_value()) { - [viewController setShowTrafficLightsEnabled:showTrafficLights.value()]; - } + [viewController setShowDestinationMarkersEnabled:showDestinationMarkers.value()]; } } diff --git a/ios/react-native-navigation-sdk/NavViewController.h b/ios/react-native-navigation-sdk/NavViewController.h index 33c754f4..7ec933c9 100644 --- a/ios/react-native-navigation-sdk/NavViewController.h +++ b/ios/react-native-navigation-sdk/NavViewController.h @@ -59,8 +59,6 @@ typedef void (^OnArrayResult)(NSArray *_Nullable result); - (void)setMyLocationButtonEnabled:(BOOL)isEnabled; - (void)setMyLocationEnabled:(BOOL)isEnabled; - (void)setShowDestinationMarkersEnabled:(BOOL)isEnabled; -- (void)setShowTrafficLightsEnabled:(BOOL)isEnabled; -- (void)setShowStopSignsEnabled:(BOOL)isEnabled; - (void)setRotateGesturesEnabled:(BOOL)isEnabled; - (void)setScrollGesturesEnabled:(BOOL)isEnabled; - (void)setScrollGesturesEnabledDuringRotateOrZoom:(BOOL)isEnabled; diff --git a/ios/react-native-navigation-sdk/NavViewController.mm b/ios/react-native-navigation-sdk/NavViewController.mm index 0757392d..e8a4507e 100644 --- a/ios/react-native-navigation-sdk/NavViewController.mm +++ b/ios/react-native-navigation-sdk/NavViewController.mm @@ -536,26 +536,6 @@ - (void)setShowDestinationMarkersEnabled:(BOOL)isEnabled { [_mapView.settings setShowsDestinationMarkers:isEnabled]; } -- (void)setShowTrafficLightsEnabled:(BOOL)isEnabled { - // setShowsTrafficLights: is deprecated in Google Maps SDK 10.1.0+. - // Traffic lights are shown by default. - if ([_mapView.settings respondsToSelector:@selector(setShowsTrafficLights:)]) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [_mapView.settings setShowsTrafficLights:isEnabled]; -#pragma clang diagnostic pop - } -} - -- (void)setShowStopSignsEnabled:(BOOL)isEnabled { - // setShowStopSignsEnabled: is deprecated in Google Maps SDK 10.1.0+. - // Stop signs are shown by default. -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [_mapView.settings setShowsStopSigns:isEnabled]; -#pragma clang diagnostic pop -} - - (void)setMyLocationEnabled:(BOOL)isEnabled { _mapView.myLocationEnabled = isEnabled; } diff --git a/react-native-navigation-sdk.podspec b/react-native-navigation-sdk.podspec index bb7f8160..702d287f 100644 --- a/react-native-navigation-sdk.podspec +++ b/react-native-navigation-sdk.podspec @@ -46,7 +46,7 @@ Pod::Spec.new do |s| spm_dependency( s, url: "https://github.com/googlemaps/ios-navigation-sdk.git", - requirement: { kind: "exactVersion", version: "10.15.0" }, + requirement: { kind: "exactVersion", version: "11.0.0" }, products: ["GoogleNavigation"] ) diff --git a/src/navigation/navigation/types.ts b/src/navigation/navigation/types.ts index 06827b65..57375aa0 100644 --- a/src/navigation/navigation/types.ts +++ b/src/navigation/navigation/types.ts @@ -122,22 +122,14 @@ export interface DisplayOptions { showDestinationMarkers?: boolean; /** - * @deprecated Stop signs are enabled by default and this option will be removed in a future release. - * - * Configures whether stop signs are shown during navigation. - * If true, stop signs are shown. - * - * Defaults to true. + * @deprecated Stop signs are always shown during navigation on iOS Navigation SDK 11+ and + * this option will be removed in a future release. This option continues to apply on Android. */ showStopSigns?: boolean; /** - * @deprecated Traffic lights are enabled by default and this option will be removed in a future release. - * - * Configures whether traffic lights are shown during navigation. - * If true, traffic lights are shown. - * - * Defaults to true. + * @deprecated Traffic lights are always shown during navigation on iOS Navigation SDK 11+ and + * this option will be removed in a future release. This option continues to apply on Android. */ showTrafficLights?: boolean; } From 54d67ff923c1ee007950e0730cb2dc3fc330ac96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Tue, 25 Aug 2026 15:38:17 +0800 Subject: [PATCH 10/16] docs: readme update for motion sensor usage description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 01e820c2..a115beff 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ CocoaPods continues to manage React Native autolinking and other pods, but it no #### Motion sensor usage description -Navigation SDK 11 requires an `NSMotionUsageDescription` entry in your app's `Info.plist` to prevent future motion sensor-related crashes: +Google recommends adding an `NSMotionUsageDescription` entry to your app's `Info.plist` to ensure compatibility with future motion sensor-related functionality in the underlying Navigation SDK for iOS. ```xml NSMotionUsageDescription From dceb34229d7088e9711e53d39dee299ac6edbded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Tue, 25 Aug 2026 15:57:05 +0800 Subject: [PATCH 11/16] chore: update gemfile --- example/Gemfile.lock | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/example/Gemfile.lock b/example/Gemfile.lock index 2dc92d38..0fe9f6eb 100644 --- a/example/Gemfile.lock +++ b/example/Gemfile.lock @@ -60,6 +60,7 @@ GEM cocoapods-try (1.2.0) colored2 (3.1.2) concurrent-ruby (1.3.3) + drb (2.2.3) escape (0.0.4) ethon (0.15.0) ffi (>= 1.15.0) @@ -73,13 +74,16 @@ GEM concurrent-ruby (~> 1.0) json (2.7.6) logger (1.7.0) - minitest (5.25.4) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) molinillo (0.8.0) mutex_m (0.3.0) nanaimo (0.3.0) nap (1.1.0) netrc (0.11.0) nkf (0.2.0) + prism (1.9.0) public_suffix (4.0.7) rexml (3.4.2) ruby-macho (2.5.1) From 9fcd6e8fd157da54c8d1102821517aea75a2ce66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Tue, 25 Aug 2026 16:10:34 +0800 Subject: [PATCH 12/16] docs: example app docs update --- example/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/README.md b/example/README.md index f08813ec..620fedd4 100644 --- a/example/README.md +++ b/example/README.md @@ -22,7 +22,7 @@ First, make sure you go through the setup from the main [README](../README.md). `pod install` - Note: This example app requires React Native's new architecture and dynamic framework linkage, both configured in the Podfile. Open `SampleApp.xcworkspace` in Xcode after installing pods. + Note: This example app requires React Native's new architecture and uses dynamic framework linkage, both configured in the Podfile. Open `SampleApp.xcworkspace` in Xcode after installing pods. 2. Copy the `Keys.plist.sample` file located in `example/ios/SampleApp/` to a new file named `Keys.plist`. This file is git ignored and won't be accidentally committed. In your Google cloud console, add the Google API key to the project and add this newly created API key to the `Keys.plist` file. From 05a50309fca01438317ebf7af85e7b05bf943ba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 31 Aug 2026 11:33:14 +0800 Subject: [PATCH 13/16] Update MIGRATING.md Co-authored-by: Joonas Kerttula --- MIGRATING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MIGRATING.md b/MIGRATING.md index 5fb1339b..63c76e4d 100644 --- a/MIGRATING.md +++ b/MIGRATING.md @@ -24,7 +24,7 @@ Version 0.18.0 resolves the iOS Google Navigation SDK through Swift Package Mana ### What changed -Google Navigation is now resolved through Swift Package Manager during `pod install`, rather than through a CocoaPods `GoogleNavigation` dependency. React Native `0.87.0+` is required. CocoaPods continues to manage React Native autolinking and other pods, but it no longer fetches Google Navigation. Configure framework linkage in your app's Podfile according to your app's dependency requirements; the example app uses dynamic frameworks. +Google Navigation is now resolved through Swift Package Manager during `pod install`, rather than through a CocoaPods `GoogleNavigation` dependency. CocoaPods continues to manage React Native autolinking and other pods, but it no longer fetches Google Navigation. Configure framework linkage in your app's Podfile according to your app's dependency requirements; the example app uses dynamic frameworks. Navigation SDK 11 always displays traffic lights and stop signs during navigation. The deprecated `showTrafficLights` and `showStopSigns` display options have no effect on iOS, but continue to apply on Android. Terrain map type is no longer available during active navigation on iOS; `MapType.TERRAIN` remains available for non-navigation maps. Add an `NSMotionUsageDescription` entry to your app's `Info.plist` to prevent future motion sensor-related crashes. From 4fe1bd21d5d688d1f2b351f4efe648f0ba9ef201 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 31 Aug 2026 11:33:25 +0800 Subject: [PATCH 14/16] Update src/navigation/navigation/types.ts Co-authored-by: Joonas Kerttula --- src/navigation/navigation/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/navigation/navigation/types.ts b/src/navigation/navigation/types.ts index 57375aa0..843183d5 100644 --- a/src/navigation/navigation/types.ts +++ b/src/navigation/navigation/types.ts @@ -123,7 +123,7 @@ export interface DisplayOptions { /** * @deprecated Stop signs are always shown during navigation on iOS Navigation SDK 11+ and - * this option will be removed in a future release. This option continues to apply on Android. + * this option will be removed in a future release. It currently applies only to Android. */ showStopSigns?: boolean; From c5f6e81eed28790a28b249ed6804c04168c48d23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 31 Aug 2026 11:33:36 +0800 Subject: [PATCH 15/16] Update src/navigation/navigation/types.ts Co-authored-by: Joonas Kerttula --- src/navigation/navigation/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/navigation/navigation/types.ts b/src/navigation/navigation/types.ts index 843183d5..0fcc5b4b 100644 --- a/src/navigation/navigation/types.ts +++ b/src/navigation/navigation/types.ts @@ -129,7 +129,7 @@ export interface DisplayOptions { /** * @deprecated Traffic lights are always shown during navigation on iOS Navigation SDK 11+ and - * this option will be removed in a future release. This option continues to apply on Android. + * this option will be removed in a future release. It currently applies only to Android. */ showTrafficLights?: boolean; } From 18c8dbe30628af4050be4b2c82757e6195b8b9cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20V=C3=A4limaa?= Date: Mon, 31 Aug 2026 11:37:53 +0800 Subject: [PATCH 16/16] chore: ci and doc fixes --- .github/workflows/ci.yml | 2 +- README.md | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 11210f0d..8dfe17d2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -248,7 +248,7 @@ jobs: if: env.turbo_cache_hit != 1 || steps.cocoapods-cache.outputs.cache-hit != 'true' run: | cd example/ios - USE_FRAMEWORKS=dynamic pod install + pod install env: NO_FLIPPER: 1 diff --git a/README.md b/README.md index a115beff..a52ebfe5 100644 --- a/README.md +++ b/README.md @@ -126,12 +126,6 @@ This package requires React Native's new architecture. Make sure new architectur ENV['RCT_NEW_ARCH_ENABLED'] = '1' ``` -#### Swift Package Manager dependency - -Google Navigation is resolved through Swift Package Manager when you run `pod install`; it is not installed from CocoaPods. This requires React Native 0.87 or later. - -CocoaPods continues to manage React Native autolinking and other pods, but it no longer fetches Google Navigation. Configure framework linkage in your app's Podfile according to your app's dependency requirements; the example app uses dynamic frameworks. - #### Motion sensor usage description Google recommends adding an `NSMotionUsageDescription` entry to your app's `Info.plist` to ensure compatibility with future motion sensor-related functionality in the underlying Navigation SDK for iOS.