diff --git a/.buildkite/jobs/pipeline.android_demo_app_rn_83.yml b/.buildkite/jobs/pipeline.android_demo_app_rn_83.yml index 34bd9ec6b7..9b15326cfb 100644 --- a/.buildkite/jobs/pipeline.android_demo_app_rn_83.yml +++ b/.buildkite/jobs/pipeline.android_demo_app_rn_83.yml @@ -5,7 +5,6 @@ env: REACT_NATIVE_VERSION: 0.83.0 RCT_NEW_ARCH_ENABLED: 1 - REACT_NATIVE_COMPAT_TEST: true # Only set 'true' in jobs with the latest supported RN DETOX_DISABLE_POD_INSTALL: true DETOX_DISABLE_POSTINSTALL: true artifact_paths: diff --git a/.buildkite/jobs/pipeline.android_demo_app_rn_84.yml b/.buildkite/jobs/pipeline.android_demo_app_rn_84.yml new file mode 100644 index 0000000000..da1f7befdb --- /dev/null +++ b/.buildkite/jobs/pipeline.android_demo_app_rn_84.yml @@ -0,0 +1,14 @@ + - label: ":android::react: RN .84 + Android: Demo app" + command: + - "nvm install" + - "./scripts/demo-projects.android.sh" + env: + REACT_NATIVE_VERSION: 0.84.0 + RCT_NEW_ARCH_ENABLED: 1 + REACT_NATIVE_COMPAT_TEST: true # Only set 'true' in jobs with the latest supported RN + DETOX_DISABLE_POD_INSTALL: true + DETOX_DISABLE_POSTINSTALL: true + artifact_paths: + - "/Users/builder/uibuilder/work/coverage/**/*.lcov" + - "/Users/builder/uibuilder/work/artifacts*.tar.gz" + diff --git a/.buildkite/jobs/pipeline.android_rn_84.yml b/.buildkite/jobs/pipeline.android_rn_84.yml new file mode 100644 index 0000000000..9fd2fde681 --- /dev/null +++ b/.buildkite/jobs/pipeline.android_rn_84.yml @@ -0,0 +1,14 @@ + - label: ":android::detox: RN .84 + Android: Tests app" + command: + - "nvm install" + - "./scripts/ci.android.sh" + env: + REACT_NATIVE_VERSION: 0.84.0 + RCT_NEW_ARCH_ENABLED: 1 + DETOX_DISABLE_POD_INSTALL: true + DETOX_DISABLE_POSTINSTALL: true + artifact_paths: + - "/Users/builder/uibuilder/work/coverage/**/*.lcov" + - "/Users/builder/uibuilder/work/**/allure-report-*.html" + - "/Users/builder/uibuilder/work/artifacts*.tar.gz" + diff --git a/.buildkite/jobs/pipeline.ios_demo_app_rn_83.yml b/.buildkite/jobs/pipeline.ios_demo_app_rn_83.yml index 670e892ead..52cb5d2612 100644 --- a/.buildkite/jobs/pipeline.ios_demo_app_rn_83.yml +++ b/.buildkite/jobs/pipeline.ios_demo_app_rn_83.yml @@ -5,7 +5,6 @@ env: REACT_NATIVE_VERSION: 0.83.0 RCT_NEW_ARCH_ENABLED: 1 - REACT_NATIVE_COMPAT_TEST: true # Only set 'true' in jobs with the latest supported RN artifact_paths: - "/Users/builder/uibuilder/work/coverage/**/*.lcov" - "/Users/builder/uibuilder/work/artifacts*.tar.gz" diff --git a/.buildkite/jobs/pipeline.ios_demo_app_rn_84.yml b/.buildkite/jobs/pipeline.ios_demo_app_rn_84.yml new file mode 100644 index 0000000000..cdcbae33da --- /dev/null +++ b/.buildkite/jobs/pipeline.ios_demo_app_rn_84.yml @@ -0,0 +1,12 @@ + - label: ":ios::react: RN .84 + iOS: Demo app" + command: + - "nvm install" + - "./scripts/demo-projects.ios.sh" + env: + REACT_NATIVE_VERSION: 0.84.0 + RCT_NEW_ARCH_ENABLED: 1 + REACT_NATIVE_COMPAT_TEST: true # Only set 'true' in jobs with the latest supported RN + artifact_paths: + - "/Users/builder/uibuilder/work/coverage/**/*.lcov" + - "/Users/builder/uibuilder/work/artifacts*.tar.gz" + diff --git a/.buildkite/jobs/pipeline.ios_rn_84.yml b/.buildkite/jobs/pipeline.ios_rn_84.yml new file mode 100644 index 0000000000..769b6d3a4e --- /dev/null +++ b/.buildkite/jobs/pipeline.ios_rn_84.yml @@ -0,0 +1,12 @@ + - label: ":ios::detox: RN .84 + iOS: Tests app" + command: + - "nvm install" + - "./scripts/ci.ios.sh" + env: + REACT_NATIVE_VERSION: 0.84.0 + RCT_NEW_ARCH_ENABLED: 1 + artifact_paths: + - "/Users/builder/uibuilder/work/coverage/**/*.lcov" + - "/Users/builder/uibuilder/work/**/allure-report-*.html" + - "/Users/builder/uibuilder/work/artifacts*.tar.gz" + diff --git a/.buildkite/pipeline_common.sh b/.buildkite/pipeline_common.sh index 50dc6abf5f..10b0b02466 100755 --- a/.buildkite/pipeline_common.sh +++ b/.buildkite/pipeline_common.sh @@ -3,9 +3,13 @@ echo "steps:" cat .buildkite/jobs/pipeline.android_demo_app_rn_83.yml +cat .buildkite/jobs/pipeline.android_demo_app_rn_84.yml cat .buildkite/jobs/pipeline.android_rn_77.yml cat .buildkite/jobs/pipeline.android_rn_83.yml +cat .buildkite/jobs/pipeline.android_rn_84.yml cat .buildkite/jobs/pipeline.ios_demo_app_rn_83.yml +cat .buildkite/jobs/pipeline.ios_demo_app_rn_84.yml cat .buildkite/jobs/pipeline.ios_rn_77.yml cat .buildkite/jobs/pipeline.ios_rn_83.yml +cat .buildkite/jobs/pipeline.ios_rn_84.yml cat .buildkite/pipeline.post_processing.yml diff --git a/.claude/skills/rn-version-upgrade.md b/.claude/skills/rn-version-upgrade.md new file mode 100644 index 0000000000..1245cd221b --- /dev/null +++ b/.claude/skills/rn-version-upgrade.md @@ -0,0 +1,285 @@ +# Skill: Add Support for a New React Native Version in Detox + +This skill guides the process of adding support for a new React Native version in the Detox testing framework. Detox is unique because it relies heavily on **reflection into RN internals** (especially on Android) for idling resource synchronization, and must maintain backward compatibility across multiple RN versions simultaneously. + +## Prerequisites + +Before starting, gather: +- The target RN version number (e.g., `0.84.0`) +- The current highest supported RN version (check `detox/test/package.json` and `.buildkite/pipeline_common.sh`) +- The current lowest supported RN version (check `.buildkite/jobs/` for the oldest pipeline) + +## Phase 1: Research Breaking Changes + +**This is the most critical phase for Detox. RN internal class/field renames break Detox's reflection-based synchronization on Android.** + +### 1a. Read the RN Release Blog & Changelog + +Fetch the release blog post and changelog: +- Blog: `https://reactnative.dev/blog` (search for the version) +- Changelog: `https://github.com/facebook/react-native/blob/main/CHANGELOG.md` + +Focus on: +- **Removed/renamed internal classes and fields** -- Detox reflects into RN internals for synchronization +- **Architecture changes** (New Architecture enforcement, legacy arch removal) +- **Build system changes** -- Gradle version, Android SDK levels, Kotlin version, CocoaPods changes +- **Metro config changes** -- API renames (e.g., `blacklistRE` → `blockList`) +- **Android manifest changes** -- e.g., `usesCleartextTraffic` behavior changes +- **Kotlin version requirements** -- RN often bumps minimum Kotlin version +- **MainApplication.kt template changes** -- `ReactNativeHost` vs `ReactHost`, `isHermesEnabled` nullability, entry point APIs + +### 1b. Check Detox's Reflection Points (CRITICAL) + +Detox uses reflection to access RN internal fields for idling synchronization. **When RN renames private fields from `mFoo` to `foo`, Detox's reflection breaks silently at runtime -- you won't see the error until E2E tests run.** Check ALL reflection files: + +```bash +# List all reflected/reflection files +find detox/android -name "*Reflected*" -o -name "*Reflection*" -o -name "*ReflectUtils*" + +# Search for field name strings used in reflection +grep -rn "Reflect.on\|\.field(" detox/android/ --include="*.kt" --include="*.java" + +# Search for Kotlin reflection usage +grep -rn "memberProperties\|memberFunctions\|declaredFunctions" detox/android/ --include="*.kt" +``` + +**Reflection files that commonly break on RN upgrades:** + +| File | What It Reflects | Common Breakage | +|------|-----------------|-----------------| +| `JavaTimersReflected.kt` | `ReactContext.mReactHost` → `reactHost`, `mJavaTimerManager` → `javaTimerManager` | Field renames (m-prefix removal) | +| `NetworkingModuleReflected.kt` | `NetworkingModule.mClient` → `client` | Field renames | +| `AnimatedModuleIdlingResource.kt` | `NativeAnimatedModule` operations queue `isEmpty` | Method vs property in Kotlin | +| `FabricUIManagerIdlingResources.kt` | Fabric dispatcher internals | New arch changes | +| `SerialExecutorReflected.kt` | AsyncStorage internals | Storage module changes | +| `UiControllerImplReflected.kt` | Espresso UI controller | Espresso version changes | +| `NativeHierarchyManagerReflected.kt` | Paper UI manager hierarchy | UI module restructuring | +| `UIManagerModuleReflected.kt` | Paper UI manager module | UI module restructuring | +| `ViewCommandOpsQueueReflected.kt` | View command dispatch queue | Queue implementation changes | +| `DispatchCommandOperationReflected.kt` | Command dispatch internals | Command API changes | +| `MQThreadsReflector.kt` | RN message queue threads | Threading model changes | + +**Always run the `find` command above** -- this table may be incomplete if new reflection files are added. + +**Strategy for reflection fixes:** +1. Compare the target RN version's source for each reflected class against the previous version +2. Look for `m`-prefix removal pattern (RN has been systematically renaming `mFoo` → `foo`) +3. Use version-conditional reflection: check `ReactNativeInfo.rnVersion().minor >= XX` to pick the right field name +4. For Kotlin property vs method ambiguity, use `KotlinReflectUtils.kt` (see Phase 3b) + +### 1c. Check Test App Dependencies + +For each dependency in `detox/test/package.json`: +1. **@react-native-async-storage/async-storage** -- Frequent build issues. Check https://github.com/react-native-async-storage/async-storage/issues. May require building debug before release as a workaround. +2. **@react-native-community/slider** -- Check Fabric/new arch support +3. **@react-native-community/datetimepicker** -- Check version compatibility +4. **react-native-webview** -- Check for new arch support +5. **react-native-permissions** -- Check Podfile setup changes + +Check peer dependencies: `npm info react-native@ peerDependencies` + +## Phase 2: Update Default Versions and Build Configuration + +### 2a. Update `package.json` Files + +The default (latest) RN version is set in three places: +- `detox/test/package.json` -- test app dependencies +- `examples/demo-react-native/package.json` -- demo app dependencies +- `detox/package.json` -- devDependencies for the library itself + +Update in each: +- `react-native` to target version +- `react` to matching peer dep version (`npm info react-native@0.84.0 peerDependencies.react`) +- `@react-native/babel-preset`, `@react-native/eslint-config`, `@react-native/metro-config`, `@react-native/typescript-config` to `0..0` +- `@react-native-community/cli`, `cli-platform-android`, `cli-platform-ios` to matching version + +### 2b. Update Version-Switch Infrastructure + +**`scripts/change_react_native_version.js`**: Only needs changes if the new version requires special devDependency overrides when CI downgrades to older RN versions. Currently has overrides only for RN 73 and 77. Note: this script updates three paths (`detox/test`, `examples/demo-react-native`, and `detox` itself) via `scripts/change_all_react_native_versions.sh`. + +**`detox/scripts/updateGradle.js`**: Uses a `default` case in the switch statement that covers all versions not explicitly listed. **Only add a new case if the target RN version requires a different Gradle version than the current default.** Check the RN template app for the required Gradle version. Caution: RN 0.82 initially upgraded to Gradle 9.0.0 but had to revert to 8.14.3 -- always verify what the RN template actually ships. + +**`detox/android/rninfo.gradle`**: Add an `isRNXXOrHigher` flag **only if you need version-conditional logic** in Gradle build files (e.g., Kotlin version branching, manifest changes). Not every RN version needs a flag -- the current file goes up to `isRN81OrHigher` despite supporting RN 82/83. + +### 2c. Update Kotlin Version Handling (if needed) + +Check if the new RN version requires a newer Kotlin version. This is set conditionally in `detox/test/android/build.gradle`: +```groovy +if (ext.rnInfo.isRN80OrHigher) { + kotlinVersion = '2.1.20' +} else { + kotlinVersion = '2.0.20' +} +``` + +### 2d. Update Metro Config (if needed) + +Metro config in `detox/test/metro.config.js` and `examples/demo-react-native/metro.config.js`. The current config uses `@react-native/metro-config`'s `getDefaultConfig`/`mergeConfig` with `blockList` array. Check if RN changed the Metro config API. + +### 2e. Update MainApplication.kt (if needed) + +RN frequently changes the Android `MainApplication.kt` template. Compare against `npx @react-native-community/cli init` output for the target version. Update: +- `detox/test/android/app/src/main/java/com/example/MainApplication.kt` +- `detox/test/android/app/src/main/java/com/example/DetoxRNHost.kt` +- `examples/demo-react-native/android/app/src/main/java/com/example/MainApplication.kt` + +Historical changes: `isHermesEnabled` became non-nullable (RN 0.81), entry point changed to `DefaultNewArchitectureEntryPoint.load()` (RN 0.82), `DetoxRNHost` was split out for backward compatibility (RN 0.82). + +### 2f. Update Android Manifest (if needed) + +Check for manifest behavior changes. Example: RN 0.81 started setting `usesCleartextTraffic` automatically, requiring version-conditional logic in `build.gradle` (not hardcoded in manifest): +```groovy +if (!rnInfo.isRN81OrHigher) { + manifestPlaceholders = [usesCleartextTraffic: "true"] +} +``` + +### 2g. Install Dependencies + +```bash +yarn install +cd detox/test/ios && pod install && cd ../../.. +cd examples/demo-react-native/ios && pod install && cd ../../.. +``` + +## Phase 3: Fix Android Reflection Breakages + +### Strategy + +**Batch-fix all reflection breakages identified in Phase 1b BEFORE building.** This is the most common source of Detox failures on new RN versions. + +### 3a. Pattern: Field Name Renames (m-prefix removal) + +RN has been systematically renaming internal fields from `mFieldName` to `fieldName`. Fix with version-conditional reflection: + +```kotlin +val fieldName = if (ReactNativeInfo.rnVersion().minor >= XX) { + "newFieldName" +} else { + "mOldFieldName" +} +Reflect.on(target).field(fieldName).get() +``` + +### 3b. Pattern: Kotlin Property vs Method + +When RN rewrites Java classes in Kotlin, methods like `isEmpty()` may become properties. Use `KotlinReflectUtils.kt` (`detox/android/detox/src/full/java/com/wix/detox/common/KotlinReflectUtils.kt`) which centralizes the fallback logic of trying method first (works in release/minified builds), then property (works in debug builds). + +### 3c. Build and Test + +```bash +cd detox/test && yarn build:android-debug && yarn build:android +``` + +Note: Building debug BEFORE release is sometimes necessary as a workaround for dependency build issues (e.g., AsyncStorage). + +## Phase 4: Fix iOS Build Issues + +iOS and Android fixes are independent -- these can be worked on in parallel with Phase 3. + +### 4a. Podfile and Podspec Changes + +Check if `pod install` succeeds. Common issues: +- New RN versions may change `react_native_pods.rb` behavior +- `min_ios_version_supported` may change +- Swift version may need to be set in `.pbxproj` (`SWIFT_VERSION = 5.0`) + +### 4b. Xcode Project Settings + +Check `detox/test/ios/example.xcodeproj/project.pbxproj` and `examples/demo-react-native/ios/example.xcodeproj/project.pbxproj` for stale build settings, missing `SWIFT_VERSION`, or outdated `HEADER_SEARCH_PATHS`. + +### 4c. Build iOS + +```bash +cd detox/test && yarn build:ios +``` + +## Phase 5: Fix E2E and Integration Test Failures + +### 5a. Run the Full CI Test Suite + +The CI runs more than just E2E tests. Run in order: + +```bash +# JS integration tests +cd detox/test && yarn integration + +# Android native unit tests +cd detox/android && yarn unit:android-release + +# E2E tests +cd detox/test && yarn e2e:ios +cd detox/test && yarn e2e:android + +# Unhappy-path tests +cd detox/test && scripts/ci_unhappy.sh ios +cd detox/test && scripts/ci_unhappy.sh android +``` + +### 5b. Snapshot Tests + +View hierarchy XML snapshots and screenshot snapshots may change with new RN versions. Update when visual changes are expected. + +### 5c. Behavioral Changes and Test Fixes + +New RN versions may change behavior affecting tests: +- **Pull-to-refresh behavior** (RN 0.80 -- needed a test screen fix) +- **Animation timing** (affects idling resource synchronization) +- **WebView rendering** (snapshot differences) +- **Test imports** (RN 0.81: missing import in `33.attributes.test.js` blocked CI) + +When tests fail, investigate before skipping -- the failure might be a real Detox regression, not a flaky test. (RN 0.82: a webview test "fix" was immediately reverted.) + +## Phase 6: CI Pipeline Setup + +Set up CI after the code compiles and tests pass locally. + +### 6a. Create Buildkite Pipeline Jobs + +Copy from the previous highest version: + +```bash +cp .buildkite/jobs/pipeline.android_rn_83.yml .buildkite/jobs/pipeline.android_rn_84.yml +cp .buildkite/jobs/pipeline.ios_rn_83.yml .buildkite/jobs/pipeline.ios_rn_84.yml +cp .buildkite/jobs/pipeline.android_demo_app_rn_83.yml .buildkite/jobs/pipeline.android_demo_app_rn_84.yml +cp .buildkite/jobs/pipeline.ios_demo_app_rn_83.yml .buildkite/jobs/pipeline.ios_demo_app_rn_84.yml +``` + +Edit each file: +- Update the label: `":android::detox: RN .84 + Android: Tests app"` +- Update `REACT_NATIVE_VERSION: 0.84.0` +- Keep `RCT_NEW_ARCH_ENABLED: 1` (new arch is standard now) +- Keep `DETOX_DISABLE_POD_INSTALL: true` and `DETOX_DISABLE_POSTINSTALL: true` on Android jobs + +Note: demo_app pipelines may not exist for all RN versions (e.g., the oldest supported version 77 has only test pipelines). Check what exists before copying. + +### 6b. Register Jobs in Pipeline Script + +Add new jobs to `.buildkite/pipeline_common.sh` and optionally drop old version entries. If dropping old versions, also clean up `scripts/change_react_native_version.js` version-specific overrides. + +## Phase 7: Backward Compatibility and Documentation + +### 7a. Test Older Versions via CI + +The CI sets `REACT_NATIVE_VERSION` env var and runs `scripts/change_all_react_native_versions.sh`, which calls `change_react_native_version.js` for three paths: `detox/test`, `examples/demo-react-native`, and `detox`. Verify older version pipelines still pass. + +### 7b. Version-Conditional Code Checklist + +- [ ] `rninfo.gradle` has new flag (if version-conditional Gradle logic was added) +- [ ] `updateGradle.js` default covers the new version (or has explicit case) +- [ ] `change_react_native_version.js` handles the new version's devDependencies (if needed) +- [ ] All reflection code uses version checks with `>=` (not try/catch for field names) +- [ ] Kotlin version is set correctly for each RN version range +- [ ] Manifest settings are version-conditional where needed +- [ ] Metro config works for all supported versions + +### 7c. Test the Version-Switch Script + +```bash +REACT_NATIVE_VERSION=0.77.2 node scripts/change_react_native_version.js "detox/test" 0.77.2 "dependencies" +``` + +### 7d. Update Documentation + +- `docs/introduction/partials/_getting-started-rn.md` -- supported RN version range +- README.md if it mentions supported versions diff --git a/detox/android/detox/src/full/java/com/wix/detox/reactnative/idlingresources/bridge/BridgeIdlingResource.kt b/detox/android/detox/src/full/java/com/wix/detox/reactnative/idlingresources/bridge/BridgeIdlingResource.kt index 2e3ec8b111..1db019cde2 100644 --- a/detox/android/detox/src/full/java/com/wix/detox/reactnative/idlingresources/bridge/BridgeIdlingResource.kt +++ b/detox/android/detox/src/full/java/com/wix/detox/reactnative/idlingresources/bridge/BridgeIdlingResource.kt @@ -1,31 +1,63 @@ package com.wix.detox.reactnative.idlingresources.bridge import android.util.Log -import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener import com.facebook.react.bridge.ReactContext import com.wix.detox.reactnative.idlingresources.DetoxIdlingResource +import java.lang.reflect.InvocationHandler +import java.lang.reflect.Method +import java.lang.reflect.Proxy import java.util.concurrent.atomic.AtomicBoolean /** - * Created by simonracz on 01/06/2017. - */ -/** - * - * * IdlingResource for Espresso, which monitors the traffic of * React Native's JS bridge. * + * Uses reflection to interact with the bridge idle debug listener API, + * which was removed in RN 0.84. This allows the class to compile against + * any RN version while still functioning on older versions that have the API. */ -class BridgeIdlingResource(private val reactContext: ReactContext) : DetoxIdlingResource(), - NotThreadSafeBridgeIdleDebugListener { +class BridgeIdlingResource(private val reactContext: ReactContext) : DetoxIdlingResource() { private val idleNow = AtomicBoolean(true) + private var listenerProxy: Any? = null init { - reactContext.catalystInstance.addBridgeIdleDebugListener(this) + try { + val listenerClass = Class.forName("com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener") + val handler = InvocationHandler { _, method, _ -> + when (method.name) { + "onTransitionToBridgeIdle" -> { + idleNow.set(true) + notifyIdle() + } + "onTransitionToBridgeBusy" -> { + idleNow.set(false) + } + "onBridgeDestroyed" -> { } + } + null + } + listenerProxy = Proxy.newProxyInstance(listenerClass.classLoader, arrayOf(listenerClass), handler) + + val catalystInstance = reactContext.catalystInstance + val addMethod = catalystInstance.javaClass.getMethod("addBridgeIdleDebugListener", listenerClass) + addMethod.invoke(catalystInstance, listenerProxy) + } catch (e: Exception) { + Log.w(LOG_TAG, "Bridge idle debug listener API not available (RN 0.84+), bridge idling resource will report idle", e) + idleNow.set(true) + } } fun onDetach() { - reactContext.catalystInstance.removeBridgeIdleDebugListener(this) + val proxy = listenerProxy ?: return + try { + val listenerClass = Class.forName("com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener") + val catalystInstance = reactContext.catalystInstance + val removeMethod = catalystInstance.javaClass.getMethod("removeBridgeIdleDebugListener", listenerClass) + removeMethod.invoke(catalystInstance, proxy) + } catch (e: Exception) { + Log.w(LOG_TAG, "Failed to remove bridge idle debug listener", e) + } + listenerProxy = null } override fun getName(): String { @@ -48,19 +80,6 @@ class BridgeIdlingResource(private val reactContext: ReactContext) : DetoxIdling return ret } - override fun onTransitionToBridgeIdle() { - idleNow.set(true) - notifyIdle() - } - - override fun onTransitionToBridgeBusy() { - idleNow.set(false) - // Log.i(LOG_TAG, "JS Bridge transitions to busy."); - } - - override fun onBridgeDestroyed() { - } - override fun onUnregistered() { super.onUnregistered() onDetach() diff --git a/detox/android/rninfo.gradle b/detox/android/rninfo.gradle index 89460f23b8..4b45dd9cee 100644 --- a/detox/android/rninfo.gradle +++ b/detox/android/rninfo.gradle @@ -48,4 +48,5 @@ ext.rnInfo = [ isRN79OrHigher: rnMajorVer >= 79, isRN80OrHigher: rnMajorVer >= 80, isRN81OrHigher: rnMajorVer >= 81, + isRN84OrHigher: rnMajorVer >= 84, ] diff --git a/detox/package.json b/detox/package.json index 71cf023175..299f73e07b 100644 --- a/detox/package.json +++ b/detox/package.json @@ -54,13 +54,13 @@ "postinstall": "node scripts/postinstall.js" }, "devDependencies": { - "@react-native-community/cli": "20.0.2", - "@react-native-community/cli-platform-android": "20.0.2", - "@react-native-community/cli-platform-ios": "20.0.2", - "@react-native/babel-preset": "0.83.0", - "@react-native/eslint-config": "0.83.0", - "@react-native/metro-config": "0.83.0", - "@react-native/typescript-config": "0.83.0", + "@react-native-community/cli": "20.1.1", + "@react-native-community/cli-platform-android": "20.1.1", + "@react-native-community/cli-platform-ios": "20.1.1", + "@react-native/babel-preset": "0.84.0", + "@react-native/eslint-config": "0.84.0", + "@react-native/metro-config": "0.84.0", + "@react-native/typescript-config": "0.84.0", "@tsconfig/react-native": "^3.0.0", "@types/bunyan": "^1.8.8", "@types/child-process-promise": "^2.2.1", @@ -82,7 +82,7 @@ "jest-allure2-reporter": "^2.2.6", "metro-react-native-babel-preset": "0.76.8", "prettier": "^3.1.1", - "react-native": "0.83.0", + "react-native": "0.84.0", "react-native-codegen": "^0.0.8", "typescript": "^5.8.3", "wtfnode": "^0.9.1" diff --git a/detox/test/package.json b/detox/test/package.json index 12f66d91b7..1de6eef630 100644 --- a/detox/test/package.json +++ b/detox/test/package.json @@ -40,8 +40,8 @@ "@react-native-picker/picker": "^2.11.2", "@react-native-segmented-control/segmented-control": "^2.5.6", "moment": "^2.30.1", - "react": "19.2.0", - "react-native": "0.83.0", + "react": "19.2.3", + "react-native": "0.84.0", "react-native-launch-arguments": "^4.0.2", "react-native-permissions": "^5.2.1", "react-native-webview": "^13.13.1", @@ -51,13 +51,13 @@ "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", "@babel/runtime": "^7.25.0", - "@react-native-community/cli": "20.0.2", - "@react-native-community/cli-platform-android": "20.0.2", - "@react-native-community/cli-platform-ios": "20.0.2", - "@react-native/babel-preset": "0.83.0", - "@react-native/eslint-config": "0.83.0", - "@react-native/metro-config": "0.83.0", - "@react-native/typescript-config": "0.83.0", + "@react-native-community/cli": "20.1.1", + "@react-native-community/cli-platform-android": "20.1.1", + "@react-native-community/cli-platform-ios": "20.1.1", + "@react-native/babel-preset": "0.84.0", + "@react-native/eslint-config": "0.84.0", + "@react-native/metro-config": "0.84.0", + "@react-native/typescript-config": "0.84.0", "@rnx-kit/align-deps": "^3.0.6", "@tsconfig/react-native": "^3.0.0", "@types/jest": "^29.5.11", diff --git a/examples/demo-react-native/android/app/src/main/java/com/example/MainApplication.kt b/examples/demo-react-native/android/app/src/main/java/com/example/MainApplication.kt index a4998f85fa..7000bc4070 100644 --- a/examples/demo-react-native/android/app/src/main/java/com/example/MainApplication.kt +++ b/examples/demo-react-native/android/app/src/main/java/com/example/MainApplication.kt @@ -11,7 +11,6 @@ import com.facebook.react.defaults.DefaultReactNativeHost import com.facebook.react.soloader.OpenSourceMergedSoMapping import com.facebook.soloader.SoLoader import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load -import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative class MainApplication : Application(), ReactApplication { @@ -37,10 +36,13 @@ class MainApplication : Application(), ReactApplication { override val reactHost: ReactHost - get() = getDefaultReactHost(this, reactNativeHost) + get() = getDefaultReactHost(applicationContext, reactNativeHost) override fun onCreate() { super.onCreate() - loadReactNative(this) + SoLoader.init(this, OpenSourceMergedSoMapping) + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { + load() + } } } diff --git a/examples/demo-react-native/package.json b/examples/demo-react-native/package.json index 45f948d2b8..0d0be89d21 100644 --- a/examples/demo-react-native/package.json +++ b/examples/demo-react-native/package.json @@ -23,19 +23,19 @@ }, "dependencies": { "@react-native-async-storage/async-storage": "^2.1.0", - "react": "19.2.0", - "react-native": "0.83.0", + "react": "19.2.3", + "react-native": "0.84.0", "tslib": "^2.0.3" }, "devDependencies": { "@babel/preset-env": "^7.25.3", - "@react-native-community/cli": "20.0.2", - "@react-native-community/cli-platform-android": "20.0.2", - "@react-native-community/cli-platform-ios": "20.0.2", - "@react-native/babel-preset": "0.83.0", - "@react-native/eslint-config": "0.83.0", - "@react-native/metro-config": "0.83.0", - "@react-native/typescript-config": "0.83.0", + "@react-native-community/cli": "20.1.1", + "@react-native-community/cli-platform-android": "20.1.1", + "@react-native-community/cli-platform-ios": "20.1.1", + "@react-native/babel-preset": "0.84.0", + "@react-native/eslint-config": "0.84.0", + "@react-native/metro-config": "0.84.0", + "@react-native/typescript-config": "0.84.0", "@tsconfig/react-native": "^3.0.5", "@types/fs-extra": "^9.0.13", "@types/jest": "^29.2.1", @@ -43,7 +43,7 @@ "detox": "workspace:*", "fs-extra": "^9.1.0", "jest": "^30.0.3", - "react-test-renderer": "19.2.0", + "react-test-renderer": "19.2.3", "ts-jest": "^29.4.0", "typescript": "^5.8.3" } diff --git a/yarn.lock b/yarn.lock index 38e4ecf8a6..1fb3041b71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1179,7 +1179,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @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.0.0, @babel/plugin-transform-arrow-functions@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1" dependencies: @@ -1278,7 +1278,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.0.0, @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.0.0, @babel/plugin-transform-computed-properties@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-computed-properties@npm:7.27.1" dependencies: @@ -1406,7 +1406,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.0.0, @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.0.0, @babel/plugin-transform-function-name@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-function-name@npm:7.27.1" dependencies: @@ -1430,7 +1430,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.25.2, @babel/plugin-transform-literals@npm:^7.27.1": +"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-literals@npm:7.27.1" dependencies: @@ -1441,7 +1441,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: @@ -1547,7 +1547,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: @@ -1558,7 +1558,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: @@ -1608,7 +1608,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.12.1, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.27.7": +"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.12.1, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.27.7": version: 7.27.7 resolution: "@babel/plugin-transform-parameters@npm:7.27.7" dependencies: @@ -1787,7 +1787,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @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.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1" dependencies: @@ -1798,7 +1798,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.24.7, @babel/plugin-transform-spread@npm:^7.27.1": +"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-spread@npm:7.27.1" dependencies: @@ -1810,7 +1810,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.0.0, @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.0.0, @babel/plugin-transform-sticky-regex@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1" dependencies: @@ -3732,119 +3732,119 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli-clean@npm:20.0.2" +"@react-native-community/cli-clean@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-clean@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli-clean%2F-%2Fcli-clean-20.1.1.tgz" dependencies: - "@react-native-community/cli-tools": "npm:20.0.2" - chalk: "npm:^4.1.2" + "@react-native-community/cli-tools": "npm:20.1.1" execa: "npm:^5.0.0" fast-glob: "npm:^3.3.2" - checksum: 10/d839318d979a83c0574b81f2eb765726431e2b3b14aee14621a72c2af527730072af58ab8a9c457e12e137c81ae41329f83f5f56a3d36b08efbed5d7fe6718bf + picocolors: "npm:^1.1.1" + checksum: 10/5ff8917381dc5b2abebca028a2e50af4385457e6645555186d6c5144617c91ca843cd67a5b1820b8db217f9d7b4c85bf328a6b3b2b1cdd8ba3fb6c3aea4b4c3d languageName: node linkType: hard -"@react-native-community/cli-config-android@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli-config-android@npm:20.0.2" +"@react-native-community/cli-config-android@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-config-android@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli-config-android%2F-%2Fcli-config-android-20.1.1.tgz" dependencies: - "@react-native-community/cli-tools": "npm:20.0.2" - chalk: "npm:^4.1.2" + "@react-native-community/cli-tools": "npm:20.1.1" fast-glob: "npm:^3.3.2" fast-xml-parser: "npm:^4.4.1" - checksum: 10/ccbe4998887d722332c6734dbee38d7ea99362000f7afd88af4f7301e87928d669287e78ab112e618f8785e10c483064d1c00ce34368b564152d291eee32cb43 + picocolors: "npm:^1.1.1" + checksum: 10/baa29d945f923b510561bea6625786d0987c8e979f544650a5baf4139f4c76e92b8dc25e978d00f496329c4ccd54709de53903d199eb5873f39a2c1d7e8a88bf languageName: node linkType: hard -"@react-native-community/cli-config-apple@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli-config-apple@npm:20.0.2" +"@react-native-community/cli-config-apple@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-config-apple@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli-config-apple%2F-%2Fcli-config-apple-20.1.1.tgz" dependencies: - "@react-native-community/cli-tools": "npm:20.0.2" - chalk: "npm:^4.1.2" + "@react-native-community/cli-tools": "npm:20.1.1" execa: "npm:^5.0.0" fast-glob: "npm:^3.3.2" - checksum: 10/5f888674b70d8d52be2ea2f1e513afdf98a43de30d6db224514c7a3a0466ad99a1c8ad4080558b6ac172c92eaca2d1a20691afd0744fbcb8fafedf8e6cd73cf1 + picocolors: "npm:^1.1.1" + checksum: 10/31e1770878a0c3e1793385b7862f53e32c0aeb367726e601741c4ed9d25e760f722403f631743ef07db7cc5b41f805de9ac7a198cda9c081b49d54e2286c7386 languageName: node linkType: hard -"@react-native-community/cli-config@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli-config@npm:20.0.2" +"@react-native-community/cli-config@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-config@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli-config%2F-%2Fcli-config-20.1.1.tgz" dependencies: - "@react-native-community/cli-tools": "npm:20.0.2" - chalk: "npm:^4.1.2" + "@react-native-community/cli-tools": "npm:20.1.1" cosmiconfig: "npm:^9.0.0" deepmerge: "npm:^4.3.0" fast-glob: "npm:^3.3.2" joi: "npm:^17.2.1" - checksum: 10/05658bfeecce40f14d4c91d804b4748d0b514e73a572ff58a3420c41e4cbebe63fa6fb6ecf8f9622227e33891313e3494c7d26c469335f40e234e2470a7b6f6b + picocolors: "npm:^1.1.1" + checksum: 10/818488ab41bd5b9e13fdf2115e40ccde622b51e78156cdb865acc60d2a02fc2f5316560c3d623405e64178231697f96f6786471ded289e621a5b7a158f32ed23 languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli-doctor@npm:20.0.2" +"@react-native-community/cli-doctor@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-doctor@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli-doctor%2F-%2Fcli-doctor-20.1.1.tgz" dependencies: - "@react-native-community/cli-config": "npm:20.0.2" - "@react-native-community/cli-platform-android": "npm:20.0.2" - "@react-native-community/cli-platform-apple": "npm:20.0.2" - "@react-native-community/cli-platform-ios": "npm:20.0.2" - "@react-native-community/cli-tools": "npm:20.0.2" - chalk: "npm:^4.1.2" + "@react-native-community/cli-config": "npm:20.1.1" + "@react-native-community/cli-platform-android": "npm:20.1.1" + "@react-native-community/cli-platform-apple": "npm:20.1.1" + "@react-native-community/cli-platform-ios": "npm:20.1.1" + "@react-native-community/cli-tools": "npm:20.1.1" command-exists: "npm:^1.2.8" deepmerge: "npm:^4.3.0" envinfo: "npm:^7.13.0" execa: "npm:^5.0.0" node-stream-zip: "npm:^1.9.1" ora: "npm:^5.4.1" + picocolors: "npm:^1.1.1" semver: "npm:^7.5.2" wcwidth: "npm:^1.0.1" yaml: "npm:^2.2.1" - checksum: 10/11a4a9ff5da4d471920418e8b4a598f997036d1d8e5d25f5957886b26727a5526789996430575dc422a5251f225df786a40ab42ec9c2c11f112ec980d6e1cc02 + checksum: 10/44f8cc6f8b22a5e39a3129544ce64778bacfc292f7228643a03a9853a4f88b0a53f460b616a05d85b4d619a075b7d4d5ea2cdbb73aba12a265217fac4f468463 languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli-platform-android@npm:20.0.2" +"@react-native-community/cli-platform-android@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-platform-android@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli-platform-android%2F-%2Fcli-platform-android-20.1.1.tgz" dependencies: - "@react-native-community/cli-config-android": "npm:20.0.2" - "@react-native-community/cli-tools": "npm:20.0.2" - chalk: "npm:^4.1.2" + "@react-native-community/cli-config-android": "npm:20.1.1" + "@react-native-community/cli-tools": "npm:20.1.1" execa: "npm:^5.0.0" logkitty: "npm:^0.7.1" - checksum: 10/465ef6988d335740cb998c51d29f837344e063bd04cf07b3f959e44df7823b2902ee6a25bf036e82581b1d6e1cfacbd8bcf87690f4dc0c6fb4b21f15eb64951e + picocolors: "npm:^1.1.1" + checksum: 10/7afafe5fad6b2f7d6c42f7d7fcd9483baca90311b87456ff1eecf1dc933528b8571d03cea625126d39db83f5a20b60c7e75b44f96448e9a20954589f007ff285 languageName: node linkType: hard -"@react-native-community/cli-platform-apple@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli-platform-apple@npm:20.0.2" +"@react-native-community/cli-platform-apple@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-platform-apple@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli-platform-apple%2F-%2Fcli-platform-apple-20.1.1.tgz" dependencies: - "@react-native-community/cli-config-apple": "npm:20.0.2" - "@react-native-community/cli-tools": "npm:20.0.2" - chalk: "npm:^4.1.2" + "@react-native-community/cli-config-apple": "npm:20.1.1" + "@react-native-community/cli-tools": "npm:20.1.1" execa: "npm:^5.0.0" fast-xml-parser: "npm:^4.4.1" - checksum: 10/f316b4f54f6d323319c0df9b6bf3cd7a5aa3b81d170e18755b9dc80297b1989f5c275b779f1044f063392126ec510e172283d06ef9ab8700950d7b36e1cb4d72 + picocolors: "npm:^1.1.1" + checksum: 10/577c28ef96bb4d505fc7a68857e67ff7f65b232ce6919094443960e17d5bcee28938a8d5d242747eb8c21f48ecea35b416a15994cebb013c956f1e73c9c78bab languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli-platform-ios@npm:20.0.2" +"@react-native-community/cli-platform-ios@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-platform-ios@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli-platform-ios%2F-%2Fcli-platform-ios-20.1.1.tgz" dependencies: - "@react-native-community/cli-platform-apple": "npm:20.0.2" - checksum: 10/a0290feadc079981429143e9829a3030a768593927e0c2bcf546f52c8c22a53a49ea5f9ae9484f7eb390e01a46d7b0d7d9dc3374268d07237c808e6e7e3c50b3 + "@react-native-community/cli-platform-apple": "npm:20.1.1" + checksum: 10/a2ec3bf30048824f48143bc8b994b7bd0deec706898493b19366649da4bf0c1a426db0f73059c4e7ec79c25dd1463ccba0215b84c11d9ebcfce438b0a6d678a6 languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli-server-api@npm:20.0.2" +"@react-native-community/cli-server-api@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-server-api@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli-server-api%2F-%2Fcli-server-api-20.1.1.tgz" dependencies: - "@react-native-community/cli-tools": "npm:20.0.2" + "@react-native-community/cli-tools": "npm:20.1.1" body-parser: "npm:^1.20.3" compression: "npm:^1.7.1" connect: "npm:^3.6.5" @@ -3853,60 +3853,61 @@ __metadata: open: "npm:^6.2.0" pretty-format: "npm:^29.7.0" serve-static: "npm:^1.13.1" + strict-url-sanitise: "npm:0.0.1" ws: "npm:^6.2.3" - checksum: 10/7771524a0016f200a15c9c5df430b18ada846ef4d426be9d6540a343e69d042b359069aeef156bec7b267bcf43a50f97b8ec7f1514dad55d84c4e16fbd4e176b + checksum: 10/448048828deeb7997aa4caeb47148bcbab161ef25bcb5e9ceafceb6da5befadadb9aeca74a957b75d22811722d62d0e8c1565f610e681a3724d02bdbd3316343 languageName: node linkType: hard -"@react-native-community/cli-tools@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli-tools@npm:20.0.2" +"@react-native-community/cli-tools@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-tools@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli-tools%2F-%2Fcli-tools-20.1.1.tgz" dependencies: "@vscode/sudo-prompt": "npm:^9.0.0" appdirsjs: "npm:^1.2.4" - chalk: "npm:^4.1.2" execa: "npm:^5.0.0" find-up: "npm:^5.0.0" launch-editor: "npm:^2.9.1" mime: "npm:^2.4.1" ora: "npm:^5.4.1" + picocolors: "npm:^1.1.1" prompts: "npm:^2.4.2" semver: "npm:^7.5.2" - checksum: 10/8f1c752a6bffa4dc201446bd4d8a7162ae296e87e3a7f2d87201e79cc9ceadb9ed4daafde83b732d79f54f76c4294e8822fae483c9120c358bc422482d98c045 + checksum: 10/0539b1f1acd7bed3d4d9ee944c281673ae2fa718b3b01cecbe2152f4c2e6cf315881ededbeca32f01b7a65196fc672c6a4056797e45e76c8898842f0cc9f8dc2 languageName: node linkType: hard -"@react-native-community/cli-types@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli-types@npm:20.0.2" +"@react-native-community/cli-types@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-types@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli-types%2F-%2Fcli-types-20.1.1.tgz" dependencies: joi: "npm:^17.2.1" - checksum: 10/b4e708fe759ef995b99bdbe89f0e83a00cba680c01a119d317f445528e8321d89a842e0641ad2a08f4c3793ddb9e02b0045d2e82da66d279cb21ee42961ba9ce + checksum: 10/0e03906f4636b35935eccabb47311748ceb5dc9328db16c42c5b7752aa21b822e0ddbf5dee91297310fe92db7cee19cfc312877bb0dd0c3b37cd183dcf127dda languageName: node linkType: hard -"@react-native-community/cli@npm:20.0.2": - version: 20.0.2 - resolution: "@react-native-community/cli@npm:20.0.2" +"@react-native-community/cli@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli@npm:20.1.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native-community%2Fcli%2F-%2Fcli-20.1.1.tgz" dependencies: - "@react-native-community/cli-clean": "npm:20.0.2" - "@react-native-community/cli-config": "npm:20.0.2" - "@react-native-community/cli-doctor": "npm:20.0.2" - "@react-native-community/cli-server-api": "npm:20.0.2" - "@react-native-community/cli-tools": "npm:20.0.2" - "@react-native-community/cli-types": "npm:20.0.2" - chalk: "npm:^4.1.2" + "@react-native-community/cli-clean": "npm:20.1.1" + "@react-native-community/cli-config": "npm:20.1.1" + "@react-native-community/cli-doctor": "npm:20.1.1" + "@react-native-community/cli-server-api": "npm:20.1.1" + "@react-native-community/cli-tools": "npm:20.1.1" + "@react-native-community/cli-types": "npm:20.1.1" commander: "npm:^9.4.1" deepmerge: "npm:^4.3.0" execa: "npm:^5.0.0" find-up: "npm:^5.0.0" fs-extra: "npm:^8.1.0" graceful-fs: "npm:^4.1.3" + picocolors: "npm:^1.1.1" prompts: "npm:^2.4.2" semver: "npm:^7.5.2" bin: rnc-cli: build/bin.js - checksum: 10/8de75d8ab9c3ffce215e4dcff57832f22e8f8853a212dbd0c2b8e96cff6e6511593d7ed064aba920a8245147b4079a77ab4445461bab97a9e08bf84472a6e8e6 + checksum: 10/9e1ebdd31d59fc8d8085c92aad72eb611c378da70038cefc6bb92047d0ff34b82f6711f2e6f5af91aee6aa3ee04d677884860fb726325b96d979a074d13ed577 languageName: node linkType: hard @@ -3966,26 +3967,26 @@ __metadata: languageName: node linkType: hard -"@react-native/assets-registry@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/assets-registry@npm:0.83.0" - checksum: 10/9c314a311739e5ea555155df54821f888f3c61de6bcd71db60a253b27aefb42116892d487efb57a5ba99998c9835e1b123019bfe4397c087d0bcef38bad43c8c +"@react-native/assets-registry@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/assets-registry@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fassets-registry%2F-%2Fassets-registry-0.84.0.tgz" + checksum: 10/9f972a0e46494aafddbed140f3256615dd2d2675055b8a3dbe05ca0c30d2d89a7a960fbe6580e327a850d870203b8e89247adfd3ed629c0b54d905c6fd5dbcb3 languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/babel-plugin-codegen@npm:0.83.0" +"@react-native/babel-plugin-codegen@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/babel-plugin-codegen@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fbabel-plugin-codegen%2F-%2Fbabel-plugin-codegen-0.84.0.tgz" dependencies: "@babel/traverse": "npm:^7.25.3" - "@react-native/codegen": "npm:0.83.0" - checksum: 10/e43452305c2fcbfbc1647f1818241366a0924a6869ffae871cd86bffa7d6cd4d789edd1542f919a2f2906ebb2a425f4ad78766a4f3df8d5bc5317994d0a026f6 + "@react-native/codegen": "npm:0.84.0" + checksum: 10/ffe50339cf1413e352aedc9691ff1ef2724f0e83e9d65001e47669a855b74846bf37ce0005e5f3a46dbfcaa6b29410fb66000b353808e342133ee58860b165d0 languageName: node linkType: hard -"@react-native/babel-preset@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/babel-preset@npm:0.83.0" +"@react-native/babel-preset@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/babel-preset@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fbabel-preset%2F-%2Fbabel-preset-0.84.0.tgz" dependencies: "@babel/core": "npm:^7.25.2" "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" @@ -3993,27 +3994,19 @@ __metadata: "@babel/plugin-syntax-export-default-from": "npm:^7.24.7" "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4" "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" "@babel/plugin-transform-block-scoping": "npm:^7.25.0" "@babel/plugin-transform-class-properties": "npm:^7.25.4" "@babel/plugin-transform-classes": "npm:^7.25.4" - "@babel/plugin-transform-computed-properties": "npm:^7.24.7" "@babel/plugin-transform-destructuring": "npm:^7.24.8" "@babel/plugin-transform-flow-strip-types": "npm:^7.25.2" "@babel/plugin-transform-for-of": "npm:^7.24.7" - "@babel/plugin-transform-function-name": "npm:^7.25.1" - "@babel/plugin-transform-literals": "npm:^7.25.2" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" - "@babel/plugin-transform-parameters": "npm:^7.24.7" "@babel/plugin-transform-private-methods": "npm:^7.24.7" "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" "@babel/plugin-transform-react-display-name": "npm:^7.24.7" @@ -4022,44 +4015,40 @@ __metadata: "@babel/plugin-transform-react-jsx-source": "npm:^7.24.7" "@babel/plugin-transform-regenerator": "npm:^7.24.7" "@babel/plugin-transform-runtime": "npm:^7.24.7" - "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" - "@babel/plugin-transform-spread": "npm:^7.24.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" "@babel/plugin-transform-typescript": "npm:^7.25.2" "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" - "@babel/template": "npm:^7.25.0" - "@react-native/babel-plugin-codegen": "npm:0.83.0" + "@react-native/babel-plugin-codegen": "npm:0.84.0" babel-plugin-syntax-hermes-parser: "npm:0.32.0" babel-plugin-transform-flow-enums: "npm:^0.0.2" react-refresh: "npm:^0.14.0" peerDependencies: "@babel/core": "*" - checksum: 10/c68fcec86eabdce17c83b2f500d6bf09d5f25755dccb10d1c0117522152331474d605ccfc7f53e4b9e3df63482616e1143d554897b76fcd7154a1f2079192f32 + checksum: 10/b92783961506db98dfd6a77d1e3c9556b33cec0d6f208556dc01c1505b899b122067e64bb4a61ff36ed4b4019e5fcfe63781c4e714562a266a214ed0a4c6b301 languageName: node linkType: hard -"@react-native/codegen@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/codegen@npm:0.83.0" +"@react-native/codegen@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/codegen@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fcodegen%2F-%2Fcodegen-0.84.0.tgz" dependencies: "@babel/core": "npm:^7.25.2" "@babel/parser": "npm:^7.25.3" - glob: "npm:^7.1.1" hermes-parser: "npm:0.32.0" invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" + tinyglobby: "npm:^0.2.15" yargs: "npm:^17.6.2" peerDependencies: "@babel/core": "*" - checksum: 10/6a201c7760aa7404e869eca97ebbeb233eec318d4881c218b899a8c1534793bd1d17c6ff334c3ef827ccf5e43d90fbab6ca9d932af8f4bf19a8d5c8e9dc8f021 + checksum: 10/1b81de2bcccbf570efb42cf8aaa4a551ececdc510ce9c9c2230f8eafdd0eeec25729307340993a769eca94c99e343499ba0aeec4427e3e7976914c01055732f7 languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/community-cli-plugin@npm:0.83.0" +"@react-native/community-cli-plugin@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/community-cli-plugin@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fcommunity-cli-plugin%2F-%2Fcommunity-cli-plugin-0.84.0.tgz" dependencies: - "@react-native/dev-middleware": "npm:0.83.0" + "@react-native/dev-middleware": "npm:0.84.0" debug: "npm:^4.4.0" invariant: "npm:^2.2.4" metro: "npm:^0.83.3" @@ -4074,34 +4063,35 @@ __metadata: optional: true "@react-native/metro-config": optional: true - checksum: 10/b0a664d828270c7be320c84b6f6f37dc08682d899157865cd8655f5bac99d2b990c9cc4dcaf57f4c284c698af41dd97bc4acd34fec5fc052f535c83a74cf0cb9 + checksum: 10/3d1d0fa6e5d904b9d3fc55c417e2f561daa8ace734ba0e4fd4cd6abb73967fe0756ec34f7a04b2f98b21eb834cffba869a79e26c57612c66c67054f6995d44b2 languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/debugger-frontend@npm:0.83.0" - checksum: 10/3f52e5400c24173f7619d35be95b6899f15e087e218d8ad580a5a931e908c2d0ef0e752619a73752bc5ed18f35a96fd38723c1967fa65f68e9f8cc6bd43972dc +"@react-native/debugger-frontend@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/debugger-frontend@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fdebugger-frontend%2F-%2Fdebugger-frontend-0.84.0.tgz" + checksum: 10/93435f6bb8cc69195846a25453639eeaa6b261113fae8957e3c7f28c0302e25ea89fc757bf7bb971e2e5caa0672b228fbaddbf5ab2c844d2a6365522e3fa7edd languageName: node linkType: hard -"@react-native/debugger-shell@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/debugger-shell@npm:0.83.0" +"@react-native/debugger-shell@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/debugger-shell@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fdebugger-shell%2F-%2Fdebugger-shell-0.84.0.tgz" dependencies: cross-spawn: "npm:^7.0.6" + debug: "npm:^4.4.0" fb-dotslash: "npm:0.5.8" - checksum: 10/51b61131b90a9e09f259a5999759b77d9384cf9b0f38e4c4da1b63a1a729126349f9d20f51d599e527ebe5430945e2e1ddde17d933aa30c0775e2437694db50f + checksum: 10/5e29a717ce5384735f9db32fb3f073ec1bf53d7fd136780433befa04f0d31275ef5aaebc91e1e923518add0e77a70cfbcc9dc374b01a8bcf71944747d2f7bbde languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/dev-middleware@npm:0.83.0" +"@react-native/dev-middleware@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/dev-middleware@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fdev-middleware%2F-%2Fdev-middleware-0.84.0.tgz" dependencies: "@isaacs/ttlcache": "npm:^1.4.1" - "@react-native/debugger-frontend": "npm:0.83.0" - "@react-native/debugger-shell": "npm:0.83.0" + "@react-native/debugger-frontend": "npm:0.84.0" + "@react-native/debugger-shell": "npm:0.84.0" chrome-launcher: "npm:^0.15.2" chromium-edge-launcher: "npm:^0.2.0" connect: "npm:^3.6.5" @@ -4111,17 +4101,17 @@ __metadata: open: "npm:^7.0.3" serve-static: "npm:^1.16.2" ws: "npm:^7.5.10" - checksum: 10/524df13d559e4593887b6183cedafb43ea0d6b07e4b04b527549efcce03e2809044937c7fc0c6483fc14fb237d74b0c706c2fd01825e3abb5a3cc009a27aba8b + checksum: 10/ac061225f248821e2d90f201423e51b23431444ef76ea5bd5cc7a5467cee40fa6c780a1d80a0bb926cb9c25d79811eb1e4de663e42202fd3776a6ea43cda8ea4 languageName: node linkType: hard -"@react-native/eslint-config@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/eslint-config@npm:0.83.0" +"@react-native/eslint-config@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/eslint-config@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Feslint-config%2F-%2Feslint-config-0.84.0.tgz" dependencies: "@babel/core": "npm:^7.25.2" "@babel/eslint-parser": "npm:^7.25.1" - "@react-native/eslint-plugin": "npm:0.83.0" + "@react-native/eslint-plugin": "npm:0.84.0" "@typescript-eslint/eslint-plugin": "npm:^8.36.0" "@typescript-eslint/parser": "npm:^8.36.0" eslint-config-prettier: "npm:^8.5.0" @@ -4130,78 +4120,78 @@ __metadata: eslint-plugin-jest: "npm:^29.0.1" eslint-plugin-react: "npm:^7.30.1" eslint-plugin-react-hooks: "npm:^7.0.1" - eslint-plugin-react-native: "npm:^4.0.0" + eslint-plugin-react-native: "npm:^5.0.0" peerDependencies: - eslint: ">=8" + eslint: ^8.0.0 || ^9.0.0 prettier: ">=2" - checksum: 10/57499395d2438257830aa745da0b5ce520a8c5bded4b300c6b86fbc5695a56ffe2d684559071066ec04686b2c7a1bfb688913ade7f0754ac9dff03871964a63b + checksum: 10/2d3bfe9bb4b06ebf4dc436e3195228390237a1680426af95905fe4f7dc72cd682189767ec1709472efa36727e751f72eee0a26dfe26f5500290fceadc2d154ce languageName: node linkType: hard -"@react-native/eslint-plugin@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/eslint-plugin@npm:0.83.0" - checksum: 10/aa62a1157094926b1cc616ad73887045a189b63e8d3d9b021633019ff92f1bbe5188b5f3c9cd110ea4c33cd3f696ab6b578ed3c1b347f6dc48adef2cf1cb3ecc +"@react-native/eslint-plugin@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/eslint-plugin@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Feslint-plugin%2F-%2Feslint-plugin-0.84.0.tgz" + checksum: 10/f689355dc7e4753a17deded950a7274139e2fa2ed6f10c26c09e8c89de23f957951fee2d175d55a42dc7621c84a99856f9a0f4cdf62ad35a422c10f0ba71be56 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/gradle-plugin@npm:0.83.0" - checksum: 10/dcd7a47b21629a78a6f079a16a87d85ed78214dd19efafb054e7718624774b07e8c10572d054b9e31ac80c96148127a40da164b44e04e8aa434cfb93ead258fc +"@react-native/gradle-plugin@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/gradle-plugin@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fgradle-plugin%2F-%2Fgradle-plugin-0.84.0.tgz" + checksum: 10/161c956b010a63f495c6d5fbe90446f7f4b71a584e315b0e2244cc8084f43241445650e90ab816187071fff8253481156c20d94251620786ad5076a7bf9cf622 languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/js-polyfills@npm:0.83.0" - checksum: 10/ce6b4d7586cb3abf866437f1590b496ab288bf19e4e4b9e58e5f6ccddb57926825cecad244ed80004f6624ad8a2b624c77becb3107c59cc27101791bf1807556 +"@react-native/js-polyfills@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/js-polyfills@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fjs-polyfills%2F-%2Fjs-polyfills-0.84.0.tgz" + checksum: 10/5b2927aee2f7106cfe2531f9fce4ef1563c207223a34a6ec2aec886b475b78e507a8dd23a9e2c9a0afafbaff56a53e23dec93c6b4dc14b224d026bbed4304d97 languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/metro-babel-transformer@npm:0.83.0" +"@react-native/metro-babel-transformer@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/metro-babel-transformer@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fmetro-babel-transformer%2F-%2Fmetro-babel-transformer-0.84.0.tgz" dependencies: "@babel/core": "npm:^7.25.2" - "@react-native/babel-preset": "npm:0.83.0" + "@react-native/babel-preset": "npm:0.84.0" hermes-parser: "npm:0.32.0" nullthrows: "npm:^1.1.1" peerDependencies: "@babel/core": "*" - checksum: 10/b87885155d6809ae5171a793a036e17b2c0489d1d5326f4852b07abedd6d8ee316c93466db451818d85f9f783dfd5652ece349a7bea9a9762e3eb829cc5598f8 + checksum: 10/acd24a531bf9cf019da0fb112926fdfc083567c45698f073b22185f4a0c70f4e89a5129250d8440513a29c428502bf950a60877f2755f417c54e596ef74d81c3 languageName: node linkType: hard -"@react-native/metro-config@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/metro-config@npm:0.83.0" +"@react-native/metro-config@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/metro-config@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fmetro-config%2F-%2Fmetro-config-0.84.0.tgz" dependencies: - "@react-native/js-polyfills": "npm:0.83.0" - "@react-native/metro-babel-transformer": "npm:0.83.0" + "@react-native/js-polyfills": "npm:0.84.0" + "@react-native/metro-babel-transformer": "npm:0.84.0" metro-config: "npm:^0.83.3" metro-runtime: "npm:^0.83.3" - checksum: 10/7316d21730443a38195ec1222c1de27a09b219c310d1bc057e0b9a9af503213d71ec9df387c65bbc3cadbb0b4dd1d5ee9958ab3b6b499d1f71a281c13e522614 + checksum: 10/c51fc100d3ecc78ed1b591ba492341bf4ad7b8b0cc8b153f66bf0f3e562ac6afcf5db83b23da030c25c942515d1c61e800ac6b0dc0eea4947d41df97d6081eba languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/normalize-colors@npm:0.83.0" - checksum: 10/84e3122bd0292ae9ee61a6d2997119196a5dc128ede7770a2a70e3b9de1b78f5f2a10b44dc683ce2652ad8f45767f249a74d1a86f7657a5dae7a377790512f68 +"@react-native/normalize-colors@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/normalize-colors@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fnormalize-colors%2F-%2Fnormalize-colors-0.84.0.tgz" + checksum: 10/038a4687c023b4799126efc4b2d8b91abdb806fdc90af5b749b552b2c311d7459893f6c583941c1baed1c906ab437804916da2cdfc666a431c98482ddb62672a languageName: node linkType: hard -"@react-native/typescript-config@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/typescript-config@npm:0.83.0" - checksum: 10/ad256ffa3602a34539b5f94886c1ce7960537d6992a28d7bbc833996139394081dfbe2ae9f2e40cb505050e8d6c1c9d841330928218281637e34c1b9c5aa0366 +"@react-native/typescript-config@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/typescript-config@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Ftypescript-config%2F-%2Ftypescript-config-0.84.0.tgz" + checksum: 10/5c4d9c3572a7504f207144fde7be446823036204fcf3dc6ef4712eb09078506ed8539374fe0e3af6fd25639a215b1ad059252da1552ddbfe324cc882650cdb4d languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.83.0": - version: 0.83.0 - resolution: "@react-native/virtualized-lists@npm:0.83.0" +"@react-native/virtualized-lists@npm:0.84.0": + version: 0.84.0 + resolution: "@react-native/virtualized-lists@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2F%40react-native%2Fvirtualized-lists%2F-%2Fvirtualized-lists-0.84.0.tgz" dependencies: invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" @@ -4212,7 +4202,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/b51a3c0c110b6d259b6cf25fa4d143b03cbd6b637e5b33ea07453c0aa12a061e2f861a67c1b4089f96817ef46a1bd3709ecae3133026e92b77979b96a08bff06 + checksum: 10/9a701e31a2912610fe6ba38d8d0aa255e559719f1c4a416073cef2b6c47ea0b9795fdef29738e9faeaaa670788a50d7a4f7db3704954b4a24e99111d16fedcc5 languageName: node linkType: hard @@ -10180,18 +10170,18 @@ __metadata: "@babel/runtime": "npm:^7.25.0" "@react-native-async-storage/async-storage": "npm:^2.2.0" "@react-native-community/checkbox": "npm:^0.5.15" - "@react-native-community/cli": "npm:20.0.2" - "@react-native-community/cli-platform-android": "npm:20.0.2" - "@react-native-community/cli-platform-ios": "npm:20.0.2" + "@react-native-community/cli": "npm:20.1.1" + "@react-native-community/cli-platform-android": "npm:20.1.1" + "@react-native-community/cli-platform-ios": "npm:20.1.1" "@react-native-community/datetimepicker": "npm:8.4.5" "@react-native-community/geolocation": "npm:^3.4.0" "@react-native-community/slider": "npm:^5.0.1" "@react-native-picker/picker": "npm:^2.11.2" "@react-native-segmented-control/segmented-control": "npm:^2.5.6" - "@react-native/babel-preset": "npm:0.83.0" - "@react-native/eslint-config": "npm:0.83.0" - "@react-native/metro-config": "npm:0.83.0" - "@react-native/typescript-config": "npm:0.83.0" + "@react-native/babel-preset": "npm:0.84.0" + "@react-native/eslint-config": "npm:0.84.0" + "@react-native/metro-config": "npm:0.84.0" + "@react-native/typescript-config": "npm:0.84.0" "@rnx-kit/align-deps": "npm:^3.0.6" "@tsconfig/react-native": "npm:^3.0.0" "@types/jest": "npm:^29.5.11" @@ -10216,8 +10206,8 @@ __metadata: nyc: "npm:^15.1.0" p-iteration: "npm:^1.1.8" pngjs: "npm:^3.4.0" - react: "npm:19.2.0" - react-native: "npm:0.83.0" + react: "npm:19.2.3" + react-native: "npm:0.84.0" react-native-launch-arguments: "npm:^4.0.2" react-native-permissions: "npm:^5.2.1" react-native-webview: "npm:^13.13.1" @@ -10230,13 +10220,13 @@ __metadata: version: 0.0.0-use.local resolution: "detox@workspace:detox" dependencies: - "@react-native-community/cli": "npm:20.0.2" - "@react-native-community/cli-platform-android": "npm:20.0.2" - "@react-native-community/cli-platform-ios": "npm:20.0.2" - "@react-native/babel-preset": "npm:0.83.0" - "@react-native/eslint-config": "npm:0.83.0" - "@react-native/metro-config": "npm:0.83.0" - "@react-native/typescript-config": "npm:0.83.0" + "@react-native-community/cli": "npm:20.1.1" + "@react-native-community/cli-platform-android": "npm:20.1.1" + "@react-native-community/cli-platform-ios": "npm:20.1.1" + "@react-native/babel-preset": "npm:0.84.0" + "@react-native/eslint-config": "npm:0.84.0" + "@react-native/metro-config": "npm:0.84.0" + "@react-native/typescript-config": "npm:0.84.0" "@tsconfig/react-native": "npm:^3.0.0" "@types/bunyan": "npm:^1.8.8" "@types/child-process-promise": "npm:^2.2.1" @@ -10279,7 +10269,7 @@ __metadata: prettier: "npm:^3.1.1" promisify-child-process: "npm:^4.1.2" proper-lockfile: "npm:^3.0.2" - react-native: "npm:0.83.0" + react-native: "npm:0.84.0" react-native-codegen: "npm:^0.0.8" resolve-from: "npm:^5.0.0" sanitize-filename: "npm:^1.6.1" @@ -11417,14 +11407,14 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-native@npm:^4.0.0": - version: 4.1.0 - resolution: "eslint-plugin-react-native@npm:4.1.0" +"eslint-plugin-react-native@npm:^5.0.0": + version: 5.0.0 + resolution: "eslint-plugin-react-native@npm:5.0.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2Feslint-plugin-react-native%2F-%2Feslint-plugin-react-native-5.0.0.tgz" dependencies: eslint-plugin-react-native-globals: "npm:^0.1.1" peerDependencies: - eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 10/fb2d65a3faca9bf775a0fa430eb7e86b7c27d0b256916d4f79a94def9ad353c8a10605f1f0dc9a5fb10e446b003341d53af9d8cbca4dd7ba394350355efa30c6 + eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + checksum: 10/41e84d806b74e3b4906c5541cad0caf1c79e30031130a1f3e92f9c030fb12e9ee4b193ea7b6ed5c425f2d83795e7f3ca51ab357e7e8f1f3d89c12fd4613343be languageName: node linkType: hard @@ -11729,13 +11719,13 @@ __metadata: dependencies: "@babel/preset-env": "npm:^7.25.3" "@react-native-async-storage/async-storage": "npm:^2.1.0" - "@react-native-community/cli": "npm:20.0.2" - "@react-native-community/cli-platform-android": "npm:20.0.2" - "@react-native-community/cli-platform-ios": "npm:20.0.2" - "@react-native/babel-preset": "npm:0.83.0" - "@react-native/eslint-config": "npm:0.83.0" - "@react-native/metro-config": "npm:0.83.0" - "@react-native/typescript-config": "npm:0.83.0" + "@react-native-community/cli": "npm:20.1.1" + "@react-native-community/cli-platform-android": "npm:20.1.1" + "@react-native-community/cli-platform-ios": "npm:20.1.1" + "@react-native/babel-preset": "npm:0.84.0" + "@react-native/eslint-config": "npm:0.84.0" + "@react-native/metro-config": "npm:0.84.0" + "@react-native/typescript-config": "npm:0.84.0" "@tsconfig/react-native": "npm:^3.0.5" "@types/fs-extra": "npm:^9.0.13" "@types/jest": "npm:^29.2.1" @@ -11743,9 +11733,9 @@ __metadata: detox: "workspace:*" fs-extra: "npm:^9.1.0" jest: "npm:^30.0.3" - react: "npm:19.2.0" - react-native: "npm:0.83.0" - react-test-renderer: "npm:19.2.0" + react: "npm:19.2.3" + react-native: "npm:0.84.0" + react-test-renderer: "npm:19.2.3" ts-jest: "npm:^29.4.0" tslib: "npm:^2.0.3" typescript: "npm:^5.8.3" @@ -13210,7 +13200,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.0.5, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0, glob@npm:~7.2.0": +"glob@npm:^7.0.0, glob@npm:^7.0.5, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0, glob@npm:~7.2.0": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -13814,10 +13804,10 @@ __metadata: languageName: node linkType: hard -"hermes-compiler@npm:0.14.0": - version: 0.14.0 - resolution: "hermes-compiler@npm:0.14.0" - checksum: 10/880a5570770a977731f98fe2bedf5b7079e2e851a16e08ec89aeaa1de552e885734de3be513bc5633e5415fd1ac497b7b630aab75a46c359a5d30a243a1dcf11 +"hermes-compiler@npm:250829098.0.7": + version: 250829098.0.7 + resolution: "hermes-compiler@npm:250829098.0.7::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2Fhermes-compiler%2F-%2Fhermes-compiler-250829098.0.7.tgz" + checksum: 10/229cfee06c0e3205f93e1b8ac1782b852cd8ef190b4e3a2ad69f953b470facf0cca3c5986aa499a752802b714a82960d69b9a43dacaa056bd3998db7553b6c36 languageName: node linkType: hard @@ -22127,10 +22117,10 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^19.2.0": - version: 19.2.3 - resolution: "react-is@npm:19.2.3" - checksum: 10/547ac397308204742447b5e4cf556cf09aa97f4cc1c95c4a28e4b2e73a7efab03e59d7b89b4a01f67bf9bf0ca87348a7f0e88bc87c0af6be458aaac1dec5e132 +"react-is@npm:^19.2.3": + version: 19.2.4 + resolution: "react-is@npm:19.2.4::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2Freact-is%2F-%2Freact-is-19.2.4.tgz" + checksum: 10/3360fc50a38c23299c5003a709949f2439b2901e77962eea78d892f526f710d05a7777b600b302f853583d1861979b00d7a0a071c89c6562eac5740ac29b9665 languageName: node linkType: hard @@ -22230,18 +22220,18 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.83.0": - version: 0.83.0 - resolution: "react-native@npm:0.83.0" +"react-native@npm:0.84.0": + version: 0.84.0 + resolution: "react-native@npm:0.84.0::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2Freact-native%2F-%2Freact-native-0.84.0.tgz" dependencies: "@jest/create-cache-key-function": "npm:^29.7.0" - "@react-native/assets-registry": "npm:0.83.0" - "@react-native/codegen": "npm:0.83.0" - "@react-native/community-cli-plugin": "npm:0.83.0" - "@react-native/gradle-plugin": "npm:0.83.0" - "@react-native/js-polyfills": "npm:0.83.0" - "@react-native/normalize-colors": "npm:0.83.0" - "@react-native/virtualized-lists": "npm:0.83.0" + "@react-native/assets-registry": "npm:0.84.0" + "@react-native/codegen": "npm:0.84.0" + "@react-native/community-cli-plugin": "npm:0.84.0" + "@react-native/gradle-plugin": "npm:0.84.0" + "@react-native/js-polyfills": "npm:0.84.0" + "@react-native/normalize-colors": "npm:0.84.0" + "@react-native/virtualized-lists": "npm:0.84.0" abort-controller: "npm:^3.0.0" anser: "npm:^1.4.9" ansi-regex: "npm:^5.0.0" @@ -22250,8 +22240,7 @@ __metadata: base64-js: "npm:^1.5.1" commander: "npm:^12.0.0" flow-enums-runtime: "npm:^0.0.6" - glob: "npm:^7.1.1" - hermes-compiler: "npm:0.14.0" + hermes-compiler: "npm:250829098.0.7" invariant: "npm:^2.2.4" jest-environment-node: "npm:^29.7.0" memoize-one: "npm:^5.0.0" @@ -22266,18 +22255,19 @@ __metadata: scheduler: "npm:0.27.0" semver: "npm:^7.1.3" stacktrace-parser: "npm:^0.1.10" + tinyglobby: "npm:^0.2.15" whatwg-fetch: "npm:^3.0.0" ws: "npm:^7.5.10" yargs: "npm:^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: 10/78454fa89c2f5c8794d8d04c099c6d5f43f569696b6e04afb927181bcdcc73646921e428bd29b32a79c94678d572ec00c5d3355e7a43fa94d58065eed4ba78f2 + checksum: 10/f1ae3cd7f9581d0ee516bfbbdc705ea7099d025a5701d997bf21e0a158c630ab30edf03140e64128f33e1a99be7f607e53a9d4277723d73239e14a7cd7193eaf languageName: node linkType: hard @@ -22343,15 +22333,15 @@ __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::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2Freact-test-renderer%2F-%2Freact-test-renderer-19.2.3.tgz" dependencies: - react-is: "npm:^19.2.0" + react-is: "npm:^19.2.3" scheduler: "npm:^0.27.0" peerDependencies: - react: ^19.2.0 - checksum: 10/1a072bf5c383ee9cec1eed5872114a25d8029e8fabe17a9154cbb7b5d6e5570711efc3e80e336d170bb1f60e29d395087147891fa198743d17c29ff86782cde3 + react: ^19.2.3 + checksum: 10/a9de4d869b1555a54c02e8701be262dfa669eb366ff5cdb43ba49fa516beae439cbec2c3e5606c909e773c232328993e231b393af5eef25e87a845d4c7fb00dc languageName: node linkType: hard @@ -22382,10 +22372,10 @@ __metadata: languageName: node linkType: hard -"react@npm:19.2.0": - version: 19.2.0 - resolution: "react@npm:19.2.0" - checksum: 10/e13bcdb8e994c3cfa922743cb75ca8deb60531bf02f584d2d8dab940a8132ce8a2e6ef16f8ed7f372b4072e7a7eeff589b2812dabbedfa73e6e46201dac8a9d0 +"react@npm:19.2.3": + version: 19.2.3 + resolution: "react@npm:19.2.3::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2Freact%2F-%2Freact-19.2.3.tgz" + checksum: 10/d16b7f35c0d35a56f63d9d1693819762e4abc479c57dd6310298920bed3820fcec7e17a99d44983416d8f5049143ea45b8005d3ab8324bae8973224400502b08 languageName: node linkType: hard @@ -24987,6 +24977,13 @@ __metadata: languageName: node linkType: hard +"strict-url-sanitise@npm:0.0.1": + version: 0.0.1 + resolution: "strict-url-sanitise@npm:0.0.1::__archiveUrl=https%3A%2F%2Fnpm.dev.wixpress.com%2Fapi%2Fnpm%2Fnpm-repos%2Fstrict-url-sanitise%2F-%2Fstrict-url-sanitise-0.0.1.tgz" + checksum: 10/cab6ae551f998f18ea7fb14176a9d835f5b304e5419c61851de897c830ccc20c2848bbb50ced242227114e06a3f6379dcc9179a84bc0a7b8cf81f5192b5b4789 + languageName: node + linkType: hard + "string-length@npm:^4.0.2": version: 4.0.2 resolution: "string-length@npm:4.0.2"