From 66780976689c87302a86c0544c439452f30295b7 Mon Sep 17 00:00:00 2001 From: Yogendra Shelke <25844542+YogendraShelke@users.noreply.github.com> Date: Tue, 6 Oct 2026 15:42:28 +0530 Subject: [PATCH] feat: upgrade to react-native v0.88 --- CHANGELOG.md | 4 + Gemfile | 1 + Gemfile.lock | 1 + README.md | 2 +- android/app/build.gradle | 14 +- android/build.gradle | 8 +- android/gradle.properties | 12 +- android/gradle/wrapper/gradle-wrapper.jar | Bin 43453 -> 48966 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/gradlew | 52 +- android/gradlew.bat | 8 +- ios/AppDelegate.swift | 72 +- ios/Dev/AppDelegate.swift | 80 +- .../LaunchApp/LaunchAppViewController.swift | 6 +- ios/Dev/SceneDelegate.swift | 81 + ios/Extensions/AppDelegate+Extension.swift | 15 - ios/Podfile | 10 +- ios/Podfile.lock | 1470 +++++----- ios/SceneDelegate.swift | 92 + ios/nativeTemplate.xcodeproj/project.pbxproj | 11 + ios/nativeTemplate/Info-dev.plist | 17 + ios/nativeTemplate/Info.plist | 17 + package-lock.json | 2477 +++++------------ package.json | 48 +- .../@op-engineering+op-sqlite+15.2.5.patch | 269 -- .../@op-engineering+op-sqlite+18.2.5.patch | 325 +++ ...1.patch => react-native+0.88.0-rc.3.patch} | 0 patches/react-native-reanimated+4.7.1.patch | 15 + ...atch => react-native-screens+4.28.0.patch} | 14 +- stale_files | 3 + 30 files changed, 2107 insertions(+), 3019 deletions(-) create mode 100644 ios/Dev/SceneDelegate.swift create mode 100644 ios/SceneDelegate.swift delete mode 100644 patches/@op-engineering+op-sqlite+15.2.5.patch create mode 100644 patches/@op-engineering+op-sqlite+18.2.5.patch rename patches/{react-native+0.84.1.patch => react-native+0.88.0-rc.3.patch} (100%) create mode 100644 patches/react-native-reanimated+4.7.1.patch rename patches/{react-native-screens+4.24.0.patch => react-native-screens+4.28.0.patch} (68%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 432c7c4c..7526482e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +- We upgraded React Native to 0.88.0-rc.3. On iOS the app now uses the scene-based lifecycle (`SceneDelegate`). +- The app now uses Hermes V1 (HBC bytecode version 99). JavaScript bundles compiled with Hermes 0.16.0 (bytecode version 96) can no longer be loaded and must be compiled with hermes-compiler 260318099.0.4. +- We upgraded Android to Gradle 9.4.1, Kotlin 2.2.0, and compile SDK / build tools 37. +- We upgraded @op-engineering/op-sqlite to 18.2.5, react-native-gesture-handler to 2.33.0, react-native-reanimated to 4.7.1, react-native-worklets to 0.13.0, react-native-screens to 4.28.0, react-native-blob-util to 0.24.11, react-native-safe-area-context to 5.8.1, @react-native-community/cli to 20.2.0, and the @react-native-vector-icons/* family to 13.x. - We fixed an issue on iOS where a deep link that cold started the app was not delivered to React Native, causing `Linking.getInitialURL()` to return `null`. - We removed some unused Android Permissions coming in from Manifest mergers. diff --git a/Gemfile b/Gemfile index 422f7f79..9a087cf3 100644 --- a/Gemfile +++ b/Gemfile @@ -14,3 +14,4 @@ gem 'bigdecimal' gem 'logger' gem 'benchmark' gem 'mutex_m' +gem 'nkf' diff --git a/Gemfile.lock b/Gemfile.lock index 0b36a065..85fc7920 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -135,6 +135,7 @@ DEPENDENCIES concurrent-ruby (< 1.3.4) logger mutex_m + nkf xcodeproj (>= 1.27.0) RUBY VERSION diff --git a/README.md b/README.md index 6cbe8642..9f0a108e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Native Template ![License](https://img.shields.io/badge/license-MIT-blue.svg) -![React Native](https://img.shields.io/badge/react_native-0.84.1-blue.svg) +![React Native](https://img.shields.io/badge/react_native-0.88.0--rc.3-blue.svg) ![Node](https://img.shields.io/badge/node-v20-green.svg) ![Custom Dev App CI - Android](https://github.com/mendix/native-template/actions/workflows/android-build-custom-dev-app.yml/badge.svg?branch=master) diff --git a/android/app/build.gradle b/android/app/build.gradle index 4d9ee53c..45653164 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -89,16 +89,13 @@ android { buildTypes { release { minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" } } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } buildFeatures { viewBinding true buildConfig true @@ -111,6 +108,12 @@ android { } } +kotlin { + compilerOptions { + jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 + } +} + dependencies { implementation "com.facebook.react:react-android" implementation platform("com.google.firebase:firebase-bom:${firebaseBomVersion}") @@ -144,9 +147,6 @@ dependencies { configurations.all { resolutionStrategy { - // Force Hermes V0 version across all configurations to prevent random resolution due to gradle caching/timing issues. - force "com.facebook.hermes:hermes-android:0.15.1" - force "androidx.annotation:annotation:1.1.0" force( "com.google.android.gms:play-services-base:18.6.0", diff --git a/android/build.gradle b/android/build.gradle index e0813280..28a8e3ef 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,10 +1,10 @@ buildscript { ext { - buildToolsVersion = "36.0.0" + buildToolsVersion = "37.0.0" minSdkVersion = 29 - compileSdkVersion = 36 + compileSdkVersion = 37 targetSdkVersion = 36 - kotlinVersion = "2.1.20" + kotlinVersion = "2.2.0" excludeAppGlideModule = true androidx_lifecycle_version = "2.8.6" playServicesVersion = "18+" @@ -32,7 +32,7 @@ buildscript { classpath 'com.android.tools.build:gradle' classpath "com.facebook.react:react-native-gradle-plugin" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" - classpath 'org.jetbrains.kotlin:compose-compiler-gradle-plugin:2.2.10' + classpath "org.jetbrains.kotlin:compose-compiler-gradle-plugin:$kotlinVersion" apply from: file("../node_modules/mendix-native/android/mendix.gradle"); applyMendixClassPaths(project) // NOTE: Do not place your application dependencies here; they belong diff --git a/android/gradle.properties b/android/gradle.properties index f6f385d6..d6acca49 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -24,10 +24,20 @@ android.nonTransitiveRClass=true android.suppressUnsupportedCompileSdk=33 newArchEnabled=true hermesEnabled=true -hermesV1Enabled=false mendixnative.cookieEncryption=false VisionCamera_enableCodeScanner=true # Enable edge-to-edge display edgeToEdgeEnabled=true + +# React Native 0.88 always uses Hermes V1 (hermes-compiler 260318099.0.4, HBC bytecode version 99). +# Bundles compiled by appdev/client must use the same hermes-compiler version, otherwise loading fails with a bytecode version mismatch. + +# Opt out of built-in kotlin and new DSL behavior that ships with AGP 9. +# Starting from AGP 10.x these opt outs will be removed. +android.builtInKotlin=false +android.newDsl=false + +# Enabled parallel sync for Gradle 9.4+ +org.gradle.tooling.parallel=true android.testInstrumentationRunnerArguments.notAnnotation=androidx.test.filters.FlakyTest \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar index e6441136f3d4ba8a0da8d277868979cfbc8ad796..d997cfc60f4cff0e7451d19d49a82fa986695d07 100644 GIT binary patch delta 40662 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 SFHe9+Nb!3B$h)+DKl%@i3a3>7 diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index b804e3dd..8bc150db 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,6 +3,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=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 validateDistributionUrl=true networkTimeout=10000 diff --git a/android/gradlew b/android/gradlew index fbaa1773..739907df 100755 --- a/android/gradlew +++ b/android/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -81,12 +83,10 @@ do done # This is normally unused -# shellcheck disable=SC2039,SC2034 +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -114,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -133,10 +132,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -158,16 +160,17 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then esac fi -# Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, -# and any embedded shellness will be escaped. -# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be -# treated as '${Hostname}' itself on the command line. +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -195,16 +198,19 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. @@ -239,4 +245,4 @@ eval "set -- $( tr '\n' ' ' )" '"$@"' -exec "$JAVACMD" "$@" \ No newline at end of file +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat index 489461e3..e509b2dd 100644 --- a/android/gradlew.bat +++ b/android/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,7 +45,6 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute - echo. 1>&2 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 echo. 1>&2 @@ -69,11 +70,10 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell @@ -90,4 +90,4 @@ exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal -:omega \ No newline at end of file +:omega diff --git a/ios/AppDelegate.swift b/ios/AppDelegate.swift index 108a1ae5..48787339 100644 --- a/ios/AppDelegate.swift +++ b/ios/AppDelegate.swift @@ -1,67 +1,21 @@ +import UIKit import MendixNative -@UIApplicationMain -class AppDelegate: ReactAppProvider { - - var shouldOpenInLastApp = false - var hasHandledLaunchAppWithOptions = false - - override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { - - SessionCookieStore.restore() // iOS does not persist session cookies across app restarts, this helps persisting session cookies to match behaviour with Android +@main +class AppDelegate: LegacyWindowAppDelegate { + + func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil + ) -> Bool { + SessionCookieStore.restore() MendixAppDelegate.application(application, didFinishLaunchingWithOptions: launchOptions) - setupApp(application: application, launchOptions: launchOptions) - changeRoot(to: UIViewController()) - - guard let url = Bundle.main.object(forInfoDictionaryKey: "Runtime url") as? String, !url.isEmpty else { - showUnrecoverableDialog( - title: "The runtime URL is missing", - message: "Missing the 'Runtime url' configuration within the Info.plist file. The app will close." - ) - return false - } - - if let bundleUrl = MendixAppDelegate.getJSBundleFile() { - - let runtimeUrl = AppUrl.forRuntime((url).replacingOccurrences(of: "\\", with: "")) - - let mendixApp = MendixApp( - identifier: nil, - bundleUrl: bundleUrl, - runtimeUrl: runtimeUrl, - warningsFilter: .none, - isDeveloperApp: false, - clearDataAtLaunch: false, - splashScreenPresenter: SplashScreenPresenter(), - reactLoading: nil, - enableThreeFingerGestures: false - ) - - ReactNative.shared.setup(mendixApp, launchOptions: launchOptions) - ReactNative.shared.start() - } else { - showUnrecoverableDialog( - title: "No Mendix bundle found", - message: "Missing the Mendix app bundle. Make sure that the index.ios.bundle file is available in ios/NativeTemplate/Bundle folder. If building locally consult the documentation on how to generate a bundle from your project." - ) - } - + clearKeychain() + setupUI() return true } - - func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { - return MendixAppDelegate.application(app, openURL: url, options: options) - } - - func getWarningFilterValue() -> WarningsFilter { - return .none - } - + func applicationWillTerminate(_ application: UIApplication) { - SessionCookieStore.persist() // iOS does not persist session cookies across app restarts, this helps persisting session cookies to match behaviour with Android - } - - func applicationDidEnterBackground(_ application: UIApplication) { - SessionCookieStore.persist() // iOS does not persist session cookies across app restarts, this helps persisting session cookies to match behaviour with Android + SessionCookieStore.persist() } } diff --git a/ios/Dev/AppDelegate.swift b/ios/Dev/AppDelegate.swift index ea4c25a6..48787339 100644 --- a/ios/Dev/AppDelegate.swift +++ b/ios/Dev/AppDelegate.swift @@ -1,77 +1,21 @@ -import Foundation +import UIKit import MendixNative -@UIApplicationMain -class AppDelegate: ReactAppProvider { - - var shouldOpenInLastApp = false - var hasHandledLaunchAppWithOptions = false - - override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { - - SessionCookieStore.restore() //iOS does not persist session cookies across app restarts, this helps persisting session cookies to match behaviour with Android +@main +class AppDelegate: LegacyWindowAppDelegate { + + func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil + ) -> Bool { + SessionCookieStore.restore() MendixAppDelegate.application(application, didFinishLaunchingWithOptions: launchOptions) - setupApp(application: application, launchOptions: launchOptions) - - IQKeyboardManager.shared().isEnabled = false - - let controller = UIStoryboard.launchApp.instantiateInitialViewController() ?? UIViewController() - changeRoot(to: controller) - window?.isUserInteractionEnabled = true - + clearKeychain() + setupUI() return true } - - func getWarningFilterValue() -> WarningsFilter { - #if DEBUG - return .all - #else - return AppPreferences.devModeEnabled ? .partial : .none - #endif - } - - func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { - - let handled = MendixAppDelegate.application(app, openURL: url, options: options) - - let appUrl = AppPreferences.safeAppUrl - - if (!handled || appUrl.isEmpty || ReactAppProvider.isReactAppActive()) { - return false - } - - let bundleUrl = AppUrl.forBundle( - appUrl, - port: AppPreferences.remoteDebuggingPackagerPort, - isDebuggingRemotely: AppPreferences.remoteDebuggingEnabled, - isDevModeEnabled: AppPreferences.devModeEnabled - ) - - let launchOptions = ReactAppProvider.launchOptions(from: url, options: options) - let mxApp = MendixApp.init( - identifier: nil, - bundleUrl: bundleUrl, - runtimeUrl: AppUrl.forRuntime(appUrl), - warningsFilter: getWarningFilterValue(), - isDeveloperApp: true, - clearDataAtLaunch: false, - splashScreenPresenter: nil, - reactLoading: nil, - enableThreeFingerGestures: false - ) - - ReactNative.shared.setup(mxApp, launchOptions: launchOptions) - ReactNative.shared.start() - - return handled - } - func applicationWillTerminate(_ application: UIApplication) { - SessionCookieStore.persist() //iOS does not persist session cookies across app restarts, this helps persisting session cookies to match behaviour with Android - } - - func applicationDidEnterBackground(_ application: UIApplication) { - SessionCookieStore.persist() //iOS does not persist session cookies across app restarts, this helps persisting session cookies to match behaviour with Android + SessionCookieStore.persist() } } diff --git a/ios/Dev/LaunchApp/LaunchAppViewController.swift b/ios/Dev/LaunchApp/LaunchAppViewController.swift index 968ebc08..a768f1a1 100644 --- a/ios/Dev/LaunchApp/LaunchAppViewController.swift +++ b/ios/Dev/LaunchApp/LaunchAppViewController.swift @@ -108,9 +108,9 @@ class LaunchAppViewController: UIViewController, QRViewDelegate { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) - let appDelegate = (UIApplication.shared.delegate as! AppDelegate); - if (appDelegate.shouldOpenInLastApp) { - appDelegate.shouldOpenInLastApp = false; + guard let sceneDelegate = SceneDelegate.delegateInstance() else { return } + if (sceneDelegate.shouldOpenInLastApp) { + sceneDelegate.shouldOpenInLastApp = false self.performSegue(withIdentifier: "MendixApp", sender: nil) } } diff --git a/ios/Dev/SceneDelegate.swift b/ios/Dev/SceneDelegate.swift new file mode 100644 index 00000000..8421332b --- /dev/null +++ b/ios/Dev/SceneDelegate.swift @@ -0,0 +1,81 @@ +import UIKit +import MendixNative + +class SceneDelegate: ReactAppProvider { + + var shouldOpenInLastApp = false + var hasHandledLaunchAppWithOptions = false + + override func scene( + _ scene: UIScene, + willConnectTo session: UISceneSession, + options connectionOptions: UIScene.ConnectionOptions + ) { + super.scene(scene, willConnectTo: session, options: connectionOptions) + + setUpProvider() + IQKeyboardManager.shared().isEnabled = false + + let controller = UIStoryboard.launchApp.instantiateInitialViewController() ?? UIViewController() + changeRoot(to: controller) + window?.isUserInteractionEnabled = true + + if !connectionOptions.urlContexts.isEmpty { + launchMendixApp(with: ReactAppProvider.launchOptions(from: connectionOptions)) + } + } + + func getWarningFilterValue() -> WarningsFilter { + #if DEBUG + return .all + #else + return AppPreferences.devModeEnabled ? .partial : .none + #endif + } + + override func scene(_ scene: UIScene, openURLContexts URLContexts: Set) { + handleURLContexts(URLContexts) { [weak self] launchOptions in + self?.launchMendixApp(with: launchOptions) + } + } + + private func launchMendixApp(with launchOptions: [AnyHashable: Any]) { + let appUrl = AppPreferences.safeAppUrl + + guard !appUrl.isEmpty else { return } + + let bundleUrl = AppUrl.forBundle( + appUrl, + port: AppPreferences.remoteDebuggingPackagerPort, + isDebuggingRemotely: AppPreferences.remoteDebuggingEnabled, + isDevModeEnabled: AppPreferences.devModeEnabled + ) + + let mxApp = MendixApp( + identifier: nil, + bundleUrl: bundleUrl, + runtimeUrl: AppUrl.forRuntime(appUrl), + warningsFilter: getWarningFilterValue(), + isDeveloperApp: true, + clearDataAtLaunch: false, + splashScreenPresenter: nil, + reactLoading: nil, + enableThreeFingerGestures: false + ) + + ReactNative.shared.setup(mxApp, launchOptions: launchOptions) + ReactNative.shared.start() + } + + @objc func sceneDidEnterBackground(_ scene: UIScene) { + SessionCookieStore.persist() + } + + static func delegateInstance() -> SceneDelegate? { + if let provider = ReactAppProvider.shared() as? SceneDelegate { + return provider + } + return UIApplication.shared.connectedScenes.compactMap { $0.delegate as? SceneDelegate }.first + } + +} diff --git a/ios/Extensions/AppDelegate+Extension.swift b/ios/Extensions/AppDelegate+Extension.swift index f6e90065..9ed8542b 100644 --- a/ios/Extensions/AppDelegate+Extension.swift +++ b/ios/Extensions/AppDelegate+Extension.swift @@ -14,19 +14,4 @@ extension AppDelegate { func setupUI() { UIDatePicker.appearance().preferredDatePickerStyle = .wheels } - - func showUnrecoverableDialog(title: String, message: String) { - let controller = UIAlertController(title: title, message: message, preferredStyle: .alert) - controller.addAction(.init(title: "Close", style: .default, handler: {_ in - print(message) - exit(0) - })) - window?.rootViewController?.present(controller, animated: true, completion: nil) - } - - func setupApp(application: UIApplication, launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) { - setUpProvider() - clearKeychain() - setupUI() - } } diff --git a/ios/Podfile b/ios/Podfile index a4e1f3fc..ddc1c024 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -16,8 +16,8 @@ ENV['RCT_NEW_ARCH_ENABLED'] = '1' ENV['RCT_USE_PREBUILT_RNCORE'] = '1' ENV['RCT_USE_RN_DEP'] = '1' -# The JS bundle is compiled compiled using a different version than the prebuilt Hermes engine embedded in the native binary, causing a runtime crash. -ENV['RCT_HERMES_V1_ENABLED'] = '0' +# React Native 0.88 always uses Hermes V1 (hermes-compiler 260318099.0.4, HBC bytecode version 99). +# Bundles compiled by appdev/client must use the same hermes-compiler version, otherwise loading fails with a bytecode version mismatch. # Use it to require both react-native's and this package's scripts: node_require('react-native/scripts/react_native_pods.rb') @@ -112,6 +112,12 @@ post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| + minimum_ios_version = Gem::Version.new(deployment_target) + current_deployment_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] + if current_deployment_target && Gem::Version.new(current_deployment_target) < minimum_ios_version + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target + end + if config.name == "ReleaseDevApp" config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [] config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] |= ['$(inherited)', 'NDEBUG=1', 'REACT_NATIVE_DEBUG=1'] diff --git a/ios/Podfile.lock b/ios/Podfile.lock index a154aef1..de0edc15 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,8 +1,19 @@ PODS: - - FBLazyVector (0.84.1) - - hermes-engine (0.15.1): - - hermes-engine/Pre-built (= 0.15.1) - - hermes-engine/Pre-built (0.15.1) + - boost (1.84.0): + - ReactNativeDependencies + - DoubleConversion (1.1.6): + - ReactNativeDependencies + - fast_float (8.0.0): + - ReactNativeDependencies + - FBLazyVector (0.88.0-rc.3): + - React-Core-prebuilt + - fmt (12.1.0): + - ReactNativeDependencies + - glog (0.3.5): + - ReactNativeDependencies + - hermes-engine (260318099.0.4): + - hermes-engine/Pre-built (= 260318099.0.4) + - hermes-engine/Pre-built (260318099.0.4) - IQKeyboardManager (6.5.19) - libavif/core (0.11.1) - libavif/libdav1d (0.11.1): @@ -25,8 +36,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -40,19 +53,20 @@ PODS: - React-utils - ReactAppDependencyProvider - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - RNCAsyncStorage - SSZipArchive - Yoga - - op-sqlite (15.2.5): + - op-sqlite (18.2.5): - hermes-engine - OpenSSL-Universal - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -65,339 +79,131 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - OpenSSL-Universal (3.3.3001) - - RCTDeprecation (0.84.1) - - RCTRequired (0.84.1) - - RCTSwiftUI (0.84.1) - - RCTSwiftUIWrapper (0.84.1): - - RCTSwiftUI - - RCTTypeSafety (0.84.1): - - FBLazyVector (= 0.84.1) - - RCTRequired (= 0.84.1) - - React-Core (= 0.84.1) - - React (0.84.1): - - React-Core (= 0.84.1) - - React-Core/DevSupport (= 0.84.1) - - React-Core/RCTWebSocket (= 0.84.1) - - React-RCTActionSheet (= 0.84.1) - - React-RCTAnimation (= 0.84.1) - - React-RCTBlob (= 0.84.1) - - React-RCTImage (= 0.84.1) - - React-RCTLinking (= 0.84.1) - - React-RCTNetwork (= 0.84.1) - - React-RCTSettings (= 0.84.1) - - React-RCTText (= 0.84.1) - - React-RCTVibration (= 0.84.1) - - React-callinvoker (0.84.1) - - React-Core (0.84.1): - - hermes-engine - - RCTDeprecation - - React-Core-prebuilt - - React-Core/Default (= 0.84.1) - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils + - RCT-Folly (2024.11.18.00): + - RCT-Folly/Default (= 2024.11.18.00) - ReactNativeDependencies - - Yoga - - React-Core-prebuilt (0.84.1): + - RCT-Folly/Default (2024.11.18.00): - ReactNativeDependencies - - React-Core/CoreModulesHeaders (0.84.1): - - hermes-engine - - RCTDeprecation + - RCTDeprecation (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/Default (0.84.1): - - hermes-engine - - RCTDeprecation + - RCTRequired (0.88.0-rc.3): - React-Core-prebuilt - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/DevSupport (0.84.1): - - hermes-engine - - RCTDeprecation + - RCTSwiftUI (0.88.0-rc.3) + - RCTSwiftUIWrapper (0.88.0-rc.3): + - RCTSwiftUI + - RCTTypeSafety (0.88.0-rc.3): + - FBLazyVector (= 0.88.0-rc.3) + - RCTRequired (= 0.88.0-rc.3) + - React-Core (= 0.88.0-rc.3) + - React (0.88.0-rc.3): + - React-Core (= 0.88.0-rc.3) + - React-Core/DevSupport (= 0.88.0-rc.3) + - React-Core/RCTWebSocket (= 0.88.0-rc.3) + - React-RCTActionSheet (= 0.88.0-rc.3) + - React-RCTAnimation (= 0.88.0-rc.3) + - React-RCTBlob (= 0.88.0-rc.3) + - React-RCTImage (= 0.88.0-rc.3) + - React-RCTLinking (= 0.88.0-rc.3) + - React-RCTNetwork (= 0.88.0-rc.3) + - React-RCTSettings (= 0.88.0-rc.3) + - React-RCTText (= 0.88.0-rc.3) + - React-RCTVibration (= 0.88.0-rc.3) + - React-bridging (0.88.0-rc.3): + - React-callinvoker - React-Core-prebuilt - - React-Core/Default (= 0.84.1) - - React-Core/RCTWebSocket (= 0.84.1) - - React-cxxreact - - React-featureflags - - React-hermes - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils + - React-timing - ReactNativeDependencies - - Yoga - - React-Core/RCTActionSheetHeaders (0.84.1): - - hermes-engine - - RCTDeprecation + - React-callinvoker (0.88.0-rc.3): + - React-callinvoker/callinvokerUmbrella (= 0.88.0-rc.3) + - React-cxxstableapi + - React-callinvoker/callinvokerUmbrella (0.88.0-rc.3): + - React-cxxstableapi + - React-Core (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils + - React-Core/Default (= 0.88.0-rc.3) + - React-Core-prebuilt (0.88.0-rc.3): - ReactNativeDependencies - - Yoga - - React-Core/RCTAnimationHeaders (0.84.1): - - hermes-engine - - RCTDeprecation + - React-Core/CoreModulesHeaders (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTBlobHeaders (0.84.1): - - hermes-engine - - RCTDeprecation + - React-Core/Default (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTImageHeaders (0.84.1): - - hermes-engine - - RCTDeprecation + - React-Core/DevSupport (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTLinkingHeaders (0.84.1): - - hermes-engine - - RCTDeprecation + - React-Core/RCTActionSheetHeaders (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTNetworkHeaders (0.84.1): - - hermes-engine - - RCTDeprecation + - React-Core/RCTAnimationHeaders (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTSettingsHeaders (0.84.1): - - hermes-engine - - RCTDeprecation + - React-Core/RCTBlobHeaders (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTTextHeaders (0.84.1): - - hermes-engine - - RCTDeprecation + - React-Core/RCTImageHeaders (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTVibrationHeaders (0.84.1): - - hermes-engine - - RCTDeprecation + - React-Core/RCTLinkingHeaders (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/Default - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-Core/RCTWebSocket (0.84.1): - - hermes-engine - - RCTDeprecation + - React-Core/RCTNetworkHeaders (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/Default (= 0.84.1) - - React-cxxreact - - React-featureflags - - React-hermes - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-jsinspectorcdp - - React-jsitooling - - React-perflogger - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-CoreModules (0.84.1): - - RCTTypeSafety (= 0.84.1) + - React-Core/RCTSettingsHeaders (0.88.0-rc.3): + - React-Core-prebuilt + - React-Core/RCTTextHeaders (0.88.0-rc.3): + - React-Core-prebuilt + - React-Core/RCTVibrationHeaders (0.88.0-rc.3): - React-Core-prebuilt - - React-Core/CoreModulesHeaders (= 0.84.1) + - React-Core/RCTWebSocket (0.88.0-rc.3): + - React-Core-prebuilt + - React-CoreModules (0.88.0-rc.3): + - RCTTypeSafety (= 0.88.0-rc.3) + - React-Core-prebuilt + - React-Core/CoreModulesHeaders (= 0.88.0-rc.3) - React-debug - - React-jsi (= 0.84.1) + - React-featureflags + - React-jsi (= 0.88.0-rc.3) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - React-NativeModulesApple + - React-networking - React-RCTBlob - React-RCTFBReactNativeSpec - - React-RCTImage (= 0.84.1) + - React-RCTImage (= 0.88.0-rc.3) - React-runtimeexecutor - React-utils - ReactCommon - ReactNativeDependencies - - React-cxxreact (0.84.1): + - React-cxxreact (0.88.0-rc.3): - hermes-engine - - React-callinvoker (= 0.84.1) + - React-callinvoker (= 0.88.0-rc.3) - React-Core-prebuilt - - React-debug (= 0.84.1) - - React-jsi (= 0.84.1) + - React-debug (= 0.88.0-rc.3) + - React-jserrorhandler (= 0.88.0-rc.3) + - React-jsi (= 0.88.0-rc.3) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - - React-logger (= 0.84.1) - - React-perflogger (= 0.84.1) + - React-logger (= 0.88.0-rc.3) + - React-perflogger (= 0.88.0-rc.3) - React-runtimeexecutor - - React-timing (= 0.84.1) + - React-timing (= 0.88.0-rc.3) - React-utils - ReactNativeDependencies - - React-debug (0.84.1) - - React-defaultsnativemodule (0.84.1): + - React-cxxstableapi (0.88.0-rc.3) + - React-debug (0.88.0-rc.3): + - React-cxxstableapi + - React-debug/debugUmbrella (= 0.88.0-rc.3) + - React-debug/redbox (= 0.88.0-rc.3) + - React-debug/debugUmbrella (0.88.0-rc.3): + - React-cxxstableapi + - React-debug/redbox (0.88.0-rc.3): + - React-cxxstableapi + - React-defaultsnativemodule (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt + - React-cxxstableapi - React-domnativemodule + - React-Fabric/animated - React-featureflags - React-featureflagsnativemodule - React-idlecallbacksnativemodule @@ -405,13 +211,18 @@ PODS: - React-jsi - React-jsiexecutor - React-microtasksnativemodule + - React-mutationobservernativemodule - React-RCTFBReactNativeSpec + - React-resizeobservernativemodule + - React-viewtransitionnativemodule - React-webperformancenativemodule - ReactNativeDependencies - Yoga - - React-domnativemodule (0.84.1): + - React-domnativemodule (0.88.0-rc.3): - hermes-engine + - React-bridging - React-Core-prebuilt + - React-cxxstableapi - React-Fabric - React-Fabric/bridging - React-FabricComponents @@ -423,33 +234,35 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-Fabric (0.84.1): + - React-Fabric (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - - React-Fabric/animated (= 0.84.1) - - React-Fabric/animationbackend (= 0.84.1) - - React-Fabric/animations (= 0.84.1) - - React-Fabric/attributedstring (= 0.84.1) - - React-Fabric/bridging (= 0.84.1) - - React-Fabric/componentregistry (= 0.84.1) - - React-Fabric/componentregistrynative (= 0.84.1) - - React-Fabric/components (= 0.84.1) - - React-Fabric/consistency (= 0.84.1) - - React-Fabric/core (= 0.84.1) - - React-Fabric/dom (= 0.84.1) - - React-Fabric/imagemanager (= 0.84.1) - - React-Fabric/leakchecker (= 0.84.1) - - React-Fabric/mounting (= 0.84.1) - - React-Fabric/observers (= 0.84.1) - - React-Fabric/scheduler (= 0.84.1) - - React-Fabric/telemetry (= 0.84.1) - - React-Fabric/templateprocessor (= 0.84.1) - - React-Fabric/uimanager (= 0.84.1) + - React-Fabric/animated (= 0.88.0-rc.3) + - React-Fabric/animationbackend (= 0.88.0-rc.3) + - React-Fabric/animations (= 0.88.0-rc.3) + - React-Fabric/attributedstring (= 0.88.0-rc.3) + - React-Fabric/bridging (= 0.88.0-rc.3) + - React-Fabric/componentregistry (= 0.88.0-rc.3) + - React-Fabric/componentregistrynative (= 0.88.0-rc.3) + - React-Fabric/components (= 0.88.0-rc.3) + - React-Fabric/consistency (= 0.88.0-rc.3) + - React-Fabric/core (= 0.88.0-rc.3) + - React-Fabric/dom (= 0.88.0-rc.3) + - React-Fabric/imagemanager (= 0.88.0-rc.3) + - React-Fabric/leakchecker (= 0.88.0-rc.3) + - React-Fabric/mounting (= 0.88.0-rc.3) + - React-Fabric/observers (= 0.88.0-rc.3) + - React-Fabric/scheduler (= 0.88.0-rc.3) + - React-Fabric/telemetry (= 0.88.0-rc.3) + - React-Fabric/uimanager (= 0.88.0-rc.3) + - React-Fabric/viewtransition (= 0.88.0-rc.3) - React-featureflags - React-graphics - React-jsi @@ -461,14 +274,17 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/animated (0.84.1): + - React-Fabric/animated (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug + - React-Fabric/animationbackend - React-featureflags - React-graphics - React-jsi @@ -480,13 +296,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/animationbackend (0.84.1): + - React-Fabric/animationbackend (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -499,13 +317,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/animations (0.84.1): + - React-Fabric/animations (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -518,13 +338,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/attributedstring (0.84.1): + - React-Fabric/attributedstring (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -537,13 +359,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/bridging (0.84.1): + - React-Fabric/bridging (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -556,13 +380,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/componentregistry (0.84.1): + - React-Fabric/componentregistry (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -575,13 +401,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/componentregistrynative (0.84.1): + - React-Fabric/componentregistrynative (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -594,18 +422,21 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/components (0.84.1): + - React-Fabric/components (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - - React-Fabric/components/legacyviewmanagerinterop (= 0.84.1) - - React-Fabric/components/root (= 0.84.1) - - React-Fabric/components/scrollview (= 0.84.1) - - React-Fabric/components/view (= 0.84.1) + - React-Fabric/components/legacyviewmanagerinterop (= 0.88.0-rc.3) + - React-Fabric/components/root (= 0.88.0-rc.3) + - React-Fabric/components/scrollview (= 0.88.0-rc.3) + - React-Fabric/components/view (= 0.88.0-rc.3) + - React-Fabric/components/viewUmbrella (= 0.88.0-rc.3) - React-featureflags - React-graphics - React-jsi @@ -617,13 +448,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/components/legacyviewmanagerinterop (0.84.1): + - React-Fabric/components/legacyviewmanagerinterop (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -636,13 +469,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/components/root (0.84.1): + - React-Fabric/components/root (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -655,13 +490,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/components/scrollview (0.84.1): + - React-Fabric/components/scrollview (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -674,13 +511,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/components/view (0.84.1): + - React-Fabric/components/view (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -695,13 +534,15 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-Fabric/consistency (0.84.1): + - React-Fabric/components/viewUmbrella (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -714,13 +555,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/core (0.84.1): + - React-Fabric/consistency (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -733,13 +576,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/dom (0.84.1): + - React-Fabric/core (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -752,13 +597,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/imagemanager (0.84.1): + - React-Fabric/dom (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -771,13 +618,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/leakchecker (0.84.1): + - React-Fabric/imagemanager (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -790,13 +639,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/mounting (0.84.1): + - React-Fabric/leakchecker (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -809,20 +660,21 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/observers (0.84.1): + - React-Fabric/mounting (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - - React-Fabric/observers/events (= 0.84.1) - - React-Fabric/observers/intersection (= 0.84.1) - React-featureflags - React-graphics - React-jsi - React-jsiexecutor + - React-jsinspectortracing - React-logger - React-rendererdebug - React-runtimeexecutor @@ -830,14 +682,20 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/observers/events (0.84.1): + - React-Fabric/observers (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug + - React-Fabric/observers/events (= 0.88.0-rc.3) + - React-Fabric/observers/intersection (= 0.88.0-rc.3) + - React-Fabric/observers/mutation (= 0.88.0-rc.3) + - React-Fabric/observers/resize (= 0.88.0-rc.3) - React-featureflags - React-graphics - React-jsi @@ -849,13 +707,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/observers/intersection (0.84.1): + - React-Fabric/observers/events (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -868,35 +728,36 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/scheduler (0.84.1): + - React-Fabric/observers/intersection (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - - React-Fabric/observers/events - React-featureflags - React-graphics - React-jsi - React-jsiexecutor - React-logger - - React-performancecdpmetrics - - React-performancetimeline - React-rendererdebug - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/telemetry (0.84.1): + - React-Fabric/observers/mutation (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -909,13 +770,15 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/templateprocessor (0.84.1): + - React-Fabric/observers/resize (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-graphics @@ -928,35 +791,64 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/uimanager (0.84.1): + - React-Fabric/scheduler (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi + - React-debug + - React-Fabric/animationbackend + - React-Fabric/observers/events + - React-Fabric/viewtransition + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-performancecdpmetrics + - React-performancetimeline + - React-rendererdebug + - React-runtimeexecutor + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - React-Fabric/telemetry (0.88.0-rc.3): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-bridging + - React-Core + - React-Core-prebuilt + - React-cxxreact + - React-cxxstableapi - React-debug - - React-Fabric/uimanager/consistency (= 0.84.1) - React-featureflags - React-graphics - React-jsi - React-jsiexecutor - React-logger - - React-rendererconsistency - React-rendererdebug - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/uimanager/consistency (0.84.1): + - React-Fabric/uimanager (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug + - React-Fabric/uimanager/consistency (= 0.88.0-rc.3) - React-featureflags - React-graphics - React-jsi @@ -969,71 +861,61 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-FabricComponents (0.84.1): + - React-Fabric/uimanager/consistency (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - - React-Fabric - - React-FabricComponents/components (= 0.84.1) - - React-FabricComponents/textlayoutmanager (= 0.84.1) - React-featureflags - React-graphics - React-jsi - React-jsiexecutor - React-logger - - React-RCTFBReactNativeSpec + - React-rendererconsistency - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - Yoga - - React-FabricComponents/components (0.84.1): + - React-Fabric/viewtransition (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - - React-Fabric - - React-FabricComponents/components/inputaccessory (= 0.84.1) - - React-FabricComponents/components/iostextinput (= 0.84.1) - - React-FabricComponents/components/modal (= 0.84.1) - - React-FabricComponents/components/rncore (= 0.84.1) - - React-FabricComponents/components/safeareaview (= 0.84.1) - - React-FabricComponents/components/scrollview (= 0.84.1) - - React-FabricComponents/components/switch (= 0.84.1) - - React-FabricComponents/components/text (= 0.84.1) - - React-FabricComponents/components/textinput (= 0.84.1) - - React-FabricComponents/components/unimplementedview (= 0.84.1) - - React-FabricComponents/components/virtualview (= 0.84.1) - - React-FabricComponents/components/virtualviewexperimental (= 0.84.1) - React-featureflags - React-graphics - React-jsi - React-jsiexecutor - React-logger - - React-RCTFBReactNativeSpec - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - Yoga - - React-FabricComponents/components/inputaccessory (0.84.1): + - React-FabricComponents (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric + - React-FabricComponents/components (= 0.88.0-rc.3) + - React-FabricComponents/textlayoutmanager (= 0.88.0-rc.3) - React-featureflags - React-graphics - React-jsi @@ -1046,15 +928,26 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/iostextinput (0.84.1): + - React-FabricComponents/components (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric + - React-FabricComponents/components/inputaccessory (= 0.88.0-rc.3) + - React-FabricComponents/components/iostextinput (= 0.88.0-rc.3) + - React-FabricComponents/components/modal (= 0.88.0-rc.3) + - React-FabricComponents/components/rncore (= 0.88.0-rc.3) + - React-FabricComponents/components/safeareaview (= 0.88.0-rc.3) + - React-FabricComponents/components/switch (= 0.88.0-rc.3) + - React-FabricComponents/components/text (= 0.88.0-rc.3) + - React-FabricComponents/components/textinput (= 0.88.0-rc.3) + - React-FabricComponents/components/unimplementedview (= 0.88.0-rc.3) + - React-FabricComponents/components/virtualview (= 0.88.0-rc.3) - React-featureflags - React-graphics - React-jsi @@ -1067,13 +960,14 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/modal (0.84.1): + - React-FabricComponents/components/inputaccessory (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1088,13 +982,14 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/rncore (0.84.1): + - React-FabricComponents/components/iostextinput (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1109,13 +1004,14 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/safeareaview (0.84.1): + - React-FabricComponents/components/modal (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1130,13 +1026,14 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/scrollview (0.84.1): + - React-FabricComponents/components/rncore (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1151,13 +1048,14 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/switch (0.84.1): + - React-FabricComponents/components/safeareaview (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1172,13 +1070,14 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/text (0.84.1): + - React-FabricComponents/components/switch (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1193,13 +1092,14 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/textinput (0.84.1): + - React-FabricComponents/components/text (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1214,13 +1114,14 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/unimplementedview (0.84.1): + - React-FabricComponents/components/textinput (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1235,13 +1136,14 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/virtualview (0.84.1): + - React-FabricComponents/components/unimplementedview (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1256,13 +1158,14 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/virtualviewexperimental (0.84.1): + - React-FabricComponents/components/virtualview (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1277,13 +1180,14 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/textlayoutmanager (0.84.1): + - React-FabricComponents/textlayoutmanager (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety - React-Core - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1298,59 +1202,72 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricImage (0.84.1): + - React-FabricImage (0.88.0-rc.3): - hermes-engine - - RCTRequired (= 0.84.1) - - RCTTypeSafety (= 0.84.1) + - RCTRequired (= 0.88.0-rc.3) + - RCTTypeSafety (= 0.88.0-rc.3) - React-Core-prebuilt + - React-cxxstableapi - React-Fabric - React-featureflags - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.84.1) + - React-jsiexecutor (= 0.88.0-rc.3) - React-logger - React-rendererdebug - React-utils - ReactCommon - ReactNativeDependencies - Yoga - - React-featureflags (0.84.1): + - React-featureflags (0.88.0-rc.3): + - React-Core-prebuilt + - React-cxxstableapi + - React-featureflags/featureflagsUmbrella (= 0.88.0-rc.3) + - ReactNativeDependencies + - React-featureflags/featureflagsUmbrella (0.88.0-rc.3): - React-Core-prebuilt + - React-cxxstableapi - ReactNativeDependencies - - React-featureflagsnativemodule (0.84.1): + - React-featureflagsnativemodule (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt + - React-cxxstableapi - React-featureflags - React-jsi - React-jsiexecutor - React-RCTFBReactNativeSpec - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-graphics (0.84.1): + - React-graphics (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt + - React-featureflags - React-jsi - React-jsiexecutor + - React-rendererdebug - React-utils - ReactNativeDependencies - - React-hermes (0.84.1): + - React-hermes (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt - - React-cxxreact (= 0.84.1) + - React-cxxreact (= 0.88.0-rc.3) + - React-cxxstableapi - React-jsi - - React-jsiexecutor (= 0.84.1) + - React-jsiexecutor (= 0.88.0-rc.3) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - React-jsitooling - React-oscompat - - React-perflogger (= 0.84.1) + - React-perflogger (= 0.88.0-rc.3) - React-runtimeexecutor - ReactNativeDependencies - - React-idlecallbacksnativemodule (0.84.1): + - React-idlecallbacksnativemodule (0.88.0-rc.3): - hermes-engine + - React-bridging - React-Core-prebuilt + - React-cxxstableapi - React-jsi - React-jsiexecutor - React-RCTFBReactNativeSpec @@ -1358,19 +1275,22 @@ PODS: - React-runtimescheduler - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-ImageManager (0.84.1): + - React-ImageManager (0.88.0-rc.3): - React-Core-prebuilt - React-Core/Default + - React-cxxstableapi - React-debug - React-Fabric - React-graphics - React-rendererdebug - React-utils - ReactNativeDependencies - - React-intersectionobservernativemodule (0.84.1): + - React-intersectionobservernativemodule (0.88.0-rc.3): - hermes-engine + - React-bridging - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-Fabric - React-Fabric/bridging - React-graphics @@ -1382,23 +1302,24 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-jserrorhandler (0.84.1): + - React-jserrorhandler (0.88.0-rc.3): - hermes-engine + - React-bridging - React-Core-prebuilt - - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags - React-jsi - - ReactCommon/turbomodule/bridging - ReactNativeDependencies - - React-jsi (0.84.1): + - React-jsi (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt - ReactNativeDependencies - - React-jsiexecutor (0.84.1): + - React-jsiexecutor (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-jserrorhandler - React-jsi @@ -1410,7 +1331,7 @@ PODS: - React-runtimeexecutor - React-utils - ReactNativeDependencies - - React-jsinspector (0.84.1): + - React-jsinspector (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt - React-featureflags @@ -1419,60 +1340,92 @@ PODS: - React-jsinspectornetwork - React-jsinspectortracing - React-oscompat - - React-perflogger (= 0.84.1) + - React-perflogger (= 0.88.0-rc.3) - React-runtimeexecutor - React-utils - ReactNativeDependencies - - React-jsinspectorcdp (0.84.1): + - React-jsinspectorcdp (0.88.0-rc.3): - React-Core-prebuilt + - React-cxxstableapi - ReactNativeDependencies - - React-jsinspectornetwork (0.84.1): + - React-jsinspectornetwork (0.88.0-rc.3): - React-Core-prebuilt + - React-cxxstableapi - React-jsinspectorcdp - ReactNativeDependencies - - React-jsinspectortracing (0.84.1): + - React-jsinspectortracing (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt + - React-cxxstableapi - React-jsi - React-jsinspectornetwork - React-oscompat - React-timing + - React-utils - ReactNativeDependencies - - React-jsitooling (0.84.1): + - React-jsitooling (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt - - React-cxxreact (= 0.84.1) + - React-cxxreact (= 0.88.0-rc.3) + - React-cxxstableapi - React-debug - - React-jsi (= 0.84.1) + - React-jsi (= 0.88.0-rc.3) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - React-runtimeexecutor - React-utils - ReactNativeDependencies - - React-jsitracing (0.84.1): + - React-jsitracing (0.88.0-rc.3): - React-jsi - - React-logger (0.84.1): + - React-logger (0.88.0-rc.3): + - React-Core-prebuilt + - ReactNativeDependencies + - React-Mapbuffer (0.88.0-rc.3): - React-Core-prebuilt + - React-cxxstableapi + - React-debug + - React-Mapbuffer/mapbufferUmbrella (= 0.88.0-rc.3) - ReactNativeDependencies - - React-Mapbuffer (0.84.1): + - React-Mapbuffer/mapbufferUmbrella (0.88.0-rc.3): - React-Core-prebuilt + - React-cxxstableapi - React-debug - ReactNativeDependencies - - React-microtasksnativemodule (0.84.1): + - React-microtasksnativemodule (0.88.0-rc.3): + - hermes-engine + - React-Core-prebuilt + - React-cxxstableapi + - React-jsi + - React-jsiexecutor + - React-RCTFBReactNativeSpec + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - React-mutationobservernativemodule (0.88.0-rc.3): - hermes-engine + - React-bridging - React-Core-prebuilt + - React-cxxreact + - React-cxxstableapi + - React-Fabric + - React-Fabric/bridging + - React-Fabric/observers/mutation + - React-featureflags - React-jsi - React-jsiexecutor - React-RCTFBReactNativeSpec + - React-runtimeexecutor - ReactCommon/turbomodule/core - ReactNativeDependencies - - react-native-blob-util (0.24.7): + - Yoga + - react-native-blob-util (0.24.11): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1485,7 +1438,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -1493,8 +1445,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1507,7 +1461,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -1515,8 +1468,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1529,7 +1484,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -1537,8 +1491,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1551,40 +1507,42 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - react-native-safe-area-context (5.7.0): + - react-native-safe-area-context (5.8.1): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags - React-graphics - React-ImageManager - React-jsi - - react-native-safe-area-context/common (= 5.7.0) - - react-native-safe-area-context/fabric (= 5.7.0) + - react-native-safe-area-context/common (= 5.8.1) + - react-native-safe-area-context/fabric (= 5.8.1) - React-NativeModulesApple - React-RCTFabric - React-renderercss - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - react-native-safe-area-context/common (5.7.0): + - react-native-safe-area-context/common (5.8.1): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1597,16 +1555,17 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - react-native-safe-area-context/fabric (5.7.0): + - react-native-safe-area-context/fabric (5.8.1): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1620,19 +1579,20 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - react-native-track-player (4.1.2): - React-Core - SwiftAudioEx (= 1.1.0) - - react-native-vector-icons (12.3.0): + - react-native-vector-icons (13.0.1): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1645,17 +1605,18 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - react-native-vector-icons-material-icons (12.4.1) + - react-native-vector-icons-material-icons (13.1.4) - react-native-video (6.19.2): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1669,7 +1630,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -1677,8 +1637,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1691,7 +1653,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -1699,8 +1660,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1714,12 +1677,12 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-NativeModulesApple (0.84.1): + - React-NativeModulesApple (0.88.0-rc.3): - hermes-engine + - React-bridging - React-callinvoker - React-Core - React-Core-prebuilt @@ -1730,39 +1693,51 @@ PODS: - React-jsinspector - React-jsinspectorcdp - React-runtimeexecutor - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-networking (0.84.1): + - React-networking (0.88.0-rc.3): - React-Core-prebuilt + - React-cxxstableapi - React-jsinspectornetwork - React-jsinspectortracing - React-performancetimeline - React-timing - ReactNativeDependencies - - React-oscompat (0.84.1) - - React-perflogger (0.84.1): + - React-oscompat (0.88.0-rc.3): + - React-cxxstableapi + - React-perflogger (0.88.0-rc.3): - React-Core-prebuilt - ReactNativeDependencies - - React-performancecdpmetrics (0.84.1): + - React-performancecdpmetrics (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt + - React-cxxstableapi - React-jsi - React-performancetimeline - React-runtimeexecutor - React-timing - ReactNativeDependencies - - React-performancetimeline (0.84.1): + - React-performancetimeline (0.88.0-rc.3): - React-Core-prebuilt + - React-cxxstableapi - React-featureflags - React-jsinspector - React-jsinspectortracing - React-perflogger - React-timing - ReactNativeDependencies - - React-RCTActionSheet (0.84.1): - - React-Core/RCTActionSheetHeaders (= 0.84.1) - - React-RCTAnimation (0.84.1): + - React-RCTActionSheet (0.88.0-rc.3): + - React-Core/RCTActionSheetHeaders (= 0.88.0-rc.3) + - React-RCTAnimatedModuleProvider (0.88.0-rc.3): + - hermes-engine + - React-Core + - React-Core-prebuilt + - React-Fabric/animated + - React-featureflags + - ReactCommon + - ReactNativeDependencies + - Yoga + - React-RCTAnimation (0.88.0-rc.3): - RCTTypeSafety - React-Core-prebuilt - React-Core/RCTAnimationHeaders @@ -1773,7 +1748,7 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - ReactNativeDependencies - - React-RCTAppDelegate (0.84.1): + - React-RCTAppDelegate (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1788,9 +1763,11 @@ PODS: - React-hermes - React-jsitooling - React-NativeModulesApple + - React-RCTAnimatedModuleProvider - React-RCTFabric - React-RCTFBReactNativeSpec - React-RCTImage + - React-RCTLinking - React-RCTNetwork - React-RCTRuntime - React-rendererdebug @@ -1801,7 +1778,7 @@ PODS: - React-utils - ReactCommon - ReactNativeDependencies - - React-RCTBlob (0.84.1): + - React-RCTBlob (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt - React-Core/RCTBlobHeaders @@ -1814,54 +1791,28 @@ PODS: - React-RCTNetwork - ReactCommon - ReactNativeDependencies - - React-RCTFabric (0.84.1): - - hermes-engine - - RCTSwiftUIWrapper - - React-Core + - React-RCTFabric (0.88.0-rc.3): - React-Core-prebuilt - - React-debug - - React-Fabric - - React-FabricComponents - - React-FabricImage - - React-featureflags - - React-graphics - - React-ImageManager - - React-jsi - - React-jsinspector - - React-jsinspectorcdp - - React-jsinspectortracing - - React-networking - - React-performancecdpmetrics - - React-performancetimeline - - React-RCTAnimation - - React-RCTFBReactNativeSpec - - React-RCTImage - - React-RCTText - - React-rendererconsistency - - React-renderercss - - React-rendererdebug - - React-runtimeexecutor - - React-runtimescheduler - - React-utils - - ReactNativeDependencies - - Yoga - - React-RCTFBReactNativeSpec (0.84.1): + - React-RCTFBReactNativeSpec (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-jsi - React-NativeModulesApple - - React-RCTFBReactNativeSpec/components (= 0.84.1) + - React-RCTFBReactNativeSpec/components (= 0.88.0-rc.3) - ReactCommon - ReactNativeDependencies - - React-RCTFBReactNativeSpec/components (0.84.1): + - React-RCTFBReactNativeSpec/components (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -1873,7 +1824,7 @@ PODS: - ReactCommon - ReactNativeDependencies - Yoga - - React-RCTImage (0.84.1): + - React-RCTImage (0.88.0-rc.3): - RCTTypeSafety - React-Core-prebuilt - React-Core/RCTImageHeaders @@ -1883,14 +1834,14 @@ PODS: - React-RCTNetwork - ReactCommon - ReactNativeDependencies - - React-RCTLinking (0.84.1): - - React-Core/RCTLinkingHeaders (= 0.84.1) - - React-jsi (= 0.84.1) + - React-RCTLinking (0.88.0-rc.3): + - React-Core/RCTLinkingHeaders (= 0.88.0-rc.3) + - React-jsi (= 0.88.0-rc.3) - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - ReactCommon/turbomodule/core (= 0.84.1) - - React-RCTNetwork (0.84.1): + - ReactCommon/turbomodule/core (= 0.88.0-rc.3) + - React-RCTNetwork (0.88.0-rc.3): - RCTTypeSafety - React-Core-prebuilt - React-Core/RCTNetworkHeaders @@ -1904,23 +1855,9 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - ReactNativeDependencies - - React-RCTRuntime (0.84.1): - - hermes-engine - - React-Core + - React-RCTRuntime (0.88.0-rc.3): - React-Core-prebuilt - - React-debug - - React-jsi - - React-jsinspector - - React-jsinspectorcdp - - React-jsinspectortracing - - React-jsitooling - - React-RuntimeApple - - React-RuntimeCore - - React-runtimeexecutor - - React-RuntimeHermes - - React-utils - - ReactNativeDependencies - - React-RCTSettings (0.84.1): + - React-RCTSettings (0.88.0-rc.3): - RCTTypeSafety - React-Core-prebuilt - React-Core/RCTSettingsHeaders @@ -1929,10 +1866,10 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - ReactNativeDependencies - - React-RCTText (0.84.1): - - React-Core/RCTTextHeaders (= 0.84.1) + - React-RCTText (0.88.0-rc.3): + - React-Core/RCTTextHeaders (= 0.88.0-rc.3) - Yoga - - React-RCTVibration (0.84.1): + - React-RCTVibration (0.88.0-rc.3): - React-Core-prebuilt - React-Core/RCTVibrationHeaders - React-jsi @@ -1940,21 +1877,40 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - ReactNativeDependencies - - React-rendererconsistency (0.84.1) - - React-renderercss (0.84.1): + - React-rendererconsistency (0.88.0-rc.3) + - React-renderercss (0.88.0-rc.3): - React-debug - React-utils - - React-rendererdebug (0.84.1): + - React-rendererdebug (0.88.0-rc.3): - React-Core-prebuilt - React-debug - ReactNativeDependencies - - React-RuntimeApple (0.84.1): + - React-resizeobservernativemodule (0.88.0-rc.3): + - hermes-engine + - React-bridging + - React-Core-prebuilt + - React-cxxreact + - React-cxxstableapi + - React-Fabric + - React-Fabric/bridging + - React-Fabric/observers/resize + - React-graphics + - React-jsi + - React-jsiexecutor + - React-RCTFBReactNativeSpec + - React-runtimeexecutor + - React-runtimescheduler + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - React-RuntimeApple (0.88.0-rc.3): - hermes-engine - React-callinvoker - React-Core-prebuilt - React-Core/Default - React-CoreModules - React-cxxreact + - React-cxxstableapi - React-featureflags - React-jserrorhandler - React-jsi @@ -1971,10 +1927,11 @@ PODS: - React-runtimescheduler - React-utils - ReactNativeDependencies - - React-RuntimeCore (0.84.1): + - React-RuntimeCore (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-Fabric - React-featureflags - React-jserrorhandler @@ -1987,16 +1944,17 @@ PODS: - React-runtimescheduler - React-utils - ReactNativeDependencies - - React-runtimeexecutor (0.84.1): + - React-runtimeexecutor (0.88.0-rc.3): - React-Core-prebuilt - React-debug - React-featureflags - - React-jsi (= 0.84.1) + - React-jsi (= 0.88.0-rc.3) - React-utils - ReactNativeDependencies - - React-RuntimeHermes (0.84.1): + - React-RuntimeHermes (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt + - React-cxxstableapi - React-featureflags - React-hermes - React-jsi @@ -2009,13 +1967,15 @@ PODS: - React-runtimeexecutor - React-utils - ReactNativeDependencies - - React-runtimescheduler (0.84.1): + - React-runtimescheduler (0.88.0-rc.3): - hermes-engine - React-callinvoker - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-debug - React-featureflags + - React-jserrorhandler - React-jsi - React-jsinspectortracing - React-performancetimeline @@ -2025,18 +1985,37 @@ PODS: - React-timing - React-utils - ReactNativeDependencies - - React-timing (0.84.1): + - React-timing (0.88.0-rc.3): + - React-cxxstableapi + - React-debug + - React-timing/timingUmbrella (= 0.88.0-rc.3) + - React-timing/timingUmbrella (0.88.0-rc.3): + - React-cxxstableapi - React-debug - - React-utils (0.84.1): + - React-utils (0.88.0-rc.3): - hermes-engine - React-Core-prebuilt - React-debug - - React-jsi (= 0.84.1) + - React-jsi (= 0.88.0-rc.3) + - ReactNativeDependencies + - React-viewtransitionnativemodule (0.88.0-rc.3): + - hermes-engine + - React-Core-prebuilt + - React-Fabric + - React-Fabric/bridging + - React-jsi + - React-jsiexecutor + - React-RCTFBReactNativeSpec + - React-runtimeexecutor + - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-webperformancenativemodule (0.84.1): + - Yoga + - React-webperformancenativemodule (0.88.0-rc.3): - hermes-engine + - React-bridging - React-Core-prebuilt - React-cxxreact + - React-cxxstableapi - React-jsi - React-jsiexecutor - React-performancetimeline @@ -2044,12 +2023,13 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/core - ReactNativeDependencies - - ReactAppDependencyProvider (0.84.1): + - ReactAppDependencyProvider (0.88.0-rc.3): - ReactCodegen - - ReactCodegen (0.84.1): + - ReactCodegen (0.88.0-rc.3): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt - React-debug @@ -2063,52 +2043,43 @@ PODS: - React-RCTAppDelegate - React-rendererdebug - React-utils - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - ReactCommon (0.84.1): - - React-Core-prebuilt - - ReactCommon/turbomodule (= 0.84.1) - - ReactNativeDependencies - - ReactCommon/turbomodule (0.84.1): - - hermes-engine - - React-callinvoker (= 0.84.1) + - ReactCommon (0.88.0-rc.3): - React-Core-prebuilt - - React-cxxreact (= 0.84.1) - - React-jsi (= 0.84.1) - - React-logger (= 0.84.1) - - React-perflogger (= 0.84.1) - - ReactCommon/turbomodule/bridging (= 0.84.1) - - ReactCommon/turbomodule/core (= 0.84.1) + - ReactCommon/turbomodule (= 0.88.0-rc.3) - ReactNativeDependencies - - ReactCommon/turbomodule/bridging (0.84.1): + - ReactCommon/turbomodule (0.88.0-rc.3): - hermes-engine - - React-callinvoker (= 0.84.1) + - React-callinvoker (= 0.88.0-rc.3) - React-Core-prebuilt - - React-cxxreact (= 0.84.1) - - React-jsi (= 0.84.1) - - React-logger (= 0.84.1) - - React-perflogger (= 0.84.1) + - React-jsi (= 0.88.0-rc.3) + - React-logger (= 0.88.0-rc.3) + - React-perflogger (= 0.88.0-rc.3) + - ReactCommon/turbomodule/core (= 0.88.0-rc.3) - ReactNativeDependencies - - ReactCommon/turbomodule/core (0.84.1): + - ReactCommon/turbomodule/core (0.88.0-rc.3): - hermes-engine - - React-callinvoker (= 0.84.1) + - React-bridging + - React-callinvoker (= 0.88.0-rc.3) - React-Core-prebuilt - - React-cxxreact (= 0.84.1) - - React-debug (= 0.84.1) - - React-featureflags (= 0.84.1) - - React-jsi (= 0.84.1) - - React-logger (= 0.84.1) - - React-perflogger (= 0.84.1) - - React-utils (= 0.84.1) + - React-cxxreact (= 0.88.0-rc.3) + - React-debug (= 0.88.0-rc.3) + - React-featureflags (= 0.88.0-rc.3) + - React-jsi (= 0.88.0-rc.3) + - React-logger (= 0.88.0-rc.3) + - React-perflogger (= 0.88.0-rc.3) + - React-utils (= 0.88.0-rc.3) - ReactNativeDependencies - - ReactNativeDependencies (0.84.1) + - ReactNativeDependencies (0.88.0-rc.3) - RNBootSplash (6.3.12): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2121,7 +2092,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -2129,8 +2099,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2143,7 +2115,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -2151,8 +2122,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2165,7 +2138,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -2173,8 +2145,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2187,7 +2161,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -2199,8 +2172,10 @@ PODS: - libavif/libdav1d (~> 0.11.1) - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2213,7 +2188,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - SDWebImage (>= 5.19.1) @@ -2221,12 +2195,14 @@ PODS: - SDWebImageSVGCoder (~> 1.7.0) - SDWebImageWebPCoder (~> 0.14) - Yoga - - RNGestureHandler (2.31.2): + - RNGestureHandler (2.33.0): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2239,7 +2215,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -2247,8 +2222,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2261,7 +2238,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -2269,8 +2245,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2283,7 +2261,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - RNNotifee/NotifeeCore (= 10.4.7) @@ -2292,8 +2269,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2306,7 +2285,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -2314,12 +2292,38 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging + - React-Core + - React-Core-prebuilt + - React-cxxstableapi + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - RNReanimated (4.7.1): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags - React-graphics + - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -2328,16 +2332,21 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies + - RNReanimated/apple (= 4.7.1) + - RNReanimated/common (= 4.7.1) + - RNReanimated/view (= 4.7.1) + - RNWorklets - Yoga - - RNReanimated (4.3.1): + - RNReanimated/apple (4.7.1): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2351,19 +2360,18 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNReanimated/apple (= 4.3.1) - - RNReanimated/common (= 4.3.1) - RNWorklets - Yoga - - RNReanimated/apple (4.3.1): + - RNReanimated/common (4.7.1): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2377,17 +2385,18 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - RNWorklets - Yoga - - RNReanimated/common (4.3.1): + - RNReanimated/view (4.7.1): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2401,17 +2410,18 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - RNWorklets - Yoga - - RNScreens (4.24.0): + - RNScreens (4.28.0): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2425,17 +2435,18 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNScreens/common (= 4.24.0) + - RNScreens/common (= 4.28.0) - Yoga - - RNScreens/common (4.24.0): + - RNScreens/common (4.28.0): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2449,7 +2460,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -2457,8 +2467,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2471,7 +2483,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - RNSVG/common (= 15.15.4) @@ -2480,8 +2491,10 @@ PODS: - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2494,16 +2507,17 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - RNWorklets (0.8.3): + - RNWorklets (0.13.0): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2517,18 +2531,19 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNWorklets/apple (= 0.8.3) - - RNWorklets/common (= 0.8.3) + - RNWorklets/apple (= 0.13.0) + - RNWorklets/common (= 0.13.0) - Yoga - - RNWorklets/apple (0.8.3): + - RNWorklets/apple (0.13.0): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2542,16 +2557,17 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - RNWorklets/common (0.8.3): + - RNWorklets/common (0.13.0): - hermes-engine - RCTRequired - RCTTypeSafety + - React-bridging - React-Core - React-Core-prebuilt + - React-cxxstableapi - React-debug - React-Fabric - React-featureflags @@ -2565,7 +2581,6 @@ PODS: - React-rendererdebug - React-utils - ReactCodegen - - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga @@ -2580,28 +2595,39 @@ PODS: - SDWebImageWebPCoder (0.15.0): - libwebp (~> 1.0) - SDWebImage/Core (~> 5.17) + - SocketRocket (0.7.1): + - ReactNativeDependencies - SSZipArchive (2.6.0) - SwiftAudioEx (1.1.0) - - Yoga (0.0.0) + - Yoga (0.0.0): + - React-Core-prebuilt DEPENDENCIES: - - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - boost (from `build/rndeps-facades/boost`) + - DoubleConversion (from `build/rndeps-facades/DoubleConversion`) + - fast_float (from `build/rndeps-facades/fast_float`) + - FBLazyVector (from `build/rncore-facades/FBLazyVector`) + - fmt (from `build/rndeps-facades/fmt`) + - glog (from `build/rndeps-facades/glog`) - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - IQKeyboardManager - MendixNative (from `../node_modules/mendix-native`) - "op-sqlite (from `../node_modules/@op-engineering/op-sqlite`)" - - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) - - RCTRequired (from `../node_modules/react-native/Libraries/Required`) + - RCT-Folly (from `build/rndeps-facades/RCT-Folly`) + - RCTDeprecation (from `build/rncore-facades/RCTDeprecation`) + - RCTRequired (from `build/rncore-facades/RCTRequired`) - RCTSwiftUI (from `../node_modules/react-native/ReactApple/RCTSwiftUI`) - RCTSwiftUIWrapper (from `../node_modules/react-native/ReactApple/RCTSwiftUIWrapper`) - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - React (from `../node_modules/react-native/`) + - React-bridging (from `../node_modules/react-native/ReactCommon/react/bridging`) - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) - - React-Core (from `../node_modules/react-native/`) + - React-Core (from `build/rncore-facades/React-Core`) - React-Core-prebuilt (from `../node_modules/react-native/React-Core-prebuilt.podspec`) - - React-Core/RCTWebSocket (from `../node_modules/react-native/`) + - React-Core/RCTWebSocket (from `build/rncore-facades/React-Core`) - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-cxxstableapi (from `../node_modules/react-native/ReactCommon/react/cxxstableapi`) - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) - React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) - React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`) @@ -2627,6 +2653,7 @@ DEPENDENCIES: - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) + - React-mutationobservernativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/mutationobserver`) - react-native-blob-util (from `../node_modules/react-native-blob-util`) - "react-native-cameraroll (from `../node_modules/@react-native-camera-roll/camera-roll`)" - react-native-image-picker (from `../node_modules/react-native-image-picker`) @@ -2643,21 +2670,23 @@ DEPENDENCIES: - React-performancecdpmetrics (from `../node_modules/react-native/ReactCommon/react/performance/cdpmetrics`) - React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`) - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) + - React-RCTAnimatedModuleProvider (from `../node_modules/react-native/ReactApple/RCTAnimatedModuleProvider`) - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) - - React-RCTFabric (from `../node_modules/react-native/React`) + - React-RCTFabric (from `build/rncore-facades/React-RCTFabric`) - React-RCTFBReactNativeSpec (from `../node_modules/react-native/React`) - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) - - React-RCTRuntime (from `../node_modules/react-native/React/Runtime`) + - React-RCTRuntime (from `build/rncore-facades/React-RCTRuntime`) - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) - React-RCTText (from `../node_modules/react-native/Libraries/Text`) - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) - React-renderercss (from `../node_modules/react-native/ReactCommon/react/renderer/css`) - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) + - React-resizeobservernativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/resizeobserver`) - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) @@ -2665,6 +2694,7 @@ DEPENDENCIES: - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) - React-timing (from `../node_modules/react-native/ReactCommon/react/timing`) - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) + - React-viewtransitionnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/viewtransition`) - React-webperformancenativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/webperformance`) - ReactAppDependencyProvider (from `build/generated/ios/ReactAppDependencyProvider`) - ReactCodegen (from `build/generated/ios/ReactCodegen`) @@ -2684,8 +2714,9 @@ DEPENDENCIES: - RNScreens (from `../node_modules/react-native-screens`) - RNSVG (from `../node_modules/react-native-svg`) - RNWorklets (from `../node_modules/react-native-worklets`) + - SocketRocket (from `build/rndeps-facades/SocketRocket`) - SSZipArchive - - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) + - Yoga (from `build/rncore-facades/Yoga`) SPEC REPOS: trunk: @@ -2702,19 +2733,31 @@ SPEC REPOS: - SwiftAudioEx EXTERNAL SOURCES: + boost: + :path: build/rndeps-facades/boost + DoubleConversion: + :path: build/rndeps-facades/DoubleConversion + fast_float: + :path: build/rndeps-facades/fast_float FBLazyVector: - :path: "../node_modules/react-native/Libraries/FBLazyVector" + :path: build/rncore-facades/FBLazyVector + fmt: + :path: build/rndeps-facades/fmt + glog: + :path: build/rndeps-facades/glog hermes-engine: :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-v0.15.1 + :tag: hermes-v260318099.0.2 MendixNative: :path: "../node_modules/mendix-native" op-sqlite: :path: "../node_modules/@op-engineering/op-sqlite" + RCT-Folly: + :path: build/rndeps-facades/RCT-Folly RCTDeprecation: - :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" + :path: build/rncore-facades/RCTDeprecation RCTRequired: - :path: "../node_modules/react-native/Libraries/Required" + :path: build/rncore-facades/RCTRequired RCTSwiftUI: :path: "../node_modules/react-native/ReactApple/RCTSwiftUI" RCTSwiftUIWrapper: @@ -2723,16 +2766,20 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/Libraries/TypeSafety" React: :path: "../node_modules/react-native/" + React-bridging: + :path: "../node_modules/react-native/ReactCommon/react/bridging" React-callinvoker: :path: "../node_modules/react-native/ReactCommon/callinvoker" React-Core: - :path: "../node_modules/react-native/" + :path: build/rncore-facades/React-Core React-Core-prebuilt: :podspec: "../node_modules/react-native/React-Core-prebuilt.podspec" React-CoreModules: :path: "../node_modules/react-native/React/CoreModules" React-cxxreact: :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-cxxstableapi: + :path: "../node_modules/react-native/ReactCommon/react/cxxstableapi" React-debug: :path: "../node_modules/react-native/ReactCommon/react/debug" React-defaultsnativemodule: @@ -2783,6 +2830,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon" React-microtasksnativemodule: :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" + React-mutationobservernativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/mutationobserver" react-native-blob-util: :path: "../node_modules/react-native-blob-util" react-native-cameraroll: @@ -2815,6 +2864,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/react/performance/timeline" React-RCTActionSheet: :path: "../node_modules/react-native/Libraries/ActionSheetIOS" + React-RCTAnimatedModuleProvider: + :path: "../node_modules/react-native/ReactApple/RCTAnimatedModuleProvider" React-RCTAnimation: :path: "../node_modules/react-native/Libraries/NativeAnimation" React-RCTAppDelegate: @@ -2822,7 +2873,7 @@ EXTERNAL SOURCES: React-RCTBlob: :path: "../node_modules/react-native/Libraries/Blob" React-RCTFabric: - :path: "../node_modules/react-native/React" + :path: build/rncore-facades/React-RCTFabric React-RCTFBReactNativeSpec: :path: "../node_modules/react-native/React" React-RCTImage: @@ -2832,7 +2883,7 @@ EXTERNAL SOURCES: React-RCTNetwork: :path: "../node_modules/react-native/Libraries/Network" React-RCTRuntime: - :path: "../node_modules/react-native/React/Runtime" + :path: build/rncore-facades/React-RCTRuntime React-RCTSettings: :path: "../node_modules/react-native/Libraries/Settings" React-RCTText: @@ -2845,6 +2896,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/react/renderer/css" React-rendererdebug: :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" + React-resizeobservernativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/resizeobserver" React-RuntimeApple: :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" React-RuntimeCore: @@ -2859,6 +2912,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/react/timing" React-utils: :path: "../node_modules/react-native/ReactCommon/react/utils" + React-viewtransitionnativemodule: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/viewtransition" React-webperformancenativemodule: :path: "../node_modules/react-native/ReactCommon/react/nativemodule/webperformance" ReactAppDependencyProvider: @@ -2897,120 +2952,135 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-svg" RNWorklets: :path: "../node_modules/react-native-worklets" + SocketRocket: + :path: build/rndeps-facades/SocketRocket Yoga: - :path: "../node_modules/react-native/ReactCommon/yoga" + :path: build/rncore-facades/Yoga SPEC CHECKSUMS: - FBLazyVector: e97c19a5a442429d1988f182a1940fb08df514da - hermes-engine: 69685c8bd68491a4ff7f075256f5b2dfab04de21 + boost: 8502bfdc46e2804408af2e163049ece181009af4 + DoubleConversion: 501a575c40c0b50c89685762dd3e415e6bb26fb0 + fast_float: 7c925d1cebf8328d4018d061f49377e9f887e3b4 + FBLazyVector: ef9b6a95cc4517abbb071142b8cfddd77811c031 + fmt: ba0886e864ebb21d14c98b2e12e164b8002f5b93 + glog: 3cf7cb46f743c4bc758ae3e6d9c15bd1b4cfd6d4 + hermes-engine: a1158910bb7e300b9e3d2f1e2d433f817ec1a4b5 IQKeyboardManager: c8665b3396bd0b79402b4c573eac345a31c7d485 libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7 libdav1d: 23581a4d8ec811ff171ed5e2e05cd27bad64c39f libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 - MendixNative: 784e3f3502d5ed1af5deb1ebccfa47760af238d8 - op-sqlite: e9ef65bcf95a97863874cee87841425bb71c8396 + MendixNative: 6de5c0daa7124a30fcc7e73b88342caa3fb31eea + op-sqlite: 35c49f420ecc7c3890ce85f00b97cd80e51ca043 OpenSSL-Universal: 6082b0bf950e5636fe0d78def171184e2b3899c2 - RCTDeprecation: af44b104091a34482596cd9bd7e8d90c4e9b4bd7 - RCTRequired: bb77b070f75f53398ce43c0aaaa58337cebe2bf6 - RCTSwiftUI: afc0a0a635860da1040a0b894bfd529da06d7810 - RCTSwiftUIWrapper: 3197c020094f3b2151bb2d1223f7276787be8166 - RCTTypeSafety: d13e192a37f151ce354641184bf4239844a3be17 - React: 1ba7d364ade7d883a1ec055bfc3606f35fdee17b - React-callinvoker: bc2a26f8d84fb01f003fc6de6c9337b64715f95b - React-Core: 7840d3a80b43a95c5e80ef75146bd70925ebab0f - React-Core-prebuilt: 203358738dba539388b07a09a926858081125bc1 - React-CoreModules: 2eb010400b63b89e53a324ffb3c112e4c7c3ce42 - React-cxxreact: a558e92199d26f145afa9e62c4233cf8e7950efe - React-debug: 755200a6e7f5e6e0a40ff8d215493d43cce285fc - React-defaultsnativemodule: bb85b1bdd9b4b82650cfa92998567fcfdb030145 - React-domnativemodule: ffdba8ba4323387e821d8298be2013516036df87 - React-Fabric: 8705ba7f14acf5b1df474d1af4b0191c69ac4690 - React-FabricComponents: 5a1b5007fe8c5d5f043e45c335ebef2af0717fb2 - React-FabricImage: e96eea6bb65b501cf5db3ce4ad057a97dea1dd69 - React-featureflags: 410f6c383eb94019f63f105374d738169df291ae - React-featureflagsnativemodule: 5d6d7931ec5d4576639661c0f79169a0ae383023 - React-graphics: b9b69adbe79d6944838aa304c849d78f977e9f21 - React-hermes: 666c66bbc856b46dfa4b132f1c9efaa37ad419a1 - React-idlecallbacksnativemodule: 785d307b9236ec9fb4ec0bcf99b34e8539d2d76e - React-ImageManager: daeef8b1c19803c71a9233f21f7f235cd3ec294e - React-intersectionobservernativemodule: c17189d2350205012682aefe566f7ebaa4f980e3 - React-jserrorhandler: 431377b3d1783127bc394986fe8d932bcb8982fe - React-jsi: 33db13b95bb53827b03d9fb0f567d12b63dfc8ef - React-jsiexecutor: 49de4d48a7c4f283eaa865f7a4f3919f2c39be1c - React-jsinspector: 3ec7dd478806a0eb4ec6ab394e51a395e8f895ba - React-jsinspectorcdp: bcb79a666959b1a3e8aac3ff8209d05c719aaa2a - React-jsinspectornetwork: be3b81a6342b56c74dd0bdd58bf3f62f978c1472 - React-jsinspectortracing: 293251deadf7c255da593bf1d9d337a645abdfdc - React-jsitooling: 6f729cdb85ff0c8294709ec1903e1f0c59662331 - React-jsitracing: be95d903cc9440ab89a704c999dd7db6675dc47f - React-logger: b5521614afb8690420146dfc61a1447bb5d65419 - React-Mapbuffer: f4ee8c62e0ef8359d139124f35a471518a172cd3 - React-microtasksnativemodule: d1956f0eec54c619b63a379520fb4c618a55ccb9 - react-native-blob-util: 5926090844c5d8081f065066cdb262854351777d - react-native-cameraroll: bd1a177463acbba89365d09e81057294eba1e2f6 - react-native-image-picker: 168d6972e50ea848defe4ac4c222faa9bc52aea0 - react-native-pager-view: c8817c1d9f4643417e68f0b846c51214b2252eea - react-native-safe-area-context: ae7587b95fb580d1800c5b0b2a7bd48c2868e67a + RCT-Folly: 82921e585c0400eda46fac1068297aa9dfb035e4 + RCTDeprecation: 5c034047b1d03c50321e4d7cb0a5d3e0d43f9af0 + RCTRequired: cd4fe49ee5ac84c0f62e483f93206a456f0bceee + RCTSwiftUI: 52082a46da2b839a2779026752375ea59a04110c + RCTSwiftUIWrapper: d5b8645274e112a316aea9d163428826b87a8913 + RCTTypeSafety: ee3d9baad6286c2ef45ef379409908d790d8804f + React: 8481ff37bcd808e18b85af345ce2657c36b710e6 + React-bridging: 1aefed44104d9f96331be33c3dd98d90c0cb659b + React-callinvoker: ac6c2fc9b50d76a288e691f11c291117774bda06 + React-Core: 6853ddd4abd39ec72c3c8607d300c9834d9e81c4 + React-Core-prebuilt: efbd0e6abf3ed16dfb9266e287e54055410853fa + React-CoreModules: 68fe06622841f65486b0a2766e9121221acbbfd1 + React-cxxreact: 44f1f66e0253215f4b66157cde67a2c0b23bf22e + React-cxxstableapi: 57f354ce04cee8c512be47564d504ea0a5ea4c88 + React-debug: b15be93fef4cfc9bf2626466c1debfb622a47ce5 + React-defaultsnativemodule: c3c1b3d858e87595052a485c3ed5a31cb3e4adfe + React-domnativemodule: 336b709eddd02fbe246cede4fb7da69b1e41770a + React-Fabric: 0f1597b153f76ed8cc36fdb702f7cbf13ff2efc6 + React-FabricComponents: 998508427c3eba5e863272778a5cee273589ca58 + React-FabricImage: 8e1d78cdb6a80588e901b7c059e89488e788f4ea + React-featureflags: 09128a24814d12cbe664ed3c61d6eb172e5401ff + React-featureflagsnativemodule: 41bd0f142db8eb3158ce0f703d83a67774f65efd + React-graphics: c897611bd82c592a45f79998c33d07a8147d87e5 + React-hermes: 29071fbc6965fe36fcb975cdac0e75a0289df5ed + React-idlecallbacksnativemodule: 0791c6168b6d56a263c285600e151de12e5fb23e + React-ImageManager: 774627401d7a4d0f1cd7bf90d6bf2c610ec74731 + React-intersectionobservernativemodule: 565a8e14f37ee6f3a35769b493208b605630f550 + React-jserrorhandler: b755866f88c0794c9c1d0c8a6d07b02b05811b3e + React-jsi: e01cc5236728a086d41ae03bdfe0c13c23a9c2d7 + React-jsiexecutor: a4443846bf69cf1f829e128b251619ea418522da + React-jsinspector: ba0583f41e4dc47583589f5cc6d7256a65a04365 + React-jsinspectorcdp: d8d7ebe9d7abc0230b7613a8eeb98d45148e3cd4 + React-jsinspectornetwork: e9a6d50516512a4f8afb003f47e66fc02ca36e14 + React-jsinspectortracing: 4bca3eea80bbc83a83f3510f3023496492d97c5c + React-jsitooling: a8ad633a5cf6c5090a144d56dc3ab9ce9b7f3a87 + React-jsitracing: 2f653042940aad792cb80f0243cc6274e1f2267b + React-logger: e4d2983ed19fcb983733acd66178927527a7cfad + React-Mapbuffer: d5a910808e159d5780a384937f2f289cd929f210 + React-microtasksnativemodule: 9bdc748bc7766ae29e1f04a30993bdb95f4c0fb7 + React-mutationobservernativemodule: 13aac2d70ba3905b08008656a790b18f7befb7c7 + react-native-blob-util: 89d5ccbafcdb2ae701dfca9002472de6a080b624 + react-native-cameraroll: 6a7f0cae784ce8f4e028909bb736b9bdd4c3bdab + react-native-image-picker: fa0c0c2e00200d79c8487e3b4d5794014ebccff6 + react-native-pager-view: 9474ba016fdcce9f11a168372728e87defb94a1c + react-native-safe-area-context: 16d6b3596ac139875d38ad9ac1c816169ec5735a react-native-track-player: dd56f9948e03756a217c75e0a61aa04aab65b5a1 - react-native-vector-icons: 8215b0e62bf79d3be628cf658ec23777f9bec53c - react-native-vector-icons-material-icons: 2fe75632937d07937bfe8ca953e1b5d06eef3a1d - react-native-video: 293a1dfb84d6b79b5bf9dd33925931008e225d5a - React-NativeModulesApple: 5ba0903927f6b8d335a091700e9fda143980f819 - React-networking: 3a4b7f9ed2b2d1c0441beacb79674323a24bcca6 - React-oscompat: ff26abf0ae3e3fdbe47b44224571e3fc7226a573 - React-perflogger: a86b2146936f2ffa80188425c6e8892729e2ad01 - React-performancecdpmetrics: 65b699c3e52c0a1d978d9cdf15e60c62e335b900 - React-performancetimeline: b44f82caa563e46068d02d9cf5b0d2b84bdc7a6a - React-RCTActionSheet: fc1d5d419856868e7f8c13c14591ed63dadef43a - React-RCTAnimation: 2a1e7eeb55b71e8524db296fa31e46eeaa2d0da4 - React-RCTAppDelegate: 317c1102a2d0bcc07567d8de58d9147102080b0e - React-RCTBlob: c82bbf96b2d1389550c05fb9739d4e85d471052e - React-RCTFabric: d82ad8120ba70fe63207e261b9e33d9b6077e2de - React-RCTFBReactNativeSpec: 4d33b5f3b339e9fa902168e8a1d62c458dda16e9 - React-RCTImage: f959463e53ea731ab267e371eea1b92fccf27634 - React-RCTLinking: 2a857113b8059ac4f0a8ae89f8aa312837b955d0 - React-RCTNetwork: dc026bf25f6457249349be8cf8bd5fdf84cdfb14 - React-RCTRuntime: b0630731fd864064066301e1e31406fea606d5f9 - React-RCTSettings: e159e19475df2e92fd3b4ddcfe29f6cc12cf0ee4 - React-RCTText: 7356cc84c2ed79635931891c176f72e0289dc75d - React-RCTVibration: 77621175b67b22e655ce4b29d1cda8498f2033e7 - React-rendererconsistency: e91aba4bb482dac127ad955dba6333a8af629c5b - React-renderercss: 7cc41efaecf557d7b70edaa08fad5ace79f714f6 - React-rendererdebug: 0f004cbed7b4c27327423be47209770830bf3c6d - React-RuntimeApple: 6f4ff8e2d8b05cb3ceabf57e494c04da8751f009 - React-RuntimeCore: 25be9c7025eabb524cd00dbb6ce56d6b122e3d92 - React-runtimeexecutor: 84d394b9f0a8fc7dab8a98bf88a43228bb04dac2 - React-RuntimeHermes: 2bed5b2d2419945cc5c2f6d627a1b46ce3a0f66a - React-runtimescheduler: 23b092dbcd3088f9c947551c23366dd00254caf3 - React-timing: 2ab9ccd4b41aa171090c16f664f6c5bfb2fd0ddc - React-utils: 8d888b379f0808bfabaea03d85f9e8dd9b8548da - React-webperformancenativemodule: c10016db7f1bb1153060d4aa9f7dbde2c88c845d - ReactAppDependencyProvider: e96e93b493d8d86eeaee3e590ba0be53f6abe46f - ReactCodegen: 797de5178718324c6eba3327b07f9a423fbd5787 - ReactCommon: 07572bf9e687c8a52fbe4a3641e9e3a1a477c78e - ReactNativeDependencies: 770e0777d2bd1891fd654bdbb3da9e9905a96394 - RNBootSplash: 13b7612788960d0c5446e68489ac2509e506cfcd - RNCAsyncStorage: 3a4f5e2777dae1688b781a487923a08569e27fe4 - RNCPicker: c8a3584b74133464ee926224463fcc54dfdaebca - RNDateTimePicker: 9c0a849bbe1c256f0854fea255734b715f5ea876 + react-native-vector-icons: 13bdb36c614afa6cc4e3c36b42e0e8df989ff65f + react-native-vector-icons-material-icons: 6d1d8ea28261609bbb975b1e9c51fe54eedfafe6 + react-native-video: 715a442e7b3345202e365ad5e69437ba9889bffa + React-NativeModulesApple: 999002af8ab66eaac2081c63c22ecd6c87cc0b03 + React-networking: aa69f8768a1948016b29b73a755add782790a1f2 + React-oscompat: e37c189485c22d908ac597c698e1af4cd0138dc2 + React-perflogger: 6ea87fd1a41c5b9aae156974677a3b326cf18010 + React-performancecdpmetrics: 9daab7ed2b1d20e560a3faf2d0c49f8376ea860a + React-performancetimeline: c66a0922af954d80a6658c54d47ea77db6b0cdae + React-RCTActionSheet: 31d73e87210e1d2ce32ef5bb18977749307ed037 + React-RCTAnimatedModuleProvider: a56c58011516b048cf986cd80acb955be7ad1695 + React-RCTAnimation: 401bececd892b386b352e425482af4805648f704 + React-RCTAppDelegate: f86ddf49e2d27cece224b4abc26249f3a090424d + React-RCTBlob: 24b8aa9bd86662e0c82e3bcd16bce8c920c252e8 + React-RCTFabric: 2f77c38c8d1685549c4013bc96b5ebf2fe72db1e + React-RCTFBReactNativeSpec: b833c2103f6e06a10c7cf6eddb73ad306d87b8cc + React-RCTImage: a6dcd8c9afb08deccacc589e3a0339a25abfb33e + React-RCTLinking: 38d3bf388b32f61d4f3688360d329e31a1663a9c + React-RCTNetwork: 97e8fc197cb5320a4fe9cb2903006990bf26ff59 + React-RCTRuntime: b8549e10404bfee61eb233a0cf2477f886a3c7ba + React-RCTSettings: 12daed63338921949bd284ff2e7fc844ae5a1b42 + React-RCTText: dcdf3c1375d50ec75c0da86ddc505672db66d68d + React-RCTVibration: 1240f0f3a3c520a7432552f7c7b3aeb078dc31c2 + React-rendererconsistency: be9375ecf17c8314d8362742bfb5cd85c17d93d7 + React-renderercss: ad2db79c4c625fd2593e2259d3279ce6c4000d93 + React-rendererdebug: 8115b1932811b1c9a775f8480f4188cfca35ae6a + React-resizeobservernativemodule: 4c783c449ebd7fbbc579afab1043fd3c3df10d64 + React-RuntimeApple: ef1e910bb7b73dd511fc0a6f17dc14dd4dfde8a7 + React-RuntimeCore: cdbc5df5657d609685c56ab33af11ad98f7cd511 + React-runtimeexecutor: 39700afb1d262a1bb989e1462d6cf8681bb9ad14 + React-RuntimeHermes: daa379749073b0fe28b2dcf7d9c898c3f424e4ca + React-runtimescheduler: 9fab6de66403268257eb02c61c3a1740335f5c76 + React-timing: 1fad79368ce7222e59640f97c205d16b1557f916 + React-utils: ee7a1e77c52943c17130b1bb0bbe0226dc73d612 + React-viewtransitionnativemodule: 46f16d7424211818474442e89885d4679228d1fd + React-webperformancenativemodule: 05b19df261de4ba2dfcc7ab9080a0c0c056f1a0b + ReactAppDependencyProvider: 7a86900b342815446f0d353a877f2b777597c365 + ReactCodegen: fd1482b53f6ef90c9558bba383ff12213c7e6da6 + ReactCommon: 4273431f94620e485114031bab040602f60016ff + ReactNativeDependencies: 6241d10de6f9bb4b93bd318ab3b59fd98cd5539a + RNBootSplash: d64fa4fa84fc65e2263f45ea5771a434a8b933ae + RNCAsyncStorage: 9aad1f18e1b3d98690ae696b01bd984054108916 + RNCPicker: d3db4b004e95a5bd224e1c926f84978b45bc0040 + RNDateTimePicker: c540de7fec7bb410b2624f120ec0105acf679eca RNDeviceInfo: 4c852998208b60dc192ae3529e5867817719ad1e - RNFastImage: 2d36f4cfed9b2342f94f8591c8be69dd047ac67c - RNGestureHandler: b4f6de20b30325ee40b693f558ad02213201ce91 - RNLocalize: 1e6eb4290e89502c3d2193d82dfb7de14a9e672b - RNNotifee: 9ca22cfc316c0a793ea23cfc0edca0b80d38e02e - RNPermissions: b06582c5cb6e0d9e58d1a867a0d1a724dafdc5af - RNReanimated: e47df7f4580997c3a46b1e736ce3f26010985bb7 - RNScreens: 6cb648bdad8fe9bee9259fe144df95b6d1d5b707 - RNSVG: c69f7709226108f5eb89b5aa8833c17a36345468 - RNWorklets: 7d24538032e023ed207e3b4d9b234695ddadd201 + RNFastImage: 2aad2bc7fcf6fd99c538d7ec5f862e5b1f5a64e8 + RNGestureHandler: c30d0805eccd9b0f143c252ae769131096337322 + RNLocalize: a9fbfcc466a1d6a8531069e65152e5ee3c7839e2 + RNNotifee: e110d71f385a0340b5b15864639a271d7f5a07ef + RNPermissions: 455dec026628dcb335ed0d72384c08660353fb32 + RNReanimated: 3018727dbf272754d0f31ef73f619e49ade7baf0 + RNScreens: 3d3d94d97ee39a20fa35de959c32e356439991c7 + RNSVG: 2763b18e0405296e97c651358716e997ce041b1f + RNWorklets: 488806637a21eb17812a48dadca7cb8c698c8cfd SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838 SDWebImageAVIFCoder: afe194a084e851f70228e4be35ef651df0fc5c57 SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c SDWebImageWebPCoder: 0e06e365080397465cc73a7a9b472d8a3bd0f377 + SocketRocket: 37aec555668fb852ec12e3c0de59a86ca58f0871 SSZipArchive: 8a6ee5677c8e304bebc109e39cf0da91ccef22ea SwiftAudioEx: f6aa653770f3a0d3851edaf8d834a30aee4a7646 - Yoga: c0b3f2c7e8d3e327e450223a2414ca3fa296b9a2 + Yoga: d1c536142c5ff8ec8cd856ab2a7c227a1d875c8e -PODFILE CHECKSUM: 7a33012cce520784bb5b691549f5ed2af273b7e3 +PODFILE CHECKSUM: 99239d0d53f862c6f1d56042467dd91e43e039ca COCOAPODS: 1.16.2 diff --git a/ios/SceneDelegate.swift b/ios/SceneDelegate.swift new file mode 100644 index 00000000..14e57d52 --- /dev/null +++ b/ios/SceneDelegate.swift @@ -0,0 +1,92 @@ +import UIKit +import MendixNative + +class SceneDelegate: ReactAppProvider { + + override func scene( + _ scene: UIScene, + willConnectTo session: UISceneSession, + options connectionOptions: UIScene.ConnectionOptions + ) { + super.scene(scene, willConnectTo: session, options: connectionOptions) + + setUpProvider() + changeRoot(to: UIViewController()) + + let launchOptions = connectionOptions.urlContexts.isEmpty + ? nil + : ReactAppProvider.launchOptions(from: connectionOptions) + + guard let url = Bundle.main.object(forInfoDictionaryKey: "Runtime url") as? String, !url.isEmpty else { + showUnrecoverableDialog( + title: "The runtime URL is missing", + message: "Missing the 'Runtime url' configuration within the Info.plist file. The app will close." + ) + return + } + + if let bundleUrl = MendixAppDelegate.getJSBundleFile() { + let runtimeUrl = AppUrl.forRuntime((url).replacingOccurrences(of: "\\", with: "")) + + let mendixApp = MendixApp( + identifier: nil, + bundleUrl: bundleUrl, + runtimeUrl: runtimeUrl, + warningsFilter: .none, + isDeveloperApp: false, + clearDataAtLaunch: false, + splashScreenPresenter: SplashScreenPresenter(), + reactLoading: nil, + enableThreeFingerGestures: false + ) + + ReactNative.shared.setup(mendixApp, launchOptions: launchOptions) + ReactNative.shared.start() + } else { + showUnrecoverableDialog( + title: "No Mendix bundle found", + message: "Missing the Mendix app bundle. Make sure that the index.ios.bundle file is available in ios/NativeTemplate/Bundle folder. If building locally consult the documentation on how to generate a bundle from your project." + ) + } + } + + override func scene(_ scene: UIScene, openURLContexts URLContexts: Set) { + guard let context = URLContexts.first else { return } + MendixAppDelegate.application( + UIApplication.shared, + openURL: context.url, + options: openURLOptions(from: context) + ) + } + + @objc func sceneDidEnterBackground(_ scene: UIScene) { + SessionCookieStore.persist() + } + + static func delegateInstance() -> SceneDelegate? { + if let provider = ReactAppProvider.shared() as? SceneDelegate { + return provider + } + return UIApplication.shared.connectedScenes.compactMap { $0.delegate as? SceneDelegate }.first + } + + private func openURLOptions(from context: UIOpenURLContext) -> [UIApplication.OpenURLOptionsKey: Any] { + var options: [UIApplication.OpenURLOptionsKey: Any] = [.openInPlace: context.options.openInPlace] + if let sourceApplication = context.options.sourceApplication { + options[.sourceApplication] = sourceApplication + } + if let annotation = context.options.annotation { + options[.annotation] = annotation + } + return options + } + + private func showUnrecoverableDialog(title: String, message: String) { + let controller = UIAlertController(title: title, message: message, preferredStyle: .alert) + controller.addAction(.init(title: "Close", style: .default, handler: {_ in + print(message) + exit(0) + })) + window?.rootViewController?.present(controller, animated: true, completion: nil) + } +} diff --git a/ios/nativeTemplate.xcodeproj/project.pbxproj b/ios/nativeTemplate.xcodeproj/project.pbxproj index 157a1034..89fbf1b9 100644 --- a/ios/nativeTemplate.xcodeproj/project.pbxproj +++ b/ios/nativeTemplate.xcodeproj/project.pbxproj @@ -29,6 +29,8 @@ 572D87C4D9F46E7564D1FE09 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = DBB22F41E3AF5D95F9759402 /* PrivacyInfo.xcprivacy */; }; 6E2A5EF72EE2F17800FB5359 /* Info-dev.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6E2A5EF62EE2F17800FB5359 /* Info-dev.plist */; }; 6E2A5EF82EE2F17800FB5359 /* Info-dev.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6E2A5EF62EE2F17800FB5359 /* Info-dev.plist */; }; + 6E2A5F012EE3A00000FB5359 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2A5F002EE3A00000FB5359 /* SceneDelegate.swift */; }; + 6E2A5F032EE3A00000FB5359 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E2A5F022EE3A00000FB5359 /* SceneDelegate.swift */; }; 9DF4091425A46A56E2A9A405 /* libPods-nativeTemplate.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 73F36AC2CCD37CCD4E7B1BB8 /* libPods-nativeTemplate.a */; }; 9E9B12F82EAB8BA500714B41 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E9B12F62EAB8BA500714B41 /* AppDelegate.swift */; }; 9E9B12FA2EAB8C2800714B41 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E9B12F92EAB8C2800714B41 /* AppDelegate.swift */; }; @@ -71,6 +73,8 @@ 64F8A8A81DAAF68662AD5926 /* Pods-nativeTemplate.releasedevapp.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-nativeTemplate.releasedevapp.xcconfig"; path = "Target Support Files/Pods-nativeTemplate/Pods-nativeTemplate.releasedevapp.xcconfig"; sourceTree = ""; }; 6ABE4BDB54D431090249D8EC /* Pods-dev.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-dev.release.xcconfig"; path = "Target Support Files/Pods-dev/Pods-dev.release.xcconfig"; sourceTree = ""; }; 6E2A5EF62EE2F17800FB5359 /* Info-dev.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-dev.plist"; path = "nativeTemplate/Info-dev.plist"; sourceTree = ""; }; + 6E2A5F002EE3A00000FB5359 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 6E2A5F022EE3A00000FB5359 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; 73F36AC2CCD37CCD4E7B1BB8 /* libPods-nativeTemplate.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-nativeTemplate.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 7EEDF4024CB6865C31DBA5BB /* Pods-nativeTemplate.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-nativeTemplate.release.xcconfig"; path = "Target Support Files/Pods-nativeTemplate/Pods-nativeTemplate.release.xcconfig"; sourceTree = ""; }; 9A27E05F0AD54B417B79E303 /* Pods-dev.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-dev.debug.xcconfig"; path = "Target Support Files/Pods-dev/Pods-dev.debug.xcconfig"; sourceTree = ""; }; @@ -134,6 +138,7 @@ 2C887FD924B88A0E0003DC53 /* LaunchScreen.storyboard */, 2C005A7823D5B1E200003E29 /* nativeTemplate.entitlements */, 9E9B12F62EAB8BA500714B41 /* AppDelegate.swift */, + 6E2A5F002EE3A00000FB5359 /* SceneDelegate.swift */, 9E9B12FF2EAB8D2600714B41 /* MendixAppDelegate.swift */, 9E9B13022EAB8EB700714B41 /* SplashScreenPresenter.swift */, ); @@ -147,6 +152,7 @@ 1A0B3AD12397E14800388BF7 /* MendixApp */, 1A0B3ACD2397E06900388BF7 /* LaunchApp */, 9E9B12F92EAB8C2800714B41 /* AppDelegate.swift */, + 6E2A5F022EE3A00000FB5359 /* SceneDelegate.swift */, ); path = Dev; sourceTree = ""; @@ -508,6 +514,7 @@ buildActionMask = 2147483647; files = ( 9E9B12F82EAB8BA500714B41 /* AppDelegate.swift in Sources */, + 6E2A5F012EE3A00000FB5359 /* SceneDelegate.swift in Sources */, 9E9B13002EAB8D2600714B41 /* MendixAppDelegate.swift in Sources */, 9E9B13042EAB8EB700714B41 /* SplashScreenPresenter.swift in Sources */, ); @@ -518,6 +525,7 @@ buildActionMask = 2147483647; files = ( 9E9B12FA2EAB8C2800714B41 /* AppDelegate.swift in Sources */, + 6E2A5F032EE3A00000FB5359 /* SceneDelegate.swift in Sources */, 9E9B13012EAB8D2600714B41 /* MendixAppDelegate.swift in Sources */, 1A0B3AD52397E16900388BF7 /* MendixAppViewController.swift in Sources */, 9E9B13032EAB8EB700714B41 /* SplashScreenPresenter.swift in Sources */, @@ -861,6 +869,7 @@ "-DRCT_REMOVE_LEGACY_ARCH=1", ); OTHER_LDFLAGS = "$(inherited)"; + PODFILE_DIR = "$(SRCROOT)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ENABLE_EXPLICIT_MODULES = NO; @@ -1069,6 +1078,7 @@ "-DRCT_REMOVE_LEGACY_ARCH=1", ); OTHER_LDFLAGS = "$(inherited)"; + PODFILE_DIR = "$(SRCROOT)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; @@ -1141,6 +1151,7 @@ "-DRCT_REMOVE_LEGACY_ARCH=1", ); OTHER_LDFLAGS = "$(inherited)"; + PODFILE_DIR = "$(SRCROOT)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ENABLE_EXPLICIT_MODULES = NO; diff --git a/ios/nativeTemplate/Info-dev.plist b/ios/nativeTemplate/Info-dev.plist index 015ca46c..7a25ba3b 100644 --- a/ios/nativeTemplate/Info-dev.plist +++ b/ios/nativeTemplate/Info-dev.plist @@ -86,6 +86,23 @@ SimpleLineIcons.ttf Zocial.ttf + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/ios/nativeTemplate/Info.plist b/ios/nativeTemplate/Info.plist index 4a26d980..c86c4271 100644 --- a/ios/nativeTemplate/Info.plist +++ b/ios/nativeTemplate/Info.plist @@ -86,6 +86,23 @@ SimpleLineIcons.ttf Zocial.ttf + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/package-lock.json b/package-lock.json index b21cb1c3..93eed9b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,46 +11,46 @@ "dependencies": { "@d11/react-native-fast-image": "8.13.0", "@gorhom/bottom-sheet": "5.2.14", - "@op-engineering/op-sqlite": "15.2.5", + "@op-engineering/op-sqlite": "18.2.5", "@react-native-async-storage/async-storage": "2.2.0", "@react-native-camera-roll/camera-roll": "7.10.2", - "@react-native-community/cli": "20.1.3", - "@react-native-community/cli-platform-android": "20.1.3", - "@react-native-community/cli-platform-ios": "20.1.3", + "@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-community/datetimepicker": "8.6.0", "@react-native-picker/picker": "2.11.4", - "@react-native-vector-icons/common": "12.4.2", - "@react-native-vector-icons/get-image": "12.3.0", - "@react-native-vector-icons/material-icons": "12.4.1", - "@react-navigation/native": "7.2.4", + "@react-native-vector-icons/common": "13.0.3", + "@react-native-vector-icons/get-image": "13.0.1", + "@react-native-vector-icons/material-icons": "13.1.4", + "@react-navigation/native": "7.5.0", "@shopify/flash-list": "2.3.1", - "mendix-native": "https://github.com/mendix/mendix-native/releases/download/v0.6.2/mendix-native-v0.6.2.tgz", - "react-native": "0.84.1", - "react-native-blob-util": "0.24.7", + "mendix-native": "github:mendix/mendix-native#moo/MOO-2500-rn-0.88", + "react-native": "0.88.0-rc.3", + "react-native-blob-util": "0.24.11", "react-native-bootsplash": "6.3.12", "react-native-device-info": "15.0.2", "react-native-edge-to-edge": "1.8.1", - "react-native-gesture-handler": "2.31.2", + "react-native-gesture-handler": "2.33.0", "react-native-image-picker": "7.2.3", "react-native-localize": "3.7.0", "react-native-notify-kit": "10.4.7", "react-native-pager-view": "6.9.1", "react-native-permissions": "5.5.1", - "react-native-reanimated": "4.3.1", - "react-native-safe-area-context": "5.7.0", - "react-native-screens": "4.24.0", + "react-native-reanimated": "4.7.1", + "react-native-safe-area-context": "5.8.1", + "react-native-screens": "4.28.0", "react-native-svg": "15.15.4", "react-native-tab-view": "4.3.0", "react-native-track-player": "4.1.2", "react-native-video": "6.19.2", - "react-native-worklets": "0.8.3", + "react-native-worklets": "0.13.0", "semver": "7.7.4" }, "devDependencies": { "@babel/runtime": "^7.28.4", "@mendix/native-mobile-toolkit": "latest", - "@react-native/babel-preset": "0.84.1", - "@react-native/metro-config": "0.84.1", + "@react-native/babel-preset": "0.88.0-rc.3", + "@react-native/metro-config": "0.88.0-rc.3", "jetifier": "^1.6.8", "patch-package": "^8.0.1" }, @@ -503,57 +503,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -599,45 +548,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", - "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", @@ -653,58 +563,11 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -717,6 +580,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -725,36 +589,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", @@ -1675,167 +1509,6 @@ "node": ">=12" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", - "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/create-cache-key-function": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", - "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -1848,41 +1521,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", @@ -1978,9 +1616,9 @@ } }, "node_modules/@nodable/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-3.1.0.tgz", + "integrity": "sha512-LsS/DjHr+uDM647Gru/cA8+J3a3HfhttwCKLyuoyN7yXTFCxKBtSgMQBvrW9yNPa2/zDRUNuGPaH5QUFoa4arQ==", "funding": [ { "type": "github", @@ -2025,17 +1663,23 @@ } }, "node_modules/@op-engineering/op-sqlite": { - "version": "15.2.5", - "resolved": "https://registry.npmjs.org/@op-engineering/op-sqlite/-/op-sqlite-15.2.5.tgz", - "integrity": "sha512-Vmgwt0AzY7qoge3X6EONhsb5NlM2yoQUF0/lseUWBelfc9BUili7/DFsFsS73cvtYWlwPpqeTGOoce5mzHozBw==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@op-engineering/op-sqlite/-/op-sqlite-18.2.5.tgz", + "integrity": "sha512-OLmcM0SQLapP1p5Q6Ck5P+V3N6RsAhBozIG07PbQr+8wgB0gYoFgFjuWZK0JvNBY+UYgYPxkOQDd4rk4naWNGw==", "license": "MIT", "workspaces": [ "example", "node" ], "peerDependencies": { + "@sqlite.org/sqlite-wasm": "*", "react": "*", "react-native": "*" + }, + "peerDependenciesMeta": { + "@sqlite.org/sqlite-wasm": { + "optional": true + } } }, "node_modules/@pkgjs/parseargs": { @@ -2073,17 +1717,17 @@ } }, "node_modules/@react-native-community/cli": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-20.1.3.tgz", - "integrity": "sha512-sLo8cu9JyFNfuuF1C+8NJ4DHE/PEFaXGd4enkcxi/OJjGG8+sOQrdjNQ4i+cVh/2c+ah1mEMwsYjc3z0+/MqSg==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-20.2.0.tgz", + "integrity": "sha512-5RZKkBeUFC4hhrzySzxWmRJwXBTc2PE3L6QUgvnJk3QDxNYMY7aGuI8Gr9eZRS1DbiY10IPWqpJfqSIplzVG6A==", "license": "MIT", "dependencies": { - "@react-native-community/cli-clean": "20.1.3", - "@react-native-community/cli-config": "20.1.3", - "@react-native-community/cli-doctor": "20.1.3", - "@react-native-community/cli-server-api": "20.1.3", - "@react-native-community/cli-tools": "20.1.3", - "@react-native-community/cli-types": "20.1.3", + "@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", @@ -2102,24 +1746,24 @@ } }, "node_modules/@react-native-community/cli-clean": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-20.1.3.tgz", - "integrity": "sha512-sFLdLzapfC0scjgzBJJWYDY2RhHPjuuPkA5r6q0gc/UQH/izXpMpLrhh1DW84cMDraNACK0U62tU7ebNaQ1LMQ==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-20.2.0.tgz", + "integrity": "sha512-krqbhFiwHN8l5wZ2XTcrNq9N+DqDWHxW8RK0bIcrK0O+fMvjYi9e/1Pnx2W0CTotOVcZpHzUbgZ4TQVF231Skw==", "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "20.1.3", + "@react-native-community/cli-tools": "20.2.0", "execa": "^5.0.0", "fast-glob": "^3.3.2", "picocolors": "^1.1.1" } }, "node_modules/@react-native-community/cli-config": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-20.1.3.tgz", - "integrity": "sha512-n73nW0cG92oNF0r994pPqm0DjAShOm3F8LSffDYhJqNAno+h/csmv/37iL4NtSpmKIO8xqsG3uVTXz9X/hzNaQ==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-20.2.0.tgz", + "integrity": "sha512-GF5FxgDfOSLPi/bSiE/xvOGELwzV2GLQnDED+7ArbPi01W1Vu+hD/m+J+bwX34Pocpo767eXAVxc2h9WFUTUfQ==", "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "20.1.3", + "@react-native-community/cli-tools": "20.2.0", "cosmiconfig": "^9.0.0", "deepmerge": "^4.3.0", "fast-glob": "^3.3.2", @@ -2128,40 +1772,40 @@ } }, "node_modules/@react-native-community/cli-config-android": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-android/-/cli-config-android-20.1.3.tgz", - "integrity": "sha512-DNHDP+OWLyhKShGciBqPcxhxfp1Z/7GQcb4F+TGyCeKQAr+JdnUjRXN3X+YCU/v+g2kbYYyRJKlGabzkVvdrAw==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-android/-/cli-config-android-20.2.0.tgz", + "integrity": "sha512-lASofUNBVK0Pq3VEJ1JrCfAW94Rnk38DikauycRcoHl0hWjHIN3XhsN20dEq+CaIJoq37aCg5NSSSpmkET+ShA==", "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "20.1.3", + "@react-native-community/cli-tools": "20.2.0", "fast-glob": "^3.3.2", "fast-xml-parser": "^5.3.6", "picocolors": "^1.1.1" } }, "node_modules/@react-native-community/cli-config-apple": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-apple/-/cli-config-apple-20.1.3.tgz", - "integrity": "sha512-QX9B83nAfCPs0KiaYz61kAEHWr9sttooxzRzNdQwvZTwnsIpvWOT9GvMMj/19OeXiQzMJBzZX0Pgt6+spiUsDQ==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-apple/-/cli-config-apple-20.2.0.tgz", + "integrity": "sha512-oohr6BV2riWJ5PYjayi1u52bG3H95MwKPkJCZo9pnOlYTjifZQVkMxZ8VTuk392efh0bijVTYfxH8iJPi97SIQ==", "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "20.1.3", + "@react-native-community/cli-tools": "20.2.0", "execa": "^5.0.0", "fast-glob": "^3.3.2", "picocolors": "^1.1.1" } }, "node_modules/@react-native-community/cli-doctor": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-20.1.3.tgz", - "integrity": "sha512-EI+mAPWn255/WZ4CQohy1I049yiaxVr41C3BeQ2BCyhxODIDR8XRsLzYb1t9MfqK/C3ZncUN2mPSRXFeKPPI1w==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-20.2.0.tgz", + "integrity": "sha512-eZjlwmjPoBXgyD6nV5oDDocL1VH5UW4LxZcMAqyN3rQw5vq3CeJikFpNedKTtSl3P6JizIkInyIHpfrW+9qfJA==", "license": "MIT", "dependencies": { - "@react-native-community/cli-config": "20.1.3", - "@react-native-community/cli-platform-android": "20.1.3", - "@react-native-community/cli-platform-apple": "20.1.3", - "@react-native-community/cli-platform-ios": "20.1.3", - "@react-native-community/cli-tools": "20.1.3", + "@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", @@ -2175,47 +1819,47 @@ } }, "node_modules/@react-native-community/cli-platform-android": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-20.1.3.tgz", - "integrity": "sha512-bzB9ELPOISuqgtDZXFPQlkuxx1YFkNx3cNgslc5ElCrk+5LeCLQLIBh/dmIuK8rwUrPcrramjeBj++Noc+TaAA==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-20.2.0.tgz", + "integrity": "sha512-fRglzcf/Yq5lnIkqdA8uf1GvlG18x3Dm48Yvo+l7KiWgh/SVtfVhfvalrtX5rmx+KeJkDA534bGoPvi5+ruWjw==", "license": "MIT", "dependencies": { - "@react-native-community/cli-config-android": "20.1.3", - "@react-native-community/cli-tools": "20.1.3", + "@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" } }, "node_modules/@react-native-community/cli-platform-apple": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-20.1.3.tgz", - "integrity": "sha512-XJ+DqAD4hkplWVXK5AMgN7pP9+4yRSe5KfZ/b42+ofkDBI55ALlUmX+9HWE3fMuRjcotTCoNZqX2ov97cFDXpQ==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-20.2.0.tgz", + "integrity": "sha512-jkEPLAd8C/ZRu39a3nhxwSXe0iisUiJC808GExnrnTcViLtg3sad2ciQ/HjjvbdsPCS9sT+Jr7xh3MzBsPojsQ==", "license": "MIT", "dependencies": { - "@react-native-community/cli-config-apple": "20.1.3", - "@react-native-community/cli-tools": "20.1.3", + "@react-native-community/cli-config-apple": "20.2.0", + "@react-native-community/cli-tools": "20.2.0", "execa": "^5.0.0", "fast-xml-parser": "^5.3.6", "picocolors": "^1.1.1" } }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-20.1.3.tgz", - "integrity": "sha512-2qL48SINotuHbZO73cgqSwqd/OWNx0xTbFSdujhpogV4p8BNwYYypfjh4vJY5qJEB5PxuoVkMXT+aCADpg9nBg==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-20.2.0.tgz", + "integrity": "sha512-bCKlBt2HoD7WTl/HX60+4HFhR1lKY64Y9MPWu7yWQwOCEqYRMi6MkRxLimiONj9M2/lNf0z9BPHDzdDe5HM2ag==", "license": "MIT", "dependencies": { - "@react-native-community/cli-platform-apple": "20.1.3" + "@react-native-community/cli-platform-apple": "20.2.0" } }, "node_modules/@react-native-community/cli-server-api": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-20.1.3.tgz", - "integrity": "sha512-hsNsdUKZDd2T99OuNuiXz4VuvLa1UN0zcxefmPjXQgI0byrBLzzDr+o7p03sKuODSzKi2h+BMnUxiS07HACQLA==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-20.2.0.tgz", + "integrity": "sha512-AI1fsl+6LNuOoDcdWsnF3s9ozqminGCUlbFcrgdZIJWyOuFBeQclNydI22VO3vWaO4dHQkfVa3Zo10AncWQvwA==", "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "20.1.3", + "@react-native-community/cli-tools": "20.2.0", "body-parser": "^2.2.2", "compression": "^1.7.1", "connect": "^3.6.5", @@ -2224,14 +1868,13 @@ "open": "^6.2.0", "pretty-format": "^29.7.0", "serve-static": "^1.13.1", - "strict-url-sanitise": "0.0.1", "ws": "^6.2.3" } }, "node_modules/@react-native-community/cli-tools": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-20.1.3.tgz", - "integrity": "sha512-EAn0vPCMxtHhfWk2UwLmSUfPfLUnFgC7NjiVJVTKJyVk5qGnkPfoT8te/1IUXFTysUB0F0RIi+NgDB4usFOLeA==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-20.2.0.tgz", + "integrity": "sha512-A5W2nqlTidPzGyXzS57jvHsMpQd8iOGSjePj4H318uMbhIdeIHQ5e59fNbdHahS62ISs+2p9s78sVHMbGVa1bg==", "license": "MIT", "dependencies": { "@vscode/sudo-prompt": "^9.0.0", @@ -2247,9 +1890,9 @@ } }, "node_modules/@react-native-community/cli-types": { - "version": "20.1.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-20.1.3.tgz", - "integrity": "sha512-IdAcegf0pH1hVraxWTG1ACLkYC0LDQfqtaEf42ESyLIF3Xap70JzL/9tAlxw7lSCPZPFWhrcgU0TBc4SkC/ecw==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-20.2.0.tgz", + "integrity": "sha512-K60zY/ly8G9rGJQzZ+bFRyLEckAUzyF8Fu9a2Kw6JipCrOl7SiVRBVqjvOr/XnCRKuOpH8i9y7RVg07wkSGRBQ==", "license": "MIT", "dependencies": { "joi": "^17.2.1" @@ -2292,12 +1935,12 @@ } }, "node_modules/@react-native-vector-icons/common": { - "version": "12.4.2", - "resolved": "https://registry.npmjs.org/@react-native-vector-icons/common/-/common-12.4.2.tgz", - "integrity": "sha512-15ViuwfYdkQ79VE6PiQjsGyQcEvhv4lgguhIeQU4pXLXRAFhl89Q8FdKDrGZh7+a/8WMqT1v2+JtghdoGKDE6Q==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@react-native-vector-icons/common/-/common-13.0.3.tgz", + "integrity": "sha512-Ty47I/INab3IjPonvo2xlRN1pB/sG5/jCuq49/Vq8Q4MchQ6jSh8vdq5KVcJer3XIyc0DJyC6fKVxN2CGx78YQ==", "license": "MIT", "dependencies": { - "find-up": "^7.0.0", + "find-up": "^8.0.0", "picocolors": "^1.1.1", "plist": "^3.1.0" }, @@ -2308,43 +1951,50 @@ "node": ">=20.19.0 <21.0.0 || >=22.0.0" }, "peerDependencies": { - "@react-native-vector-icons/get-image": "^12.3.0", + "@react-native-vector-icons/get-image": "^13.0.1", + "@react-native/assets-registry": "*", + "expo-font": "*", "react": "*", "react-native": "*" }, "peerDependenciesMeta": { "@react-native-vector-icons/get-image": { "optional": true + }, + "@react-native/assets-registry": { + "optional": true + }, + "expo-font": { + "optional": true } } }, "node_modules/@react-native-vector-icons/common/node_modules/find-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", - "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-8.0.0.tgz", + "integrity": "sha512-JGG8pvDi2C+JxidYdIwQDyS/CgcrIdh18cvgxcBge3wSHRQOrooMD3GlFBcmMJAN9M42SAZjDp5zv1dglJjwww==", "license": "MIT", "dependencies": { - "locate-path": "^7.2.0", - "path-exists": "^5.0.0", - "unicorn-magic": "^0.1.0" + "locate-path": "^8.0.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@react-native-vector-icons/common/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-8.0.0.tgz", + "integrity": "sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==", "license": "MIT", "dependencies": { "p-locate": "^6.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2380,15 +2030,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-native-vector-icons/common/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, "node_modules/@react-native-vector-icons/common/node_modules/yocto-queue": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", @@ -2402,9 +2043,9 @@ } }, "node_modules/@react-native-vector-icons/get-image": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-vector-icons/get-image/-/get-image-12.3.0.tgz", - "integrity": "sha512-ch9mwFWePde7AR0DfhcuNDeMH7N/vLPvoiJbqm28oeJPnCS6XA98F5GPwpMO9IE/omTv2RYwBTmhMA+8Wlwv/A==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@react-native-vector-icons/get-image/-/get-image-13.0.1.tgz", + "integrity": "sha512-4JuMLcEzA5SpSNEGXbywy79dqksTyzttB9KOqtpLK+c2dXnuf1oiDcNJ+Tmfibsj0MfHZbt58Hp9K9uz8S7pRw==", "license": "MIT", "peerDependencies": { "react": "*", @@ -2412,48 +2053,54 @@ } }, "node_modules/@react-native-vector-icons/material-icons": { - "version": "12.4.1", - "resolved": "https://registry.npmjs.org/@react-native-vector-icons/material-icons/-/material-icons-12.4.1.tgz", - "integrity": "sha512-xUgYPEptDJ955AJcTvIog68jZTav88wX+/zfyuTHbgZFj3xu907DnKU3L/asGqbZztwM6tiAOpNKeySM5PEoqw==", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/@react-native-vector-icons/material-icons/-/material-icons-13.1.4.tgz", + "integrity": "sha512-qSvjHqUYULeIUvRum7C6MIb1yWOEmrS/13/IHHE59vMX0SgS6QCxhwc89Lu2P1CkUqfUJzkIOU16BK9WuIEAqQ==", "license": "MIT", "dependencies": { - "@react-native-vector-icons/common": "^12.4.0" + "@react-native-vector-icons/common": "^13.0.3" }, "engines": { "node": ">= 18.0.0" }, "peerDependencies": { + "@expo/config-plugins": ">=10.0.0", "react": "*", "react-native": "*" + }, + "peerDependenciesMeta": { + "@expo/config-plugins": { + "optional": true + } } }, - "node_modules/@react-native/assets-registry": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.84.1.tgz", - "integrity": "sha512-lAJ6PDZv95FdT9s9uhc9ivhikW1Zwh4j9XdXM7J2l4oUA3t37qfoBmTSDLuPyE3Bi+Xtwa11hJm0BUTT2sc/gg==", + "node_modules/@react-native/asset-utils": { + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/asset-utils/-/asset-utils-0.88.0-rc.3.tgz", + "integrity": "sha512-G3P/3lF1bvZoT4Za87UiVJCpTNNF6c07sTNINXYiSxXDpPiM8piisgqdgueyy90cKH6ReL28y2S8glRiG+jkeQ==", "license": "MIT", "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.84.1.tgz", - "integrity": "sha512-vorvcvptGxtK0qTDCFQb+W3CU6oIhzcX5dduetWRBoAhXdthEQM0MQnF+GTXoXL8/luffKgy7PlZRG/WeI/oRQ==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.88.0-rc.3.tgz", + "integrity": "sha512-v68EZUjkcs2ZLL1ayA2aQ79imy7BGlc6uAteKMDhA8vf0QKT92YHkSFMGA1+df38d3/v3R+AB6X6XFhixQ1EEQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.3", - "@react-native/codegen": "0.84.1" + "@babel/traverse": "^7.29.0", + "@react-native/codegen": "0.88.0-rc.3" }, "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/@react-native/babel-preset": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.84.1.tgz", - "integrity": "sha512-3GpmCKk21f4oe32bKIdmkdn+WydvhhZL+1nsoFBGi30Qrq9vL16giKu31OcnWshYz139x+mVAvCyoyzgn8RXSw==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.88.0-rc.3.tgz", + "integrity": "sha512-xkAmd1gSQWjl5QnY0YFuMhjykdABljvuUY0McQHHLf4GJHEcpwuRPf3kM5lDq8p/y+Ui2iAbGgQsGExFY6FV0w==", "dev": true, "license": "MIT", "dependencies": { @@ -2486,59 +2133,59 @@ "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@react-native/babel-plugin-codegen": "0.84.1", - "babel-plugin-syntax-hermes-parser": "0.32.0", + "@react-native/babel-plugin-codegen": "0.88.0-rc.3", "babel-plugin-transform-flow-enums": "^0.0.2", + "flow-parser": "0.327.0", "react-refresh": "^0.14.0" }, "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" }, "peerDependencies": { "@babel/core": "*" } }, "node_modules/@react-native/codegen": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.84.1.tgz", - "integrity": "sha512-n1RIU0QAavgCg1uC5+s53arL7/mpM+16IBhJ3nCFSd/iK5tUmCwxQDcIDC703fuXfpub/ZygeSjVN8bcOWn0gA==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.88.0-rc.3.tgz", + "integrity": "sha512-fjDCsaVPTlrYHelSogo/J9RbeeJ+dfokyw57VdtFa3HMWssCSqBmgnSoKKexQAO6U4fppAm91550DC8+02pL4A==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", - "@babel/parser": "^7.25.3", - "hermes-parser": "0.32.0", + "@babel/parser": "^7.29.0", + "flow-parser": "0.327.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "tinyglobby": "^0.2.15", "yargs": "^17.6.2" }, "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" }, "peerDependencies": { "@babel/core": "*" } }, "node_modules/@react-native/community-cli-plugin": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.84.1.tgz", - "integrity": "sha512-f6a+mJEJ6Joxlt/050TqYUr7uRRbeKnz8lnpL7JajhpsgZLEbkJRjH8HY5QiLcRdUwWFtizml4V+vcO3P4RxoQ==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.88.0-rc.3.tgz", + "integrity": "sha512-wfchdOOL4EM12jQuDY75uG9/pJ1dMckugJmAkLsyHY2akhjImdn7rq0Ea7q2nLK0talq56jTklpXQZVoVvyrAA==", "license": "MIT", "dependencies": { - "@react-native/dev-middleware": "0.84.1", + "@react-native/asset-utils": "0.88.0-rc.3", + "@react-native/dev-middleware": "0.88.0-rc.3", + "commander": "^12.0.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.1", "semver": "^7.1.3" }, "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" }, "peerDependencies": { "@react-native-community/cli": "*", - "@react-native/metro-config": "*" + "@react-native/metro-config": "0.88.0-rc.3" }, "peerDependenciesMeta": { "@react-native-community/cli": { @@ -2549,19 +2196,28 @@ } } }, + "node_modules/@react-native/community-cli-plugin/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@react-native/debugger-frontend": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.84.1.tgz", - "integrity": "sha512-rUU/Pyh3R5zT0WkVgB+yA6VwOp7HM5Hz4NYE97ajFS07OUIcv8JzBL3MXVdSSjLfldfqOuPEuKUaZcAOwPgabw==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.88.0-rc.3.tgz", + "integrity": "sha512-tv3DAqm5oTjQ9sYkr99UMKqc+VfoCZo13ZobzKD7oDRl7b+RT9wtyUiQrTuRQLrmadJ+TfU11G8xnyVmjHC/Sw==", "license": "BSD-3-Clause", "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/@react-native/debugger-shell": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/debugger-shell/-/debugger-shell-0.84.1.tgz", - "integrity": "sha512-LIGhh4q4ette3yW5OzmukNMYwmINYrRGDZqKyTYc/VZyNpblZPw72coXVHXdfpPT6+YlxHqXzn3UjFZpNODGCQ==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/debugger-shell/-/debugger-shell-0.88.0-rc.3.tgz", + "integrity": "sha512-ECf/bl4c/eGd77tNQnCizoLqYiOTyOQ1pU7SzVGI4Nql+aZiNR+lGaz3CJB1ve4+g+00hXTyiBjPjOmfNfdEYg==", "license": "MIT", "dependencies": { "cross-spawn": "^7.0.6", @@ -2569,30 +2225,28 @@ "fb-dotslash": "0.5.8" }, "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/@react-native/dev-middleware": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.84.1.tgz", - "integrity": "sha512-Z83ra+Gk6ElAhH3XRrv3vwbwCPTb04sPPlNpotxcFZb5LtRQZwT91ZQEXw3GOJCVIFp9EQ/gj8AQbVvtHKOUlQ==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.88.0-rc.3.tgz", + "integrity": "sha512-lM7ZJ/SZJAEHtN+TUlA4onk2PxRAIFSM/9v6bxtk6jkeXQyNIxFhXkqAzkI2vXV2ImtRv7XXjs4pwKkZ1jxJxg==", "license": "MIT", "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.84.1", - "@react-native/debugger-shell": "0.84.1", - "chrome-launcher": "^0.15.2", - "chromium-edge-launcher": "^0.2.0", + "@react-native/debugger-frontend": "0.88.0-rc.3", + "@react-native/debugger-shell": "0.88.0-rc.3", "connect": "^3.6.5", "debug": "^4.4.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "open": "^7.0.3", + "open": "^8.4.2", "serve-static": "^1.16.2", "ws": "^7.5.10" }, "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/@react-native/dev-middleware/node_modules/is-wsl": { @@ -2608,25 +2262,26 @@ } }, "node_modules/@react-native/dev-middleware/node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "license": "MIT", "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@react-native/dev-middleware/node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "version": "7.5.13", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.13.tgz", + "integrity": "sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA==", "license": "MIT", "engines": { "node": ">=8.3.0" @@ -2645,80 +2300,81 @@ } }, "node_modules/@react-native/gradle-plugin": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.84.1.tgz", - "integrity": "sha512-7uVlPBE3uluRNRX4MW7PUJIO1LDBTpAqStKHU7LHH+GRrdZbHsWtOEAX8PiY4GFfBEvG8hEjiuTOqAxMjV+hDg==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.88.0-rc.3.tgz", + "integrity": "sha512-mH7obkxTQ2s/7hANYIaGmZWXNgVIobbZNuV1YpTvWRZrwtLsl57scHevP87c6+j9RDYjzMSLIfHvfqDFo7cqoA==", "license": "MIT", "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/@react-native/js-polyfills": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.84.1.tgz", - "integrity": "sha512-UsTe2AbUugsfyI7XIHMQq4E7xeC8a6GrYwuK+NohMMMJMxmyM3JkzIk+GB9e2il6ScEQNMJNaj+q+i5za8itxQ==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.88.0-rc.3.tgz", + "integrity": "sha512-KONuwN2lvrLopOWVgLTFNwx1cwdlS5NZbmR+fQY5r6RvkHHvzbN4JqnfP2oQB0IGLxjJZPN0ljfhhPiCZ7YMdw==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/@react-native/metro-babel-transformer": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.84.1.tgz", - "integrity": "sha512-NswINguTz0eg1Dc0oGO/1dejXSr6iQaz8/NnCRn5HJdA3dGfqadS7zlYv0YjiWpgKgcW6uENaIEgJOQww0KSpw==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.88.0-rc.3.tgz", + "integrity": "sha512-ekhRzsHa13fDZYTSfq5SWS88wcc+2Magy3g2oG0fup7beFrbpLxGzIm1bpBNg892htwvWHtLDuV4CUvFKka/EQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", - "@react-native/babel-preset": "0.84.1", - "hermes-parser": "0.32.0", + "@react-native/babel-preset": "0.88.0-rc.3", + "flow-parser": "0.327.0", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" }, "peerDependencies": { "@babel/core": "*" } }, "node_modules/@react-native/metro-config": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.84.1.tgz", - "integrity": "sha512-KlRawK4aXxRLlR3HYVfZKhfQp7sejQefQ/LttUWUkErhKO0AFt+yznoSLq7xwIrH9K3A3YwImHuFVtUtuDmurA==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.88.0-rc.3.tgz", + "integrity": "sha512-nyJSwizwYxZtwHAaL7PFJ+33FN9Ho9q/5h931VtLTQDr6OxrWu957K2il9Yzd/k5wAURpv+DDB3Oagl3hl2HhQ==", "dev": true, "license": "MIT", "dependencies": { - "@react-native/js-polyfills": "0.84.1", - "@react-native/metro-babel-transformer": "0.84.1", - "metro-config": "^0.83.3", - "metro-runtime": "^0.83.3" + "@react-native/js-polyfills": "0.88.0-rc.3", + "@react-native/metro-babel-transformer": "0.88.0-rc.3", + "metro-config": "^0.87.1", + "metro-runtime": "^0.87.1" }, "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/@react-native/normalize-colors": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.84.1.tgz", - "integrity": "sha512-/UPaQ4jl95soXnLDEJ6Cs6lnRXhwbxtT4KbZz+AFDees7prMV2NOLcHfCnzmTabf5Y3oxENMVBL666n4GMLcTA==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.88.0-rc.3.tgz", + "integrity": "sha512-el4NZ16vfh2quo56hB5G8cD8Bbk8N2+hamMfeaSWE5XCQC4vyTWGrE4FORjTdLAjv4Uh8LMuX87iMgwt2adArg==", "license": "MIT" }, "node_modules/@react-native/virtualized-lists": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.84.1.tgz", - "integrity": "sha512-sJoDunzhci8ZsqxlUiKoLut4xQeQcmbIgvDHGQKeBz6uEq9HgU+hCWOijMRr6sLP0slQVfBAza34Rq7IbXZZOA==", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.88.0-rc.3.tgz", + "integrity": "sha512-0vI4q0kjrS3HPn5pg5IXkVUAmNBS67ZqKzhaAKfuxvQ3Xrr5Q5LOH7u6DphTSQ+Dy2GYeQUxSN1XqCUbpbcxxg==", "license": "MIT", "dependencies": { "invariant": "^2.2.4", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" }, "peerDependencies": { "@types/react": "^19.2.0", "react": "*", - "react-native": "*" + "react-native": "0.88.0-rc.3" }, "peerDependenciesMeta": { "@types/react": { @@ -2727,16 +2383,14 @@ } }, "node_modules/@react-navigation/core": { - "version": "7.17.4", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.17.4.tgz", - "integrity": "sha512-Rv9E2oNNQEkPGpmu9q+vJwGJRSQR6LBg5L+Yo1QHjtwGbHUbjkIKOdYymDZoZYgNzX2OD4rAIlfuzbDKa3cCeA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.23.0.tgz", + "integrity": "sha512-eqj4kcxdFtaoRih4DxLZnPJt/u8aO/K8I4rwpiTx8qIA+TO3/2mScw3+JOE+FQHt2r++Yib7q0nyp0sNAtBcpQ==", "license": "MIT", "dependencies": { - "@react-navigation/routers": "^7.5.5", + "@react-navigation/routers": "^7.6.4", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", - "nanoid": "^3.3.11", - "query-string": "^7.1.3", "react-is": "^19.1.0", "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" @@ -2746,15 +2400,16 @@ } }, "node_modules/@react-navigation/native": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.2.4.tgz", - "integrity": "sha512-eWC2D3JjhYLId2fVTZhhCiUpWIaPhO9XyEb7Wq8ElmOHyIODlbOzgZ0rKia02OIsDKr9BzZl2sK1dL70yMxDaw==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.5.0.tgz", + "integrity": "sha512-D4fb1+HWv54re3XgU615pgtdHJa5OsQtypKEbqX10Eopj39tTj4RV/ww9mdzn4X0ZkiHfVos/ysAe5428P0uVA==", "license": "MIT", "dependencies": { - "@react-navigation/core": "^7.17.4", + "@react-navigation/core": "^7.23.0", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", + "standard-navigation": "^0.0.8", "use-latest-callback": "^0.2.4" }, "peerDependencies": { @@ -2763,9 +2418,9 @@ } }, "node_modules/@react-navigation/routers": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.5.5.tgz", - "integrity": "sha512-9/hhMte12Kgu+pMnLfA4EWJ0OQmIEAMVMX06FPH2yGkEQSQ3JhhCN/GkcRikzQhtEi97VYYQA15umptBUShcOQ==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.6.4.tgz", + "integrity": "sha512-GI7eJm8/KsZUQaYcXvEExikKurRZRgEsSzyZ7faENfi65yqJBCXjDMwyN1pF6pNW1MoLH1ErDwDivFxY6BzD3w==", "license": "MIT", "dependencies": { "nanoid": "^3.3.11" @@ -2804,29 +2459,11 @@ "license": "BSD-3-Clause" }, "node_modules/@sinclair/typebox": { - "version": "0.27.10", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", - "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "version": "0.27.12", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.12.tgz", + "integrity": "sha512-hhyNJ+nbR6ZR7pToHvllEFun9TL0sbL+tk/ON75lo+Xas054uez98qRbsuNt7MBCyZKK4+8Yli/OAGZhmfBZ/g==", "license": "MIT" }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, "node_modules/@so-ric/colorspace": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz", @@ -2888,56 +2525,6 @@ "node": ">=18" } }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", - "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/hammerjs": { "version": "2.0.46", "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.46.tgz", @@ -2969,12 +2556,12 @@ } }, "node_modules/@types/node": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.7.0.tgz", - "integrity": "sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg==", + "version": "26.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.4.tgz", + "integrity": "sha512-ldVPDCzj7fsaGZrLB0NuHuTvJcsNasysBAqMolr/cgxrLd1xbqxIr3XJiPnHHJUCxj5sNF1vnRj9aWnrVh5Jcg==", "license": "MIT", "dependencies": { - "undici-types": "~7.21.0" + "undici-types": "~8.9.0" } }, "node_modules/@types/react": { @@ -2995,12 +2582,6 @@ "@types/react": "*" } }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "license": "MIT" - }, "node_modules/@types/triple-beam": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", @@ -3045,18 +2626,6 @@ "dev": true, "license": "BSD-2-Clause" }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -3080,9 +2649,9 @@ } }, "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.19.0.tgz", + "integrity": "sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -3141,18 +2710,17 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } + "node_modules/anynum": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/anynum/-/anynum-1.0.1.tgz", + "integrity": "sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" }, "node_modules/appdirsjs": { "version": "1.2.7", @@ -3208,67 +2776,6 @@ } } }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "license": "MIT", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.17", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", @@ -3311,15 +2818,6 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-syntax-hermes-parser": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.32.0.tgz", - "integrity": "sha512-m5HthL++AbyeEA2FcdwOLfVFvWYECOBObLHNqdR8ceY4TsEdn4LdX2oTvbB2QJSSElE2AWA/b2MXZ/PF/CqLZg==", - "license": "MIT", - "dependencies": { - "hermes-parser": "0.32.0" - } - }, "node_modules/babel-plugin-transform-flow-enums": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", @@ -3330,57 +2828,6 @@ "@babel/plugin-syntax-flow": "^7.12.1" } }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", - "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, "node_modules/bare-events": { "version": "2.8.2", "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", @@ -3473,9 +2920,10 @@ } }, "node_modules/base-64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", - "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -3530,20 +2978,20 @@ } }, "node_modules/body-parser": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", - "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", + "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", "license": "MIT", "dependencies": { "bytes": "^3.1.2", - "content-type": "^1.0.5", + "content-type": "^2.0.0", "debug": "^4.4.3", - "http-errors": "^2.0.0", - "iconv-lite": "^0.7.0", + "http-errors": "^2.0.1", + "iconv-lite": "^0.7.2", "on-finished": "^2.4.1", - "qs": "^6.14.1", - "raw-body": "^3.0.1", - "type-is": "^2.0.1" + "qs": "^6.15.2", + "raw-body": "^3.0.2", + "type-is": "^2.1.0" }, "engines": { "node": ">=18" @@ -3580,18 +3028,6 @@ "node": ">= 5.10.0" } }, - "node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", @@ -3835,68 +3271,21 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "license": "ISC" }, - "node_modules/chrome-launcher": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", - "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", - "license": "Apache-2.0", - "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" - }, - "bin": { - "print-chrome-path": "bin/print-chrome-path.js" - }, - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/chrome-launcher/node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chromium-edge-launcher": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", - "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==", - "license": "Apache-2.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" - } - }, - "node_modules/chromium-edge-launcher/node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "license": "MIT" - }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -4031,14 +3420,15 @@ } }, "node_modules/compression": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", - "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.2.tgz", + "integrity": "sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ==", "license": "MIT", "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", + "destroy": "1.2.0", "negotiator": "~0.6.4", "on-headers": "~1.1.0", "safe-buffer": "5.2.1", @@ -4046,6 +3436,10 @@ }, "engines": { "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/compression/node_modules/debug": { @@ -4063,12 +3457,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", @@ -4100,12 +3488,16 @@ "license": "MIT" }, "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/convert-source-map": { @@ -4129,9 +3521,9 @@ } }, "node_modules/cosmiconfig": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", - "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", + "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==", "license": "MIT", "dependencies": { "env-paths": "^2.2.1", @@ -4226,9 +3618,9 @@ "license": "MIT" }, "node_modules/dayjs": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz", - "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==", + "version": "1.11.23", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.23.tgz", + "integrity": "sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==", "license": "MIT" }, "node_modules/debug": { @@ -4257,15 +3649,6 @@ "node": ">=0.10.0" } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -4329,6 +3712,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -4610,35 +4002,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "license": "MIT", "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "engines": { - "node": ">=6" + "node": ">= 0.6" } }, "node_modules/events-universal": { @@ -4716,16 +4086,10 @@ "node": ">=8.6.0" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, "node_modules/fast-xml-builder": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.2.0.tgz", - "integrity": "sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.3.1.tgz", + "integrity": "sha512-pIM/1n3ntFXKYrUZwW7QCK0gAW7XY+wzj1YMIV3tLDvPj/V+zTGJK5e3/4WJfwj0qWw2ElNXiTixda/R+3YSug==", "funding": [ { "type": "github", @@ -4734,14 +4098,14 @@ ], "license": "MIT", "dependencies": { - "path-expression-matcher": "^1.5.0", - "xml-naming": "^0.1.0" + "path-expression-matcher": "^1.6.2", + "xml-naming": "^0.3.0" } }, "node_modules/fast-xml-parser": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.8.0.tgz", - "integrity": "sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==", + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.11.2.tgz", + "integrity": "sha512-R9iDuNrQYeQut46cn2r2wHKn4HYzVDvDm5J1wW+koZewykv0yuO2HChTYeZtrULyHIDM9cj9TUXloCsueCQUog==", "funding": [ { "type": "github", @@ -4750,11 +4114,12 @@ ], "license": "MIT", "dependencies": { - "@nodable/entities": "^2.1.0", + "@nodable/entities": "^3.0.1", "fast-xml-builder": "^1.2.0", - "path-expression-matcher": "^1.5.0", - "strnum": "^2.3.0", - "xml-naming": "^0.1.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" @@ -4826,15 +4191,6 @@ "node": ">=8" } }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -4912,6 +4268,27 @@ "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==", "license": "MIT" }, + "node_modules/flow-estree": { + "version": "0.327.0", + "resolved": "https://registry.npmjs.org/flow-estree/-/flow-estree-0.327.0.tgz", + "integrity": "sha512-f9vK751YUzD0qaHSpKc5/qQM6gqOlgGS+4ZRqTNcZOpVqn3mC55yEQ6dUG2K1eaVm5FbKkz9CFWe6XNvrkQFQg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/flow-parser": { + "version": "0.327.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.327.0.tgz", + "integrity": "sha512-/MYZ5hXWf5ozpbdfUDmazMgQXviLxWEiRLH3MppEGDdW0itRVqmB5UaU7QX+SBCDNiq+gEesSVn8nlxmPDyDkw==", + "license": "MIT", + "dependencies": { + "flow-estree": "0.327.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/fn.name": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", @@ -4976,26 +4353,6 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -5047,15 +4404,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", @@ -5096,23 +4444,6 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", "license": "MIT" }, - "node_modules/glob": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.1.tgz", - "integrity": "sha512-B7U/vJpE3DkJ5WXTgTpTRN63uV42DseiXXKMwG14LQBXmsdeIoHAPbU/MEo6II0k5ED74uc2ZGTC6MwHFQhF6w==", - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.1.2", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -5199,26 +4530,11 @@ } }, "node_modules/hermes-compiler": { - "version": "250829098.0.9", - "resolved": "https://registry.npmjs.org/hermes-compiler/-/hermes-compiler-250829098.0.9.tgz", - "integrity": "sha512-hZ5O7PDz1vQ99TS7HD3FJ9zVynfU1y+VWId6U1Pldvd8hmAYrNec/XLPYJKD3dLOW6NXak6aAQAuMuSo3ji0tQ==", - "license": "MIT" - }, - "node_modules/hermes-estree": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.32.0.tgz", - "integrity": "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==", + "version": "260318099.0.4", + "resolved": "https://registry.npmjs.org/hermes-compiler/-/hermes-compiler-260318099.0.4.tgz", + "integrity": "sha512-8odcPFkPC82HlqCl0C5QI9mBN4rEAT+IAo55sJhzwKw//K3qZloiv3ex6J2O8CuBbhdmkJozfidNsset2KH25w==", "license": "MIT" }, - "node_modules/hermes-parser": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.32.0.tgz", - "integrity": "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==", - "license": "MIT", - "dependencies": { - "hermes-estree": "0.32.0" - } - }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -5306,9 +4622,9 @@ } }, "node_modules/iconv-lite": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -5341,21 +4657,6 @@ ], "license": "BSD-3-Clause" }, - "node_modules/image-size": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", - "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", - "license": "MIT", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=16.x" - } - }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", @@ -5372,26 +4673,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -5531,6 +4812,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-unsafe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-unsafe/-/is-unsafe-2.0.2.tgz", + "integrity": "sha512-HgbIHPBH0KHHCcjLfGsCvhtPTVxjaAZlXjwdz7/GQC40SjSe4sfQsar8J5VFo8JOSbarkpV0OLG95bbaNd9aAQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, "node_modules/is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", @@ -5553,31 +4846,6 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "license": "ISC" }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -5593,23 +4861,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-get-type": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", @@ -5619,83 +4870,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -5713,21 +4887,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-util/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/jest-validate": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", @@ -5788,9 +4947,9 @@ } }, "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "version": "17.13.8", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.8.tgz", + "integrity": "sha512-iPKOGmiRw1jxf/JOPwxmCcUQAOdF359mdzYiP2DJ+TMX0YK2zjK3D+zYOaGjpumWxOFF/l2xVWjRVK5bGSLdEw==", "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.3.0", @@ -5807,9 +4966,19 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -5938,31 +5107,6 @@ "node": ">=6" } }, - "node_modules/lighthouse-logger": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", - "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", - "license": "Apache-2.0", - "dependencies": { - "debug": "^2.6.9", - "marky": "^1.2.2" - } - }, - "node_modules/lighthouse-logger/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/lighthouse-logger/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -6227,21 +5371,6 @@ "yallist": "^3.0.2" } }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/marky": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", - "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", - "license": "Apache-2.0" - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -6258,12 +5387,16 @@ "license": "CC0-1.0" }, "node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", + "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", "license": "MIT", "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/memoize-one": { @@ -6274,8 +5407,7 @@ }, "node_modules/mendix-native": { "version": "0.6.2", - "resolved": "https://github.com/mendix/mendix-native/releases/download/v0.6.2/mendix-native-v0.6.2.tgz", - "integrity": "sha512-dqQcOAvEMW3c2y8/RdDDnWUgYoF4ZfpIHHOln8VT4y3MZbV2pduz34njdx7VNUHqElXm820j4lwsSp6i3b3A8A==", + "resolved": "git+ssh://git@github.com/mendix/mendix-native.git#f93725be70e2d87626e6f7d6d1b57179aa6235c6", "license": "MIT", "workspaces": [ "example" @@ -6316,9 +5448,9 @@ } }, "node_modules/metro": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.7.tgz", - "integrity": "sha512-SPaPEyvTsTmd0LpT7RaZciQyDw2i/JB7+iY9L5VfBo72+psescFxBqpI1TL9dnL+pmnfkU+l/J1mEEGLeF65EQ==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.87.1.tgz", + "integrity": "sha512-1oyLU9elM7hPAsKIqKooEekwxiuWr27+MZBhUROPhzcbXhMDxK64GPF/hCXwBZVp1F89ODavCrBmJtLx9WtBoQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.0", @@ -6329,30 +5461,28 @@ "@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", + "flow-parser": "0.331.0", "graceful-fs": "^4.2.4", - "hermes-parser": "0.35.0", - "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.83.7", - "metro-cache": "0.83.7", - "metro-cache-key": "0.83.7", - "metro-config": "0.83.7", - "metro-core": "0.83.7", - "metro-file-map": "0.83.7", - "metro-resolver": "0.83.7", - "metro-runtime": "0.83.7", - "metro-source-map": "0.83.7", - "metro-symbolicate": "0.83.7", - "metro-transform-plugins": "0.83.7", - "metro-transform-worker": "0.83.7", + "metro-babel-transformer": "0.87.1", + "metro-cache": "0.87.1", + "metro-cache-key": "0.87.1", + "metro-config": "0.87.1", + "metro-core": "0.87.1", + "metro-file-map": "0.87.1", + "metro-resolver": "0.87.1", + "metro-runtime": "0.87.1", + "metro-source-map": "0.87.1", + "metro-symbolicate": "0.87.1", + "metro-transform-plugins": "0.87.1", + "metro-transform-worker": "0.87.1", "mime-types": "^3.0.1", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", @@ -6365,104 +5495,109 @@ "metro": "src/cli.js" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-babel-transformer": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.7.tgz", - "integrity": "sha512-sBqBkt6kNut/88bv+Ucvm4yqdPetbvAEsHzi3MAgJEifOSYYzX5Z5Kgw3TFOrwf/mHJTOBG2ONlaMHoyfP15TA==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.87.1.tgz", + "integrity": "sha512-orvRIGpb0yK1yMbk5YP3dhVKjmoxUkRB9fdltGJxNppEqus/1tFpNuf9KnGFR3Qjg0izoUrJ4z6WgoBvdkXPrA==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", - "hermes-parser": "0.35.0", - "metro-cache-key": "0.83.7", + "flow-parser": "0.331.0", + "metro-cache-key": "0.87.1", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, - "node_modules/metro-babel-transformer/node_modules/hermes-estree": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.35.0.tgz", - "integrity": "sha512-xVx5Opwy8Oo1I5yGpVRhCvWL/iV3M+ylksSKVNlxxD90cpDpR/AR1jLYqK8HWihm065a6UI3HeyAmYzwS8NOOg==", - "license": "MIT" + "node_modules/metro-babel-transformer/node_modules/flow-estree": { + "version": "0.331.0", + "resolved": "https://registry.npmjs.org/flow-estree/-/flow-estree-0.331.0.tgz", + "integrity": "sha512-FVLYkSL/ITb/QXBEQvNWPjPooRGswuUtGOwrH+puSlMDneNkxy640+FZsk/TfKL+b7Wbw/Fg9FTUv2bMQDpj2w==", + "license": "MIT", + "engines": { + "node": ">=18" + } }, - "node_modules/metro-babel-transformer/node_modules/hermes-parser": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.35.0.tgz", - "integrity": "sha512-9JLjeHxBx8T4CAsydZR49PNZUaix+WpQJwu9p2010lu+7Kwl6D/7wYFFJxoz+aXkaaClp9Zfg6W6/zVlSJORaA==", + "node_modules/metro-babel-transformer/node_modules/flow-parser": { + "version": "0.331.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.331.0.tgz", + "integrity": "sha512-vEZcHIlnKeN8JSVtYFczj8sWJfHIJOkz+YG00O/oul/Bete+t1ZhTi+O6JRRLFYvGW+yJkZ0YgL16iStnbkUqQ==", "license": "MIT", "dependencies": { - "hermes-estree": "0.35.0" + "flow-estree": "0.331.0" + }, + "engines": { + "node": ">=0.4.0" } }, "node_modules/metro-cache": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.7.tgz", - "integrity": "sha512-E9SRePXQ1Zvlj79VcOk57q7VC7rMHMFQ+jhmPHBiq+dJ0bJB5BL87lWZF6oh5X76Cci5tpDuQNaDwwuSCToEeg==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.87.1.tgz", + "integrity": "sha512-juNPaj0Xi5tkLp8imXqvbSnEIijwKG36m7OiFFVJMqEkiURwAjkMFVek3/xpix1+LVQqO7kjVp3PvuvIM61mKQ==", "license": "MIT", "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", "https-proxy-agent": "^7.0.5", - "metro-core": "0.83.7" + "metro-core": "0.87.1" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-cache-key": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.7.tgz", - "integrity": "sha512-W1c2Nmx8MiJTJt+eWhMO08z9VKi3kZOaz99IYGdqeqDgY9j+yZjXl62rUav4Di0heZfh4/n2s722PqRL1OODeg==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.87.1.tgz", + "integrity": "sha512-scqVVPMA2c+RVO12I3wyMDp5xCkRPLsyrcG4Qc3xfU5JR0EW/0sz2tjty+5UjMUtG09uiM1KYQ8HjWg7OQXHtw==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-config": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.7.tgz", - "integrity": "sha512-83mjWFbFOt2GeJ6pFIum5mSnc1uTsZJAtD8o4ej0s4NVsYsA7fB+pHvTfHhFrpeMONaobu2riKavkPei05Er/Q==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.87.1.tgz", + "integrity": "sha512-NmkDlc/qZAdo5gTkVTuO2AKE/khemRKRH5IA+SKfqUBJigI5GqZ5TOXhmEokhlkAqzjt8dyzKhzI6FHvXoXaTQ==", "license": "MIT", "dependencies": { "connect": "^3.6.5", "flow-enums-runtime": "^0.0.6", "jest-validate": "^29.7.0", - "metro": "0.83.7", - "metro-cache": "0.83.7", - "metro-core": "0.83.7", - "metro-runtime": "0.83.7", - "yaml": "^2.6.1" + "metro": "0.87.1", + "metro-cache": "0.87.1", + "metro-core": "0.87.1", + "metro-runtime": "0.87.1" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-core": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.7.tgz", - "integrity": "sha512-6yn3w1wnltT6RQl7p7YES2l95ArC+mWrOssEiH8p5/DDrJS65/szf9LsC9JrBv8c5DdvSY3V3f0GRYg0Ox7hCg==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.87.1.tgz", + "integrity": "sha512-xizzky/4+c/Mkznege8OW05j7bSdM39VPoEps61Se4+hf32UQujmbvLvIE9+UnP6kNEPVomk0Fw8NsBK9iRQmw==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.83.7" + "metro-resolver": "0.87.1" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-file-map": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.7.tgz", - "integrity": "sha512-+j0F1m+FQYVAQ6syf+mwhIPV5GoFQrkInX8bppuc50IzNsZbMrp8R5H/Sx/K2daQ3YEa9F/XwkeZT8gzJfgeCw==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.87.1.tgz", + "integrity": "sha512-9sPuNCojC3pS4vj+ZPY7FXmHGpdJeckXuKXQrDAfJvZc60AF8owRFTkI8XdwlwrmPIB2w++KraK9FMEXvC4wJw==", "license": "MIT", "dependencies": { "debug": "^4.4.0", @@ -6472,80 +5607,79 @@ "invariant": "^2.2.4", "jest-worker": "^29.7.0", "micromatch": "^4.0.4", - "nullthrows": "^1.1.1", - "walker": "^1.0.7" + "nullthrows": "^1.1.1" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-minify-terser": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.7.tgz", - "integrity": "sha512-MfJar2IS4tBRuLb9svwb0Gu5l9BsH+pcRm8eGcEi/wy8MzZinfinh5dFLt2nWkocnulIgtGB5NkFDdbXqMXKhQ==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.87.1.tgz", + "integrity": "sha512-YK4k1oO1wV48hfE+Nbw2rJCnAgeabzrgT/xH5ha5n9gbK4p3HYFC898cERUiyTl9vRh58CNTiXRc88f7y6PfKg==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-resolver": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.7.tgz", - "integrity": "sha512-WSJIENlMcoSsuz66IfBHOkgfp3KJt2UW2TnEHPf1b8pIG2eEXNOVmo2+03A0H17WY2XGXWgxL0CG7FAopqgB1A==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.87.1.tgz", + "integrity": "sha512-FXH/brY69wT6sPxaSW8BhMmDGD/6irmBr/cL4rUi+VWwqR3pbvdcfUOfyjcHucgQ7pe5IW3xJY21eHKLVKNumQ==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-runtime": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.7.tgz", - "integrity": "sha512-9GKkJURaB2iyYoEExKnedzAHzxmKtSi+k0tsZUvMoU27tBZJElchYt7JH/Ai/XzYAI9lCAaV7u5HZSI8J5Z+wQ==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.87.1.tgz", + "integrity": "sha512-kjeuSvInsM6OzBjkCQsWxnkrKZFMKtnkCl38oXWRI9lDGs2L9hGs9Tak9sQYJ9h3gtDujneB7wZio+irgqJKDw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-source-map": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.7.tgz", - "integrity": "sha512-JgA1h7oc1a1jydBe1GhVFsUoMYo3wLPk7oRA32rjlDsq+sP2JLt9x2p2lWbNSxTm/u8NV4VRid3hvEJgcX8tKw==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.87.1.tgz", + "integrity": "sha512-Bqpm0PBGdy53pigIJb4HRF7QxD2pUOdgSmVh/4AWbP635kSCv+Y6ltVxUZgSnzS/QbSmzyCGijmRPlXMj2/qHw==", "license": "MIT", "dependencies": { "@babel/traverse": "^7.29.0", "@babel/types": "^7.29.0", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-symbolicate": "0.83.7", + "metro-symbolicate": "0.87.1", "nullthrows": "^1.1.1", - "ob1": "0.83.7", + "ob1": "0.87.1", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-symbolicate": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.7.tgz", - "integrity": "sha512-g4suyxw20WOHWI680c+Kq4wC/NF+Hx5pRH9afrMp+sMTxqLeKcPR1Xf4wMhsjlbvx7LbIREdke6q928jEjvJWw==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.87.1.tgz", + "integrity": "sha512-rcGvwabrg0lbXGRGRKl14PY3My3+dkno2jZYhdJEuH2DmjTtTkV5bYwgto4JtV/Lbe+sXE6GO1UGg654430uow==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-source-map": "0.83.7", + "metro-source-map": "0.87.1", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "vlq": "^1.0.0" @@ -6554,13 +5688,13 @@ "metro-symbolicate": "src/index.js" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-transform-plugins": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.7.tgz", - "integrity": "sha512-Ss0FpBiZDjX2kwhukMDl5sNdYK8T/06IPqxNE4H6PTlRlfs9q11cef13c/xESY/Pm4VCkp1yJUZO3kXzvMxQFA==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.87.1.tgz", + "integrity": "sha512-qMiJ/x+VfqumFJJSefKS6nj8uojzC29b2/aK8vlMuFABIqGjDucICEOXd2Yt6k/XMFAgAcaJvShUOT0HLyYaPw==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", @@ -6571,13 +5705,13 @@ "nullthrows": "^1.1.1" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro-transform-worker": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.7.tgz", - "integrity": "sha512-UegCo7ygB2fT64mRK2nbAjQVJ1zSwIIHy8d96jJv2nKZFDaViYBiughEdu5HM/Ceq0WN3LZrZk3zhl9aoiLYFw==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.87.1.tgz", + "integrity": "sha512-VOzs3OV405FuOLYdAhqA2wsn1F9lvueDVxMDLvCKaQ44U+yknIqphJ9eMjjsGwLDZiJq9sW3DMLhjD27JxQgqQ==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", @@ -6585,17 +5719,17 @@ "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", "flow-enums-runtime": "^0.0.6", - "metro": "0.83.7", - "metro-babel-transformer": "0.83.7", - "metro-cache": "0.83.7", - "metro-cache-key": "0.83.7", - "metro-minify-terser": "0.83.7", - "metro-source-map": "0.83.7", - "metro-transform-plugins": "0.83.7", + "metro": "0.87.1", + "metro-babel-transformer": "0.87.1", + "metro-cache": "0.87.1", + "metro-cache-key": "0.87.1", + "metro-minify-terser": "0.87.1", + "metro-source-map": "0.87.1", + "metro-transform-plugins": "0.87.1", "nullthrows": "^1.1.1" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/metro/node_modules/accepts": { @@ -6611,19 +5745,25 @@ "node": ">= 0.6" } }, - "node_modules/metro/node_modules/hermes-estree": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.35.0.tgz", - "integrity": "sha512-xVx5Opwy8Oo1I5yGpVRhCvWL/iV3M+ylksSKVNlxxD90cpDpR/AR1jLYqK8HWihm065a6UI3HeyAmYzwS8NOOg==", - "license": "MIT" + "node_modules/metro/node_modules/flow-estree": { + "version": "0.331.0", + "resolved": "https://registry.npmjs.org/flow-estree/-/flow-estree-0.331.0.tgz", + "integrity": "sha512-FVLYkSL/ITb/QXBEQvNWPjPooRGswuUtGOwrH+puSlMDneNkxy640+FZsk/TfKL+b7Wbw/Fg9FTUv2bMQDpj2w==", + "license": "MIT", + "engines": { + "node": ">=18" + } }, - "node_modules/metro/node_modules/hermes-parser": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.35.0.tgz", - "integrity": "sha512-9JLjeHxBx8T4CAsydZR49PNZUaix+WpQJwu9p2010lu+7Kwl6D/7wYFFJxoz+aXkaaClp9Zfg6W6/zVlSJORaA==", + "node_modules/metro/node_modules/flow-parser": { + "version": "0.331.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.331.0.tgz", + "integrity": "sha512-vEZcHIlnKeN8JSVtYFczj8sWJfHIJOkz+YG00O/oul/Bete+t1ZhTi+O6JRRLFYvGW+yJkZ0YgL16iStnbkUqQ==", "license": "MIT", "dependencies": { - "hermes-estree": "0.35.0" + "flow-estree": "0.331.0" + }, + "engines": { + "node": ">=0.4.0" } }, "node_modules/metro/node_modules/mime-types": { @@ -6643,18 +5783,25 @@ } }, "node_modules/metro/node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", + "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", "license": "MIT", + "dependencies": { + "content-type": "^2.1.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/metro/node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "version": "7.5.13", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.13.tgz", + "integrity": "sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA==", "license": "MIT", "engines": { "node": ">=8.3.0" @@ -6748,21 +5895,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", @@ -6781,18 +5913,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -6959,9 +6079,9 @@ "license": "MIT" }, "node_modules/node-stream-zip": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", - "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.16.0.tgz", + "integrity": "sha512-ObaRrRoR8T68wF6suxHd7R4XQNamij6ZQHrwG7Dx1D2zeHcDNLsIOBcWrIwtDm7AsCXBguaPHgXhcjxDa2szrg==", "license": "MIT", "engines": { "node": ">=0.12.0" @@ -6971,15 +6091,6 @@ "url": "https://github.com/sponsors/antelle" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -7011,15 +6122,15 @@ "license": "MIT" }, "node_modules/ob1": { - "version": "0.83.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.7.tgz", - "integrity": "sha512-9M5kpuOLyTPogMtZiQUIxdAZxl7Dxs6tVBbJErSumsqGMuhVSoUbkfeZ3XNPpLpwBBtqY5QDUzGwggLHX3slQg==", + "version": "0.87.1", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.87.1.tgz", + "integrity": "sha512-i8iA8uij0g1YQzS8uOJPSRCgwDjO9warIHUAu1Fqj877Wc3wlfxDYBioYWgKTBF2+URVJttyDWSEpmd99nlvtQ==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" } }, "node_modules/object-inspect": { @@ -7277,22 +6388,6 @@ "npm": ">5" } }, - "node_modules/patch-package/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/patch-package/node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -7371,9 +6466,9 @@ } }, "node_modules/path-expression-matcher": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz", - "integrity": "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.6.2.tgz", + "integrity": "sha512-enSlaiat05iasnzmgNxRj8reFdj3puY2QpNgP1aPIaVfT6nn9ICuPoFlKHk8EN22HcwewshO+mN2DGbkCEOtqQ==", "funding": [ { "type": "github", @@ -7385,15 +6480,6 @@ "node": ">=14.0.0" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -7410,31 +6496,6 @@ "dev": true, "license": "MIT" }, - "node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.6.tgz", - "integrity": "sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==", - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -7453,15 +6514,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, "node_modules/plist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.1.tgz", @@ -7611,12 +6663,13 @@ } }, "node_modules/qs": { - "version": "6.15.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz", - "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz", + "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==", "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.1.0" + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" }, "engines": { "node": ">=0.6" @@ -7625,33 +6678,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.3" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -7755,46 +6781,40 @@ } }, "node_modules/react-is": { - "version": "19.2.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.6.tgz", - "integrity": "sha512-XjBR15BhXuylgWGuslhDKqlSayuqvqBX91BP8pauG8kd1zY8kotkNWbXksTCNRarse4kuGbe2kIY05ARtwNIvw==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.3.0.tgz", + "integrity": "sha512-UpMYezM4v5/18F28aC66AEsjXIgE02kyEMH6yLdgLXu/UTfa1Ntwck/nNLrbqJsEXW7gPb0coNO9FQse9WTovA==", "license": "MIT" }, "node_modules/react-native": { - "version": "0.84.1", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.84.1.tgz", - "integrity": "sha512-0PjxOyXRu3tZ8EobabxSukvhKje2HJbsZikR0U+pvS0pYZza2hXKjcSBiBdFN4h9D0S3v6a8kkrDK6WTRKMwzg==", - "license": "MIT", - "dependencies": { - "@jest/create-cache-key-function": "^29.7.0", - "@react-native/assets-registry": "0.84.1", - "@react-native/codegen": "0.84.1", - "@react-native/community-cli-plugin": "0.84.1", - "@react-native/gradle-plugin": "0.84.1", - "@react-native/js-polyfills": "0.84.1", - "@react-native/normalize-colors": "0.84.1", - "@react-native/virtualized-lists": "0.84.1", - "abort-controller": "^3.0.0", + "version": "0.88.0-rc.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.88.0-rc.3.tgz", + "integrity": "sha512-8gTeprAQP1j3B8lUJGZNmo33jH41Hmrd1Jm9PoOr7D/uImnifPqkagpFSKyK9fPJTWtwAK2TLDqTo+eFxlUcvA==", + "license": "MIT", + "dependencies": { + "@react-native/asset-utils": "0.88.0-rc.3", + "@react-native/codegen": "0.88.0-rc.3", + "@react-native/community-cli-plugin": "0.88.0-rc.3", + "@react-native/gradle-plugin": "0.88.0-rc.3", + "@react-native/normalize-colors": "0.88.0-rc.3", + "@react-native/virtualized-lists": "0.88.0-rc.3", "anser": "^1.4.9", "ansi-regex": "^5.0.0", - "babel-jest": "^29.7.0", - "babel-plugin-syntax-hermes-parser": "0.32.0", "base64-js": "^1.5.1", - "commander": "^12.0.0", "flow-enums-runtime": "^0.0.6", - "hermes-compiler": "250829098.0.9", + "flow-parser": "0.327.0", + "hermes-compiler": "260318099.0.4", "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.1", + "metro-source-map": "^0.87.1", "nullthrows": "^1.1.1", "pretty-format": "^29.7.0", "promise": "^8.3.0", "react-devtools-core": "^6.1.5", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", - "scheduler": "0.27.0", + "scheduler": "0.28.0", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "tinyglobby": "^0.2.15", @@ -7806,11 +6826,11 @@ "react-native": "cli.js" }, "engines": { - "node": ">= 20.19.4" + "node": "^22.13.0 || ^24.3.0 || >= 26.0.0" }, "peerDependencies": { "@types/react": "^19.1.1", - "react": "^19.2.3" + "react": "^19.3.0" }, "peerDependenciesMeta": { "@types/react": { @@ -7819,13 +6839,12 @@ } }, "node_modules/react-native-blob-util": { - "version": "0.24.7", - "resolved": "https://registry.npmjs.org/react-native-blob-util/-/react-native-blob-util-0.24.7.tgz", - "integrity": "sha512-3vgn3hblfJh0+LIoqEhYRqCtwKh1xID2LtXHdTrUml3rYh4xj69eN+lvWU235AL0FRbX5uKrS1c4lIYexSgtWQ==", + "version": "0.24.11", + "resolved": "https://registry.npmjs.org/react-native-blob-util/-/react-native-blob-util-0.24.11.tgz", + "integrity": "sha512-stwl/2Ye4Y7LJI/+u463H1fCu97qM+cwRMzjk2haLp9EgBMhRqUVj2IGdbW8BcxvRtprG8JIHK7dv1U7BcYo5g==", "license": "MIT", "dependencies": { - "base-64": "0.1.0", - "glob": "13.0.1" + "base-64": "1.0.0" }, "funding": { "type": "github", @@ -8022,9 +7041,9 @@ } }, "node_modules/react-native-gesture-handler": { - "version": "2.31.2", - "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.31.2.tgz", - "integrity": "sha512-rw5q74i2AfS7YGYdbxQDhOU7xqgY6WRM1132/CCm3erqjblhECZDZFHIm0tteHoC9ih24wogVBVVzcTBQtZ+5A==", + "version": "2.33.0", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.33.0.tgz", + "integrity": "sha512-aFMjweXGrsDKwxjAiH7Kl+nc7qAudl0MF6Bqlxf9QQEUNDWBpsQ5WXA7sF6eLFaeRQGEq4ERKr6iuD+GfmunFA==", "license": "MIT", "dependencies": { "@egjs/hammerjs": "^2.0.17", @@ -8163,9 +7182,9 @@ } }, "node_modules/react-native-reanimated": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-4.3.1.tgz", - "integrity": "sha512-KhGsS0YkCA+gusgyzlf9hnqzVPIR398KTpqXyqq/+yYJJPAvyEEPKcxlB0xtOOXSMrR2A9uRKVARVQhZwrOh+Q==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-4.7.1.tgz", + "integrity": "sha512-HviDFSZ6V4KTRsrLS6hRbBJ4j63l/L8a5az0EoWdJwaMLYnBNyYISTDxwXpEYkMbAbLzCMCviIdiOxXHYQWcNA==", "license": "MIT", "dependencies": { "react-native-is-edge-to-edge": "^1.3.1", @@ -8173,14 +7192,14 @@ }, "peerDependencies": { "react": "*", - "react-native": "0.81 - 0.85", - "react-native-worklets": "0.8.x" + "react-native": "0.86 - 0.88", + "react-native-worklets": "0.13.x" } }, "node_modules/react-native-safe-area-context": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.7.0.tgz", - "integrity": "sha512-/9/MtQz8ODphjsLdZ+GZAIcC/RtoqW9EeShf7Uvnfgm/pzYrJ75y3PV/J1wuAV1T5Dye5ygq4EAW20RoBq0ABQ==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.8.1.tgz", + "integrity": "sha512-dDYVAJcW5LJlXAqTUFAaWvYJovqxrh6HdJlOkdTQ7dXCcKWhCq5vKoDXJc3n1q5rYcAUaIwmToKNPKibnogC4g==", "license": "MIT", "peerDependencies": { "react": "*", @@ -8188,9 +7207,9 @@ } }, "node_modules/react-native-screens": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.24.0.tgz", - "integrity": "sha512-SyoiGaDofiyGPFrUkn1oGsAzkRuX1JUvTD9YQQK3G1JGQ5VWkvHgYSsc1K9OrLsDQxN7NmV71O0sHCAh8cBetA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.28.0.tgz", + "integrity": "sha512-0/79Z8RCibuaAHti+DJ2Dq0m6UFWh4+p1bH58K3cjiQ7IDWs5kU9tCAj4lXcJMHHonbF2mIE2BeaPSEvOpIiFg==", "license": "MIT", "dependencies": { "react-freeze": "^1.0.0", @@ -8335,37 +7354,33 @@ } }, "node_modules/react-native-worklets": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/react-native-worklets/-/react-native-worklets-0.8.3.tgz", - "integrity": "sha512-oCBJROyLU7yG/1R8s0INMflygTH71bx+5XcYkH0CM938TlhSoVbiunE1WVW5FZa51vwYqfLie/IXMX2s1Kh3eg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/react-native-worklets/-/react-native-worklets-0.13.0.tgz", + "integrity": "sha512-1OrhAeAKaZF4XrBa4YbPQbKzNOpjh52HDlId8e6ete1OCHNdAlrQHzG4gznJ225EAj3dgQXHViJvK51M9B52jQ==", "license": "MIT", "dependencies": { + "@babel/generator": "^7.27.1", "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-classes": "^7.28.4", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", "@babel/plugin-transform-shorthand-properties": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/preset-typescript": "^7.27.1", + "@babel/preset-typescript": "^7.28.5", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", - "semver": "^7.7.3" + "semver": "^7.7.4", + "whatwg-fetch": "^3.6.20" }, "peerDependencies": { "@babel/core": "*", "@react-native/metro-config": "*", "react": "*", - "react-native": "0.81 - 0.85" - } - }, - "node_modules/react-native/node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", - "license": "MIT", - "engines": { - "node": ">=18" + "react-native": "0.86 - 0.88" } }, "node_modules/react-native/node_modules/ws": { @@ -8540,71 +7555,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -8674,9 +7624,9 @@ } }, "node_modules/scheduler": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", - "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.28.0.tgz", + "integrity": "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw==", "license": "MIT" }, "node_modules/semver": { @@ -8880,14 +7830,14 @@ } }, "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" }, @@ -9122,21 +8072,6 @@ "node": ">=0.10.0" } }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, "node_modules/stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -9147,27 +8082,6 @@ "node": "*" } }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/stackframe": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", @@ -9186,6 +8100,15 @@ "node": ">=6" } }, + "node_modules/standard-navigation": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/standard-navigation/-/standard-navigation-0.0.8.tgz", + "integrity": "sha512-TyVbo7INUDWtsUWDFn8RR7kwR87U0S4xHfLfbbnyeC581TmmyqQ+eM+nPw8rQTSD8QitRVcYfPaSHr/QJiUy1g==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -9215,21 +8138,6 @@ "text-decoder": "^1.1.0" } }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strict-url-sanitise": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/strict-url-sanitise/-/strict-url-sanitise-0.0.1.tgz", - "integrity": "sha512-nuFtF539K8jZg3FjaWH/L8eocCR6gegz5RDOsaWxfdbF5Jqr2VXWxZayjTwUzsWJDC91k2EbnJXp6FuWW+Z4hg==", - "license": "MIT" - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -9363,16 +8271,19 @@ } }, "node_modules/strnum": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.3.0.tgz", - "integrity": "sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.4.2.tgz", + "integrity": "sha512-rDG3Ah4TV0k1hWvLSzkZtMmLN9+eS+h3knq4MP6A42Y3Yh5qGNnOUs1jJkoSr8FG5dsL28c7KgkIBzSEykqtuw==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" } ], - "license": "MIT" + "license": "MIT", + "dependencies": { + "anynum": "^1.0.1" + } }, "node_modules/supports-color": { "version": "7.2.0", @@ -9435,9 +8346,9 @@ } }, "node_modules/terser": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.47.1.tgz", - "integrity": "sha512-tPbLXTI6ohPASb/1YViL428oEHu6/qv1OxqYnfaonVCFHqx4+wCd95pHrQWsL5X4pl90CTyW9piSAsS2L0VoMw==", + "version": "5.51.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.51.2.tgz", + "integrity": "sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -9458,69 +8369,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "license": "MIT" }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/text-decoder": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", @@ -9544,9 +8392,9 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", - "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "license": "MIT", "dependencies": { "fdir": "^6.5.0", @@ -9560,9 +8408,9 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "license": "MIT", "engines": { "node": ">=12" @@ -9581,12 +8429,6 @@ "node": ">=14.14" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "license": "BSD-3-Clause" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -9646,15 +8488,6 @@ "node": "*" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", @@ -9665,17 +8498,21 @@ } }, "node_modules/type-is": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", - "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", "license": "MIT", "dependencies": { - "content-type": "^1.0.5", + "content-type": "^2.0.0", "media-typer": "^1.1.0", "mime-types": "^3.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/type-is/node_modules/mime-types": { @@ -9695,9 +8532,9 @@ } }, "node_modules/undici-types": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.21.0.tgz", - "integrity": "sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", + "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -9741,9 +8578,9 @@ } }, "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "license": "MIT", "engines": { "node": ">=18" @@ -9810,9 +8647,9 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.7.0.tgz", + "integrity": "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==", "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -9859,15 +8696,6 @@ "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", "license": "MIT" }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, "node_modules/warn-once": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz", @@ -10013,23 +8841,10 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/ws": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", - "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.6.tgz", + "integrity": "sha512-XTrf1gv7kXoVf1hbC3PAyAiPgR8Wz1blcrYIjEsUmr08BLksT41R8KbjmS9408C2ERx7v1JDLD/BkpLEttjfKA==", "license": "MIT", "dependencies": { "async-limiter": "~1.0.0" @@ -10063,9 +8878,9 @@ } }, "node_modules/xml-naming": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/xml-naming/-/xml-naming-0.1.0.tgz", - "integrity": "sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/xml-naming/-/xml-naming-0.3.0.tgz", + "integrity": "sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ==", "funding": [ { "type": "github", diff --git a/package.json b/package.json index 1f12ba24..096a4a27 100644 --- a/package.json +++ b/package.json @@ -10,37 +10,37 @@ "dependencies": { "@d11/react-native-fast-image": "8.13.0", "@gorhom/bottom-sheet": "5.2.14", - "mendix-native": "https://github.com/mendix/mendix-native/releases/download/v0.6.2/mendix-native-v0.6.2.tgz", - "@op-engineering/op-sqlite": "15.2.5", + "mendix-native": "github:mendix/mendix-native#moo/MOO-2500-rn-0.88", + "@op-engineering/op-sqlite": "18.2.5", "@shopify/flash-list": "2.3.1", "@react-native-async-storage/async-storage": "2.2.0", "@react-native-camera-roll/camera-roll": "7.10.2", - "@react-native-community/cli": "20.1.3", - "@react-native-community/cli-platform-android": "20.1.3", - "@react-native-community/cli-platform-ios": "20.1.3", + "@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-community/datetimepicker": "8.6.0", "@react-native-picker/picker": "2.11.4", - "@react-navigation/native": "7.2.4", - "react-native": "0.84.1", + "@react-navigation/native": "7.5.0", + "react-native": "0.88.0-rc.3", "react-native-device-info": "15.0.2", - "react-native-blob-util": "0.24.7", + "react-native-blob-util": "0.24.11", "react-native-edge-to-edge": "1.8.1", - "react-native-gesture-handler": "2.31.2", + "react-native-gesture-handler": "2.33.0", "react-native-image-picker": "7.2.3", "react-native-localize": "3.7.0", "react-native-notify-kit": "10.4.7", "react-native-pager-view": "6.9.1", "react-native-permissions": "5.5.1", - "react-native-reanimated": "4.3.1", - "react-native-worklets": "0.8.3", - "react-native-safe-area-context": "5.7.0", - "react-native-screens": "4.24.0", + "react-native-reanimated": "4.7.1", + "react-native-worklets": "0.13.0", + "react-native-safe-area-context": "5.8.1", + "react-native-screens": "4.28.0", "react-native-bootsplash": "6.3.12", "react-native-svg": "15.15.4", "react-native-tab-view": "4.3.0", - "@react-native-vector-icons/common": "12.4.2", - "@react-native-vector-icons/get-image": "12.3.0", - "@react-native-vector-icons/material-icons": "12.4.1", + "@react-native-vector-icons/common": "13.0.3", + "@react-native-vector-icons/get-image": "13.0.1", + "@react-native-vector-icons/material-icons": "13.1.4", "react-native-video": "6.19.2", "react-native-track-player": "4.1.2", "semver": "7.7.4" @@ -48,8 +48,8 @@ "devDependencies": { "@babel/runtime": "^7.28.4", "@mendix/native-mobile-toolkit": "latest", - "@react-native/babel-preset": "0.84.1", - "@react-native/metro-config": "0.84.1", + "@react-native/babel-preset": "0.88.0-rc.3", + "@react-native/metro-config": "0.88.0-rc.3", "jetifier": "^1.6.8", "patch-package": "^8.0.1" }, @@ -57,15 +57,15 @@ "node": ">=18" }, "overrides": { - "react": "19.2.3", - "react-dom": "19.2.3", - "react-native": "0.84.1", + "react": "19.3.0", + "react-dom": "19.3.0", + "react-native": "0.88.0-rc.3", "unset-value": "2.0.1", "semver": "7.7.4" }, "resolutions": { - "react": "19.2.3", - "react-dom": "19.2.3", - "react-native": "0.84.1" + "react": "19.3.0", + "react-dom": "19.3.0", + "react-native": "0.88.0-rc.3" } } diff --git a/patches/@op-engineering+op-sqlite+15.2.5.patch b/patches/@op-engineering+op-sqlite+15.2.5.patch deleted file mode 100644 index 3aafa6a1..00000000 --- a/patches/@op-engineering+op-sqlite+15.2.5.patch +++ /dev/null @@ -1,269 +0,0 @@ -diff --git a/node_modules/@op-engineering/op-sqlite/android/build.gradle b/node_modules/@op-engineering/op-sqlite/android/build.gradle -index 08631df..3e61af5 100644 ---- a/node_modules/@op-engineering/op-sqlite/android/build.gradle -+++ b/node_modules/@op-engineering/op-sqlite/android/build.gradle -@@ -1,5 +1,4 @@ - import java.nio.file.Paths --import groovy.json.JsonSlurper - - buildscript { - ext.getExtOrDefault = {name -> -@@ -27,57 +26,16 @@ def getExtOrIntegerDefault(name) { - return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["OPSQLite_" + name]).toInteger() - } - --def useSQLCipher = false -+def useSQLCipher = true - def useLibsql = false - def useCRSQLite = false --def performanceMode = false -+def performanceMode = true - def sqliteFlags = "" - def enableFTS5 = false - def useSqliteVec = false - def enableRtree = false - def tokenizers = [] - --// On the example app, the package.json is located at the root of the project --// On the user app, the package.json is located at the root of the node_modules directory --def isUserApp = rootDir.absolutePath.contains("node_modules") --def packageJsonFile -- --if (isUserApp) { -- // Start from the root + 1 level up (to avoid detecting the op-sqlite/package.json) and traverse upwards to find the first package.json -- File currentDir = new File("$rootDir/../") -- packageJsonFile = null -- -- // Try to find package.json by traversing upwards -- while (currentDir != null) { -- File potential = new File(currentDir, "package.json") -- if (potential.exists()) { -- packageJsonFile = potential -- break -- } -- currentDir = currentDir.parentFile -- } --} else { -- packageJsonFile = new File("$rootDir/../package.json") --} -- -- --def packageJson = new JsonSlurper().parseText(packageJsonFile.text) -- --def opsqliteConfig = packageJson["op-sqlite"] -- --if(opsqliteConfig) { -- println "[OP-SQLITE] Detected op-sqlite config from package.json at: " + packageJsonFile.absolutePath -- useSQLCipher = !!opsqliteConfig["sqlcipher"] -- useCRSQLite = !!opsqliteConfig["crsqlite"] -- useSqliteVec = !!opsqliteConfig["sqliteVec"] -- performanceMode = opsqliteConfig["performanceMode"] -- sqliteFlags = opsqliteConfig["sqliteFlags"] ? opsqliteConfig["sqliteFlags"] : "" -- enableFTS5 = !!opsqliteConfig["fts5"] -- useLibsql = !!opsqliteConfig["libsql"] -- enableRtree = !!opsqliteConfig["rtree"] -- tokenizers = opsqliteConfig["tokenizers"] ? opsqliteConfig["tokenizers"] : [] --} -- - if(useSQLCipher) { - println "[OP-SQLITE] using sqlcipher." - } else if(useLibsql) { -diff --git a/node_modules/@op-engineering/op-sqlite/android/cpp-adapter.cpp b/node_modules/@op-engineering/op-sqlite/android/cpp-adapter.cpp -index 5912d7b..e53d71f 100644 ---- a/node_modules/@op-engineering/op-sqlite/android/cpp-adapter.cpp -+++ b/node_modules/@op-engineering/op-sqlite/android/cpp-adapter.cpp -@@ -19,8 +19,8 @@ struct OPSQLiteBridge : jni::JavaClass { - static void registerNatives() { - javaClassStatic()->registerNatives( - {makeNativeMethod("installNativeJsi", OPSQLiteBridge::installNativeJsi), -- makeNativeMethod("clearStateNativeJsi", -- OPSQLiteBridge::clearStateNativeJsi)}); -+ makeNativeMethod("clearStateNativeJsi", OPSQLiteBridge::clearStateNativeJsi), -+ makeNativeMethod("deleteAllDBsJsi", OPSQLiteBridge::deleteAllDBsJsi)}); - } - - private: -@@ -39,6 +39,10 @@ private: - static void clearStateNativeJsi(jni::alias_ref thiz) { - opsqlite::invalidate(); - } -+ -+ static bool deleteAllDBsJsi(jni::alias_ref thiz) { -+ return opsqlite::deleteAllDbs(); -+ } - }; - - JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *) { -diff --git a/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt b/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt -index 44f86df..8c003db 100644 ---- a/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt -+++ b/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt -@@ -12,6 +12,7 @@ class OPSQLiteBridge { - docPath: String - ) - private external fun clearStateNativeJsi() -+ private external fun deleteAllDBsJsi(): Boolean - - fun install(context: ReactContext) { - val jsContextPointer = context.javaScriptContextHolder!!.get() -@@ -31,6 +32,10 @@ class OPSQLiteBridge { - clearStateNativeJsi() - } - -+ fun deleteAllDBs(): Boolean { -+ return deleteAllDBsJsi() -+ } -+ - companion object { - val instance = OPSQLiteBridge() - } -diff --git a/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt b/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt -index 8d341b7..33d3d7d 100644 ---- a/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt -+++ b/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt -@@ -12,7 +12,7 @@ import java.io.InputStream - import java.io.OutputStream - import com.facebook.react.util.RNLog; - --internal class OPSQLiteModule(context: ReactApplicationContext?) : ReactContextBaseJavaModule(context) { -+class OPSQLiteModule(context: ReactApplicationContext?) : ReactContextBaseJavaModule(context) { - override fun getName(): String { - return NAME - } -@@ -54,6 +54,18 @@ internal class OPSQLiteModule(context: ReactApplicationContext?) : ReactContextB - throw Exception("Do not call getDylibPath on Android") - } - -+ @ReactMethod(isBlockingSynchronousMethod = true) -+ fun closeAllConnections(): Boolean { -+ OPSQLiteBridge.instance.invalidate() -+ return true -+ } -+ -+ @ReactMethod(isBlockingSynchronousMethod = true) -+ fun deleteAllDBs(): Boolean { -+ return OPSQLiteBridge.instance.deleteAllDBs(); -+ } -+ -+ - @ReactMethod - fun moveAssetsDatabase(args: ReadableMap, promise: Promise) { - val filename = args.getString("filename")!! -diff --git a/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.cpp b/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.cpp -index 9682941..9449dda 100644 ---- a/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.cpp -+++ b/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.cpp -@@ -665,6 +665,10 @@ void DBHostObject::set(jsi::Runtime &_rt, const jsi::PropNameID &name, - throw std::runtime_error("You cannot write to this object!"); - } - -+void DBHostObject::drop() { -+ opsqlite_remove(db, db_name, std::string(base_path)); -+} -+ - void DBHostObject::invalidate() { - if (invalidated) { - return; -diff --git a/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.h b/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.h -index 002b8c9..f3a2e1f 100644 ---- a/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.h -+++ b/node_modules/@op-engineering/op-sqlite/cpp/DBHostObject.h -@@ -68,6 +68,7 @@ public: - void on_commit(); - void on_rollback(); - void invalidate(); -+ void drop(); - ~DBHostObject() override; - - private: -diff --git a/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.cpp b/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.cpp -index e33579a..791fa70 100644 ---- a/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.cpp -+++ b/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.cpp -@@ -42,6 +42,13 @@ void invalidate() { - dbs.clear(); - } - -+bool deleteAllDbs() { -+ for(const auto &db : dbs) { -+ db->drop(); -+ } -+ return true; -+} -+ - void install(jsi::Runtime &rt, - const std::shared_ptr &_invoker, - const char *base_path, const char *crsqlite_path, -diff --git a/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.hpp b/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.hpp -index 91511ab..cc73dfe 100644 ---- a/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.hpp -+++ b/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.hpp -@@ -14,6 +14,7 @@ void install(jsi::Runtime &rt, - const char *base_path, const char *crsqlite_path, - const char *sqlite_vec_path); - void invalidate(); -+bool deleteAllDbs(); - void expoUpdatesWorkaround(const char *base_path); - - } // namespace opsqlite -diff --git a/node_modules/@op-engineering/op-sqlite/op-sqlite.podspec b/node_modules/@op-engineering/op-sqlite/op-sqlite.podspec -index e717811..b4a81c3 100644 ---- a/node_modules/@op-engineering/op-sqlite/op-sqlite.podspec -+++ b/node_modules/@op-engineering/op-sqlite/op-sqlite.podspec -@@ -1,4 +1,3 @@ --require "json" - require_relative "./generate_tokenizers_header_file" - - log_message = lambda do |message| -@@ -38,11 +37,10 @@ end - - app_package = JSON.parse(File.read(package_json_path)) - --op_sqlite_config = app_package["op-sqlite"] --use_sqlcipher = false -+use_sqlcipher = true - use_crsqlite = false - use_libsql = false --performance_mode = false -+performance_mode = true - phone_version = false - sqlite_flags = "" - fts5 = false -@@ -50,37 +48,6 @@ rtree = false - use_sqlite_vec = false - tokenizers = [] - --if(op_sqlite_config != nil) -- use_sqlcipher = op_sqlite_config["sqlcipher"] == true -- use_crsqlite = op_sqlite_config["crsqlite"] == true -- use_libsql = op_sqlite_config["libsql"] == true -- performance_mode = op_sqlite_config["performanceMode"] || false -- phone_version = op_sqlite_config["iosSqlite"] == true -- sqlite_flags = op_sqlite_config["sqliteFlags"] || "" -- fts5 = op_sqlite_config["fts5"] == true -- rtree = op_sqlite_config["rtree"] == true -- use_sqlite_vec = op_sqlite_config["sqliteVec"] == true -- tokenizers = op_sqlite_config["tokenizers"] || [] --end -- --if phone_version then -- if use_sqlcipher then -- raise "SQLCipher is not supported with phone version. It cannot load extensions." -- end -- -- if use_crsqlite then -- raise "CRSQLite is not supported with phone version. It cannot load extensions." -- end -- -- if rtree then -- raise "RTree is not supported with phone version. It cannot load extensions." -- end -- -- if use_sqlite_vec then -- raise "SQLite Vec is not supported with phone version. It cannot load extensions." -- end --end -- - Pod::Spec.new do |s| - s.name = "op-sqlite" - s.version = package["version"] diff --git a/patches/@op-engineering+op-sqlite+18.2.5.patch b/patches/@op-engineering+op-sqlite+18.2.5.patch new file mode 100644 index 00000000..8a8c12c9 --- /dev/null +++ b/patches/@op-engineering+op-sqlite+18.2.5.patch @@ -0,0 +1,325 @@ +diff --git a/node_modules/@op-engineering/op-sqlite/android/build.gradle b/node_modules/@op-engineering/op-sqlite/android/build.gradle +index 3049da4..17f793c 100644 +--- a/node_modules/@op-engineering/op-sqlite/android/build.gradle ++++ b/node_modules/@op-engineering/op-sqlite/android/build.gradle +@@ -52,10 +52,10 @@ def reactNativeArchitectures() { + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] + } + +-def useSQLCipher = false ++def useSQLCipher = true + def useLibsql = false + def useTurso = false +-def performanceMode = false ++def performanceMode = true + def sqliteFlags = "" + def enableFTS5 = false + def useSqliteVec = false +@@ -88,20 +88,6 @@ if (isUserApp) { + + def packageJson = new JsonSlurper().parseText(packageJsonFile.text) + +-def opsqliteConfig = packageJson["op-sqlite"] +- +-if(opsqliteConfig) { +- println "[OP-SQLITE] Detected op-sqlite config from package.json at: " + packageJsonFile.absolutePath +- useSQLCipher = !!opsqliteConfig["sqlcipher"] +- useSqliteVec = !!opsqliteConfig["sqliteVec"] +- performanceMode = opsqliteConfig["performanceMode"] +- sqliteFlags = opsqliteConfig["sqliteFlags"] ? opsqliteConfig["sqliteFlags"] : "" +- enableFTS5 = !!opsqliteConfig["fts5"] +- useLibsql = !!opsqliteConfig["libsql"] +- useTurso = !!opsqliteConfig["turso"] +- enableRtree = !!opsqliteConfig["rtree"] +- tokenizers = opsqliteConfig["tokenizers"] ? opsqliteConfig["tokenizers"] : [] +-} + + if(useLibsql && useTurso) { + throw new GradleException("[OP-SQLITE] Error: libsql and turso backends are mutually exclusive.") +diff --git a/node_modules/@op-engineering/op-sqlite/android/cpp-adapter.cpp b/node_modules/@op-engineering/op-sqlite/android/cpp-adapter.cpp +index 3f800c4..6fd9c44 100644 +--- a/node_modules/@op-engineering/op-sqlite/android/cpp-adapter.cpp ++++ b/node_modules/@op-engineering/op-sqlite/android/cpp-adapter.cpp +@@ -22,7 +22,9 @@ struct OPSQLiteBridge : jni::JavaClass { + javaClassStatic()->registerNatives( + {makeNativeMethod("installNativeJsi", OPSQLiteBridge::installNativeJsi), + makeNativeMethod("clearStateNativeJsi", +- OPSQLiteBridge::clearStateNativeJsi)}); ++ OPSQLiteBridge::clearStateNativeJsi), ++ makeNativeMethod("closeAllDBsJsi", OPSQLiteBridge::closeAllDBsJsi), ++ makeNativeMethod("deleteAllDBsJsi", OPSQLiteBridge::deleteAllDBsJsi)}); + } + + private: +@@ -60,6 +62,14 @@ private: + opsqlite::invalidate(*handle); + delete handle; + } ++ ++ static void closeAllDBsJsi(jni::alias_ref thiz) { ++ opsqlite::closeAllDbs(); ++ } ++ ++ static jboolean deleteAllDBsJsi(jni::alias_ref thiz) { ++ return opsqlite::deleteAllDbs(); ++ } + }; + + JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *) { +diff --git a/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt b/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt +index 115ae37..4ad749d 100644 +--- a/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt ++++ b/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteBridge.kt +@@ -17,6 +17,8 @@ class OPSQLiteBridge { + docPath: String + ): Long + private external fun clearStateNativeJsi(handle: Long) ++ private external fun closeAllDBsJsi() ++ private external fun deleteAllDBsJsi(): Boolean + + fun install(context: ReactContext): Long { + val jsContextPointer = context.javaScriptContextHolder!!.get() +@@ -36,6 +38,14 @@ class OPSQLiteBridge { + clearStateNativeJsi(handle) + } + ++ fun closeAllDBs() { ++ closeAllDBsJsi() ++ } ++ ++ fun deleteAllDBs(): Boolean { ++ return deleteAllDBsJsi() ++ } ++ + companion object { + val instance = OPSQLiteBridge() + } +diff --git a/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt b/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt +index 3cbb7ef..c8aff94 100644 +--- a/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt ++++ b/node_modules/@op-engineering/op-sqlite/android/src/main/java/com/op/sqlite/OPSQLiteModule.kt +@@ -12,7 +12,7 @@ import java.io.InputStream + import java.io.OutputStream + import com.facebook.react.util.RNLog; + +-internal class OPSQLiteModule(context: ReactApplicationContext?) : ReactContextBaseJavaModule(context) { ++class OPSQLiteModule(context: ReactApplicationContext?) : ReactContextBaseJavaModule(context) { + // Handle for THIS generation's liveness flag, returned by install() and + // handed back to invalidate(). OPSQLiteModule is recreated per bridge/ + // generation by OPSQLitePackage, unlike the OPSQLiteBridge singleton it +@@ -56,6 +56,17 @@ internal class OPSQLiteModule(context: ReactApplicationContext?) : ReactContextB + } + } + ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ fun closeAllConnections(): Boolean { ++ OPSQLiteBridge.instance.closeAllDBs() ++ return true ++ } ++ ++ @ReactMethod(isBlockingSynchronousMethod = true) ++ fun deleteAllDBs(): Boolean { ++ return OPSQLiteBridge.instance.deleteAllDBs() ++ } ++ + @ReactMethod(isBlockingSynchronousMethod = true) + fun getDylibPath(bundleId: String, name: String): Boolean { + throw Exception("Do not call getDylibPath on Android") +diff --git a/node_modules/@op-engineering/op-sqlite/cpp/OPDatabase.cpp b/node_modules/@op-engineering/op-sqlite/cpp/OPDatabase.cpp +index 23da58e..54f31b9 100644 +--- a/node_modules/@op-engineering/op-sqlite/cpp/OPDatabase.cpp ++++ b/node_modules/@op-engineering/op-sqlite/cpp/OPDatabase.cpp +@@ -862,6 +862,32 @@ void OPDatabase::invalidate() { + #endif + } + ++void OPDatabase::drop() { ++ if (delete_db_name.empty()) { ++ // Remote-only databases have no local file; closing is all we can do. ++ invalidate(); ++ return; ++ } ++ ++ invalidated = true; ++ // Same sequence as the JS delete() host function: abort running work, drain ++ // the thread pool, then close the handle and remove the file. ++#if !defined(OP_SQLITE_USE_LIBSQL) && !defined(OP_SQLITE_USE_TURSO) ++ if (db != nullptr) { ++ sqlite3_interrupt(db); ++ } ++#endif ++ thread_pool->wait_finished(); ++ release_hooks(); ++#ifdef OP_SQLITE_USE_LIBSQL ++ opsqlite_libsql_remove(db, delete_db_name, base_path); ++#else ++ auto *closing_db = db; ++ db = nullptr; ++ opsqlite_remove(closing_db, delete_db_name, base_path); ++#endif ++} ++ + OPDatabase::~OPDatabase() { invalidate(); } + + } // namespace opsqlite +diff --git a/node_modules/@op-engineering/op-sqlite/cpp/OPDatabase.hpp b/node_modules/@op-engineering/op-sqlite/cpp/OPDatabase.hpp +index 9e387a6..8b28332 100644 +--- a/node_modules/@op-engineering/op-sqlite/cpp/OPDatabase.hpp ++++ b/node_modules/@op-engineering/op-sqlite/cpp/OPDatabase.hpp +@@ -77,6 +77,8 @@ public: + void on_commit(); + void on_rollback(); + void invalidate(); ++ // Closes the database and deletes its file, like the JS delete() function. ++ void drop(); + ~OPDatabase() override; + + private: +diff --git a/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.cpp b/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.cpp +index 7b914f7..66b0aa4 100644 +--- a/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.cpp ++++ b/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.cpp +@@ -10,8 +10,10 @@ + #include "OPLogs.h" + #include "OPMacros.hpp" + #include "OPUtils.hpp" ++#include + #include + #include ++#include + #include + #include + #include +@@ -26,6 +28,56 @@ std::string _sqlite_vec_path; + std::shared_ptr invoker; + std::shared_ptr> generation_alive; + ++// Weak references to every database handed out by open(), so the platform glue ++// can close or delete all of them (e.g. when the host app clears its data). ++// Weak so the registry never extends a database's lifetime past its JS object. ++std::mutex dbs_mutex; ++std::vector> dbs; ++ ++static void register_db(const std::shared_ptr &db) { ++ std::lock_guard lock(dbs_mutex); ++ dbs.erase(std::remove_if(dbs.begin(), dbs.end(), ++ [](const std::weak_ptr &weak_db) { ++ return weak_db.expired(); ++ }), ++ dbs.end()); ++ dbs.push_back(db); ++} ++ ++static std::vector> live_dbs() { ++ std::lock_guard lock(dbs_mutex); ++ std::vector> result; ++ for (const auto &weak_db : dbs) { ++ if (auto db = weak_db.lock()) { ++ result.push_back(db); ++ } ++ } ++ dbs.clear(); ++ for (const auto &db : result) { ++ dbs.push_back(db); ++ } ++ return result; ++} ++ ++void closeAllDbs() { ++ for (const auto &db : live_dbs()) { ++ db->invalidate(); ++ } ++} ++ ++bool deleteAllDbs() { ++ bool all_deleted = true; ++ for (const auto &db : live_dbs()) { ++ try { ++ db->drop(); ++ } catch (const std::exception &e) { ++ LOGE("[op-sqlite] deleteAllDbs failed for a database: %s", e.what()); ++ all_deleted = false; ++ } ++ } ++ return all_deleted; ++} ++ + // Each platform module calls its own invalidate() lifecycle hook when React + // Native tears down the JS context (CodePush/Hot Reload, or any other + // runtime teardown) -- OPSQLiteModule.invalidate() on Android, which reaches +@@ -99,6 +151,7 @@ install(jsi::Runtime &rt, const std::shared_ptr &invoker, + std::shared_ptr db = std::make_shared( + rt, js_db, path, name, path, readOnly, failOnCreate, encryption_key); + js_db.setNativeState(rt, db); ++ register_db(db); + return js_db; + }); + +@@ -154,6 +207,7 @@ install(jsi::Runtime &rt, const std::shared_ptr &invoker, + #endif + + js_db.setNativeState(rt, db); ++ register_db(db); + return js_db; + }); + +@@ -216,6 +270,7 @@ install(jsi::Runtime &rt, const std::shared_ptr &invoker, + #endif + + js_db.setNativeState(rt, db); ++ register_db(db); + return js_db; + }); + #endif +diff --git a/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.hpp b/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.hpp +index 8e81903..245c7bb 100644 +--- a/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.hpp ++++ b/node_modules/@op-engineering/op-sqlite/cpp/OPSqlite.hpp +@@ -20,5 +20,10 @@ install(jsi::Runtime &rt, const std::shared_ptr &invoker, + const char *base_path, const char *sqlite_vec_path); + void invalidate(const std::shared_ptr> &generation_alive); + void expoUpdatesWorkaround(const char *base_path); ++// Close every database opened through open() that is still alive. ++void closeAllDbs(); ++// Close and delete the file of every database opened through open() that is ++// still alive. Returns false if any of them could not be deleted. ++bool deleteAllDbs(); + + } // namespace opsqlite +diff --git a/node_modules/@op-engineering/op-sqlite/op-sqlite.podspec b/node_modules/@op-engineering/op-sqlite/op-sqlite.podspec +index 905d8e9..40b6cc4 100644 +--- a/node_modules/@op-engineering/op-sqlite/op-sqlite.podspec ++++ b/node_modules/@op-engineering/op-sqlite/op-sqlite.podspec +@@ -38,11 +38,10 @@ end + + app_package = JSON.parse(File.read(package_json_path)) + +-op_sqlite_config = app_package["op-sqlite"] +-use_sqlcipher = false ++use_sqlcipher = true + use_libsql = false + use_turso = false +-performance_mode = false ++performance_mode = true + phone_version = false + sqlite_flags = "" + fts5 = false +@@ -50,18 +49,6 @@ rtree = false + use_sqlite_vec = false + tokenizers = [] + +-if(op_sqlite_config != nil) +- use_sqlcipher = op_sqlite_config["sqlcipher"] == true +- use_libsql = op_sqlite_config["libsql"] == true +- use_turso = op_sqlite_config["turso"] == true +- performance_mode = op_sqlite_config["performanceMode"] || false +- phone_version = op_sqlite_config["iosSqlite"] == true +- sqlite_flags = op_sqlite_config["sqliteFlags"] || "" +- fts5 = op_sqlite_config["fts5"] == true +- rtree = op_sqlite_config["rtree"] == true +- use_sqlite_vec = op_sqlite_config["sqliteVec"] == true +- tokenizers = op_sqlite_config["tokenizers"] || [] +-end + + if phone_version then + if use_sqlcipher then diff --git a/patches/react-native+0.84.1.patch b/patches/react-native+0.88.0-rc.3.patch similarity index 100% rename from patches/react-native+0.84.1.patch rename to patches/react-native+0.88.0-rc.3.patch diff --git a/patches/react-native-reanimated+4.7.1.patch b/patches/react-native-reanimated+4.7.1.patch new file mode 100644 index 00000000..bb7e296c --- /dev/null +++ b/patches/react-native-reanimated+4.7.1.patch @@ -0,0 +1,15 @@ +diff --git a/node_modules/react-native-reanimated/Common/cpp/reanimated/CSS/core/transition/CSSPlatformTransitionProxy.cpp b/node_modules/react-native-reanimated/Common/cpp/reanimated/CSS/core/transition/CSSPlatformTransitionProxy.cpp +index f6f71d8..d80c033 100644 +--- a/node_modules/react-native-reanimated/Common/cpp/reanimated/CSS/core/transition/CSSPlatformTransitionProxy.cpp ++++ b/node_modules/react-native-reanimated/Common/cpp/reanimated/CSS/core/transition/CSSPlatformTransitionProxy.cpp +@@ -161,8 +161,10 @@ CSSTransitionConfig CSSPlatformTransitionProxy::processConfig( + } + + // The parser pairs every value diff with settings, so all must have matched one. ++#ifndef NDEBUG + react_native_assert( + matchedValues == config.changedProperties.size() && "[Reanimated] CSS transition value diff without settings"); ++#endif // NDEBUG + + for (const auto &propertyName : config.removedProperties) { + if (routing.platform.erase(propertyName) > 0) { diff --git a/patches/react-native-screens+4.24.0.patch b/patches/react-native-screens+4.28.0.patch similarity index 68% rename from patches/react-native-screens+4.24.0.patch rename to patches/react-native-screens+4.28.0.patch index 07e1c014..eb29ec08 100644 --- a/patches/react-native-screens+4.24.0.patch +++ b/patches/react-native-screens+4.28.0.patch @@ -2,14 +2,14 @@ diff --git a/node_modules/react-native-screens/android/src/main/java/com/swmansi index 3889c2f..08784b9 100644 --- a/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +++ b/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt -@@ -87,7 +87,9 @@ open class ScreenViewManager : +@@ -85,7 +85,9 @@ open class ScreenViewManager : + props: ReactStylesDiffMap?, stateWrapper: StateWrapper?, ): Any? { - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { -- view.setStateWrapper(stateWrapper) -+ if (stateWrapper != null) { -+ view.setStateWrapper(stateWrapper) -+ } - } +- view.setStateWrapper(stateWrapper) ++ if (stateWrapper != null) { ++ view.setStateWrapper(stateWrapper) ++ } return super.updateState(view, props, stateWrapper) } + diff --git a/stale_files b/stale_files index 346dc342..f251aa7e 100644 --- a/stale_files +++ b/stale_files @@ -3,6 +3,9 @@ patches/react-native+0.77.3.patch patches/react-native-screens+4.6.0.patch patches/react-native+0.83.4.patch patches/react-native-gesture-handler+2.30.0.patch +patches/react-native+0.84.1.patch +patches/react-native-screens+4.24.0.patch +patches/@op-engineering+op-sqlite+15.2.5.patch mendix-native-10.2.2.tgz ios/AppDelegate.h ios/AppDelegate.m