From 54ccb33df513166a9b34ee8fb45040f9387beed1 Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Wed, 14 May 2025 10:55:59 +0200 Subject: [PATCH 01/13] Updated example projects to RN 0.76.9 to fix Xcode 16.3 build issues --- example-new-architecture/Gemfile | 7 +- example-new-architecture/Gemfile.lock | 17 +- .../android/app/build.gradle | 2 +- .../MainApplication.kt | 3 +- example-new-architecture/android/build.gradle | 8 +- .../android/gradle.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../android/settings.gradle | 5 +- .../project.pbxproj | 8 +- example-new-architecture/ios/Podfile.lock | 917 +-- example-new-architecture/package.json | 25 +- example/Gemfile | 14 +- example/Gemfile.lock | 17 +- .../MainApplication.kt | 5 +- example/android/build.gradle | 8 +- example/android/gradle.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- example/babel.config.js | 2 +- example/ios/Podfile.lock | 949 ++-- example/package.json | 25 +- .../react-native-navigation+7.40.1.patch | 121 - package.json | 21 +- packages/core/jest/mock.js | 8 +- .../DdEventsInterceptor.test.tsx | 2 +- .../DdRumUserInteractionTracking.test.tsx | 2 +- .../__tests__/initialization.test.tsx | 4 +- .../WebviewDatadogInjectedJS.test.tsx | 59 +- .../DdRumReactNavigationTracking.test.tsx | 2 +- yarn.lock | 5030 +++++++---------- 29 files changed, 3203 insertions(+), 4066 deletions(-) delete mode 100644 example/patches/react-native-navigation+7.40.1.patch diff --git a/example-new-architecture/Gemfile b/example-new-architecture/Gemfile index c0f2516a6..568aa52be 100644 --- a/example-new-architecture/Gemfile +++ b/example-new-architecture/Gemfile @@ -1,8 +1,5 @@ -source 'https://rubygems.org' - -# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version -ruby ">= 2.6.10" - # Exclude problematic versions of cocoapods and activesupport that causes build failures. gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' +gem 'xcodeproj', '< 1.26.0' +gem 'concurrent-ruby', '< 1.3.4' \ No newline at end of file diff --git a/example-new-architecture/Gemfile.lock b/example-new-architecture/Gemfile.lock index 982ba4cd9..e2b4b888c 100644 --- a/example-new-architecture/Gemfile.lock +++ b/example-new-architecture/Gemfile.lock @@ -1,5 +1,4 @@ GEM - remote: https://rubygems.org/ specs: CFPropertyList (3.0.7) base64 @@ -75,30 +74,30 @@ GEM netrc (0.11.0) nkf (0.2.0) public_suffix (4.0.7) - rexml (3.3.9) + rexml (3.2.9) + strscan ruby-macho (2.5.1) strscan (3.1.0) typhoeus (1.4.1) ethon (>= 0.9.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - xcodeproj (1.25.1) + xcodeproj (1.24.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) nanaimo (~> 0.3.0) - rexml (>= 3.3.6, < 4.0) + rexml (~> 3.2.4) PLATFORMS ruby DEPENDENCIES - activesupport (>= 6.1.7.5, < 7.1.0) - cocoapods (>= 1.13, < 1.15) - -RUBY VERSION - ruby 3.2.2p53 + activesupport (>= 6.1.7.5, != 7.1.0) + cocoapods (>= 1.13, != 1.15.1, != 1.15.0) + concurrent-ruby (< 1.3.4) + xcodeproj (< 1.26.0) BUNDLED WITH 2.4.10 diff --git a/example-new-architecture/android/app/build.gradle b/example-new-architecture/android/app/build.gradle index efa333a48..54b81d034 100644 --- a/example-new-architecture/android/app/build.gradle +++ b/example-new-architecture/android/app/build.gradle @@ -115,4 +115,4 @@ dependencies { } } } -// apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) + diff --git a/example-new-architecture/android/app/src/main/java/com/ddsdkreactnativeexample/MainApplication.kt b/example-new-architecture/android/app/src/main/java/com/ddsdkreactnativeexample/MainApplication.kt index a1aaccfc0..26bf9b971 100644 --- a/example-new-architecture/android/app/src/main/java/com/ddsdkreactnativeexample/MainApplication.kt +++ b/example-new-architecture/android/app/src/main/java/com/ddsdkreactnativeexample/MainApplication.kt @@ -15,6 +15,7 @@ import com.facebook.react.ReactPackage import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost +import com.facebook.react.soloader.OpenSourceMergedSoMapping import com.facebook.soloader.SoLoader class MainApplication : Application(), ReactApplication { @@ -40,7 +41,7 @@ class MainApplication : Application(), ReactApplication { override fun onCreate() { super.onCreate() - SoLoader.init(this, false) + SoLoader.init(this, OpenSourceMergedSoMapping) if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { load() } diff --git a/example-new-architecture/android/build.gradle b/example-new-architecture/android/build.gradle index da02025b2..9eb5eac03 100644 --- a/example-new-architecture/android/build.gradle +++ b/example-new-architecture/android/build.gradle @@ -2,12 +2,12 @@ buildscript { ext { - buildToolsVersion = "34.0.0" - minSdkVersion = 23 - compileSdkVersion = 34 + buildToolsVersion = "35.0.0" + minSdkVersion = 24 + compileSdkVersion = 35 targetSdkVersion = 34 ndkVersion = "26.1.10909125" - kotlinVersion = "1.9.24" + kotlinVersion = "1.9.25" } repositories { google() diff --git a/example-new-architecture/android/gradle.properties b/example-new-architecture/android/gradle.properties index 5e24e3aa8..3e878eab7 100644 --- a/example-new-architecture/android/gradle.properties +++ b/example-new-architecture/android/gradle.properties @@ -10,7 +10,7 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m -org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m +org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit diff --git a/example-new-architecture/android/gradle/wrapper/gradle-wrapper.properties b/example-new-architecture/android/gradle/wrapper/gradle-wrapper.properties index 6f7a6eb33..df97d72b8 100644 --- a/example-new-architecture/android/gradle/wrapper/gradle-wrapper.properties +++ b/example-new-architecture/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/example-new-architecture/android/settings.gradle b/example-new-architecture/android/settings.gradle index e53f2a949..7bd80ff6c 100644 --- a/example-new-architecture/android/settings.gradle +++ b/example-new-architecture/android/settings.gradle @@ -1,7 +1,6 @@ -pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") } +pluginManagement { includeBuild("../../node_modules/@react-native/gradle-plugin") } plugins { id("com.facebook.react.settings") } extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() } rootProject.name = 'DdSdkReactNativeExample' include ':app' -includeBuild('../node_modules/@react-native/gradle-plugin') - +includeBuild('../../node_modules/@react-native/gradle-plugin') \ No newline at end of file diff --git a/example-new-architecture/ios/DdSdkReactNativeExample.xcodeproj/project.pbxproj b/example-new-architecture/ios/DdSdkReactNativeExample.xcodeproj/project.pbxproj index 4efb58968..3bb499dee 100644 --- a/example-new-architecture/ios/DdSdkReactNativeExample.xcodeproj/project.pbxproj +++ b/example-new-architecture/ios/DdSdkReactNativeExample.xcodeproj/project.pbxproj @@ -442,7 +442,7 @@ "$(inherited)", ); INFOPLIST_FILE = DdSdkReactNativeExampleTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -466,7 +466,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; COPY_PHASE_STRIP = NO; INFOPLIST_FILE = DdSdkReactNativeExampleTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -586,7 +586,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; LD = ""; LDPLUSPLUS = ""; LD_RUNPATH_SEARCH_PATHS = ( @@ -666,7 +666,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; LD = ""; LDPLUSPLUS = ""; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/example-new-architecture/ios/Podfile.lock b/example-new-architecture/ios/Podfile.lock index f07f06128..323aeff1e 100644 --- a/example-new-architecture/ios/Podfile.lock +++ b/example-new-architecture/ios/Podfile.lock @@ -20,7 +20,7 @@ PODS: - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -43,56 +43,60 @@ PODS: - DatadogWebViewTracking (2.27.0): - DatadogInternal (= 2.27.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.75.4) - - fmt (9.1.0) + - fast_float (6.1.4) + - FBLazyVector (0.76.9) + - fmt (11.0.2) - glog (0.3.5) - - hermes-engine (0.75.4): - - hermes-engine/Pre-built (= 0.75.4) - - hermes-engine/Pre-built (0.75.4) + - hermes-engine (0.76.9): + - hermes-engine/Pre-built (= 0.76.9) + - hermes-engine/Pre-built (0.76.9) - OpenTelemetrySwiftApi (1.13.1) - PLCrashReporter (1.12.0) - - RCT-Folly (2024.01.01.00): + - RCT-Folly (2024.10.14.00): - boost - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - - RCT-Folly/Default (= 2024.01.01.00) - - RCT-Folly/Default (2024.01.01.00): + - RCT-Folly/Default (= 2024.10.14.00) + - RCT-Folly/Default (2024.10.14.00): - boost - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - - RCT-Folly/Fabric (2024.01.01.00): + - RCT-Folly/Fabric (2024.10.14.00): - boost - DoubleConversion - - fmt (= 9.1.0) - - glog - - RCTDeprecation (0.75.4) - - RCTRequired (0.75.4) - - RCTTypeSafety (0.75.4): - - FBLazyVector (= 0.75.4) - - RCTRequired (= 0.75.4) - - React-Core (= 0.75.4) - - React (0.75.4): - - React-Core (= 0.75.4) - - React-Core/DevSupport (= 0.75.4) - - React-Core/RCTWebSocket (= 0.75.4) - - React-RCTActionSheet (= 0.75.4) - - React-RCTAnimation (= 0.75.4) - - React-RCTBlob (= 0.75.4) - - React-RCTImage (= 0.75.4) - - React-RCTLinking (= 0.75.4) - - React-RCTNetwork (= 0.75.4) - - React-RCTSettings (= 0.75.4) - - React-RCTText (= 0.75.4) - - React-RCTVibration (= 0.75.4) - - React-callinvoker (0.75.4) - - React-Core (0.75.4): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - fast_float + - fmt + - glog + - RCTDeprecation (0.76.9) + - RCTRequired (0.76.9) + - RCTTypeSafety (0.76.9): + - FBLazyVector (= 0.76.9) + - RCTRequired (= 0.76.9) + - React-Core (= 0.76.9) + - React (0.76.9): + - React-Core (= 0.76.9) + - React-Core/DevSupport (= 0.76.9) + - React-Core/RCTWebSocket (= 0.76.9) + - React-RCTActionSheet (= 0.76.9) + - React-RCTAnimation (= 0.76.9) + - React-RCTBlob (= 0.76.9) + - React-RCTImage (= 0.76.9) + - React-RCTLinking (= 0.76.9) + - React-RCTNetwork (= 0.76.9) + - React-RCTSettings (= 0.76.9) + - React-RCTText (= 0.76.9) + - React-RCTVibration (= 0.76.9) + - React-callinvoker (0.76.9) + - React-Core (0.76.9): + - glog + - hermes-engine + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - - React-Core/Default (= 0.75.4) + - React-Core/Default (= 0.76.9) - React-cxxreact - React-featureflags - React-hermes @@ -102,12 +106,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/CoreModulesHeaders (0.75.4): + - React-Core/CoreModulesHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -119,12 +123,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/Default (0.75.4): + - React-Core/Default (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-cxxreact - React-featureflags @@ -135,15 +139,15 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/DevSupport (0.75.4): + - React-Core/DevSupport (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - - React-Core/Default (= 0.75.4) - - React-Core/RCTWebSocket (= 0.75.4) + - React-Core/Default (= 0.76.9) + - React-Core/RCTWebSocket (= 0.76.9) - React-cxxreact - React-featureflags - React-hermes @@ -153,12 +157,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.75.4): + - React-Core/RCTActionSheetHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -170,12 +174,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTAnimationHeaders (0.75.4): + - React-Core/RCTAnimationHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -187,12 +191,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTBlobHeaders (0.75.4): + - React-Core/RCTBlobHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -204,12 +208,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTImageHeaders (0.75.4): + - React-Core/RCTImageHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -221,12 +225,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTLinkingHeaders (0.75.4): + - React-Core/RCTLinkingHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -238,12 +242,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTNetworkHeaders (0.75.4): + - React-Core/RCTNetworkHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -255,12 +259,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTSettingsHeaders (0.75.4): + - React-Core/RCTSettingsHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -272,12 +276,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTTextHeaders (0.75.4): + - React-Core/RCTTextHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -289,12 +293,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTVibrationHeaders (0.75.4): + - React-Core/RCTVibrationHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -306,14 +310,14 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTWebSocket (0.75.4): + - React-Core/RCTWebSocket (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - - React-Core/Default (= 0.75.4) + - React-Core/Default (= 0.76.9) - React-cxxreact - React-featureflags - React-hermes @@ -323,42 +327,45 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-CoreModules (0.75.4): + - React-CoreModules (0.76.9): - DoubleConversion - - fmt (= 9.1.0) - - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.75.4) - - React-Core/CoreModulesHeaders (= 0.75.4) - - React-jsi (= 0.75.4) + - fast_float + - fmt + - RCT-Folly + - RCTTypeSafety + - React-Core/CoreModulesHeaders + - React-jsi - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.75.4) + - React-RCTImage - ReactCodegen - ReactCommon - - SocketRocket (= 0.7.0) - - React-cxxreact (0.75.4): + - SocketRocket + - React-cxxreact (0.76.9): - boost - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.75.4) - - React-debug (= 0.75.4) - - React-jsi (= 0.75.4) + - RCT-Folly + - React-callinvoker + - React-debug + - React-jsi - React-jsinspector - - React-logger (= 0.75.4) - - React-perflogger (= 0.75.4) - - React-runtimeexecutor (= 0.75.4) - - React-debug (0.75.4) - - React-defaultsnativemodule (0.75.4): + - React-logger + - React-perflogger + - React-runtimeexecutor + - React-timing + - React-debug (0.76.9) + - React-defaultsnativemodule (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -379,11 +386,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-domnativemodule (0.75.4): + - React-domnativemodule (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -401,32 +408,33 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-Fabric (0.75.4): + - React-Fabric (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.75.4) - - React-Fabric/attributedstring (= 0.75.4) - - React-Fabric/componentregistry (= 0.75.4) - - React-Fabric/componentregistrynative (= 0.75.4) - - React-Fabric/components (= 0.75.4) - - React-Fabric/core (= 0.75.4) - - React-Fabric/dom (= 0.75.4) - - React-Fabric/imagemanager (= 0.75.4) - - React-Fabric/leakchecker (= 0.75.4) - - React-Fabric/mounting (= 0.75.4) - - React-Fabric/observers (= 0.75.4) - - React-Fabric/scheduler (= 0.75.4) - - React-Fabric/telemetry (= 0.75.4) - - React-Fabric/templateprocessor (= 0.75.4) - - React-Fabric/uimanager (= 0.75.4) + - React-Fabric/animations (= 0.76.9) + - React-Fabric/attributedstring (= 0.76.9) + - React-Fabric/componentregistry (= 0.76.9) + - React-Fabric/componentregistrynative (= 0.76.9) + - React-Fabric/components (= 0.76.9) + - React-Fabric/core (= 0.76.9) + - React-Fabric/dom (= 0.76.9) + - React-Fabric/imagemanager (= 0.76.9) + - React-Fabric/leakchecker (= 0.76.9) + - React-Fabric/mounting (= 0.76.9) + - React-Fabric/observers (= 0.76.9) + - React-Fabric/scheduler (= 0.76.9) + - React-Fabric/telemetry (= 0.76.9) + - React-Fabric/templateprocessor (= 0.76.9) + - React-Fabric/uimanager (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -436,12 +444,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.75.4): + - React-Fabric/animations (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -456,12 +465,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.75.4): + - React-Fabric/attributedstring (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -476,12 +486,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.75.4): + - React-Fabric/componentregistry (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -496,12 +507,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.75.4): + - React-Fabric/componentregistrynative (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -516,20 +528,21 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.75.4): + - React-Fabric/components (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/components/legacyviewmanagerinterop (= 0.75.4) - - React-Fabric/components/root (= 0.75.4) - - React-Fabric/components/view (= 0.75.4) + - React-Fabric/components/legacyviewmanagerinterop (= 0.76.9) + - React-Fabric/components/root (= 0.76.9) + - React-Fabric/components/view (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -539,12 +552,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.75.4): + - React-Fabric/components/legacyviewmanagerinterop (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -559,12 +573,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.75.4): + - React-Fabric/components/root (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -579,12 +594,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.75.4): + - React-Fabric/components/view (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -600,12 +616,13 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.75.4): + - React-Fabric/core (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -620,12 +637,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/dom (0.75.4): + - React-Fabric/dom (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -640,12 +658,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.75.4): + - React-Fabric/imagemanager (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -660,12 +679,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.75.4): + - React-Fabric/leakchecker (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -680,12 +700,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.75.4): + - React-Fabric/mounting (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -700,18 +721,19 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/observers (0.75.4): + - React-Fabric/observers (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/observers/events (= 0.75.4) + - React-Fabric/observers/events (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -721,12 +743,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/observers/events (0.75.4): + - React-Fabric/observers/events (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -741,12 +764,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.75.4): + - React-Fabric/scheduler (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -763,12 +787,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.75.4): + - React-Fabric/telemetry (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -783,12 +808,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.75.4): + - React-Fabric/templateprocessor (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -803,18 +829,19 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.75.4): + - React-Fabric/uimanager (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/uimanager/consistency (= 0.75.4) + - React-Fabric/uimanager/consistency (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -825,12 +852,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager/consistency (0.75.4): + - React-Fabric/uimanager/consistency (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -846,20 +874,21 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricComponents (0.75.4): + - React-FabricComponents (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components (= 0.75.4) - - React-FabricComponents/textlayoutmanager (= 0.75.4) + - React-FabricComponents/components (= 0.76.9) + - React-FabricComponents/textlayoutmanager (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -871,27 +900,28 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components (0.75.4): + - React-FabricComponents/components (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components/inputaccessory (= 0.75.4) - - React-FabricComponents/components/iostextinput (= 0.75.4) - - React-FabricComponents/components/modal (= 0.75.4) - - React-FabricComponents/components/rncore (= 0.75.4) - - React-FabricComponents/components/safeareaview (= 0.75.4) - - React-FabricComponents/components/scrollview (= 0.75.4) - - React-FabricComponents/components/text (= 0.75.4) - - React-FabricComponents/components/textinput (= 0.75.4) - - React-FabricComponents/components/unimplementedview (= 0.75.4) + - React-FabricComponents/components/inputaccessory (= 0.76.9) + - React-FabricComponents/components/iostextinput (= 0.76.9) + - React-FabricComponents/components/modal (= 0.76.9) + - React-FabricComponents/components/rncore (= 0.76.9) + - React-FabricComponents/components/safeareaview (= 0.76.9) + - React-FabricComponents/components/scrollview (= 0.76.9) + - React-FabricComponents/components/text (= 0.76.9) + - React-FabricComponents/components/textinput (= 0.76.9) + - React-FabricComponents/components/unimplementedview (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -903,12 +933,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/inputaccessory (0.75.4): + - React-FabricComponents/components/inputaccessory (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -926,12 +957,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/iostextinput (0.75.4): + - React-FabricComponents/components/iostextinput (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -949,12 +981,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/modal (0.75.4): + - React-FabricComponents/components/modal (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -972,12 +1005,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/rncore (0.75.4): + - React-FabricComponents/components/rncore (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -995,12 +1029,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/safeareaview (0.75.4): + - React-FabricComponents/components/safeareaview (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1018,12 +1053,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/scrollview (0.75.4): + - React-FabricComponents/components/scrollview (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1041,12 +1077,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/text (0.75.4): + - React-FabricComponents/components/text (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1064,12 +1101,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/textinput (0.75.4): + - React-FabricComponents/components/textinput (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1087,12 +1125,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/unimplementedview (0.75.4): + - React-FabricComponents/components/unimplementedview (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1110,12 +1149,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/textlayoutmanager (0.75.4): + - React-FabricComponents/textlayoutmanager (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1133,30 +1173,31 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricImage (0.75.4): + - React-FabricImage (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.75.4) - - RCTTypeSafety (= 0.75.4) + - RCT-Folly/Fabric + - RCTRequired + - RCTTypeSafety - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.75.4) + - React-jsiexecutor - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.75.4) - - React-featureflagsnativemodule (0.75.4): + - React-featureflags (0.76.9) + - React-featureflagsnativemodule (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1173,31 +1214,33 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-graphics (0.75.4): + - React-graphics (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric - React-jsi - React-jsiexecutor - React-utils - - React-hermes (0.75.4): + - React-hermes (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.75.4) + - RCT-Folly + - React-cxxreact - React-jsi - - React-jsiexecutor (= 0.75.4) + - React-jsiexecutor - React-jsinspector - - React-perflogger (= 0.75.4) + - React-perflogger - React-runtimeexecutor - - React-idlecallbacksnativemodule (0.75.4): + - React-idlecallbacksnativemodule (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1215,7 +1258,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-ImageManager (0.75.4): + - React-ImageManager (0.76.9): - glog - RCT-Folly/Fabric - React-Core/Default @@ -1224,47 +1267,53 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.75.4): - - RCT-Folly/Fabric (= 2024.01.01.00) + - React-jserrorhandler (0.76.9): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.10.14.00) + - React-cxxreact - React-debug - React-jsi - - React-jsi (0.75.4): + - React-jsi (0.76.9): - boost - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.75.4): + - RCT-Folly + - React-jsiexecutor (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.75.4) - - React-jsi (= 0.75.4) + - RCT-Folly + - React-cxxreact + - React-jsi - React-jsinspector - - React-perflogger (= 0.75.4) - - React-jsinspector (0.75.4): + - React-perflogger + - React-jsinspector (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.75.4) - - React-jsitracing (0.75.4): + - React-perflogger + - React-runtimeexecutor + - React-jsitracing (0.76.9): - React-jsi - - React-logger (0.75.4): + - React-logger (0.76.9): - glog - - React-Mapbuffer (0.75.4): + - React-Mapbuffer (0.76.9): - glog - React-debug - - React-microtasksnativemodule (0.75.4): + - React-microtasksnativemodule (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1281,8 +1330,8 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-nativeconfig (0.75.4) - - React-NativeModulesApple (0.75.4): + - React-nativeconfig (0.76.9) + - React-NativeModulesApple (0.76.9): - glog - hermes-engine - React-callinvoker @@ -1293,22 +1342,25 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.75.4) - - React-performancetimeline (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-perflogger (0.76.9): + - DoubleConversion + - RCT-Folly (= 2024.10.14.00) + - React-performancetimeline (0.76.9): + - RCT-Folly (= 2024.10.14.00) - React-cxxreact - - React-RCTActionSheet (0.75.4): - - React-Core/RCTActionSheetHeaders (= 0.75.4) - - React-RCTAnimation (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-timing + - React-RCTActionSheet (0.76.9): + - React-Core/RCTActionSheetHeaders (= 0.76.9) + - React-RCTAnimation (0.76.9): + - RCT-Folly (= 2024.10.14.00) - RCTTypeSafety - React-Core/RCTAnimationHeaders - React-jsi - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-RCTAppDelegate (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-RCTAppDelegate (0.76.9): + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1332,11 +1384,12 @@ PODS: - React-utils - ReactCodegen - ReactCommon - - React-RCTBlob (0.75.4): + - React-RCTBlob (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - React-Core/RCTBlobHeaders - React-Core/RCTWebSocket - React-jsi @@ -1345,10 +1398,10 @@ PODS: - React-RCTNetwork - ReactCodegen - ReactCommon - - React-RCTFabric (0.75.4): + - React-RCTFabric (0.76.9): - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - React-Core - React-debug - React-Fabric @@ -1368,8 +1421,8 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-RCTImage (0.76.9): + - RCT-Folly (= 2024.10.14.00) - RCTTypeSafety - React-Core/RCTImageHeaders - React-jsi @@ -1377,49 +1430,50 @@ PODS: - React-RCTNetwork - ReactCodegen - ReactCommon - - React-RCTLinking (0.75.4): - - React-Core/RCTLinkingHeaders (= 0.75.4) - - React-jsi (= 0.75.4) + - React-RCTLinking (0.76.9): + - React-Core/RCTLinkingHeaders (= 0.76.9) + - React-jsi (= 0.76.9) - React-NativeModulesApple - ReactCodegen - ReactCommon - - ReactCommon/turbomodule/core (= 0.75.4) - - React-RCTNetwork (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - ReactCommon/turbomodule/core (= 0.76.9) + - React-RCTNetwork (0.76.9): + - RCT-Folly (= 2024.10.14.00) - RCTTypeSafety - React-Core/RCTNetworkHeaders - React-jsi - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-RCTSettings (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-RCTSettings (0.76.9): + - RCT-Folly (= 2024.10.14.00) - RCTTypeSafety - React-Core/RCTSettingsHeaders - React-jsi - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-RCTText (0.75.4): - - React-Core/RCTTextHeaders (= 0.75.4) + - React-RCTText (0.76.9): + - React-Core/RCTTextHeaders (= 0.76.9) - Yoga - - React-RCTVibration (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-RCTVibration (0.76.9): + - RCT-Folly (= 2024.10.14.00) - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-rendererconsistency (0.75.4) - - React-rendererdebug (0.75.4): + - React-rendererconsistency (0.76.9) + - React-rendererdebug (0.76.9): - DoubleConversion - - fmt (= 9.1.0) - - RCT-Folly (= 2024.01.01.00) + - fast_float + - fmt + - RCT-Folly - React-debug - - React-rncore (0.75.4) - - React-RuntimeApple (0.75.4): + - React-rncore (0.76.9) + - React-RuntimeApple (0.76.9): - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - React-callinvoker - React-Core/Default - React-CoreModules @@ -1436,24 +1490,25 @@ PODS: - React-RuntimeHermes - React-runtimescheduler - React-utils - - React-RuntimeCore (0.75.4): + - React-RuntimeCore (0.76.9): - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - React-cxxreact - React-featureflags - React-jserrorhandler - React-jsi - React-jsiexecutor - React-jsinspector + - React-performancetimeline - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.75.4): - - React-jsi (= 0.75.4) - - React-RuntimeHermes (0.75.4): + - React-runtimeexecutor (0.76.9): + - React-jsi (= 0.76.9) + - React-RuntimeHermes (0.76.9): - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - React-featureflags - React-hermes - React-jsi @@ -1462,26 +1517,29 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.75.4): + - React-runtimescheduler (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - React-callinvoker - React-cxxreact - React-debug - React-featureflags - React-jsi + - React-performancetimeline - React-rendererconsistency - React-rendererdebug - React-runtimeexecutor + - React-timing - React-utils - - React-utils (0.75.4): + - React-timing (0.76.9) + - React-utils (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - React-debug - - React-jsi (= 0.75.4) - - ReactCodegen (0.75.4): + - React-jsi (= 0.76.9) + - ReactCodegen (0.76.9): - DoubleConversion - glog - hermes-engine @@ -1501,53 +1559,57 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - ReactCommon (0.75.4): - - ReactCommon/turbomodule (= 0.75.4) - - ReactCommon/turbomodule (0.75.4): + - ReactCommon (0.76.9): + - ReactCommon/turbomodule (= 0.76.9) + - ReactCommon/turbomodule (0.76.9): - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.75.4) - - React-cxxreact (= 0.75.4) - - React-jsi (= 0.75.4) - - React-logger (= 0.75.4) - - React-perflogger (= 0.75.4) - - ReactCommon/turbomodule/bridging (= 0.75.4) - - ReactCommon/turbomodule/core (= 0.75.4) - - ReactCommon/turbomodule/bridging (0.75.4): + - fast_float + - fmt + - glog + - hermes-engine + - RCT-Folly + - React-callinvoker + - React-cxxreact + - React-jsi + - React-logger + - React-perflogger + - ReactCommon/turbomodule/bridging (= 0.76.9) + - ReactCommon/turbomodule/core (= 0.76.9) + - ReactCommon/turbomodule/bridging (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.75.4) - - React-cxxreact (= 0.75.4) - - React-jsi (= 0.75.4) - - React-logger (= 0.75.4) - - React-perflogger (= 0.75.4) - - ReactCommon/turbomodule/core (0.75.4): + - RCT-Folly + - React-callinvoker + - React-cxxreact + - React-jsi (= 0.76.9) + - React-logger + - React-perflogger + - ReactCommon/turbomodule/core (0.76.9): - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.75.4) - - React-cxxreact (= 0.75.4) - - React-debug (= 0.75.4) - - React-featureflags (= 0.75.4) - - React-jsi (= 0.75.4) - - React-logger (= 0.75.4) - - React-perflogger (= 0.75.4) - - React-utils (= 0.75.4) - - SocketRocket (0.7.0) + - fast_float + - fmt + - glog + - hermes-engine + - RCT-Folly + - React-callinvoker + - React-cxxreact + - React-debug (= 0.76.9) + - React-featureflags (= 0.76.9) + - React-jsi + - React-logger + - React-perflogger + - React-utils (= 0.76.9) + - SocketRocket (0.7.1) - Yoga (0.0.0) DEPENDENCIES: - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - "DatadogSDKReactNative (from `../node_modules/@datadog/mobile-react-native`)" - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - fast_float (from `../node_modules/react-native/third-party-podspecs/fast_float.podspec`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) @@ -1606,6 +1668,7 @@ DEPENDENCIES: - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) - 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`) - ReactCodegen (from `build/generated/ios`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) @@ -1631,6 +1694,8 @@ EXTERNAL SOURCES: :path: "../node_modules/@datadog/mobile-react-native" DoubleConversion: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + fast_float: + :podspec: "../node_modules/react-native/third-party-podspecs/fast_float.podspec" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" fmt: @@ -1639,7 +1704,7 @@ EXTERNAL SOURCES: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" hermes-engine: :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2024-08-15-RNv0.75.1-4b3bf912cc0f705b51b71ce1a5b8bd79b93a451b + :tag: hermes-2024-11-12-RNv0.76.2-5b4aa20c719830dcf5684832b89a6edb95ac3d64 RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTDeprecation: @@ -1744,6 +1809,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/react/runtime" React-runtimescheduler: :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" + React-timing: + :path: "../node_modules/react-native/ReactCommon/react/timing" React-utils: :path: "../node_modules/react-native/ReactCommon/react/utils" ReactCodegen: @@ -1754,79 +1821,81 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost: 4cb898d0bf20404aab1850c656dcea009429d6c1 + boost: 1dca942403ed9342f98334bf4c3621f011aa7946 DatadogCore: 68aee4ffcc3ea17a3b0aa527907757883fc72c84 DatadogCrashReporting: e6a83b143394e28c9c1cb48c5cfb18eff507b3be DatadogInternal: 3c5cae6772295fd175a9de11e4747a9322aaa4e7 DatadogLogs: 09d6358dc7682f9d3eaea85dd418f82d2db3560c DatadogRUM: 0f267df8c9c8579a291870c2bce4549587391a07 - DatadogSDKReactNative: 5603d49b700b6a9353c98d9143e530428ff622d3 + DatadogSDKReactNative: d52b8455c7c1ac846278668a5c2ba6e323177633 DatadogTrace: f46c8220c73463d09741013f385a6e27cd39185b DatadogWebViewTracking: dc8376420c8686efd09d00752bc1034b639d180b - DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 430e10366de01d1e3d57374500b1b150fe482e6d - fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 - glog: 69ef571f3de08433d766d614c73a9838a06bf7eb - hermes-engine: ea92f60f37dba025e293cbe4b4a548fd26b610a0 + DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385 + fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6 + FBLazyVector: 7605ea4810e0e10ae4815292433c09bf4324ba45 + fmt: 01b82d4ca6470831d1cc0852a1af644be019e8f6 + glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a + hermes-engine: 9e868dc7be781364296d6ee2f56d0c1a9ef0bb11 OpenTelemetrySwiftApi: aaee576ed961e0c348af78df58b61300e95bd104 PLCrashReporter: db59ef96fa3d25f3650040d02ec2798cffee75f2 - RCT-Folly: 4464f4d875961fce86008d45f4ecf6cef6de0740 - RCTDeprecation: 726d24248aeab6d7180dac71a936bbca6a994ed1 - RCTRequired: a94e7febda6db0345d207e854323c37e3a31d93b - RCTTypeSafety: 28e24a6e44f5cbf912c66dde6ab7e07d1059a205 - React: c2830fa483b0334bda284e46a8579ebbe0c5447e - React-callinvoker: 4aecde929540c26b841a4493f70ebf6016691eb8 - React-Core: 9c059899f00d46b5cec3ed79251f77d9c469553d - React-CoreModules: 9fac2d31803c0ed03e4ddaa17f1481714f8633a5 - React-cxxreact: a979810a3ca4045ceb09407a17563046a7f71494 - React-debug: 3d21f69d8def0656f8b8ec25c0f05954f4d862c5 - React-defaultsnativemodule: 5bb91842d2bd91c5e9d23f67f5913a1226e8d1f2 - React-domnativemodule: a8ff57705d8372d7182e9277110ad290d50ffeed - React-Fabric: 3bc7be9e3a6b7581fc828dc2aa041e107fc8ffb8 - React-FabricComponents: 668e0cb02344c2942e4c8921a643648faa6dc364 - React-FabricImage: 3f44dd25a2b020ed5215d4438a1bb1f3461cd4f1 - React-featureflags: ee1abd6f71555604a36cda6476e3c502ca9a48e5 - React-featureflagsnativemodule: d91903b8ad0e82b1eee3e7845d08024fbd6c758f - React-graphics: d7dd9c8d75cad5af19e19911fa370f78f2febd96 - React-hermes: 2069b08e965e48b7f8aa2c0ca0a2f383349ed55d - React-idlecallbacksnativemodule: 568f7db5c625852e3eac25a5686760da152f0225 - React-ImageManager: ab7a7d17dd0ff1ef1d4e1e88197d1119da9957ce - React-jserrorhandler: d9e867bb83b868472f3f7601883f0403b3e3942d - React-jsi: d68f1d516e5120a510afe356647a6a1e1f98f2db - React-jsiexecutor: 6366a08a0fc01c9b65736f8deacd47c4a397912a - React-jsinspector: 0ac947411f0c73b34908800cc7a6a31d8f93e1a8 - React-jsitracing: 0e8c0aadb1fcec6b1e4f2a66ee3b0da80f0f8615 - React-logger: d79b704bf215af194f5213a6b7deec50ba8e6a9b - React-Mapbuffer: b982d5bba94a8bc073bda48f0d27c9b28417fae3 - React-microtasksnativemodule: 2cec1d6e126598df0f165268afa231174dd1a611 - React-nativeconfig: 8c83d992b9cc7d75b5abe262069eaeea4349f794 - React-NativeModulesApple: 9f7920224a3b0c7d04d77990067ded14cee3c614 - React-perflogger: 59e1a3182dca2cee7b9f1f7aab204018d46d1914 - React-performancetimeline: a9d05533ff834c6aa1f532e05e571f3fd2e3c1ed - React-RCTActionSheet: d80e68d3baa163e4012a47c1f42ddd8bcd9672cc - React-RCTAnimation: bde981f6bd7f8493696564da9b3bd05721d3b3cc - React-RCTAppDelegate: b21d50ec42f18fedae765629d56850538a8c98d7 - React-RCTBlob: 520a0382bf8e89b9153d60e3c6293e51615834e9 - React-RCTFabric: a083f6c78c6084a0ac332934fc5cfc4271bab61f - React-RCTImage: 90448d2882464af6015ed57c98f463f8748be465 - React-RCTLinking: 1bd95d0a704c271d21d758e0f0388cced768d77d - React-RCTNetwork: 218af6e63eb9b47935cc5a775b7a1396cf10ff91 - React-RCTSettings: e10b8e42b0fce8a70fbf169de32a2ae03243ef6b - React-RCTText: e7bf9f4997a1a0b45c052d4ad9a0fe653061cf29 - React-RCTVibration: 5b70b7f11e48d1c57e0d4832c2097478adbabe93 - React-rendererconsistency: f620c6e003e3c4593e6349d8242b8aeb3d4633f0 - React-rendererdebug: e697680f4dd117becc5daf9ea9800067abcee91c - React-rncore: c22bd84cc2f38947f0414fab6646db22ff4f80cd - React-RuntimeApple: de0976836b90b484305638616898cbc665c67c13 - React-RuntimeCore: 3c4a5aa63d9e7a3c17b7fb23f32a72a8bcfccf57 - React-runtimeexecutor: ea90d8e3a9e0f4326939858dafc6ab17c031a5d3 - React-RuntimeHermes: c6b0afdf1f493621214eeb6517fb859ce7b21b81 - React-runtimescheduler: 84f0d876d254bce6917a277b3930eb9bc29df6c7 - React-utils: cbe8b8b3d7b2ac282e018e46f0e7b25cdc87c5a0 - ReactCodegen: 4bcb34e6b5ebf6eef5cee34f55aa39991ea1c1f1 - ReactCommon: 6a952e50c2a4b694731d7682aaa6c79bc156e4ad - SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: 055f92ad73f8c8600a93f0e25ac0b2344c3b07e6 + RCT-Folly: 7b4f73a92ad9571b9dbdb05bb30fad927fa971e1 + RCTDeprecation: ebe712bb05077934b16c6bf25228bdec34b64f83 + RCTRequired: ca91e5dd26b64f577b528044c962baf171c6b716 + RCTTypeSafety: e7678bd60850ca5a41df9b8dc7154638cb66871f + React: 4641770499c39f45d4e7cde1eba30e081f9d8a3d + React-callinvoker: 4bef67b5c7f3f68db5929ab6a4d44b8a002998ea + React-Core: 0a06707a0b34982efc4a556aff5dae4b22863455 + React-CoreModules: 907334e94314189c2e5eed4877f3efe7b26d85b0 + React-cxxreact: 3a1d5e8f4faa5e09be26614e9c8bbcae8d11b73d + React-debug: 817160c07dc8d24d020fbd1eac7b3558ffc08964 + React-defaultsnativemodule: 814830ccbc3fb08d67d0190e63b179ee4098c67b + React-domnativemodule: 270acf94bd0960b026bc3bfb327e703665d27fb4 + React-Fabric: 64586dc191fc1c170372a638b8e722e4f1d0a09b + React-FabricComponents: b0ebd032387468ea700574c581b139f57a7497fb + React-FabricImage: 81f0e0794caf25ad1224fa406d288fbc1986607f + React-featureflags: f2792b067a351d86fdc7bec23db3b9a2f2c8d26c + React-featureflagsnativemodule: 0d7091ae344d6160c0557048e127897654a5c00f + React-graphics: cbebe910e4a15b65b0bff94a4d3ed278894d6386 + React-hermes: ec18c10f5a69d49fb9b5e17ae95494e9ea13d4d3 + React-idlecallbacksnativemodule: 6b84add48971da9c40403bd1860d4896462590f2 + React-ImageManager: f2a4c01c2ccb2193e60a20c135da74c7ca4d36f2 + React-jserrorhandler: 61d205b5a7cbc57fed3371dd7eed48c97f49fc64 + React-jsi: 95f7676103137861b79b0f319467627bcfa629ee + React-jsiexecutor: 41e0fe87cda9ea3970ffb872ef10f1ff8dbd1932 + React-jsinspector: 15578208796723e5c6f39069b6e8bf36863ef6e2 + React-jsitracing: 3758cdb155ea7711f0e77952572ea62d90c69f0b + React-logger: dbca7bdfd4aa5ef69431362bde6b36d49403cb20 + React-Mapbuffer: 6efad4a606c1fae7e4a93385ee096681ef0300dc + React-microtasksnativemodule: a645237a841d733861c70b69908ab4a1707b52ad + React-nativeconfig: 8efdb1ef1e9158c77098a93085438f7e7b463678 + React-NativeModulesApple: 958d4f6c5c2ace4c0f427cf7ef82e28ae6538a22 + React-perflogger: 9b4f13c0afe56bc7b4a0e93ec74b1150421ee22d + React-performancetimeline: 359db1cb889aa0282fafc5838331b0987c4915a9 + React-RCTActionSheet: aacf2375084dea6e7c221f4a727e579f732ff342 + React-RCTAnimation: d8c82deebebe3aaf7a843affac1b57cb2dc073d4 + React-RCTAppDelegate: 1774aa421a29a41a704ecaf789811ef73c4634b6 + React-RCTBlob: 70a58c11a6a3500d1a12f2e51ca4f6c99babcff8 + React-RCTFabric: 731cda82aed592aacce2d32ead69d78cde5d9274 + React-RCTImage: 5e9d655ba6a790c31e3176016f9b47fd0978fbf0 + React-RCTLinking: 2a48338252805091f7521eaf92687206401bdf2a + React-RCTNetwork: 0c1282b377257f6b1c81934f72d8a1d0c010e4c3 + React-RCTSettings: f757b679a74e5962be64ea08d7865a7debd67b40 + React-RCTText: e7d20c490b407d3b4a2daa48db4bcd8ec1032af2 + React-RCTVibration: 8228e37144ca3122a91f1de16ba8e0707159cfec + React-rendererconsistency: b4917053ecbaa91469c67a4319701c9dc0d40be6 + React-rendererdebug: 81becbc8852b38d9b1b68672aa504556481330d5 + React-rncore: 120d21715c9b4ba8f798bffe986cb769b988dd74 + React-RuntimeApple: 52ed0e9e84a7c2607a901149fb13599a3c057655 + React-RuntimeCore: ca6189d2e53d86db826e2673fe8af6571b8be157 + React-runtimeexecutor: 877596f82f5632d073e121cba2d2084b76a76899 + React-RuntimeHermes: 3b752dc5d8a1661c9d1687391d6d96acfa385549 + React-runtimescheduler: 8321bb09175ace2a4f0b3e3834637eb85bf42ebe + React-timing: 331cbf9f2668c67faddfd2e46bb7f41cbd9320b9 + React-utils: 54df9ada708578c8ad40d92895d6fed03e0e8a9e + ReactCodegen: 21a52ccddc6479448fc91903a437dd23ddc7366c + ReactCommon: bfd3600989d79bc3acbe7704161b171a1480b9fd + SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 + Yoga: feb4910aba9742cfedc059e2b2902e22ffe9954a PODFILE CHECKSUM: 177d543ee3f68b9c6bac1ab35280134bf5d24a20 diff --git a/example-new-architecture/package.json b/example-new-architecture/package.json index 95bc2804a..92f2a7640 100644 --- a/example-new-architecture/package.json +++ b/example-new-architecture/package.json @@ -9,20 +9,20 @@ }, "dependencies": { "@datadog/mobile-react-native": "workspace:packages/core", - "@react-native-community/cli-platform-android": "13.6.9", "react": "18.3.1", - "react-native": "0.75.4" + "react-native": "0.76.9" }, "devDependencies": { - "@babel/core": "^7.20.0", - "@babel/preset-env": "^7.20.0", - "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.75.4", - "@react-native/codegen": "^0.75.4", - "@react-native/eslint-config": "0.75.4", - "@react-native/gradle-plugin": "^0.75.4", - "@react-native/metro-config": "0.75.4", - "@react-native/typescript-config": "0.75.4", + "@babel/core": "^7.25.2", + "@babel/preset-env": "^7.25.3", + "@babel/runtime": "^7.25.0", + "@react-native-community/cli": "15.0.1", + "@react-native-community/cli-platform-android": "15.0.1", + "@react-native-community/cli-platform-ios": "15.0.1", + "@react-native/babel-preset": "0.76.9", + "@react-native/eslint-config": "0.76.9", + "@react-native/metro-config": "0.76.9", + "@react-native/typescript-config": "0.76.9", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", @@ -37,6 +37,5 @@ }, "installConfig": { "hoistingLimits": "dependencies" - }, - "packageManager": "yarn@3.4.1" + } } diff --git a/example/Gemfile b/example/Gemfile index 3508425f6..568aa52be 100644 --- a/example/Gemfile +++ b/example/Gemfile @@ -1,9 +1,5 @@ -source 'https://rubygems.org' - -# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version -ruby ">= 2.6.10" - -# Cocoapods 1.15 introduced a bug which break the build. We will remove the upper -# bound in the template on Cocoapods with next React Native release. -gem 'cocoapods', '>= 1.13', '< 1.15' -gem 'activesupport', '>= 6.1.7.5', '< 7.1.0' +# Exclude problematic versions of cocoapods and activesupport that causes build failures. +gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' +gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' +gem 'xcodeproj', '< 1.26.0' +gem 'concurrent-ruby', '< 1.3.4' \ No newline at end of file diff --git a/example/Gemfile.lock b/example/Gemfile.lock index 982ba4cd9..e2b4b888c 100644 --- a/example/Gemfile.lock +++ b/example/Gemfile.lock @@ -1,5 +1,4 @@ GEM - remote: https://rubygems.org/ specs: CFPropertyList (3.0.7) base64 @@ -75,30 +74,30 @@ GEM netrc (0.11.0) nkf (0.2.0) public_suffix (4.0.7) - rexml (3.3.9) + rexml (3.2.9) + strscan ruby-macho (2.5.1) strscan (3.1.0) typhoeus (1.4.1) ethon (>= 0.9.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - xcodeproj (1.25.1) + xcodeproj (1.24.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) nanaimo (~> 0.3.0) - rexml (>= 3.3.6, < 4.0) + rexml (~> 3.2.4) PLATFORMS ruby DEPENDENCIES - activesupport (>= 6.1.7.5, < 7.1.0) - cocoapods (>= 1.13, < 1.15) - -RUBY VERSION - ruby 3.2.2p53 + activesupport (>= 6.1.7.5, != 7.1.0) + cocoapods (>= 1.13, != 1.15.1, != 1.15.0) + concurrent-ruby (< 1.3.4) + xcodeproj (< 1.26.0) BUNDLED WITH 2.4.10 diff --git a/example/android/app/src/main/java/com/ddsdkreactnativeexample/MainApplication.kt b/example/android/app/src/main/java/com/ddsdkreactnativeexample/MainApplication.kt index 246f77c72..9efdf4b7b 100644 --- a/example/android/app/src/main/java/com/ddsdkreactnativeexample/MainApplication.kt +++ b/example/android/app/src/main/java/com/ddsdkreactnativeexample/MainApplication.kt @@ -11,9 +11,10 @@ import com.facebook.react.ReactHost import com.facebook.react.ReactNativeHost import com.facebook.react.ReactPackage import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint -import com.facebook.react.flipper.ReactNativeFlipper import com.reactnativenavigation.NavigationApplication import com.reactnativenavigation.react.NavigationReactNativeHost +import com.facebook.react.soloader.OpenSourceMergedSoMapping +import com.facebook.soloader.SoLoader class MainApplication : NavigationApplication() { @@ -46,10 +47,10 @@ class MainApplication : NavigationApplication() { @Override override fun onCreate() { super.onCreate() + SoLoader.init(this, OpenSourceMergedSoMapping) if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { // If you opted-in for the New Architecture, we load the native entry point for this app. DefaultNewArchitectureEntryPoint.load() } - ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) } } diff --git a/example/android/build.gradle b/example/android/build.gradle index df1ce4db3..7a0191364 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -1,11 +1,11 @@ buildscript { ext { - buildToolsVersion = "34.0.0" - minSdkVersion = 23 - compileSdkVersion = 34 + buildToolsVersion = "35.0.0" + minSdkVersion = 24 + compileSdkVersion = 35 targetSdkVersion = 34 ndkVersion = "26.1.10909125" - kotlinVersion = "1.9.24" + kotlinVersion = "1.9.25" } repositories { google() diff --git a/example/android/gradle.properties b/example/android/gradle.properties index a46a5b90f..0e9b37d4b 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -10,7 +10,7 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m -org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m +org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 7da01ddb7..8bdda7996 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Wed Jan 15 10:26:26 WET 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/example/babel.config.js b/example/babel.config.js index 990d54137..cafccd5f2 100644 --- a/example/babel.config.js +++ b/example/babel.config.js @@ -1,3 +1,3 @@ module.exports = { - presets: ['module:@react-native/babel-preset'] + presets: ['module:@react-native/babel-preset'], }; diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index ab20afcab..58be8d894 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -32,7 +32,7 @@ PODS: - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -55,7 +55,7 @@ PODS: - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -93,57 +93,61 @@ PODS: - DatadogWebViewTracking (2.27.0): - DatadogInternal (= 2.27.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.75.4) - - fmt (9.1.0) + - fast_float (6.1.4) + - FBLazyVector (0.76.9) + - fmt (11.0.2) - glog (0.3.5) - - hermes-engine (0.75.4): - - hermes-engine/Pre-built (= 0.75.4) - - hermes-engine/Pre-built (0.75.4) + - hermes-engine (0.76.9): + - hermes-engine/Pre-built (= 0.76.9) + - hermes-engine/Pre-built (0.76.9) - HMSegmentedControl (1.5.6) - OpenTelemetrySwiftApi (1.13.1) - PLCrashReporter (1.12.0) - - RCT-Folly (2024.01.01.00): + - RCT-Folly (2024.10.14.00): - boost - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - - RCT-Folly/Default (= 2024.01.01.00) - - RCT-Folly/Default (2024.01.01.00): + - RCT-Folly/Default (= 2024.10.14.00) + - RCT-Folly/Default (2024.10.14.00): - boost - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - - RCT-Folly/Fabric (2024.01.01.00): + - RCT-Folly/Fabric (2024.10.14.00): - boost - DoubleConversion - - fmt (= 9.1.0) - - glog - - RCTDeprecation (0.75.4) - - RCTRequired (0.75.4) - - RCTTypeSafety (0.75.4): - - FBLazyVector (= 0.75.4) - - RCTRequired (= 0.75.4) - - React-Core (= 0.75.4) - - React (0.75.4): - - React-Core (= 0.75.4) - - React-Core/DevSupport (= 0.75.4) - - React-Core/RCTWebSocket (= 0.75.4) - - React-RCTActionSheet (= 0.75.4) - - React-RCTAnimation (= 0.75.4) - - React-RCTBlob (= 0.75.4) - - React-RCTImage (= 0.75.4) - - React-RCTLinking (= 0.75.4) - - React-RCTNetwork (= 0.75.4) - - React-RCTSettings (= 0.75.4) - - React-RCTText (= 0.75.4) - - React-RCTVibration (= 0.75.4) - - React-callinvoker (0.75.4) - - React-Core (0.75.4): - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - fast_float + - fmt + - glog + - RCTDeprecation (0.76.9) + - RCTRequired (0.76.9) + - RCTTypeSafety (0.76.9): + - FBLazyVector (= 0.76.9) + - RCTRequired (= 0.76.9) + - React-Core (= 0.76.9) + - React (0.76.9): + - React-Core (= 0.76.9) + - React-Core/DevSupport (= 0.76.9) + - React-Core/RCTWebSocket (= 0.76.9) + - React-RCTActionSheet (= 0.76.9) + - React-RCTAnimation (= 0.76.9) + - React-RCTBlob (= 0.76.9) + - React-RCTImage (= 0.76.9) + - React-RCTLinking (= 0.76.9) + - React-RCTNetwork (= 0.76.9) + - React-RCTSettings (= 0.76.9) + - React-RCTText (= 0.76.9) + - React-RCTVibration (= 0.76.9) + - React-callinvoker (0.76.9) + - React-Core (0.76.9): + - glog + - hermes-engine + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - - React-Core/Default (= 0.75.4) + - React-Core/Default (= 0.76.9) - React-cxxreact - React-featureflags - React-hermes @@ -153,12 +157,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/CoreModulesHeaders (0.75.4): + - React-Core/CoreModulesHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -170,12 +174,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/Default (0.75.4): + - React-Core/Default (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-cxxreact - React-featureflags @@ -186,15 +190,15 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/DevSupport (0.75.4): + - React-Core/DevSupport (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - - React-Core/Default (= 0.75.4) - - React-Core/RCTWebSocket (= 0.75.4) + - React-Core/Default (= 0.76.9) + - React-Core/RCTWebSocket (= 0.76.9) - React-cxxreact - React-featureflags - React-hermes @@ -204,12 +208,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.75.4): + - React-Core/RCTActionSheetHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -221,12 +225,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTAnimationHeaders (0.75.4): + - React-Core/RCTAnimationHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -238,12 +242,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTBlobHeaders (0.75.4): + - React-Core/RCTBlobHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -255,12 +259,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTImageHeaders (0.75.4): + - React-Core/RCTImageHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -272,12 +276,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTLinkingHeaders (0.75.4): + - React-Core/RCTLinkingHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -289,12 +293,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTNetworkHeaders (0.75.4): + - React-Core/RCTNetworkHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -306,12 +310,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTSettingsHeaders (0.75.4): + - React-Core/RCTSettingsHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -323,12 +327,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTTextHeaders (0.75.4): + - React-Core/RCTTextHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -340,12 +344,12 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTVibrationHeaders (0.75.4): + - React-Core/RCTVibrationHeaders (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - React-Core/Default - React-cxxreact @@ -357,14 +361,14 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTWebSocket (0.75.4): + - React-Core/RCTWebSocket (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTDeprecation - - React-Core/Default (= 0.75.4) + - React-Core/Default (= 0.76.9) - React-cxxreact - React-featureflags - React-hermes @@ -374,42 +378,45 @@ PODS: - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.0) + - SocketRocket (= 0.7.1) - Yoga - - React-CoreModules (0.75.4): + - React-CoreModules (0.76.9): - DoubleConversion - - fmt (= 9.1.0) - - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.75.4) - - React-Core/CoreModulesHeaders (= 0.75.4) - - React-jsi (= 0.75.4) + - fast_float + - fmt + - RCT-Folly + - RCTTypeSafety + - React-Core/CoreModulesHeaders + - React-jsi - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.75.4) + - React-RCTImage - ReactCodegen - ReactCommon - - SocketRocket (= 0.7.0) - - React-cxxreact (0.75.4): + - SocketRocket + - React-cxxreact (0.76.9): - boost - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.75.4) - - React-debug (= 0.75.4) - - React-jsi (= 0.75.4) + - RCT-Folly + - React-callinvoker + - React-debug + - React-jsi - React-jsinspector - - React-logger (= 0.75.4) - - React-perflogger (= 0.75.4) - - React-runtimeexecutor (= 0.75.4) - - React-debug (0.75.4) - - React-defaultsnativemodule (0.75.4): + - React-logger + - React-perflogger + - React-runtimeexecutor + - React-timing + - React-debug (0.76.9) + - React-defaultsnativemodule (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -430,11 +437,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-domnativemodule (0.75.4): + - React-domnativemodule (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -452,32 +459,33 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-Fabric (0.75.4): + - React-Fabric (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.75.4) - - React-Fabric/attributedstring (= 0.75.4) - - React-Fabric/componentregistry (= 0.75.4) - - React-Fabric/componentregistrynative (= 0.75.4) - - React-Fabric/components (= 0.75.4) - - React-Fabric/core (= 0.75.4) - - React-Fabric/dom (= 0.75.4) - - React-Fabric/imagemanager (= 0.75.4) - - React-Fabric/leakchecker (= 0.75.4) - - React-Fabric/mounting (= 0.75.4) - - React-Fabric/observers (= 0.75.4) - - React-Fabric/scheduler (= 0.75.4) - - React-Fabric/telemetry (= 0.75.4) - - React-Fabric/templateprocessor (= 0.75.4) - - React-Fabric/uimanager (= 0.75.4) + - React-Fabric/animations (= 0.76.9) + - React-Fabric/attributedstring (= 0.76.9) + - React-Fabric/componentregistry (= 0.76.9) + - React-Fabric/componentregistrynative (= 0.76.9) + - React-Fabric/components (= 0.76.9) + - React-Fabric/core (= 0.76.9) + - React-Fabric/dom (= 0.76.9) + - React-Fabric/imagemanager (= 0.76.9) + - React-Fabric/leakchecker (= 0.76.9) + - React-Fabric/mounting (= 0.76.9) + - React-Fabric/observers (= 0.76.9) + - React-Fabric/scheduler (= 0.76.9) + - React-Fabric/telemetry (= 0.76.9) + - React-Fabric/templateprocessor (= 0.76.9) + - React-Fabric/uimanager (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -487,12 +495,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.75.4): + - React-Fabric/animations (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -507,12 +516,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.75.4): + - React-Fabric/attributedstring (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -527,12 +537,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.75.4): + - React-Fabric/componentregistry (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -547,12 +558,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.75.4): + - React-Fabric/componentregistrynative (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -567,20 +579,21 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.75.4): + - React-Fabric/components (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/components/legacyviewmanagerinterop (= 0.75.4) - - React-Fabric/components/root (= 0.75.4) - - React-Fabric/components/view (= 0.75.4) + - React-Fabric/components/legacyviewmanagerinterop (= 0.76.9) + - React-Fabric/components/root (= 0.76.9) + - React-Fabric/components/view (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -590,12 +603,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.75.4): + - React-Fabric/components/legacyviewmanagerinterop (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -610,12 +624,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.75.4): + - React-Fabric/components/root (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -630,12 +645,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.75.4): + - React-Fabric/components/view (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -651,12 +667,13 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.75.4): + - React-Fabric/core (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -671,12 +688,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/dom (0.75.4): + - React-Fabric/dom (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -691,12 +709,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.75.4): + - React-Fabric/imagemanager (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -711,12 +730,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.75.4): + - React-Fabric/leakchecker (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -731,12 +751,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.75.4): + - React-Fabric/mounting (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -751,18 +772,19 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/observers (0.75.4): + - React-Fabric/observers (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/observers/events (= 0.75.4) + - React-Fabric/observers/events (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -772,12 +794,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/observers/events (0.75.4): + - React-Fabric/observers/events (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -792,12 +815,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.75.4): + - React-Fabric/scheduler (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -814,12 +838,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.75.4): + - React-Fabric/telemetry (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -834,12 +859,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.75.4): + - React-Fabric/templateprocessor (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -854,18 +880,19 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.75.4): + - React-Fabric/uimanager (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/uimanager/consistency (= 0.75.4) + - React-Fabric/uimanager/consistency (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -876,12 +903,13 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager/consistency (0.75.4): + - React-Fabric/uimanager/consistency (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -897,20 +925,21 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricComponents (0.75.4): + - React-FabricComponents (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components (= 0.75.4) - - React-FabricComponents/textlayoutmanager (= 0.75.4) + - React-FabricComponents/components (= 0.76.9) + - React-FabricComponents/textlayoutmanager (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -922,27 +951,28 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components (0.75.4): + - React-FabricComponents/components (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components/inputaccessory (= 0.75.4) - - React-FabricComponents/components/iostextinput (= 0.75.4) - - React-FabricComponents/components/modal (= 0.75.4) - - React-FabricComponents/components/rncore (= 0.75.4) - - React-FabricComponents/components/safeareaview (= 0.75.4) - - React-FabricComponents/components/scrollview (= 0.75.4) - - React-FabricComponents/components/text (= 0.75.4) - - React-FabricComponents/components/textinput (= 0.75.4) - - React-FabricComponents/components/unimplementedview (= 0.75.4) + - React-FabricComponents/components/inputaccessory (= 0.76.9) + - React-FabricComponents/components/iostextinput (= 0.76.9) + - React-FabricComponents/components/modal (= 0.76.9) + - React-FabricComponents/components/rncore (= 0.76.9) + - React-FabricComponents/components/safeareaview (= 0.76.9) + - React-FabricComponents/components/scrollview (= 0.76.9) + - React-FabricComponents/components/text (= 0.76.9) + - React-FabricComponents/components/textinput (= 0.76.9) + - React-FabricComponents/components/unimplementedview (= 0.76.9) - React-featureflags - React-graphics - React-jsi @@ -954,12 +984,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/inputaccessory (0.75.4): + - React-FabricComponents/components/inputaccessory (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -977,12 +1008,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/iostextinput (0.75.4): + - React-FabricComponents/components/iostextinput (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1000,12 +1032,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/modal (0.75.4): + - React-FabricComponents/components/modal (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1023,12 +1056,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/rncore (0.75.4): + - React-FabricComponents/components/rncore (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1046,12 +1080,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/safeareaview (0.75.4): + - React-FabricComponents/components/safeareaview (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1069,12 +1104,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/scrollview (0.75.4): + - React-FabricComponents/components/scrollview (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1092,12 +1128,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/text (0.75.4): + - React-FabricComponents/components/text (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1115,12 +1152,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/textinput (0.75.4): + - React-FabricComponents/components/textinput (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1138,12 +1176,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/unimplementedview (0.75.4): + - React-FabricComponents/components/unimplementedview (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1161,12 +1200,13 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/textlayoutmanager (0.75.4): + - React-FabricComponents/textlayoutmanager (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1184,30 +1224,31 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricImage (0.75.4): + - React-FabricImage (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.75.4) - - RCTTypeSafety (= 0.75.4) + - RCT-Folly/Fabric + - RCTRequired + - RCTTypeSafety - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.75.4) + - React-jsiexecutor - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.75.4) - - React-featureflagsnativemodule (0.75.4): + - React-featureflags (0.76.9) + - React-featureflagsnativemodule (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1224,31 +1265,33 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-graphics (0.75.4): + - React-graphics (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric - React-jsi - React-jsiexecutor - React-utils - - React-hermes (0.75.4): + - React-hermes (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.75.4) + - RCT-Folly + - React-cxxreact - React-jsi - - React-jsiexecutor (= 0.75.4) + - React-jsiexecutor - React-jsinspector - - React-perflogger (= 0.75.4) + - React-perflogger - React-runtimeexecutor - - React-idlecallbacksnativemodule (0.75.4): + - React-idlecallbacksnativemodule (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1266,7 +1309,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-ImageManager (0.75.4): + - React-ImageManager (0.76.9): - glog - RCT-Folly/Fabric - React-Core/Default @@ -1275,47 +1318,53 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.75.4): - - RCT-Folly/Fabric (= 2024.01.01.00) + - React-jserrorhandler (0.76.9): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.10.14.00) + - React-cxxreact - React-debug - React-jsi - - React-jsi (0.75.4): + - React-jsi (0.76.9): - boost - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.75.4): + - RCT-Folly + - React-jsiexecutor (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.75.4) - - React-jsi (= 0.75.4) + - RCT-Folly + - React-cxxreact + - React-jsi - React-jsinspector - - React-perflogger (= 0.75.4) - - React-jsinspector (0.75.4): + - React-perflogger + - React-jsinspector (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.75.4) - - React-jsitracing (0.75.4): + - React-perflogger + - React-runtimeexecutor + - React-jsitracing (0.76.9): - React-jsi - - React-logger (0.75.4): + - React-logger (0.76.9): - glog - - React-Mapbuffer (0.75.4): + - React-Mapbuffer (0.76.9): - glog - React-debug - - React-microtasksnativemodule (0.75.4): + - React-microtasksnativemodule (0.76.9): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1336,11 +1385,11 @@ PODS: - React-Core - react-native-safe-area-context (5.1.0): - React-Core - - react-native-webview (13.13.4): + - react-native-webview (13.13.5): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1357,8 +1406,8 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-nativeconfig (0.75.4) - - React-NativeModulesApple (0.75.4): + - React-nativeconfig (0.76.9) + - React-NativeModulesApple (0.76.9): - glog - hermes-engine - React-callinvoker @@ -1369,22 +1418,25 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.75.4) - - React-performancetimeline (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-perflogger (0.76.9): + - DoubleConversion + - RCT-Folly (= 2024.10.14.00) + - React-performancetimeline (0.76.9): + - RCT-Folly (= 2024.10.14.00) - React-cxxreact - - React-RCTActionSheet (0.75.4): - - React-Core/RCTActionSheetHeaders (= 0.75.4) - - React-RCTAnimation (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-timing + - React-RCTActionSheet (0.76.9): + - React-Core/RCTActionSheetHeaders (= 0.76.9) + - React-RCTAnimation (0.76.9): + - RCT-Folly (= 2024.10.14.00) - RCTTypeSafety - React-Core/RCTAnimationHeaders - React-jsi - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-RCTAppDelegate (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-RCTAppDelegate (0.76.9): + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1408,11 +1460,12 @@ PODS: - React-utils - ReactCodegen - ReactCommon - - React-RCTBlob (0.75.4): + - React-RCTBlob (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - React-Core/RCTBlobHeaders - React-Core/RCTWebSocket - React-jsi @@ -1421,10 +1474,10 @@ PODS: - React-RCTNetwork - ReactCodegen - ReactCommon - - React-RCTFabric (0.75.4): + - React-RCTFabric (0.76.9): - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - React-Core - React-debug - React-Fabric @@ -1444,8 +1497,8 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-RCTImage (0.76.9): + - RCT-Folly (= 2024.10.14.00) - RCTTypeSafety - React-Core/RCTImageHeaders - React-jsi @@ -1453,49 +1506,50 @@ PODS: - React-RCTNetwork - ReactCodegen - ReactCommon - - React-RCTLinking (0.75.4): - - React-Core/RCTLinkingHeaders (= 0.75.4) - - React-jsi (= 0.75.4) + - React-RCTLinking (0.76.9): + - React-Core/RCTLinkingHeaders (= 0.76.9) + - React-jsi (= 0.76.9) - React-NativeModulesApple - ReactCodegen - ReactCommon - - ReactCommon/turbomodule/core (= 0.75.4) - - React-RCTNetwork (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - ReactCommon/turbomodule/core (= 0.76.9) + - React-RCTNetwork (0.76.9): + - RCT-Folly (= 2024.10.14.00) - RCTTypeSafety - React-Core/RCTNetworkHeaders - React-jsi - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-RCTSettings (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-RCTSettings (0.76.9): + - RCT-Folly (= 2024.10.14.00) - RCTTypeSafety - React-Core/RCTSettingsHeaders - React-jsi - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-RCTText (0.75.4): - - React-Core/RCTTextHeaders (= 0.75.4) + - React-RCTText (0.76.9): + - React-Core/RCTTextHeaders (= 0.76.9) - Yoga - - React-RCTVibration (0.75.4): - - RCT-Folly (= 2024.01.01.00) + - React-RCTVibration (0.76.9): + - RCT-Folly (= 2024.10.14.00) - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-rendererconsistency (0.75.4) - - React-rendererdebug (0.75.4): + - React-rendererconsistency (0.76.9) + - React-rendererdebug (0.76.9): - DoubleConversion - - fmt (= 9.1.0) - - RCT-Folly (= 2024.01.01.00) + - fast_float + - fmt + - RCT-Folly - React-debug - - React-rncore (0.75.4) - - React-RuntimeApple (0.75.4): + - React-rncore (0.76.9) + - React-RuntimeApple (0.76.9): - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - React-callinvoker - React-Core/Default - React-CoreModules @@ -1512,24 +1566,25 @@ PODS: - React-RuntimeHermes - React-runtimescheduler - React-utils - - React-RuntimeCore (0.75.4): + - React-RuntimeCore (0.76.9): - glog - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - React-cxxreact - React-featureflags - React-jserrorhandler - React-jsi - React-jsiexecutor - React-jsinspector + - React-performancetimeline - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.75.4): - - React-jsi (= 0.75.4) - - React-RuntimeHermes (0.75.4): + - React-runtimeexecutor (0.76.9): + - React-jsi (= 0.76.9) + - React-RuntimeHermes (0.76.9): - hermes-engine - - RCT-Folly/Fabric (= 2024.01.01.00) + - RCT-Folly/Fabric (= 2024.10.14.00) - React-featureflags - React-hermes - React-jsi @@ -1538,26 +1593,29 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.75.4): + - React-runtimescheduler (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - React-callinvoker - React-cxxreact - React-debug - React-featureflags - React-jsi + - React-performancetimeline - React-rendererconsistency - React-rendererdebug - React-runtimeexecutor + - React-timing - React-utils - - React-utils (0.75.4): + - React-timing (0.76.9) + - React-utils (0.76.9): - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - React-debug - - React-jsi (= 0.75.4) - - ReactCodegen (0.75.4): + - React-jsi (= 0.76.9) + - ReactCodegen (0.76.9): - DoubleConversion - glog - hermes-engine @@ -1577,54 +1635,57 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - ReactCommon (0.75.4): - - ReactCommon/turbomodule (= 0.75.4) - - ReactCommon/turbomodule (0.75.4): + - ReactCommon (0.76.9): + - ReactCommon/turbomodule (= 0.76.9) + - ReactCommon/turbomodule (0.76.9): - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.75.4) - - React-cxxreact (= 0.75.4) - - React-jsi (= 0.75.4) - - React-logger (= 0.75.4) - - React-perflogger (= 0.75.4) - - ReactCommon/turbomodule/bridging (= 0.75.4) - - ReactCommon/turbomodule/core (= 0.75.4) - - ReactCommon/turbomodule/bridging (0.75.4): + - fast_float + - fmt + - glog + - hermes-engine + - RCT-Folly + - React-callinvoker + - React-cxxreact + - React-jsi + - React-logger + - React-perflogger + - ReactCommon/turbomodule/bridging (= 0.76.9) + - ReactCommon/turbomodule/core (= 0.76.9) + - ReactCommon/turbomodule/bridging (0.76.9): - DoubleConversion - - fmt (= 9.1.0) + - fast_float + - fmt - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.75.4) - - React-cxxreact (= 0.75.4) - - React-jsi (= 0.75.4) - - React-logger (= 0.75.4) - - React-perflogger (= 0.75.4) - - ReactCommon/turbomodule/core (0.75.4): + - RCT-Folly + - React-callinvoker + - React-cxxreact + - React-jsi (= 0.76.9) + - React-logger + - React-perflogger + - ReactCommon/turbomodule/core (0.76.9): - DoubleConversion - - fmt (= 9.1.0) - - glog - - hermes-engine - - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.75.4) - - React-cxxreact (= 0.75.4) - - React-debug (= 0.75.4) - - React-featureflags (= 0.75.4) - - React-jsi (= 0.75.4) - - React-logger (= 0.75.4) - - React-perflogger (= 0.75.4) - - React-utils (= 0.75.4) - - ReactNativeNavigation (7.40.1): + - fast_float + - fmt + - glog + - hermes-engine + - RCT-Folly + - React-callinvoker + - React-cxxreact + - React-debug (= 0.76.9) + - React-featureflags (= 0.76.9) + - React-jsi + - React-logger + - React-perflogger + - React-utils (= 0.76.9) + - ReactNativeNavigation (8.0.0-snapshot.1658): - HMSegmentedControl - React-Core - React-CoreModules - React-RCTImage - React-RCTText - - ReactNativeNavigation/Core (= 7.40.1) - - ReactNativeNavigation/Core (7.40.1): + - ReactNativeNavigation/Core (= 8.0.0-snapshot.1658) + - ReactNativeNavigation/Core (8.0.0-snapshot.1658): - HMSegmentedControl - React-Core - React-CoreModules @@ -1632,13 +1693,11 @@ PODS: - React-RCTText - RNCAsyncStorage (2.1.2): - React-Core - - RNCMaskedView (0.1.11): - - React - - RNGestureHandler (2.24.0): + - RNGestureHandler (2.25.0): - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1659,7 +1718,7 @@ PODS: - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2024.01.01.00) + - RCT-Folly (= 2024.10.14.00) - RCTRequired - RCTTypeSafety - React-Core @@ -1677,7 +1736,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - SocketRocket (0.7.0) + - SocketRocket (0.7.1) - Yoga (0.0.0) DEPENDENCIES: @@ -1689,6 +1748,7 @@ DEPENDENCIES: - DatadogSDKReactNativeWebView (from `../../packages/react-native-webview/DatadogSDKReactNativeWebView.podspec`) - DatadogSDKReactNativeWebView/Tests (from `../../packages/react-native-webview/DatadogSDKReactNativeWebView.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - fast_float (from `../node_modules/react-native/third-party-podspecs/fast_float.podspec`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) @@ -1750,12 +1810,12 @@ DEPENDENCIES: - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) - 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`) - ReactCodegen (from `build/generated/ios`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - ReactNativeNavigation (from `../node_modules/react-native-navigation`) - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" - - "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)" - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - RNScreens (from `../node_modules/react-native-screens`) - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) @@ -1786,6 +1846,8 @@ EXTERNAL SOURCES: :path: "../../packages/react-native-webview/DatadogSDKReactNativeWebView.podspec" DoubleConversion: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + fast_float: + :podspec: "../node_modules/react-native/third-party-podspecs/fast_float.podspec" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" fmt: @@ -1794,7 +1856,7 @@ EXTERNAL SOURCES: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" hermes-engine: :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2024-08-15-RNv0.75.1-4b3bf912cc0f705b51b71ce1a5b8bd79b93a451b + :tag: hermes-2024-11-12-RNv0.76.2-5b4aa20c719830dcf5684832b89a6edb95ac3d64 RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTDeprecation: @@ -1905,6 +1967,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/react/runtime" React-runtimescheduler: :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" + React-timing: + :path: "../node_modules/react-native/ReactCommon/react/timing" React-utils: :path: "../node_modules/react-native/ReactCommon/react/utils" ReactCodegen: @@ -1915,8 +1979,6 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-navigation" RNCAsyncStorage: :path: "../node_modules/@react-native-async-storage/async-storage" - RNCMaskedView: - :path: "../node_modules/@react-native-community/masked-view" RNGestureHandler: :path: "../node_modules/react-native-gesture-handler" RNScreens: @@ -1925,91 +1987,92 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost: 4cb898d0bf20404aab1850c656dcea009429d6c1 + boost: 1dca942403ed9342f98334bf4c3621f011aa7946 DatadogCore: 68aee4ffcc3ea17a3b0aa527907757883fc72c84 DatadogCrashReporting: e6a83b143394e28c9c1cb48c5cfb18eff507b3be DatadogInternal: 3c5cae6772295fd175a9de11e4747a9322aaa4e7 DatadogLogs: 09d6358dc7682f9d3eaea85dd418f82d2db3560c DatadogRUM: 0f267df8c9c8579a291870c2bce4549587391a07 DatadogSDKReactNative: 56c8afbe93695ff7e663a9262dc05d56f98bac04 - DatadogSDKReactNativeSessionReplay: 96946be367148c25ce378e33be6d1fc72daea82b + DatadogSDKReactNativeSessionReplay: 548e8b1993b7ea3975ff4936f5579c74cb0c589a DatadogSDKReactNativeWebView: ae0e6d40dc837ba3c889bd826ffe22e734a6e789 DatadogSessionReplay: c23310d576ccfaaca9ecac6afafb0f12e5c480d4 DatadogTrace: f46c8220c73463d09741013f385a6e27cd39185b DatadogWebViewTracking: dc8376420c8686efd09d00752bc1034b639d180b - DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 430e10366de01d1e3d57374500b1b150fe482e6d - fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 - glog: 69ef571f3de08433d766d614c73a9838a06bf7eb - hermes-engine: ea92f60f37dba025e293cbe4b4a548fd26b610a0 + DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385 + fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6 + FBLazyVector: 7605ea4810e0e10ae4815292433c09bf4324ba45 + fmt: 01b82d4ca6470831d1cc0852a1af644be019e8f6 + glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a + hermes-engine: 9e868dc7be781364296d6ee2f56d0c1a9ef0bb11 HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352 OpenTelemetrySwiftApi: aaee576ed961e0c348af78df58b61300e95bd104 PLCrashReporter: db59ef96fa3d25f3650040d02ec2798cffee75f2 - RCT-Folly: 4464f4d875961fce86008d45f4ecf6cef6de0740 - RCTDeprecation: 726d24248aeab6d7180dac71a936bbca6a994ed1 - RCTRequired: a94e7febda6db0345d207e854323c37e3a31d93b - RCTTypeSafety: 28e24a6e44f5cbf912c66dde6ab7e07d1059a205 - React: c2830fa483b0334bda284e46a8579ebbe0c5447e - React-callinvoker: 4aecde929540c26b841a4493f70ebf6016691eb8 - React-Core: 9c059899f00d46b5cec3ed79251f77d9c469553d - React-CoreModules: 9fac2d31803c0ed03e4ddaa17f1481714f8633a5 - React-cxxreact: a979810a3ca4045ceb09407a17563046a7f71494 - React-debug: 3d21f69d8def0656f8b8ec25c0f05954f4d862c5 - React-defaultsnativemodule: 2fa2bdb7bd03ff9764facc04aa8520ebf14febae - React-domnativemodule: 986e6fe7569e1383dce452a7b013b6c843a752df - React-Fabric: 3bc7be9e3a6b7581fc828dc2aa041e107fc8ffb8 - React-FabricComponents: 668e0cb02344c2942e4c8921a643648faa6dc364 - React-FabricImage: 3f44dd25a2b020ed5215d4438a1bb1f3461cd4f1 - React-featureflags: ee1abd6f71555604a36cda6476e3c502ca9a48e5 - React-featureflagsnativemodule: 7ccc0cd666c2a6257401dceb7920818ac2b42803 - React-graphics: d7dd9c8d75cad5af19e19911fa370f78f2febd96 - React-hermes: 2069b08e965e48b7f8aa2c0ca0a2f383349ed55d - React-idlecallbacksnativemodule: e211b2099b6dced97959cb58257bab2b2de4d7ef - React-ImageManager: ab7a7d17dd0ff1ef1d4e1e88197d1119da9957ce - React-jserrorhandler: d9e867bb83b868472f3f7601883f0403b3e3942d - React-jsi: d68f1d516e5120a510afe356647a6a1e1f98f2db - React-jsiexecutor: 6366a08a0fc01c9b65736f8deacd47c4a397912a - React-jsinspector: 0ac947411f0c73b34908800cc7a6a31d8f93e1a8 - React-jsitracing: 0e8c0aadb1fcec6b1e4f2a66ee3b0da80f0f8615 - React-logger: d79b704bf215af194f5213a6b7deec50ba8e6a9b - React-Mapbuffer: b982d5bba94a8bc073bda48f0d27c9b28417fae3 - React-microtasksnativemodule: 2b73e68f0462f3175f98782db08896f8501afd20 + RCT-Folly: 7b4f73a92ad9571b9dbdb05bb30fad927fa971e1 + RCTDeprecation: ebe712bb05077934b16c6bf25228bdec34b64f83 + RCTRequired: ca91e5dd26b64f577b528044c962baf171c6b716 + RCTTypeSafety: e7678bd60850ca5a41df9b8dc7154638cb66871f + React: 4641770499c39f45d4e7cde1eba30e081f9d8a3d + React-callinvoker: 4bef67b5c7f3f68db5929ab6a4d44b8a002998ea + React-Core: 0a06707a0b34982efc4a556aff5dae4b22863455 + React-CoreModules: 907334e94314189c2e5eed4877f3efe7b26d85b0 + React-cxxreact: 3a1d5e8f4faa5e09be26614e9c8bbcae8d11b73d + React-debug: 817160c07dc8d24d020fbd1eac7b3558ffc08964 + React-defaultsnativemodule: a965cb39fb0a79276ab611793d39f52e59a9a851 + React-domnativemodule: d647f94e503c62c44f54291334b1aa22a30fa08b + React-Fabric: 64586dc191fc1c170372a638b8e722e4f1d0a09b + React-FabricComponents: b0ebd032387468ea700574c581b139f57a7497fb + React-FabricImage: 81f0e0794caf25ad1224fa406d288fbc1986607f + React-featureflags: f2792b067a351d86fdc7bec23db3b9a2f2c8d26c + React-featureflagsnativemodule: 95a02d895475de8ace78fedd76143866838bb720 + React-graphics: cbebe910e4a15b65b0bff94a4d3ed278894d6386 + React-hermes: ec18c10f5a69d49fb9b5e17ae95494e9ea13d4d3 + React-idlecallbacksnativemodule: 0c1ae840cc5587197cd926a3cb76828ad059d116 + React-ImageManager: f2a4c01c2ccb2193e60a20c135da74c7ca4d36f2 + React-jserrorhandler: 61d205b5a7cbc57fed3371dd7eed48c97f49fc64 + React-jsi: 95f7676103137861b79b0f319467627bcfa629ee + React-jsiexecutor: 41e0fe87cda9ea3970ffb872ef10f1ff8dbd1932 + React-jsinspector: 15578208796723e5c6f39069b6e8bf36863ef6e2 + React-jsitracing: 3758cdb155ea7711f0e77952572ea62d90c69f0b + React-logger: dbca7bdfd4aa5ef69431362bde6b36d49403cb20 + React-Mapbuffer: 6efad4a606c1fae7e4a93385ee096681ef0300dc + React-microtasksnativemodule: 8732b71aa66045da4bb341ddee1bb539f71e5f38 react-native-crash-tester: 3ffaa64141427ca362079cb53559fe9a532487ae react-native-safe-area-context: 04803a01f39f31cc6605a5531280b477b48f8a88 - react-native-webview: 4cec209f46fca53257d987ac16a6a63974417f8b - React-nativeconfig: 8c83d992b9cc7d75b5abe262069eaeea4349f794 - React-NativeModulesApple: 9f7920224a3b0c7d04d77990067ded14cee3c614 - React-perflogger: 59e1a3182dca2cee7b9f1f7aab204018d46d1914 - React-performancetimeline: a9d05533ff834c6aa1f532e05e571f3fd2e3c1ed - React-RCTActionSheet: d80e68d3baa163e4012a47c1f42ddd8bcd9672cc - React-RCTAnimation: bde981f6bd7f8493696564da9b3bd05721d3b3cc - React-RCTAppDelegate: 0176615c51476c88212bf3edbafb840d39ea7631 - React-RCTBlob: 520a0382bf8e89b9153d60e3c6293e51615834e9 - React-RCTFabric: c9da097b19b30017a99498b8c66a69c72f3ce689 - React-RCTImage: 90448d2882464af6015ed57c98f463f8748be465 - React-RCTLinking: 1bd95d0a704c271d21d758e0f0388cced768d77d - React-RCTNetwork: 218af6e63eb9b47935cc5a775b7a1396cf10ff91 - React-RCTSettings: e10b8e42b0fce8a70fbf169de32a2ae03243ef6b - React-RCTText: e7bf9f4997a1a0b45c052d4ad9a0fe653061cf29 - React-RCTVibration: 5b70b7f11e48d1c57e0d4832c2097478adbabe93 - React-rendererconsistency: f620c6e003e3c4593e6349d8242b8aeb3d4633f0 - React-rendererdebug: e697680f4dd117becc5daf9ea9800067abcee91c - React-rncore: c22bd84cc2f38947f0414fab6646db22ff4f80cd - React-RuntimeApple: de0976836b90b484305638616898cbc665c67c13 - React-RuntimeCore: 3c4a5aa63d9e7a3c17b7fb23f32a72a8bcfccf57 - React-runtimeexecutor: ea90d8e3a9e0f4326939858dafc6ab17c031a5d3 - React-RuntimeHermes: c6b0afdf1f493621214eeb6517fb859ce7b21b81 - React-runtimescheduler: 84f0d876d254bce6917a277b3930eb9bc29df6c7 - React-utils: cbe8b8b3d7b2ac282e018e46f0e7b25cdc87c5a0 - ReactCodegen: 4bcb34e6b5ebf6eef5cee34f55aa39991ea1c1f1 - ReactCommon: 6a952e50c2a4b694731d7682aaa6c79bc156e4ad - ReactNativeNavigation: 84cfcceb62947491beda20b96c5999c15ff5b959 + react-native-webview: 3040cd6c3f633f6b17ed339e9d154568d2ea7abe + React-nativeconfig: 8efdb1ef1e9158c77098a93085438f7e7b463678 + React-NativeModulesApple: 958d4f6c5c2ace4c0f427cf7ef82e28ae6538a22 + React-perflogger: 9b4f13c0afe56bc7b4a0e93ec74b1150421ee22d + React-performancetimeline: 359db1cb889aa0282fafc5838331b0987c4915a9 + React-RCTActionSheet: aacf2375084dea6e7c221f4a727e579f732ff342 + React-RCTAnimation: d8c82deebebe3aaf7a843affac1b57cb2dc073d4 + React-RCTAppDelegate: 6c0377d9c4058773ea7073bb34bb9ebd6ddf5a84 + React-RCTBlob: 70a58c11a6a3500d1a12f2e51ca4f6c99babcff8 + React-RCTFabric: 7eb6dd2c8fda98cb860a572e3f4e4eb60d62c89e + React-RCTImage: 5e9d655ba6a790c31e3176016f9b47fd0978fbf0 + React-RCTLinking: 2a48338252805091f7521eaf92687206401bdf2a + React-RCTNetwork: 0c1282b377257f6b1c81934f72d8a1d0c010e4c3 + React-RCTSettings: f757b679a74e5962be64ea08d7865a7debd67b40 + React-RCTText: e7d20c490b407d3b4a2daa48db4bcd8ec1032af2 + React-RCTVibration: 8228e37144ca3122a91f1de16ba8e0707159cfec + React-rendererconsistency: b4917053ecbaa91469c67a4319701c9dc0d40be6 + React-rendererdebug: 81becbc8852b38d9b1b68672aa504556481330d5 + React-rncore: 120d21715c9b4ba8f798bffe986cb769b988dd74 + React-RuntimeApple: 52ed0e9e84a7c2607a901149fb13599a3c057655 + React-RuntimeCore: ca6189d2e53d86db826e2673fe8af6571b8be157 + React-runtimeexecutor: 877596f82f5632d073e121cba2d2084b76a76899 + React-RuntimeHermes: 3b752dc5d8a1661c9d1687391d6d96acfa385549 + React-runtimescheduler: 8321bb09175ace2a4f0b3e3834637eb85bf42ebe + React-timing: 331cbf9f2668c67faddfd2e46bb7f41cbd9320b9 + React-utils: 54df9ada708578c8ad40d92895d6fed03e0e8a9e + ReactCodegen: 21a52ccddc6479448fc91903a437dd23ddc7366c + ReactCommon: bfd3600989d79bc3acbe7704161b171a1480b9fd + ReactNativeNavigation: 50c1eef68b821e7265eff3a391d27ed18fdce459 RNCAsyncStorage: addfc2cb6511dbe199c56c6b26ede383b6c38919 - RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489 - RNGestureHandler: 2e4971181218718ab9c5871ea5ef855ec5c389fe - RNScreens: b51f1a8be0dd7bb470b757f6cca8ba878acb2000 - SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: 055f92ad73f8c8600a93f0e25ac0b2344c3b07e6 + RNGestureHandler: f365088782445336413f455900ff204b80a28a2c + RNScreens: 606ab1cf68162f7ba0d049a31f2a84089a6fffb4 + SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 + Yoga: feb4910aba9742cfedc059e2b2902e22ffe9954a PODFILE CHECKSUM: e8dddbd78ae20b78d0de7c374a1828049f69019b diff --git a/example/package.json b/example/package.json index 76ec57a08..bba73fc07 100644 --- a/example/package.json +++ b/example/package.json @@ -16,32 +16,31 @@ "@datadog/mobile-react-native-webview": "workspace:packages/react-native-webview", "@datadog/mobile-react-navigation": "workspace:packages/react-navigation", "@react-native-async-storage/async-storage": "^2.1.2", - "@react-native-community/cli-platform-android": "13.6.9", - "@react-native-community/masked-view": "^0.1.10", + "@react-native-community/cli": "15.0.1", + "@react-native-community/cli-platform-android": "15.0.1", + "@react-native-community/cli-platform-ios": "15.0.1", "@react-navigation/bottom-tabs": "^6.3.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.2.1", "axios": "^1.6.8", "react": "18.3.1", - "react-native": "0.75.4", + "react-native": "0.76.9", "react-native-crash-tester": "0.2.3", "react-native-gesture-handler": "^2.24.0", - "react-native-navigation": "7.40.1", + "react-native-navigation": "8.0.0-snapshot.1658", "react-native-safe-area-context": "5.1.0", "react-native-screens": "4.5.0", "react-native-webview": "^13.13.4" }, "devDependencies": { - "@babel/core": "^7.20.0", - "@babel/preset-env": "^7.20.0", - "@babel/runtime": "^7.20.0", + "@babel/core": "^7.25.2", + "@babel/preset-env": "^7.25.3", + "@babel/runtime": "^7.25.0", "@datadog/datadog-ci": "^2.39.0", - "@react-native/babel-preset": "0.75.4", - "@react-native/codegen": "^0.75.4", - "@react-native/eslint-config": "0.75.4", - "@react-native/gradle-plugin": "^0.75.4", - "@react-native/metro-config": "0.75.4", - "@react-native/typescript-config": "0.75.4", + "@react-native/babel-preset": "0.76.9", + "@react-native/eslint-config": "0.76.9", + "@react-native/metro-config": "0.76.9", + "@react-native/typescript-config": "0.76.9", "@rnx-kit/metro-resolver-symlinks": "^0.1.36", "babel-plugin-module-resolver": "^4.0.0", "patch-package": "^8.0.0", diff --git a/example/patches/react-native-navigation+7.40.1.patch b/example/patches/react-native-navigation+7.40.1.patch deleted file mode 100644 index eec0fbcb0..000000000 --- a/example/patches/react-native-navigation+7.40.1.patch +++ /dev/null @@ -1,121 +0,0 @@ -diff --git a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactTypefaceUtils.java b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactTypefaceUtils.java -index 834d734..7d90437 100644 ---- a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactTypefaceUtils.java -+++ b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactTypefaceUtils.java -@@ -96,12 +96,12 @@ public class ReactTypefaceUtils { - - int want = 0; - if ((weight == Typeface.BOLD) -- || ((oldStyle & Typeface.BOLD) != 0 && weight == ReactTextShadowNode.UNSET)) { -+ || ((oldStyle & Typeface.BOLD) != 0)) { - want |= Typeface.BOLD; - } - - if ((style == Typeface.ITALIC) -- || ((oldStyle & Typeface.ITALIC) != 0 && style == ReactTextShadowNode.UNSET)) { -+ || ((oldStyle & Typeface.ITALIC) != 0)) { - want |= Typeface.ITALIC; - } - -diff --git a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactViewGroup.kt b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactViewGroup.kt -index f92580c..04cf256 100644 ---- a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactViewGroup.kt -+++ b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactViewGroup.kt -@@ -1,7 +1,15 @@ - package com.reactnativenavigation.utils - --import com.facebook.react.views.view.ReactViewBackgroundDrawable -+import com.facebook.react.uimanager.LengthPercentage -+import com.facebook.react.uimanager.drawable.CSSBackgroundDrawable - import com.facebook.react.views.view.ReactViewGroup - - val ReactViewGroup.borderRadius: Float -- get() = (background as? ReactViewBackgroundDrawable)?.fullBorderRadius ?: 0f -\ No newline at end of file -+ get() { -+ val uniform: LengthPercentage = (background as? CSSBackgroundDrawable)?.borderRadius?.uniform -+ ?: return 0f -+ -+ return uniform.resolve( -+ width.toFloat(), height.toFloat() -+ ) -+ } -\ No newline at end of file -diff --git a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/LayoutDirectionApplier.kt b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/LayoutDirectionApplier.kt -index 89216ae..de104e2 100644 ---- a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/LayoutDirectionApplier.kt -+++ b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/LayoutDirectionApplier.kt -@@ -1,15 +1,19 @@ - package com.reactnativenavigation.viewcontrollers.viewcontroller - -+import android.annotation.SuppressLint - import com.facebook.react.ReactInstanceManager - import com.facebook.react.modules.i18nmanager.I18nUtil - import com.reactnativenavigation.options.Options - - class LayoutDirectionApplier { -+ @SuppressLint("WrongConstant") - fun apply(root: ViewController<*>, options: Options, instanceManager: ReactInstanceManager) { -- if (options.layout.direction.hasValue() && instanceManager.currentReactContext != null) { -- root.activity.window.decorView.layoutDirection = options.layout.direction.get() -- I18nUtil.getInstance().allowRTL(instanceManager.currentReactContext, options.layout.direction.isRtl) -- I18nUtil.getInstance().forceRTL(instanceManager.currentReactContext, options.layout.direction.isRtl) -+ if (options.layout.direction.hasValue()) { -+ instanceManager.currentReactContext?.let { context -> -+ root.activity.window.decorView.layoutDirection = options.layout.direction.get() -+ I18nUtil.getInstance().allowRTL(context, options.layout.direction.isRtl) -+ I18nUtil.getInstance().forceRTL(context, options.layout.direction.isRtl) -+ } - } - } - } -\ No newline at end of file -diff --git a/node_modules/react-native-navigation/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt b/node_modules/react-native-navigation/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt -index ea8516f..17a60fc 100644 ---- a/node_modules/react-native-navigation/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt -+++ b/node_modules/react-native-navigation/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt -@@ -49,22 +49,24 @@ class ModalContentLayout(context: Context?) : ReactViewGroup(context), RootView{ - updateFirstChildView() - } - } -- override fun onChildStartedNativeGesture(child: View, androidEvent: MotionEvent?) { -+ override fun onChildStartedNativeGesture(child: View, androidEvent: MotionEvent) { - mJSTouchDispatcher.onChildStartedNativeGesture(androidEvent, this.getEventDispatcher()) - } -- override fun onChildStartedNativeGesture(androidEvent: MotionEvent?) { -+ -+ @Deprecated("Deprecated in Java") -+ override fun onChildStartedNativeGesture(androidEvent: MotionEvent) { - mJSTouchDispatcher.onChildStartedNativeGesture(androidEvent, this.getEventDispatcher()) - } -- override fun onChildEndedNativeGesture(child: View, androidEvent: MotionEvent?) { -+ override fun onChildEndedNativeGesture(child: View, androidEvent: MotionEvent) { - mJSTouchDispatcher.onChildEndedNativeGesture(androidEvent, this.getEventDispatcher()) - } - override fun requestDisallowInterceptTouchEvent(disallowIntercept: Boolean) {} -- private fun getEventDispatcher(): EventDispatcher? { -+ -+ private fun getEventDispatcher(): EventDispatcher { - val reactContext: ReactContext = this.getReactContext() - return reactContext.getNativeModule(UIManagerModule::class.java)!!.eventDispatcher - } - -- - override fun handleException(t: Throwable?) { - getReactContext().handleException(RuntimeException(t)) - } -@@ -73,12 +75,12 @@ class ModalContentLayout(context: Context?) : ReactViewGroup(context), RootView{ - return this.context as ReactContext - } - -- override fun onInterceptTouchEvent(event: MotionEvent?): Boolean { -+ override fun onInterceptTouchEvent(event: MotionEvent): Boolean { - mJSTouchDispatcher.handleTouchEvent(event, getEventDispatcher()) - return super.onInterceptTouchEvent(event) - } - -- override fun onTouchEvent(event: MotionEvent?): Boolean { -+ override fun onTouchEvent(event: MotionEvent): Boolean { - mJSTouchDispatcher.handleTouchEvent(event, getEventDispatcher()) - super.onTouchEvent(event) - return true diff --git a/package.json b/package.json index 38a8bd00a..97c91fe44 100644 --- a/package.json +++ b/package.json @@ -30,12 +30,17 @@ "postinstall": "./packages/react-navigation/fix-react-navigation-import-in-dependencies.sh" }, "devDependencies": { - "@babel/plugin-transform-runtime": "7.12.15", + "@babel/core": "^7.25.2", + "@babel/plugin-transform-runtime": "^7.25.0", + "@babel/preset-env": "^7.25.3", + "@babel/runtime": "^7.25.0", "@react-native-community/cli": "15.0.1", - "@react-native/babel-preset": "0.73.21", - "@react-native/eslint-config": "0.73.2", - "@react-native/metro-config": "0.73.5", - "@react-native/typescript-config": "0.73.1", + "@react-native-community/cli-platform-android": "15.0.1", + "@react-native-community/cli-platform-ios": "15.0.1", + "@react-native/babel-preset": "0.76.9", + "@react-native/eslint-config": "0.76.9", + "@react-native/metro-config": "0.76.9", + "@react-native/typescript-config": "0.76.9", "@testing-library/react-native": "7.0.2", "@types/jest": "^29.5.0", "@types/react": "^18.2.6", @@ -57,12 +62,12 @@ "lerna": "8.1.6", "pod-install": "0.1.14", "prettier": "2.2.0", - "react": "18.2.0", - "react-native": "0.73.9", + "react": "18.3.1", + "react-native": "0.76.9", "react-native-builder-bob": "0.26.0", "react-native-gradle-plugin": "^0.71.19", "react-native-webview": "13.12.2", - "react-test-renderer": "18.1.0", + "react-test-renderer": "18.3.1", "typescript": "5.0.4" }, "peerDependencies": { diff --git a/packages/core/jest/mock.js b/packages/core/jest/mock.js index d37bd7329..cdbd35237 100644 --- a/packages/core/jest/mock.js +++ b/packages/core/jest/mock.js @@ -128,6 +128,10 @@ module.exports = { generateTraceId: jest.fn().mockReturnValue('mock-trace-id'), generateSpanId: jest.fn().mockReturnValue('mock-span-id') }, - - DatadogProvider: DatadogProviderMock + DatadogProvider: DatadogProviderMock, + DdSdk: { + initialize: jest + .fn() + .mockImplementation(() => new Promise(resolve => resolve())) + } }; diff --git a/packages/core/src/__tests__/rum/instrumentation/DdEventsInterceptor.test.tsx b/packages/core/src/__tests__/rum/instrumentation/DdEventsInterceptor.test.tsx index b1cba6d73..e49640b46 100644 --- a/packages/core/src/__tests__/rum/instrumentation/DdEventsInterceptor.test.tsx +++ b/packages/core/src/__tests__/rum/instrumentation/DdEventsInterceptor.test.tsx @@ -31,7 +31,7 @@ jest.mock('../../../InternalLog', () => { }); // Silence the warning https://github.com/facebook/react-native/issues/11094#issuecomment-263240420 -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +// jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); jest.useFakeTimers(); let testedEventsInterceptor: DdEventsInterceptor; diff --git a/packages/core/src/__tests__/rum/instrumentation/DdRumUserInteractionTracking.test.tsx b/packages/core/src/__tests__/rum/instrumentation/DdRumUserInteractionTracking.test.tsx index 64d067228..d94d9bb82 100644 --- a/packages/core/src/__tests__/rum/instrumentation/DdRumUserInteractionTracking.test.tsx +++ b/packages/core/src/__tests__/rum/instrumentation/DdRumUserInteractionTracking.test.tsx @@ -34,7 +34,7 @@ const styles = StyleSheet.create({ const DdRum = NativeModules.DdRum as DdNativeRumType; // Silence the warning https://github.com/facebook/react-native/issues/11094#issuecomment-263240420 -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +// jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); beforeEach(() => { jest.setTimeout(20000); diff --git a/packages/core/src/sdk/DatadogProvider/__tests__/initialization.test.tsx b/packages/core/src/sdk/DatadogProvider/__tests__/initialization.test.tsx index ff5b4a808..590c34b98 100644 --- a/packages/core/src/sdk/DatadogProvider/__tests__/initialization.test.tsx +++ b/packages/core/src/sdk/DatadogProvider/__tests__/initialization.test.tsx @@ -77,8 +77,8 @@ describe('DatadogProvider', () => { "clientToken": "fakeToken", "configurationForTelemetry": { "initializationType": "SYNC", - "reactNativeVersion": "0.73.9", - "reactVersion": "18.2.0", + "reactNativeVersion": "0.76.9", + "reactVersion": "18.3.1", "trackErrors": true, "trackInteractions": true, "trackNetworkRequests": false, diff --git a/packages/react-native-webview/src/__tests__/WebviewDatadogInjectedJS.test.tsx b/packages/react-native-webview/src/__tests__/WebviewDatadogInjectedJS.test.tsx index 5c238ec6f..f3627a3c8 100644 --- a/packages/react-native-webview/src/__tests__/WebviewDatadogInjectedJS.test.tsx +++ b/packages/react-native-webview/src/__tests__/WebviewDatadogInjectedJS.test.tsx @@ -9,6 +9,7 @@ import { WebView as RNWebView } from 'react-native-webview'; import React from 'react'; import { WebView } from '../index'; +import { isNewArchitecture } from '../utils/env-utils'; import { dedent } from './__utils__/string-utils'; @@ -166,19 +167,51 @@ describe('Webview', () => { mockedWebView.mock.calls[0][0] .injectedJavaScriptBeforeContentLoaded ?? '' ); - const expected = dedent(` - try{ - testInjectedJavaScript() - } - catch (error) { - const errorMsg = error instanceof Error ? error.message : String(error); - window.ReactNativeWebView.postMessage(JSON.stringify({ - source: 'DATADOG', - type: 'ERROR', - message: errorMsg - })); - true; - }`); + let expected; + + if (isNewArchitecture()) { + expected = dedent(` + window.DatadogEventBridge = { + send(msg) { + window.ReactNativeWebView.postMessage(JSON.stringify({ + source: 'DATADOG', + type: 'NATIVE_EVENT', + message: msg + })); + true; + }, + getAllowedWebViewHosts() { + return '["localhost","example.com"]' + } + }; + try{ + testInjectedJavaScript() + } + catch (error) { + const errorMsg = error instanceof Error ? error.message : String(error); + window.ReactNativeWebView.postMessage(JSON.stringify({ + source: 'DATADOG', + type: 'ERROR', + message: errorMsg + })); + true; + } + `); + } else { + expected = dedent(` + try{ + testInjectedJavaScript() + } + catch (error) { + const errorMsg = error instanceof Error ? error.message : String(error); + window.ReactNativeWebView.postMessage(JSON.stringify({ + source: 'DATADOG', + type: 'ERROR', + message: errorMsg + })); + true; + }`); + } expect(realInjectedJs).toBe(expected); }); diff --git a/packages/react-navigation/src/__tests__/rum/instrumentation/DdRumReactNavigationTracking.test.tsx b/packages/react-navigation/src/__tests__/rum/instrumentation/DdRumReactNavigationTracking.test.tsx index b8351371d..ba80256f3 100644 --- a/packages/react-navigation/src/__tests__/rum/instrumentation/DdRumReactNavigationTracking.test.tsx +++ b/packages/react-navigation/src/__tests__/rum/instrumentation/DdRumReactNavigationTracking.test.tsx @@ -71,7 +71,7 @@ jest.mock('@datadog/mobile-react-native', () => { }); // Silence the warning https://github.com/facebook/react-native/issues/11094#issuecomment-263240420 -jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); +// jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); beforeEach(() => { mocked(InternalLog.log).mockClear(); diff --git a/yarn.lock b/yarn.lock index 33c01b44b..379b5bb42 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,8 +16,8 @@ __metadata: linkType: hard "@apollo/client@npm:^3.8.3": - version: 3.13.5 - resolution: "@apollo/client@npm:3.13.5" + version: 3.13.8 + resolution: "@apollo/client@npm:3.13.8" dependencies: "@graphql-typed-document-node/core": ^3.1.1 "@wry/caches": ^1.0.0 @@ -47,7 +47,7 @@ __metadata: optional: true subscriptions-transport-ws: optional: true - checksum: c5c292337b105df93645b8841f01fbfb40c3b176d71f1428e6e2904cccddd07c4b8c7b940a28469c2369ba12f0f2d4b2ba2d7b342a6da2bffa4ee49515c7cc65 + checksum: 39f058c2681aaa1f95275d8e856976fb1e15f30bdac33758d3cf3c8dc08f111c1cdfa3a30a777ad1088b950cb94336197a81d136a43faa7470cbf2c9746f53ce languageName: node linkType: hard @@ -109,701 +109,704 @@ __metadata: linkType: hard "@aws-sdk/client-cloudwatch-logs@npm:^3.624.0": - version: 3.772.0 - resolution: "@aws-sdk/client-cloudwatch-logs@npm:3.772.0" + version: 3.817.0 + resolution: "@aws-sdk/client-cloudwatch-logs@npm:3.817.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.758.0 - "@aws-sdk/credential-provider-node": 3.772.0 - "@aws-sdk/middleware-host-header": 3.734.0 - "@aws-sdk/middleware-logger": 3.734.0 - "@aws-sdk/middleware-recursion-detection": 3.772.0 - "@aws-sdk/middleware-user-agent": 3.758.0 - "@aws-sdk/region-config-resolver": 3.734.0 - "@aws-sdk/types": 3.734.0 - "@aws-sdk/util-endpoints": 3.743.0 - "@aws-sdk/util-user-agent-browser": 3.734.0 - "@aws-sdk/util-user-agent-node": 3.758.0 - "@smithy/config-resolver": ^4.0.1 - "@smithy/core": ^3.1.5 - "@smithy/eventstream-serde-browser": ^4.0.1 - "@smithy/eventstream-serde-config-resolver": ^4.0.1 - "@smithy/eventstream-serde-node": ^4.0.1 - "@smithy/fetch-http-handler": ^5.0.1 - "@smithy/hash-node": ^4.0.1 - "@smithy/invalid-dependency": ^4.0.1 - "@smithy/middleware-content-length": ^4.0.1 - "@smithy/middleware-endpoint": ^4.0.6 - "@smithy/middleware-retry": ^4.0.7 - "@smithy/middleware-serde": ^4.0.2 - "@smithy/middleware-stack": ^4.0.1 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/node-http-handler": ^4.0.3 - "@smithy/protocol-http": ^5.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 - "@smithy/url-parser": ^4.0.1 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/credential-provider-node": 3.817.0 + "@aws-sdk/middleware-host-header": 3.804.0 + "@aws-sdk/middleware-logger": 3.804.0 + "@aws-sdk/middleware-recursion-detection": 3.804.0 + "@aws-sdk/middleware-user-agent": 3.816.0 + "@aws-sdk/region-config-resolver": 3.808.0 + "@aws-sdk/types": 3.804.0 + "@aws-sdk/util-endpoints": 3.808.0 + "@aws-sdk/util-user-agent-browser": 3.804.0 + "@aws-sdk/util-user-agent-node": 3.816.0 + "@smithy/config-resolver": ^4.1.2 + "@smithy/core": ^3.3.3 + "@smithy/eventstream-serde-browser": ^4.0.2 + "@smithy/eventstream-serde-config-resolver": ^4.1.0 + "@smithy/eventstream-serde-node": ^4.0.2 + "@smithy/fetch-http-handler": ^5.0.2 + "@smithy/hash-node": ^4.0.2 + "@smithy/invalid-dependency": ^4.0.2 + "@smithy/middleware-content-length": ^4.0.2 + "@smithy/middleware-endpoint": ^4.1.6 + "@smithy/middleware-retry": ^4.1.7 + "@smithy/middleware-serde": ^4.0.5 + "@smithy/middleware-stack": ^4.0.2 + "@smithy/node-config-provider": ^4.1.1 + "@smithy/node-http-handler": ^4.0.4 + "@smithy/protocol-http": ^5.1.0 + "@smithy/smithy-client": ^4.2.6 + "@smithy/types": ^4.2.0 + "@smithy/url-parser": ^4.0.2 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.7 - "@smithy/util-defaults-mode-node": ^4.0.7 - "@smithy/util-endpoints": ^3.0.1 - "@smithy/util-middleware": ^4.0.1 - "@smithy/util-retry": ^4.0.1 + "@smithy/util-defaults-mode-browser": ^4.0.14 + "@smithy/util-defaults-mode-node": ^4.0.14 + "@smithy/util-endpoints": ^3.0.4 + "@smithy/util-middleware": ^4.0.2 + "@smithy/util-retry": ^4.0.3 "@smithy/util-utf8": ^4.0.0 "@types/uuid": ^9.0.1 tslib: ^2.6.2 uuid: ^9.0.1 - checksum: bc07ee566963428e798b1af5ea08258632638b68a0129e7b70a668079b93030544795e05ff80ca352198ea9a8ed19f80b2c5638a6ba955e87854a90eb03bfd45 + checksum: 24490161138c52fc76adac990dd332c5956367d0b21e752ae583435c096378ca0a317b922825e8ed6ceabfc3200eae23e227785ed268d604d0ea5266a400d9d8 languageName: node linkType: hard -"@aws-sdk/client-cognito-identity@npm:3.772.0": - version: 3.772.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.772.0" +"@aws-sdk/client-cognito-identity@npm:3.817.0": + version: 3.817.0 + resolution: "@aws-sdk/client-cognito-identity@npm:3.817.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.758.0 - "@aws-sdk/credential-provider-node": 3.772.0 - "@aws-sdk/middleware-host-header": 3.734.0 - "@aws-sdk/middleware-logger": 3.734.0 - "@aws-sdk/middleware-recursion-detection": 3.772.0 - "@aws-sdk/middleware-user-agent": 3.758.0 - "@aws-sdk/region-config-resolver": 3.734.0 - "@aws-sdk/types": 3.734.0 - "@aws-sdk/util-endpoints": 3.743.0 - "@aws-sdk/util-user-agent-browser": 3.734.0 - "@aws-sdk/util-user-agent-node": 3.758.0 - "@smithy/config-resolver": ^4.0.1 - "@smithy/core": ^3.1.5 - "@smithy/fetch-http-handler": ^5.0.1 - "@smithy/hash-node": ^4.0.1 - "@smithy/invalid-dependency": ^4.0.1 - "@smithy/middleware-content-length": ^4.0.1 - "@smithy/middleware-endpoint": ^4.0.6 - "@smithy/middleware-retry": ^4.0.7 - "@smithy/middleware-serde": ^4.0.2 - "@smithy/middleware-stack": ^4.0.1 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/node-http-handler": ^4.0.3 - "@smithy/protocol-http": ^5.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 - "@smithy/url-parser": ^4.0.1 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/credential-provider-node": 3.817.0 + "@aws-sdk/middleware-host-header": 3.804.0 + "@aws-sdk/middleware-logger": 3.804.0 + "@aws-sdk/middleware-recursion-detection": 3.804.0 + "@aws-sdk/middleware-user-agent": 3.816.0 + "@aws-sdk/region-config-resolver": 3.808.0 + "@aws-sdk/types": 3.804.0 + "@aws-sdk/util-endpoints": 3.808.0 + "@aws-sdk/util-user-agent-browser": 3.804.0 + "@aws-sdk/util-user-agent-node": 3.816.0 + "@smithy/config-resolver": ^4.1.2 + "@smithy/core": ^3.3.3 + "@smithy/fetch-http-handler": ^5.0.2 + "@smithy/hash-node": ^4.0.2 + "@smithy/invalid-dependency": ^4.0.2 + "@smithy/middleware-content-length": ^4.0.2 + "@smithy/middleware-endpoint": ^4.1.6 + "@smithy/middleware-retry": ^4.1.7 + "@smithy/middleware-serde": ^4.0.5 + "@smithy/middleware-stack": ^4.0.2 + "@smithy/node-config-provider": ^4.1.1 + "@smithy/node-http-handler": ^4.0.4 + "@smithy/protocol-http": ^5.1.0 + "@smithy/smithy-client": ^4.2.6 + "@smithy/types": ^4.2.0 + "@smithy/url-parser": ^4.0.2 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.7 - "@smithy/util-defaults-mode-node": ^4.0.7 - "@smithy/util-endpoints": ^3.0.1 - "@smithy/util-middleware": ^4.0.1 - "@smithy/util-retry": ^4.0.1 + "@smithy/util-defaults-mode-browser": ^4.0.14 + "@smithy/util-defaults-mode-node": ^4.0.14 + "@smithy/util-endpoints": ^3.0.4 + "@smithy/util-middleware": ^4.0.2 + "@smithy/util-retry": ^4.0.3 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: 861277a35b694436c5573927913961458bf973771e11e0f4ad04d4ef7a0f900d82aa977503a8675fca947481c6d9a014bdee537c00d880dff9ba780ba2623a97 + checksum: 8c416d80b23a3d22a0dd657531b245058cb58b44d8ff66e7bc1fffc94cd8492923323852b15707cfc3beb1ae9ffd043841d2bd079418002989913d89653692ad languageName: node linkType: hard "@aws-sdk/client-iam@npm:^3.624.0": - version: 3.772.0 - resolution: "@aws-sdk/client-iam@npm:3.772.0" + version: 3.817.0 + resolution: "@aws-sdk/client-iam@npm:3.817.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.758.0 - "@aws-sdk/credential-provider-node": 3.772.0 - "@aws-sdk/middleware-host-header": 3.734.0 - "@aws-sdk/middleware-logger": 3.734.0 - "@aws-sdk/middleware-recursion-detection": 3.772.0 - "@aws-sdk/middleware-user-agent": 3.758.0 - "@aws-sdk/region-config-resolver": 3.734.0 - "@aws-sdk/types": 3.734.0 - "@aws-sdk/util-endpoints": 3.743.0 - "@aws-sdk/util-user-agent-browser": 3.734.0 - "@aws-sdk/util-user-agent-node": 3.758.0 - "@smithy/config-resolver": ^4.0.1 - "@smithy/core": ^3.1.5 - "@smithy/fetch-http-handler": ^5.0.1 - "@smithy/hash-node": ^4.0.1 - "@smithy/invalid-dependency": ^4.0.1 - "@smithy/middleware-content-length": ^4.0.1 - "@smithy/middleware-endpoint": ^4.0.6 - "@smithy/middleware-retry": ^4.0.7 - "@smithy/middleware-serde": ^4.0.2 - "@smithy/middleware-stack": ^4.0.1 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/node-http-handler": ^4.0.3 - "@smithy/protocol-http": ^5.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 - "@smithy/url-parser": ^4.0.1 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/credential-provider-node": 3.817.0 + "@aws-sdk/middleware-host-header": 3.804.0 + "@aws-sdk/middleware-logger": 3.804.0 + "@aws-sdk/middleware-recursion-detection": 3.804.0 + "@aws-sdk/middleware-user-agent": 3.816.0 + "@aws-sdk/region-config-resolver": 3.808.0 + "@aws-sdk/types": 3.804.0 + "@aws-sdk/util-endpoints": 3.808.0 + "@aws-sdk/util-user-agent-browser": 3.804.0 + "@aws-sdk/util-user-agent-node": 3.816.0 + "@smithy/config-resolver": ^4.1.2 + "@smithy/core": ^3.3.3 + "@smithy/fetch-http-handler": ^5.0.2 + "@smithy/hash-node": ^4.0.2 + "@smithy/invalid-dependency": ^4.0.2 + "@smithy/middleware-content-length": ^4.0.2 + "@smithy/middleware-endpoint": ^4.1.6 + "@smithy/middleware-retry": ^4.1.7 + "@smithy/middleware-serde": ^4.0.5 + "@smithy/middleware-stack": ^4.0.2 + "@smithy/node-config-provider": ^4.1.1 + "@smithy/node-http-handler": ^4.0.4 + "@smithy/protocol-http": ^5.1.0 + "@smithy/smithy-client": ^4.2.6 + "@smithy/types": ^4.2.0 + "@smithy/url-parser": ^4.0.2 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.7 - "@smithy/util-defaults-mode-node": ^4.0.7 - "@smithy/util-endpoints": ^3.0.1 - "@smithy/util-middleware": ^4.0.1 - "@smithy/util-retry": ^4.0.1 + "@smithy/util-defaults-mode-browser": ^4.0.14 + "@smithy/util-defaults-mode-node": ^4.0.14 + "@smithy/util-endpoints": ^3.0.4 + "@smithy/util-middleware": ^4.0.2 + "@smithy/util-retry": ^4.0.3 "@smithy/util-utf8": ^4.0.0 - "@smithy/util-waiter": ^4.0.2 + "@smithy/util-waiter": ^4.0.3 tslib: ^2.6.2 - checksum: 2d635ba1ed22ee9259c9a1e6e80878f4f9e9cf340ae70edf558605c34e9157d6ccd490680cc92c57c79185a942015260279fe870ba324a97ba655c550eea44f7 + checksum: 7b603eef30a910bae8c8d295374169684d472292c04508d5cd09132ac3a2cd337f2fc6c45aa78551fd46f4000cfc71ef7f4d9cd02c37aa83f4f9916ef3d74ea8 languageName: node linkType: hard "@aws-sdk/client-lambda@npm:^3.624.0": - version: 3.772.0 - resolution: "@aws-sdk/client-lambda@npm:3.772.0" + version: 3.817.0 + resolution: "@aws-sdk/client-lambda@npm:3.817.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.758.0 - "@aws-sdk/credential-provider-node": 3.772.0 - "@aws-sdk/middleware-host-header": 3.734.0 - "@aws-sdk/middleware-logger": 3.734.0 - "@aws-sdk/middleware-recursion-detection": 3.772.0 - "@aws-sdk/middleware-user-agent": 3.758.0 - "@aws-sdk/region-config-resolver": 3.734.0 - "@aws-sdk/types": 3.734.0 - "@aws-sdk/util-endpoints": 3.743.0 - "@aws-sdk/util-user-agent-browser": 3.734.0 - "@aws-sdk/util-user-agent-node": 3.758.0 - "@smithy/config-resolver": ^4.0.1 - "@smithy/core": ^3.1.5 - "@smithy/eventstream-serde-browser": ^4.0.1 - "@smithy/eventstream-serde-config-resolver": ^4.0.1 - "@smithy/eventstream-serde-node": ^4.0.1 - "@smithy/fetch-http-handler": ^5.0.1 - "@smithy/hash-node": ^4.0.1 - "@smithy/invalid-dependency": ^4.0.1 - "@smithy/middleware-content-length": ^4.0.1 - "@smithy/middleware-endpoint": ^4.0.6 - "@smithy/middleware-retry": ^4.0.7 - "@smithy/middleware-serde": ^4.0.2 - "@smithy/middleware-stack": ^4.0.1 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/node-http-handler": ^4.0.3 - "@smithy/protocol-http": ^5.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 - "@smithy/url-parser": ^4.0.1 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/credential-provider-node": 3.817.0 + "@aws-sdk/middleware-host-header": 3.804.0 + "@aws-sdk/middleware-logger": 3.804.0 + "@aws-sdk/middleware-recursion-detection": 3.804.0 + "@aws-sdk/middleware-user-agent": 3.816.0 + "@aws-sdk/region-config-resolver": 3.808.0 + "@aws-sdk/types": 3.804.0 + "@aws-sdk/util-endpoints": 3.808.0 + "@aws-sdk/util-user-agent-browser": 3.804.0 + "@aws-sdk/util-user-agent-node": 3.816.0 + "@smithy/config-resolver": ^4.1.2 + "@smithy/core": ^3.3.3 + "@smithy/eventstream-serde-browser": ^4.0.2 + "@smithy/eventstream-serde-config-resolver": ^4.1.0 + "@smithy/eventstream-serde-node": ^4.0.2 + "@smithy/fetch-http-handler": ^5.0.2 + "@smithy/hash-node": ^4.0.2 + "@smithy/invalid-dependency": ^4.0.2 + "@smithy/middleware-content-length": ^4.0.2 + "@smithy/middleware-endpoint": ^4.1.6 + "@smithy/middleware-retry": ^4.1.7 + "@smithy/middleware-serde": ^4.0.5 + "@smithy/middleware-stack": ^4.0.2 + "@smithy/node-config-provider": ^4.1.1 + "@smithy/node-http-handler": ^4.0.4 + "@smithy/protocol-http": ^5.1.0 + "@smithy/smithy-client": ^4.2.6 + "@smithy/types": ^4.2.0 + "@smithy/url-parser": ^4.0.2 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.7 - "@smithy/util-defaults-mode-node": ^4.0.7 - "@smithy/util-endpoints": ^3.0.1 - "@smithy/util-middleware": ^4.0.1 - "@smithy/util-retry": ^4.0.1 - "@smithy/util-stream": ^4.1.2 + "@smithy/util-defaults-mode-browser": ^4.0.14 + "@smithy/util-defaults-mode-node": ^4.0.14 + "@smithy/util-endpoints": ^3.0.4 + "@smithy/util-middleware": ^4.0.2 + "@smithy/util-retry": ^4.0.3 + "@smithy/util-stream": ^4.2.0 "@smithy/util-utf8": ^4.0.0 - "@smithy/util-waiter": ^4.0.2 + "@smithy/util-waiter": ^4.0.3 tslib: ^2.6.2 - checksum: 48ecc3897f5e92fa30306fc496dbf50ff2525f9bfb9c06143709a89112471992f85d6d6ecaa64b3f3b5c2a79712391e20a5aa31ef5cadbc6976977a6b3c94b2b + checksum: 4d3ce7dbcae6da13eed4fba847716420be630471aacbc12a256581f512031ecc7bac1d6b4962d0f3e3155e45c7730ad6037e49e0e76e36277118e700271e6912 languageName: node linkType: hard "@aws-sdk/client-sfn@npm:^3.624.0": - version: 3.772.0 - resolution: "@aws-sdk/client-sfn@npm:3.772.0" + version: 3.817.0 + resolution: "@aws-sdk/client-sfn@npm:3.817.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.758.0 - "@aws-sdk/credential-provider-node": 3.772.0 - "@aws-sdk/middleware-host-header": 3.734.0 - "@aws-sdk/middleware-logger": 3.734.0 - "@aws-sdk/middleware-recursion-detection": 3.772.0 - "@aws-sdk/middleware-user-agent": 3.758.0 - "@aws-sdk/region-config-resolver": 3.734.0 - "@aws-sdk/types": 3.734.0 - "@aws-sdk/util-endpoints": 3.743.0 - "@aws-sdk/util-user-agent-browser": 3.734.0 - "@aws-sdk/util-user-agent-node": 3.758.0 - "@smithy/config-resolver": ^4.0.1 - "@smithy/core": ^3.1.5 - "@smithy/fetch-http-handler": ^5.0.1 - "@smithy/hash-node": ^4.0.1 - "@smithy/invalid-dependency": ^4.0.1 - "@smithy/middleware-content-length": ^4.0.1 - "@smithy/middleware-endpoint": ^4.0.6 - "@smithy/middleware-retry": ^4.0.7 - "@smithy/middleware-serde": ^4.0.2 - "@smithy/middleware-stack": ^4.0.1 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/node-http-handler": ^4.0.3 - "@smithy/protocol-http": ^5.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 - "@smithy/url-parser": ^4.0.1 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/credential-provider-node": 3.817.0 + "@aws-sdk/middleware-host-header": 3.804.0 + "@aws-sdk/middleware-logger": 3.804.0 + "@aws-sdk/middleware-recursion-detection": 3.804.0 + "@aws-sdk/middleware-user-agent": 3.816.0 + "@aws-sdk/region-config-resolver": 3.808.0 + "@aws-sdk/types": 3.804.0 + "@aws-sdk/util-endpoints": 3.808.0 + "@aws-sdk/util-user-agent-browser": 3.804.0 + "@aws-sdk/util-user-agent-node": 3.816.0 + "@smithy/config-resolver": ^4.1.2 + "@smithy/core": ^3.3.3 + "@smithy/fetch-http-handler": ^5.0.2 + "@smithy/hash-node": ^4.0.2 + "@smithy/invalid-dependency": ^4.0.2 + "@smithy/middleware-content-length": ^4.0.2 + "@smithy/middleware-endpoint": ^4.1.6 + "@smithy/middleware-retry": ^4.1.7 + "@smithy/middleware-serde": ^4.0.5 + "@smithy/middleware-stack": ^4.0.2 + "@smithy/node-config-provider": ^4.1.1 + "@smithy/node-http-handler": ^4.0.4 + "@smithy/protocol-http": ^5.1.0 + "@smithy/smithy-client": ^4.2.6 + "@smithy/types": ^4.2.0 + "@smithy/url-parser": ^4.0.2 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.7 - "@smithy/util-defaults-mode-node": ^4.0.7 - "@smithy/util-endpoints": ^3.0.1 - "@smithy/util-middleware": ^4.0.1 - "@smithy/util-retry": ^4.0.1 + "@smithy/util-defaults-mode-browser": ^4.0.14 + "@smithy/util-defaults-mode-node": ^4.0.14 + "@smithy/util-endpoints": ^3.0.4 + "@smithy/util-middleware": ^4.0.2 + "@smithy/util-retry": ^4.0.3 "@smithy/util-utf8": ^4.0.0 "@types/uuid": ^9.0.1 tslib: ^2.6.2 uuid: ^9.0.1 - checksum: 69f306dba6bd6bdd8fb46505a475b24a7a4e66b999926890a856e7d639d06a1e644c32ab34673a3dfdef5db8b8562aad535bd34cd8c7657efc0e980404936157 + checksum: 7ea73c208957dd0f363de63ab87f1731726d4d9010ce44803443f3020a764d39f78f31d470a89aa1189f5e9dfa4f3535f5852d56f25cd11b07e6e8a4e8d97b88 languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.772.0": - version: 3.772.0 - resolution: "@aws-sdk/client-sso@npm:3.772.0" +"@aws-sdk/client-sso@npm:3.817.0": + version: 3.817.0 + resolution: "@aws-sdk/client-sso@npm:3.817.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.758.0 - "@aws-sdk/middleware-host-header": 3.734.0 - "@aws-sdk/middleware-logger": 3.734.0 - "@aws-sdk/middleware-recursion-detection": 3.772.0 - "@aws-sdk/middleware-user-agent": 3.758.0 - "@aws-sdk/region-config-resolver": 3.734.0 - "@aws-sdk/types": 3.734.0 - "@aws-sdk/util-endpoints": 3.743.0 - "@aws-sdk/util-user-agent-browser": 3.734.0 - "@aws-sdk/util-user-agent-node": 3.758.0 - "@smithy/config-resolver": ^4.0.1 - "@smithy/core": ^3.1.5 - "@smithy/fetch-http-handler": ^5.0.1 - "@smithy/hash-node": ^4.0.1 - "@smithy/invalid-dependency": ^4.0.1 - "@smithy/middleware-content-length": ^4.0.1 - "@smithy/middleware-endpoint": ^4.0.6 - "@smithy/middleware-retry": ^4.0.7 - "@smithy/middleware-serde": ^4.0.2 - "@smithy/middleware-stack": ^4.0.1 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/node-http-handler": ^4.0.3 - "@smithy/protocol-http": ^5.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 - "@smithy/url-parser": ^4.0.1 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/middleware-host-header": 3.804.0 + "@aws-sdk/middleware-logger": 3.804.0 + "@aws-sdk/middleware-recursion-detection": 3.804.0 + "@aws-sdk/middleware-user-agent": 3.816.0 + "@aws-sdk/region-config-resolver": 3.808.0 + "@aws-sdk/types": 3.804.0 + "@aws-sdk/util-endpoints": 3.808.0 + "@aws-sdk/util-user-agent-browser": 3.804.0 + "@aws-sdk/util-user-agent-node": 3.816.0 + "@smithy/config-resolver": ^4.1.2 + "@smithy/core": ^3.3.3 + "@smithy/fetch-http-handler": ^5.0.2 + "@smithy/hash-node": ^4.0.2 + "@smithy/invalid-dependency": ^4.0.2 + "@smithy/middleware-content-length": ^4.0.2 + "@smithy/middleware-endpoint": ^4.1.6 + "@smithy/middleware-retry": ^4.1.7 + "@smithy/middleware-serde": ^4.0.5 + "@smithy/middleware-stack": ^4.0.2 + "@smithy/node-config-provider": ^4.1.1 + "@smithy/node-http-handler": ^4.0.4 + "@smithy/protocol-http": ^5.1.0 + "@smithy/smithy-client": ^4.2.6 + "@smithy/types": ^4.2.0 + "@smithy/url-parser": ^4.0.2 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.7 - "@smithy/util-defaults-mode-node": ^4.0.7 - "@smithy/util-endpoints": ^3.0.1 - "@smithy/util-middleware": ^4.0.1 - "@smithy/util-retry": ^4.0.1 + "@smithy/util-defaults-mode-browser": ^4.0.14 + "@smithy/util-defaults-mode-node": ^4.0.14 + "@smithy/util-endpoints": ^3.0.4 + "@smithy/util-middleware": ^4.0.2 + "@smithy/util-retry": ^4.0.3 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: 714f4e24b3050dd23a5a43bf9a4868a53bd0d6170f40ccdd39f477f5b057adf8815ba47a320ef6bf4cd151c0c689f598dc8284198160a143b2abd4e10c6e2981 + checksum: 56a132825ca3e90d226dcb6af41418896bb0e792f36a175132032dd21bd463bf927b5919dae7bbaacde96077020204ec94bdb78c785fcee31d4025e8adca41d9 languageName: node linkType: hard -"@aws-sdk/core@npm:3.758.0, @aws-sdk/core@npm:^3.624.0": - version: 3.758.0 - resolution: "@aws-sdk/core@npm:3.758.0" +"@aws-sdk/core@npm:3.816.0, @aws-sdk/core@npm:^3.624.0": + version: 3.816.0 + resolution: "@aws-sdk/core@npm:3.816.0" dependencies: - "@aws-sdk/types": 3.734.0 - "@smithy/core": ^3.1.5 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/property-provider": ^4.0.1 - "@smithy/protocol-http": ^5.0.1 - "@smithy/signature-v4": ^5.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 - "@smithy/util-middleware": ^4.0.1 + "@aws-sdk/types": 3.804.0 + "@smithy/core": ^3.3.3 + "@smithy/node-config-provider": ^4.1.1 + "@smithy/property-provider": ^4.0.2 + "@smithy/protocol-http": ^5.1.0 + "@smithy/signature-v4": ^5.1.0 + "@smithy/smithy-client": ^4.2.6 + "@smithy/types": ^4.2.0 + "@smithy/util-middleware": ^4.0.2 fast-xml-parser: 4.4.1 tslib: ^2.6.2 - checksum: 7d3fc670cdf89152245d993115390315d931f94709633c6b8ceb70e076f1dafc9db9c33cc8a89093d5cacdc2fc5e229ff75f95c1325aca096688744a319b2cd2 + checksum: 30952ac6eb15dd6f9a606a7dd2bb4386431c6c9f8d479266ecb09d8b5449078bf547882f73b52aa7390c8b2541093123ad4103af140785b7e2f427b2da6ec0e8 languageName: node linkType: hard -"@aws-sdk/credential-provider-cognito-identity@npm:3.772.0": - version: 3.772.0 - resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.772.0" +"@aws-sdk/credential-provider-cognito-identity@npm:3.817.0": + version: 3.817.0 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.817.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.772.0 - "@aws-sdk/types": 3.734.0 - "@smithy/property-provider": ^4.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/client-cognito-identity": 3.817.0 + "@aws-sdk/types": 3.804.0 + "@smithy/property-provider": ^4.0.2 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: 90cbd3faedf584f611249a7a5c5b1ab5afa9c909fea23f82f2e2cf83f4454801255c38da2a02b69ef6e40fcbd95a7316d150bfe6899c14b6434bb20c87524a2a + checksum: 43f2790b67000df458cf088a29d360a9314ed270118959681a1997463e68ee90ebc8b38f60217e0ff529b742ce69eff2dd7fe25295846c2ad9417361558bd509 languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.758.0": - version: 3.758.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.758.0" +"@aws-sdk/credential-provider-env@npm:3.816.0": + version: 3.816.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.816.0" dependencies: - "@aws-sdk/core": 3.758.0 - "@aws-sdk/types": 3.734.0 - "@smithy/property-provider": ^4.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/types": 3.804.0 + "@smithy/property-provider": ^4.0.2 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: b844a95054943a3478aa44bce4e7f36334622d6f34f2b31057bbd3500990201bdffed160405aad4ef0bf2fcdccb3b8a7f9886991a7f8116a50aee83fc1af0f0c + checksum: f1d3df36ee21db5632e028f5eb5609df70d8181aeceadc1ef020b3a809893fb7a9901593944cd0ee95f8825b9310ac30b34acc5fb21446efeeb483527b24c3bb languageName: node linkType: hard -"@aws-sdk/credential-provider-http@npm:3.758.0": - version: 3.758.0 - resolution: "@aws-sdk/credential-provider-http@npm:3.758.0" +"@aws-sdk/credential-provider-http@npm:3.816.0": + version: 3.816.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.816.0" dependencies: - "@aws-sdk/core": 3.758.0 - "@aws-sdk/types": 3.734.0 - "@smithy/fetch-http-handler": ^5.0.1 - "@smithy/node-http-handler": ^4.0.3 - "@smithy/property-provider": ^4.0.1 - "@smithy/protocol-http": ^5.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 - "@smithy/util-stream": ^4.1.2 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/types": 3.804.0 + "@smithy/fetch-http-handler": ^5.0.2 + "@smithy/node-http-handler": ^4.0.4 + "@smithy/property-provider": ^4.0.2 + "@smithy/protocol-http": ^5.1.0 + "@smithy/smithy-client": ^4.2.6 + "@smithy/types": ^4.2.0 + "@smithy/util-stream": ^4.2.0 tslib: ^2.6.2 - checksum: 4fd4cc1b305069476e0f0440ef0e821b73044eef3a73129c7c1e4df7390f88a76a093d9e3e404ae65550119ed16350be8c18b052c2becbd2a93afb129085aa7a - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-ini@npm:3.772.0, @aws-sdk/credential-provider-ini@npm:^3.624.0": - version: 3.772.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.772.0" - dependencies: - "@aws-sdk/core": 3.758.0 - "@aws-sdk/credential-provider-env": 3.758.0 - "@aws-sdk/credential-provider-http": 3.758.0 - "@aws-sdk/credential-provider-process": 3.758.0 - "@aws-sdk/credential-provider-sso": 3.772.0 - "@aws-sdk/credential-provider-web-identity": 3.772.0 - "@aws-sdk/nested-clients": 3.772.0 - "@aws-sdk/types": 3.734.0 - "@smithy/credential-provider-imds": ^4.0.1 - "@smithy/property-provider": ^4.0.1 - "@smithy/shared-ini-file-loader": ^4.0.1 - "@smithy/types": ^4.1.0 + checksum: 17637ac8c8113aa679e011b7adb58a3c1774d99495f0bcfd352ea133fe0da77a2390231a4a1ff5102cb6cddcdb26b423bc8f80fa0f2b83de840b6e42d598f7a1 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-ini@npm:3.817.0, @aws-sdk/credential-provider-ini@npm:^3.624.0": + version: 3.817.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.817.0" + dependencies: + "@aws-sdk/core": 3.816.0 + "@aws-sdk/credential-provider-env": 3.816.0 + "@aws-sdk/credential-provider-http": 3.816.0 + "@aws-sdk/credential-provider-process": 3.816.0 + "@aws-sdk/credential-provider-sso": 3.817.0 + "@aws-sdk/credential-provider-web-identity": 3.817.0 + "@aws-sdk/nested-clients": 3.817.0 + "@aws-sdk/types": 3.804.0 + "@smithy/credential-provider-imds": ^4.0.4 + "@smithy/property-provider": ^4.0.2 + "@smithy/shared-ini-file-loader": ^4.0.2 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: ad46369edb84acdc82f3722ef1e4fe43d211a6d1eafae3b14512e4cce21773f1648695af043c117b00e9b1f9e3e14515e449965d2015c20b20e7a770df119a3a + checksum: 7242af5dc8b6d03c9dabe19cdf46f2a9d2b56325b219741073361fbf6095ffdaef9e3664e2e1d91e7207fcfad0c3449823f434bf4b9206b9069bee850230ff28 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.772.0": - version: 3.772.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.772.0" +"@aws-sdk/credential-provider-node@npm:3.817.0": + version: 3.817.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.817.0" dependencies: - "@aws-sdk/credential-provider-env": 3.758.0 - "@aws-sdk/credential-provider-http": 3.758.0 - "@aws-sdk/credential-provider-ini": 3.772.0 - "@aws-sdk/credential-provider-process": 3.758.0 - "@aws-sdk/credential-provider-sso": 3.772.0 - "@aws-sdk/credential-provider-web-identity": 3.772.0 - "@aws-sdk/types": 3.734.0 - "@smithy/credential-provider-imds": ^4.0.1 - "@smithy/property-provider": ^4.0.1 - "@smithy/shared-ini-file-loader": ^4.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/credential-provider-env": 3.816.0 + "@aws-sdk/credential-provider-http": 3.816.0 + "@aws-sdk/credential-provider-ini": 3.817.0 + "@aws-sdk/credential-provider-process": 3.816.0 + "@aws-sdk/credential-provider-sso": 3.817.0 + "@aws-sdk/credential-provider-web-identity": 3.817.0 + "@aws-sdk/types": 3.804.0 + "@smithy/credential-provider-imds": ^4.0.4 + "@smithy/property-provider": ^4.0.2 + "@smithy/shared-ini-file-loader": ^4.0.2 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: 95077e364a890e6ae51077d6721619dc5159ea443f9348f04e306eab9fb6bef32e1b3e0565b87527f3e6f8240e8b64f2ecea11d57a92ef32267760014357fc44 + checksum: 43122aaa81f4de06399bda8be5f459c14bb23ca3b80710d62cffa86f3f6687e69c517643c33f365bf305384cc23ad4ad2ef30631e4e5301462c037856821c112 languageName: node linkType: hard -"@aws-sdk/credential-provider-process@npm:3.758.0": - version: 3.758.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.758.0" +"@aws-sdk/credential-provider-process@npm:3.816.0": + version: 3.816.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.816.0" dependencies: - "@aws-sdk/core": 3.758.0 - "@aws-sdk/types": 3.734.0 - "@smithy/property-provider": ^4.0.1 - "@smithy/shared-ini-file-loader": ^4.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/types": 3.804.0 + "@smithy/property-provider": ^4.0.2 + "@smithy/shared-ini-file-loader": ^4.0.2 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: c98c76e4f1c79774a35cb6e07dd8c151da2486e487891fa4f2922a73b6ed58c5f13b695cc4ec3c17257db0f42853c1d036ea10912e0088937e7348705b3cdf87 + checksum: 5b347be49f87c4a8b2dba997e0f13f588d44b6343a4117c435ae233c50676e426b24a39517f3c1b05df3e890566fde1cc2ef6731827633cf90d356be2e471bd0 languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.772.0": - version: 3.772.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.772.0" +"@aws-sdk/credential-provider-sso@npm:3.817.0": + version: 3.817.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.817.0" dependencies: - "@aws-sdk/client-sso": 3.772.0 - "@aws-sdk/core": 3.758.0 - "@aws-sdk/token-providers": 3.772.0 - "@aws-sdk/types": 3.734.0 - "@smithy/property-provider": ^4.0.1 - "@smithy/shared-ini-file-loader": ^4.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/client-sso": 3.817.0 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/token-providers": 3.817.0 + "@aws-sdk/types": 3.804.0 + "@smithy/property-provider": ^4.0.2 + "@smithy/shared-ini-file-loader": ^4.0.2 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: e49d9ac37e9562e3a4a6eae20d2699b87e104c72cf455b8793d4ca656e293f79425b5da160044808293e366077d6fb6a798bd308c5cf4296238e2ca96270c099 + checksum: 2cf9c2a42d1896d64c8718ec4d51da5e2c53fd2cfe8197f0d6ce299bd790ca54390ced894a4eaca9f51d091d5d47ec9cd81ac0ea138dbc55881c02efcf0d61e8 languageName: node linkType: hard -"@aws-sdk/credential-provider-web-identity@npm:3.772.0": - version: 3.772.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.772.0" +"@aws-sdk/credential-provider-web-identity@npm:3.817.0": + version: 3.817.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.817.0" dependencies: - "@aws-sdk/core": 3.758.0 - "@aws-sdk/nested-clients": 3.772.0 - "@aws-sdk/types": 3.734.0 - "@smithy/property-provider": ^4.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/nested-clients": 3.817.0 + "@aws-sdk/types": 3.804.0 + "@smithy/property-provider": ^4.0.2 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: da17f9ddb6de65ed1f368c5d8ef374b50212fc51a613658f162f60a5f10771546e16928e0d7a17a1c0075f52ac566029e8d46d2dfdde3575c01145ea83caacdf + checksum: bba9ed07845cc7d4a0a3e63166592f356f261c0d15679031e8a0c0658b9abaa1c38e0a16bf91e77c3704a74865e3adc2ea095a6bdb090e4b262daf2a9acf9a6c languageName: node linkType: hard "@aws-sdk/credential-providers@npm:^3.624.0": - version: 3.772.0 - resolution: "@aws-sdk/credential-providers@npm:3.772.0" - dependencies: - "@aws-sdk/client-cognito-identity": 3.772.0 - "@aws-sdk/core": 3.758.0 - "@aws-sdk/credential-provider-cognito-identity": 3.772.0 - "@aws-sdk/credential-provider-env": 3.758.0 - "@aws-sdk/credential-provider-http": 3.758.0 - "@aws-sdk/credential-provider-ini": 3.772.0 - "@aws-sdk/credential-provider-node": 3.772.0 - "@aws-sdk/credential-provider-process": 3.758.0 - "@aws-sdk/credential-provider-sso": 3.772.0 - "@aws-sdk/credential-provider-web-identity": 3.772.0 - "@aws-sdk/nested-clients": 3.772.0 - "@aws-sdk/types": 3.734.0 - "@smithy/core": ^3.1.5 - "@smithy/credential-provider-imds": ^4.0.1 - "@smithy/property-provider": ^4.0.1 - "@smithy/types": ^4.1.0 + version: 3.817.0 + resolution: "@aws-sdk/credential-providers@npm:3.817.0" + dependencies: + "@aws-sdk/client-cognito-identity": 3.817.0 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/credential-provider-cognito-identity": 3.817.0 + "@aws-sdk/credential-provider-env": 3.816.0 + "@aws-sdk/credential-provider-http": 3.816.0 + "@aws-sdk/credential-provider-ini": 3.817.0 + "@aws-sdk/credential-provider-node": 3.817.0 + "@aws-sdk/credential-provider-process": 3.816.0 + "@aws-sdk/credential-provider-sso": 3.817.0 + "@aws-sdk/credential-provider-web-identity": 3.817.0 + "@aws-sdk/nested-clients": 3.817.0 + "@aws-sdk/types": 3.804.0 + "@smithy/config-resolver": ^4.1.2 + "@smithy/core": ^3.3.3 + "@smithy/credential-provider-imds": ^4.0.4 + "@smithy/node-config-provider": ^4.1.1 + "@smithy/property-provider": ^4.0.2 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: 1a3ee122cf859b67db3da71c354612c04d267f84d48de1fd799af4a3d35733133ab6248ec9072e17ef4efb7224514f263bac02c8479db71e3b5029bd3abc82a0 + checksum: 5621eb81eabc6e24373130a6dead8299237fe3179f8afd708c6e8425cc22ef819fc71d32e53503251b09f696677e1cb332db9001db4496ec583c839fdb85c9b0 languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.734.0": - version: 3.734.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.734.0" +"@aws-sdk/middleware-host-header@npm:3.804.0": + version: 3.804.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.804.0" dependencies: - "@aws-sdk/types": 3.734.0 - "@smithy/protocol-http": ^5.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/types": 3.804.0 + "@smithy/protocol-http": ^5.1.0 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: 38e313f72bb76335c53184954b46fc33c8d05abb35ac19ca177ae0194d4817e84c1c9410607b3e236329736f9b302f4d4428b6ecdbf6dacd2fd258e03fea2958 + checksum: 3310bf3c88b2db2d179ec8c7feff5e6429b3f4ef2535ffcfb492fdfce265362f132a502a06a8743b4ff6118083a5da4bd4219d2f3743863da75e594d39a50f6e languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.734.0": - version: 3.734.0 - resolution: "@aws-sdk/middleware-logger@npm:3.734.0" +"@aws-sdk/middleware-logger@npm:3.804.0": + version: 3.804.0 + resolution: "@aws-sdk/middleware-logger@npm:3.804.0" dependencies: - "@aws-sdk/types": 3.734.0 - "@smithy/types": ^4.1.0 + "@aws-sdk/types": 3.804.0 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: e7f8a96c5d3d15e894c36c67ae76beb6059f840c5bfce93f13adf916830053910fe5bfc0473d5da64590a5fae24ae131600b1ddd36322171ff88cdbc6a24fb6a + checksum: 11c62cf5670eeb035f87ea95ce6e8b8205bd407b0a5d8c7a73a5b0e30ccfa6e11d4595d9aba6d61ef628377555447ca25704afdd8e916d6a6ba67b7a7fd0f078 languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.772.0": - version: 3.772.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.772.0" +"@aws-sdk/middleware-recursion-detection@npm:3.804.0": + version: 3.804.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.804.0" dependencies: - "@aws-sdk/types": 3.734.0 - "@smithy/protocol-http": ^5.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/types": 3.804.0 + "@smithy/protocol-http": ^5.1.0 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: 6d28fcfb535ad397b93fb8ec5b7daeeca221c4b60ee63dbe48ce11c31d0ba342abe66a1d4352c16faf38d58e97277a1fd8525a99203033d82aa0fa693b702f23 + checksum: e762ca615372584ec4fea95b50f4476457edd36c8b433238df8c6c7143ae91da17fe1d3209eca425e89e799a73879e76510121d9235975c46d644e37a17e5350 languageName: node linkType: hard -"@aws-sdk/middleware-user-agent@npm:3.758.0": - version: 3.758.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.758.0" +"@aws-sdk/middleware-user-agent@npm:3.816.0": + version: 3.816.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.816.0" dependencies: - "@aws-sdk/core": 3.758.0 - "@aws-sdk/types": 3.734.0 - "@aws-sdk/util-endpoints": 3.743.0 - "@smithy/core": ^3.1.5 - "@smithy/protocol-http": ^5.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/types": 3.804.0 + "@aws-sdk/util-endpoints": 3.808.0 + "@smithy/core": ^3.3.3 + "@smithy/protocol-http": ^5.1.0 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: aa1e3eeb0cc44eca5a82b5df34444a1d73a8f2dbe289746678293f74d282f4d9881e3bb4088e4e65753fba1ef71c4eac433204038d51b3e6319e3dc94a650749 + checksum: 69ae2102098f7827d892e04e6bbb24cfc4eb5947d352e8a3d5126c2e12b65a78612360b9d49bec5a4bfe4e951267e779fe70739eab8de91b6f902eca077947a0 languageName: node linkType: hard -"@aws-sdk/nested-clients@npm:3.772.0": - version: 3.772.0 - resolution: "@aws-sdk/nested-clients@npm:3.772.0" +"@aws-sdk/nested-clients@npm:3.817.0": + version: 3.817.0 + resolution: "@aws-sdk/nested-clients@npm:3.817.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.758.0 - "@aws-sdk/middleware-host-header": 3.734.0 - "@aws-sdk/middleware-logger": 3.734.0 - "@aws-sdk/middleware-recursion-detection": 3.772.0 - "@aws-sdk/middleware-user-agent": 3.758.0 - "@aws-sdk/region-config-resolver": 3.734.0 - "@aws-sdk/types": 3.734.0 - "@aws-sdk/util-endpoints": 3.743.0 - "@aws-sdk/util-user-agent-browser": 3.734.0 - "@aws-sdk/util-user-agent-node": 3.758.0 - "@smithy/config-resolver": ^4.0.1 - "@smithy/core": ^3.1.5 - "@smithy/fetch-http-handler": ^5.0.1 - "@smithy/hash-node": ^4.0.1 - "@smithy/invalid-dependency": ^4.0.1 - "@smithy/middleware-content-length": ^4.0.1 - "@smithy/middleware-endpoint": ^4.0.6 - "@smithy/middleware-retry": ^4.0.7 - "@smithy/middleware-serde": ^4.0.2 - "@smithy/middleware-stack": ^4.0.1 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/node-http-handler": ^4.0.3 - "@smithy/protocol-http": ^5.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 - "@smithy/url-parser": ^4.0.1 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/middleware-host-header": 3.804.0 + "@aws-sdk/middleware-logger": 3.804.0 + "@aws-sdk/middleware-recursion-detection": 3.804.0 + "@aws-sdk/middleware-user-agent": 3.816.0 + "@aws-sdk/region-config-resolver": 3.808.0 + "@aws-sdk/types": 3.804.0 + "@aws-sdk/util-endpoints": 3.808.0 + "@aws-sdk/util-user-agent-browser": 3.804.0 + "@aws-sdk/util-user-agent-node": 3.816.0 + "@smithy/config-resolver": ^4.1.2 + "@smithy/core": ^3.3.3 + "@smithy/fetch-http-handler": ^5.0.2 + "@smithy/hash-node": ^4.0.2 + "@smithy/invalid-dependency": ^4.0.2 + "@smithy/middleware-content-length": ^4.0.2 + "@smithy/middleware-endpoint": ^4.1.6 + "@smithy/middleware-retry": ^4.1.7 + "@smithy/middleware-serde": ^4.0.5 + "@smithy/middleware-stack": ^4.0.2 + "@smithy/node-config-provider": ^4.1.1 + "@smithy/node-http-handler": ^4.0.4 + "@smithy/protocol-http": ^5.1.0 + "@smithy/smithy-client": ^4.2.6 + "@smithy/types": ^4.2.0 + "@smithy/url-parser": ^4.0.2 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.7 - "@smithy/util-defaults-mode-node": ^4.0.7 - "@smithy/util-endpoints": ^3.0.1 - "@smithy/util-middleware": ^4.0.1 - "@smithy/util-retry": ^4.0.1 + "@smithy/util-defaults-mode-browser": ^4.0.14 + "@smithy/util-defaults-mode-node": ^4.0.14 + "@smithy/util-endpoints": ^3.0.4 + "@smithy/util-middleware": ^4.0.2 + "@smithy/util-retry": ^4.0.3 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: 2c454962b763162154eedebf2b4f64994d3d47c3fa34fc8ad828d0a4fef3edd1d7f6a0c6e4f428441984b8628c51a0ccc09ee9ae2d26eb50c68c1fc6e3e1b2d5 + checksum: 5cbb955cd45c5ed8a41a4b9d0ed05080245f819c68220ecc17545a2a77fdbd4b1c91807aab3f8b9a72198bcba6b40f840d478e8a59468efdc5293a47f3359583 languageName: node linkType: hard -"@aws-sdk/region-config-resolver@npm:3.734.0": - version: 3.734.0 - resolution: "@aws-sdk/region-config-resolver@npm:3.734.0" +"@aws-sdk/region-config-resolver@npm:3.808.0": + version: 3.808.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.808.0" dependencies: - "@aws-sdk/types": 3.734.0 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/types": 3.804.0 + "@smithy/node-config-provider": ^4.1.1 + "@smithy/types": ^4.2.0 "@smithy/util-config-provider": ^4.0.0 - "@smithy/util-middleware": ^4.0.1 + "@smithy/util-middleware": ^4.0.2 tslib: ^2.6.2 - checksum: ec95c09e6527601d3f12791f64d972fcc9218e2da123ead572e8e4b5ef56ba1e67dabeb6e4b86c68958606af50cb1d853c168bb25b226aca171ca0993604803d + checksum: 0a873b5566d2f9c65ba4da25c49b8f421ace391bba5de6d2f41cc49e33e024d2b90e6c3f570d1d182da8a7fc7f639644b5a5d4ea2354fedcca7c8727b075f1cd languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.772.0": - version: 3.772.0 - resolution: "@aws-sdk/token-providers@npm:3.772.0" +"@aws-sdk/token-providers@npm:3.817.0": + version: 3.817.0 + resolution: "@aws-sdk/token-providers@npm:3.817.0" dependencies: - "@aws-sdk/nested-clients": 3.772.0 - "@aws-sdk/types": 3.734.0 - "@smithy/property-provider": ^4.0.1 - "@smithy/shared-ini-file-loader": ^4.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/core": 3.816.0 + "@aws-sdk/nested-clients": 3.817.0 + "@aws-sdk/types": 3.804.0 + "@smithy/property-provider": ^4.0.2 + "@smithy/shared-ini-file-loader": ^4.0.2 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: 7017c782cc3503a7125a313577bc52e5056c6bc35f4ac4bc1fc57953fb3803219392eca24987a0b5dd9e86ce47f79dfc34dcf87e393d2898d5af23ec35d6f07c + checksum: 6d1b489323240950f3a52e340e2cc78c44f2b84107bb727ca221449e3423d30cd4956e7c331c20e4cfbe7075734aa47c4699a9dcea491e398f051ba7a8dbeee8 languageName: node linkType: hard -"@aws-sdk/types@npm:3.734.0, @aws-sdk/types@npm:^3.222.0": - version: 3.734.0 - resolution: "@aws-sdk/types@npm:3.734.0" +"@aws-sdk/types@npm:3.804.0, @aws-sdk/types@npm:^3.222.0": + version: 3.804.0 + resolution: "@aws-sdk/types@npm:3.804.0" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 - checksum: 7e113233f91905a8b4622715a5cc45f0a9d4eda00614845885ecb5743d0339448282ba615597e291fa64b5e41a6f53965c6d6623d617b3c280830b48fe9771ed + checksum: 6e15b214b96e3f1a158ad5144093cd6cbc765984b8ddc00492e2274218b00d43921aaf1340c8a75dd1878c981528257663c053c28d7a47146620122af4f45cca languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.743.0": - version: 3.743.0 - resolution: "@aws-sdk/util-endpoints@npm:3.743.0" +"@aws-sdk/util-endpoints@npm:3.808.0": + version: 3.808.0 + resolution: "@aws-sdk/util-endpoints@npm:3.808.0" dependencies: - "@aws-sdk/types": 3.734.0 - "@smithy/types": ^4.1.0 - "@smithy/util-endpoints": ^3.0.1 + "@aws-sdk/types": 3.804.0 + "@smithy/types": ^4.2.0 + "@smithy/util-endpoints": ^3.0.4 tslib: ^2.6.2 - checksum: 1e4639ee30b71a63d2f1bd378d31fdad682523236b7bdb28282240a104bc0ac2cf4c96b3cb19a15c0d5dab2a6eda185f7db3a475ec7d8e4db914cafdc72198c9 + checksum: 3d91c917fe51a5af1fbf6aa739fef26dcd06f945a23f7fe4126567c2ac91d47f832502c208848fd62a312cb37ea4adbab05af83f9a2310a1b9437ca53e9a25c2 languageName: node linkType: hard "@aws-sdk/util-locate-window@npm:^3.0.0": - version: 3.723.0 - resolution: "@aws-sdk/util-locate-window@npm:3.723.0" + version: 3.804.0 + resolution: "@aws-sdk/util-locate-window@npm:3.804.0" dependencies: tslib: ^2.6.2 - checksum: 2ac0322b579fd4008727ca2af5daa3527395b24270cbbda1bf00fe07c8f7727e6e192a88ed864285e285fb1447e39925fa0433efebf664e6cdbc968d07e51470 + checksum: 87b384533ba5ceade6e212f5783b6134551ade3ecb413c93ea453c2d5af76651137c4dc7b270b643e8ac810b072119a273790046c31921aaf0f6a664d1a31c99 languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.734.0": - version: 3.734.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.734.0" +"@aws-sdk/util-user-agent-browser@npm:3.804.0": + version: 3.804.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.804.0" dependencies: - "@aws-sdk/types": 3.734.0 - "@smithy/types": ^4.1.0 + "@aws-sdk/types": 3.804.0 + "@smithy/types": ^4.2.0 bowser: ^2.11.0 tslib: ^2.6.2 - checksum: 5c75eadca3912c8ffcb2bdabc16ee24fc6e05ac1b077662d50c72575ad449ce94669a841c5da5fff9231edfd0a23b1e85258a589cbc2b0de5bbf4b9031e77c77 + checksum: 6216ac4936631696c596a57a762683575b173efca7af5a8bb805402c6527e8caa0b5f75b3da3f73e354581f04dd19a5e5d09bca7c2f55c7c2b8fba61086f4e86 languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.758.0": - version: 3.758.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.758.0" +"@aws-sdk/util-user-agent-node@npm:3.816.0": + version: 3.816.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.816.0" dependencies: - "@aws-sdk/middleware-user-agent": 3.758.0 - "@aws-sdk/types": 3.734.0 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/types": ^4.1.0 + "@aws-sdk/middleware-user-agent": 3.816.0 + "@aws-sdk/types": 3.804.0 + "@smithy/node-config-provider": ^4.1.1 + "@smithy/types": ^4.2.0 tslib: ^2.6.2 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: 83760133a69a67265501ec9b128c2d7e63034bad7e691d116a8f1a8dffecd208cc63896506581158dd567d09f38d314f07a24d8af9ddf98ad8bea1b04db36d81 + checksum: c705904423d2ae2db73a29ec4a24649ef8c7a13b02aa71bea5c2188acfade8f34294b4cb91812df6e7f57ce9a62127ab9dae55407e326de7c2bb0dc3d78691aa languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.26.2": - version: 7.26.2 - resolution: "@babel/code-frame@npm:7.26.2" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/code-frame@npm:7.27.1" dependencies: - "@babel/helper-validator-identifier": ^7.25.9 + "@babel/helper-validator-identifier": ^7.27.1 js-tokens: ^4.0.0 - picocolors: ^1.0.0 - checksum: db13f5c42d54b76c1480916485e6900748bbcb0014a8aca87f50a091f70ff4e0d0a6db63cade75eb41fcc3d2b6ba0a7f89e343def4f96f00269b41b8ab8dd7b8 + picocolors: ^1.1.1 + checksum: 5874edc5d37406c4a0bb14cf79c8e51ad412fb0423d176775ac14fc0259831be1bf95bdda9c2aa651126990505e09a9f0ed85deaa99893bc316d2682c5115bdc languageName: node linkType: hard -"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.26.5, @babel/compat-data@npm:^7.26.8": - version: 7.26.8 - resolution: "@babel/compat-data@npm:7.26.8" - checksum: 1bb04c6860c8c9555b933cb9c3caf5ef1dac331a37a351efb67956fc679f695d487aea76e792dd43823702c1300f7906f2a298e50b4a8d7ec199ada9c340c365 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/compat-data@npm:7.27.2" + checksum: 8d4066324e5f1275adc43f2e22110cac29ee09fe926260c43f0eaa432c148859367df4152574a28ee02dbb3e3d11dd57145eed345d49cc07f9b6e11fee06535f languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.18.5, @babel/core@npm:^7.20.0, @babel/core@npm:^7.23.9": - version: 7.26.10 - resolution: "@babel/core@npm:7.26.10" +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.18.5, @babel/core@npm:^7.23.9, @babel/core@npm:^7.25.2": + version: 7.27.1 + resolution: "@babel/core@npm:7.27.1" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.26.2 - "@babel/generator": ^7.26.10 - "@babel/helper-compilation-targets": ^7.26.5 - "@babel/helper-module-transforms": ^7.26.0 - "@babel/helpers": ^7.26.10 - "@babel/parser": ^7.26.10 - "@babel/template": ^7.26.9 - "@babel/traverse": ^7.26.10 - "@babel/types": ^7.26.10 + "@babel/code-frame": ^7.27.1 + "@babel/generator": ^7.27.1 + "@babel/helper-compilation-targets": ^7.27.1 + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helpers": ^7.27.1 + "@babel/parser": ^7.27.1 + "@babel/template": ^7.27.1 + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 0217325bd46fb9c828331c14dbe3f015ee13d9aecec423ef5acc0ce8b51a3d2a2d55f2ede252b99d0ab9b2f1a06e2881694a890f92006aeac9ebe5be2914c089 + checksum: fce205f9eea387ed8a9c6de64e5a8f50256359bfc8f1352c576c843b4c148a6c2ef187cfe8d729453e520fdcc997f65920aca6cb8911fb25dfd2286966b9b914 languageName: node linkType: hard -"@babel/eslint-parser@npm:^7.20.0": - version: 7.26.10 - resolution: "@babel/eslint-parser@npm:7.26.10" +"@babel/eslint-parser@npm:^7.25.1": + version: 7.27.1 + resolution: "@babel/eslint-parser@npm:7.27.1" dependencies: "@nicolo-ribaudo/eslint-scope-5-internals": 5.1.1-v1 eslint-visitor-keys: ^2.1.0 @@ -811,72 +814,72 @@ __metadata: peerDependencies: "@babel/core": ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - checksum: 979f0e86d3bcb596f0ffd159265a32adfb09a7b6765cd66588130fd8db58ebdcbfb2ecf3456bfc081ace4500d36f16a8b497aaaf4830bc3c10b99856c7ea3ce5 + checksum: 0e8aa37fe03e5e5f2db35e1e628c02012a9ea9aa14429495eacdb0418e8ebeaf7b6308f9f8931ee3fe64a61fd6ac7637c8ffcc2c0d85eee246b6115198418bc2 languageName: node linkType: hard -"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.26.10, @babel/generator@npm:^7.7.2": - version: 7.26.10 - resolution: "@babel/generator@npm:7.26.10" +"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.27.1, @babel/generator@npm:^7.7.2": + version: 7.27.1 + resolution: "@babel/generator@npm:7.27.1" dependencies: - "@babel/parser": ^7.26.10 - "@babel/types": ^7.26.10 + "@babel/parser": ^7.27.1 + "@babel/types": ^7.27.1 "@jridgewell/gen-mapping": ^0.3.5 "@jridgewell/trace-mapping": ^0.3.25 jsesc: ^3.0.2 - checksum: b047378cb4fdb54adae53a7e9648f1585c2e3ddd3a4019e36bf4b4554029c84872891234fc9c9519570448a1cb47430b2bf46524cf618c94d6d09985cf6428e1 + checksum: d5e220eb20aca1d93aef85c4c716237f84c5aab7d3ed8dfeb7060dcd73d20c593a687fe74cfb6d3dc1604ef9faff2ca24e6cfdb1af18e03e3a5f9f63a04c0bdc languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" +"@babel/helper-annotate-as-pure@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-annotate-as-pure@npm:7.27.1" dependencies: - "@babel/types": ^7.25.9 - checksum: 41edda10df1ae106a9b4fe617bf7c6df77db992992afd46192534f5cff29f9e49a303231733782dd65c5f9409714a529f215325569f14282046e9d3b7a1ffb6c + "@babel/types": ^7.27.1 + checksum: 3f8e4d591458d6c0621a3d670f8798b8895580214287390126e3e621ddf3df0bd07cbcc9500c2671b9ec10162c2f9feb1194da5cf039d40df8cb69d181fc0cd8 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9, @babel/helper-compilation-targets@npm:^7.26.5": - version: 7.26.5 - resolution: "@babel/helper-compilation-targets@npm:7.26.5" +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/helper-compilation-targets@npm:7.27.2" dependencies: - "@babel/compat-data": ^7.26.5 - "@babel/helper-validator-option": ^7.25.9 + "@babel/compat-data": ^7.27.2 + "@babel/helper-validator-option": ^7.27.1 browserslist: ^4.24.0 lru-cache: ^5.1.1 semver: ^6.3.1 - checksum: 6bc0107613bf1d4d21913606e8e517194e5099a24db2a8374568e56ef4626e8140f9b8f8a4aabc35479f5904459a0aead2a91ee0dc63aae110ccbc2bc4b4fda1 + checksum: 7b95328237de85d7af1dea010a4daa28e79f961dda48b652860d5893ce9b136fc8b9ea1f126d8e0a24963b09ba5c6631dcb907b4ce109b04452d34a6ae979807 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.25.9": - version: 7.26.9 - resolution: "@babel/helper-create-class-features-plugin@npm:7.26.9" +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-create-class-features-plugin@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.25.9 - "@babel/helper-member-expression-to-functions": ^7.25.9 - "@babel/helper-optimise-call-expression": ^7.25.9 - "@babel/helper-replace-supers": ^7.26.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.25.9 - "@babel/traverse": ^7.26.9 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-member-expression-to-functions": ^7.27.1 + "@babel/helper-optimise-call-expression": ^7.27.1 + "@babel/helper-replace-supers": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 + "@babel/traverse": ^7.27.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: d445a660d2cdd92e83c04a60f52a304e54e5cc338796b6add9dec00048f1ad12125f78145ab688d029569a9559ef64f8e0de86f456b9e2630ea46f664ffb8e45 + checksum: 406954b455e5b20924e7d1b41cf932e6e98e95c3a5224c7a70c3ad96a84e8fbde915ceff7ddbf9c7d121397c4e9274f061241648475122cf6fe54e0a95caae15 languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.9": - version: 7.26.3 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.26.3" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.25.9 + "@babel/helper-annotate-as-pure": ^7.27.1 regexpu-core: ^6.2.0 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 50a27d8ce6da5c2fa0c62c132c4d27cfeb36e3233ff1e5220d643de3dafe49423b507382f0b72a696fce7486014b134c1e742f55438590f9405d26765b009af0 + checksum: 2ede6bbad0016a9262fd281ce8f1a5d69e6179dcec4ea282830e924c29a29b66b0544ecb92e4ef4acdaf2c4c990931d7dc442dbcd6a8bcec4bad73923ef70934 languageName: node linkType: hard @@ -895,227 +898,204 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.9": - version: 7.24.7 - resolution: "@babel/helper-environment-visitor@npm:7.24.7" - dependencies: - "@babel/types": ^7.24.7 - checksum: 079d86e65701b29ebc10baf6ed548d17c19b808a07aa6885cc141b690a78581b180ee92b580d755361dc3b16adf975b2d2058b8ce6c86675fcaf43cf22f2f7c6 - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" +"@babel/helper-member-expression-to-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-member-expression-to-functions@npm:7.27.1" dependencies: - "@babel/traverse": ^7.25.9 - "@babel/types": ^7.25.9 - checksum: 8e2f1979b6d596ac2a8cbf17f2cf709180fefc274ac3331408b48203fe19134ed87800774ef18838d0275c3965130bae22980d90caed756b7493631d4b2cf961 + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: b13a3d120015a6fd2f6e6c2ff789cd12498745ef028710cba612cfb751b91ace700c3f96c1689228d1dcb41e9d4cf83d6dff8627dcb0c8da12d79440e783c6b8 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-module-imports@npm:7.25.9" +"@babel/helper-module-imports@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-imports@npm:7.27.1" dependencies: - "@babel/traverse": ^7.25.9 - "@babel/types": ^7.25.9 - checksum: 1b411ce4ca825422ef7065dffae7d8acef52023e51ad096351e3e2c05837e9bf9fca2af9ca7f28dc26d596a588863d0fedd40711a88e350b736c619a80e704e6 + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: 92d01c71c0e4aacdc2babce418a9a1a27a8f7d770a210ffa0f3933f321befab18b655bc1241bebc40767516731de0b85639140c42e45a8210abe1e792f115b28 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/helper-module-transforms@npm:7.26.0" +"@babel/helper-module-transforms@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-transforms@npm:7.27.1" dependencies: - "@babel/helper-module-imports": ^7.25.9 - "@babel/helper-validator-identifier": ^7.25.9 - "@babel/traverse": ^7.25.9 + "@babel/helper-module-imports": ^7.27.1 + "@babel/helper-validator-identifier": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 942eee3adf2b387443c247a2c190c17c4fd45ba92a23087abab4c804f40541790d51ad5277e4b5b1ed8d5ba5b62de73857446b7742f835c18ebd350384e63917 + checksum: 816dd166f0a850616d01ca198715d78fef052a834dc155dd57e4405d702f288071077be3ed58e13c86ac9e63ca560e876cc6d70cf5ef0f1f62bd9321084d4c06 languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" +"@babel/helper-optimise-call-expression@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-optimise-call-expression@npm:7.27.1" dependencies: - "@babel/types": ^7.25.9 - checksum: f09d0ad60c0715b9a60c31841b3246b47d67650c512ce85bbe24a3124f1a4d66377df793af393273bc6e1015b0a9c799626c48e53747581c1582b99167cc65dc + "@babel/types": ^7.27.1 + checksum: 0fb7ee824a384529d6b74f8a58279f9b56bfe3cce332168067dddeab2552d8eeb56dc8eaf86c04a3a09166a316cb92dfc79c4c623cd034ad4c563952c98b464f languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.26.5, @babel/helper-plugin-utils@npm:^7.8.0": - version: 7.26.5 - resolution: "@babel/helper-plugin-utils@npm:7.26.5" - checksum: 4771fbb1711c624c62d12deabc2ed7435a6e6994b6ce09d5ede1bc1bf19be59c3775461a1e693bdd596af865685e87bb2abc778f62ceadc1b2095a8e2aa74180 +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.8.0": + version: 7.27.1 + resolution: "@babel/helper-plugin-utils@npm:7.27.1" + checksum: 5d715055301badab62bdb2336075a77f8dc8bd290cad2bc1b37ea3bf1b3efc40594d308082229f239deb4d6b5b80b0a73bce000e595ea74416e0339c11037047 languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.18.9, @babel/helper-remap-async-to-generator@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9" +"@babel/helper-remap-async-to-generator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-remap-async-to-generator@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.25.9 - "@babel/helper-wrap-function": ^7.25.9 - "@babel/traverse": ^7.25.9 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-wrap-function": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: ea37ad9f8f7bcc27c109963b8ebb9d22bac7a5db2a51de199cb560e251d5593fe721e46aab2ca7d3e7a24b0aa4aff0eaf9c7307af9c2fd3a1d84268579073052 + checksum: 0747397ba013f87dbf575454a76c18210d61c7c9af0f697546b4bcac670b54ddc156330234407b397f0c948738c304c228e0223039bc45eab4fbf46966a5e8cc languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.25.9, @babel/helper-replace-supers@npm:^7.26.5": - version: 7.26.5 - resolution: "@babel/helper-replace-supers@npm:7.26.5" +"@babel/helper-replace-supers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-replace-supers@npm:7.27.1" dependencies: - "@babel/helper-member-expression-to-functions": ^7.25.9 - "@babel/helper-optimise-call-expression": ^7.25.9 - "@babel/traverse": ^7.26.5 + "@babel/helper-member-expression-to-functions": ^7.27.1 + "@babel/helper-optimise-call-expression": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: c5ab31b29c7cc09e30278f8860ecdb873ce6c84b5c08bc5239c369c7c4fe9f0a63cda61b55b7bbd20edb4e5dc32e73087cc3c57d85264834bd191551d1499185 + checksum: 3690266c304f21008690ba68062f889a363583cabc13c3d033b94513953147af3e0a3fdb48fa1bb9fa3734b64e221fc65e5222ab70837f02321b7225f487c6ef languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.27.1" dependencies: - "@babel/traverse": ^7.25.9 - "@babel/types": ^7.25.9 - checksum: fdbb5248932198bc26daa6abf0d2ac42cab9c2dbb75b7e9f40d425c8f28f09620b886d40e7f9e4e08ffc7aaa2cefe6fc2c44be7c20e81f7526634702fb615bdc + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: 4f380c5d0e0769fa6942a468b0c2d7c8f0c438f941aaa88f785f8752c103631d0904c7b4e76207a3b0e6588b2dec376595370d92ca8f8f1b422c14a69aa146d4 languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-string-parser@npm:7.25.9" - checksum: 6435ee0849e101681c1849868278b5aee82686ba2c1e27280e5e8aca6233af6810d39f8e4e693d2f2a44a3728a6ccfd66f72d71826a94105b86b731697cdfa99 +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 0a8464adc4b39b138aedcb443b09f4005d86207d7126e5e079177e05c3116107d856ec08282b365e9a79a9872f40f4092a6127f8d74c8a01c1ef789dacfc25d6 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-validator-identifier@npm:7.25.9" - checksum: 5b85918cb1a92a7f3f508ea02699e8d2422fe17ea8e82acd445006c0ef7520fbf48e3dbcdaf7b0a1d571fc3a2715a29719e5226636cb6042e15fe6ed2a590944 +"@babel/helper-validator-identifier@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-identifier@npm:7.27.1" + checksum: 3c7e8391e59d6c85baeefe9afb86432f2ab821c6232b00ea9082a51d3e7e95a2f3fb083d74dc1f49ac82cf238e1d2295dafcb001f7b0fab479f3f56af5eaaa47 languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-validator-option@npm:7.25.9" - checksum: 9491b2755948ebbdd68f87da907283698e663b5af2d2b1b02a2765761974b1120d5d8d49e9175b167f16f72748ffceec8c9cf62acfbee73f4904507b246e2b3d +"@babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: db73e6a308092531c629ee5de7f0d04390835b21a263be2644276cb27da2384b64676cab9f22cd8d8dbd854c92b1d7d56fc8517cf0070c35d1c14a8c828b0903 languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-wrap-function@npm:7.25.9" +"@babel/helper-wrap-function@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-wrap-function@npm:7.27.1" dependencies: - "@babel/template": ^7.25.9 - "@babel/traverse": ^7.25.9 - "@babel/types": ^7.25.9 - checksum: 8ec1701e60ae004415800c4a7a188f5564c73b4e4f3fdf58dd3f34a3feaa9753173f39bbd6d02e7ecc974f48155efc7940e62584435b3092c07728ee46a604ea + "@babel/template": ^7.27.1 + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: b0427765766494cb5455a188d4cdef5e6167f2835a8ed76f3c25fa3bbe2ec2a716588fa326c52fab0d184a9537200d76e48656e516580a914129d74528322821 languageName: node linkType: hard -"@babel/helpers@npm:^7.26.10": - version: 7.26.10 - resolution: "@babel/helpers@npm:7.26.10" +"@babel/helpers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helpers@npm:7.27.1" dependencies: - "@babel/template": ^7.26.9 - "@babel/types": ^7.26.10 - checksum: daa3689024a4fc5e024fea382915c6fb0fde15cf1b2f6093435725c79edccbef7646d4a656b199c046ff5c61846d1b3876d6096b7bf0635823de6aaff2a1e1a4 + "@babel/template": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: 19ede1e996cbd295fb3a881ff70bc0f91c5133ebac256441e9ecd69dfba89456e75cf7ecf06cd276c638a4de7bd6eff21151961c78038d0b23d94b4d23415ee4 languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.26.9": - version: 7.26.10 - resolution: "@babel/parser@npm:7.26.10" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.27.1, @babel/parser@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/parser@npm:7.27.2" dependencies: - "@babel/types": ^7.26.10 + "@babel/types": ^7.27.1 bin: parser: ./bin/babel-parser.js - checksum: 81f9af962aea55a2973d213dffc6191939df7eba0511ba585d23f0d838931f5fca2efb83ae382e4b9bb486f20ae1b2607cb1b8be49af89e9f011fb4355727f47 + checksum: 1ac70a75028f1cc10eefb10ed2d83cf700ca3e1ddb4cf556a003fc5c4ca53ae83350bbb8065020fcc70d476fcf7bf1c17191b72384f719614ae18397142289cf languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/traverse": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: b33d37dacf98a9c74f53959999adc37a258057668b62dba557e6865689433c53764673109eaba9102bf73b2ac4db162f0d9b89a6cca6f1b71d12f5908ec11da9 + checksum: 72f24b9487e445fa61cf8be552aad394a648c2bb445c38d39d1df003186d9685b87dd8d388c950f438ea0ca44c82099d9c49252fb681c719cc72edf02bbe0304 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.9" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: d3e14ab1cb9cb50246d20cab9539f2fbd1e7ef1ded73980c8ad7c0561b4d5e0b144d362225f0976d47898e04cbd40f2000e208b0913bd788346cf7791b96af91 + checksum: eb7f4146dc01f1198ce559a90b077e58b951a07521ec414e3c7d4593bf6c4ab5c2af22242a7e9fec085e20299e0ba6ea97f44a45e84ab148141bf9eb959ad25e languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.9" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: a9d1ee3fd100d3eb6799a2f2bbd785296f356c531d75c9369f71541811fa324270258a374db103ce159156d006da2f33370330558d0133e6f7584152c34997ca + checksum: 621cfddfcc99a81e74f8b6f9101fd260b27500cb1a568e3ceae9cc8afe9aee45ac3bca3900a2b66c612b1a2366d29ef67d4df5a1c975be727eaad6906f98c2c6 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.9" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/helper-skip-transparent-expression-wrappers": ^7.25.9 - "@babel/plugin-transform-optional-chaining": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 + "@babel/plugin-transform-optional-chaining": ^7.27.1 peerDependencies: "@babel/core": ^7.13.0 - checksum: 5b298b28e156f64de51cdb03a2c5b80c7f978815ef1026f3ae8b9fc48d28bf0a83817d8fbecb61ef8fb94a7201f62cca5103cc6e7b9e8f28e38f766d7905b378 + checksum: f07aa80272bd7a46b7ba11a4644da6c9b6a5a64e848dfaffdad6f02663adefd512e1aaebe664c4dd95f7ed4f80c872c7f8db8d8e34b47aae0930b412a28711a0 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.9" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/traverse": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: c684593952ab1b40dfa4e64e98a07e7227c6db175c21bd0e6d71d2ad5d240fef4e4a984d56f05a494876542a022244fe1c1098f4116109fd90d06615e8a269b1 - languageName: node - linkType: hard - -"@babel/plugin-proposal-async-generator-functions@npm:^7.0.0": - version: 7.20.7 - resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7" - dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-remap-async-to-generator": ^7.18.9 - "@babel/plugin-syntax-async-generators": ^7.8.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 111109ee118c9e69982f08d5e119eab04190b36a0f40e22e873802d941956eee66d2aa5a15f5321e51e3f9aa70a91136451b987fe15185ef8cc547ac88937723 + checksum: 4d6792ccade2d6b9d5577b0a879ab22d05ac8a1206b1a636b6ffdb53a0c0bacaf0f7947e46de254f228ffd75456f4b95ccd82fdeaefc0b92d88af3c5991863ad languageName: node linkType: hard -"@babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.17.12, @babel/plugin-proposal-class-properties@npm:^7.18.0": +"@babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.17.12": version: 7.18.6 resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" dependencies: @@ -1127,18 +1107,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-export-default-from@npm:^7.0.0": - version: 7.25.9 - resolution: "@babel/plugin-proposal-export-default-from@npm:7.25.9" +"@babel/plugin-proposal-export-default-from@npm:^7.24.7": + version: 7.27.1 + resolution: "@babel/plugin-proposal-export-default-from@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0fb96b1229ed15ecfb09e6bf40be2da249007155a3deca53d319420a4d3c028c884e888c447898cbcdaa079165e045a8317be6a9205bef0041e7333822a40da9 + checksum: cf9eb3c80bcee3ee82d28f1053db97fa6c6e4dea819f73df5a3cb9155d45efc29914e86353572eab36adfe691ca1573e6e2cddae4edbdd475253044575eb7a24 languageName: node linkType: hard -"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8, @babel/plugin-proposal-nullish-coalescing-operator@npm:^7.18.0": +"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8": version: 7.18.6 resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" dependencies: @@ -1150,46 +1130,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-numeric-separator@npm:^7.0.0": - version: 7.18.6 - resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f370ea584c55bf4040e1f78c80b4eeb1ce2e6aaa74f87d1a48266493c33931d0b6222d8cee3a082383d6bb648ab8d6b7147a06f974d3296ef3bc39c7851683ec - languageName: node - linkType: hard - -"@babel/plugin-proposal-object-rest-spread@npm:^7.20.0": - version: 7.20.7 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" - dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.20.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 1329db17009964bc644484c660eab717cb3ca63ac0ab0f67c651a028d1bc2ead51dc4064caea283e46994f1b7221670a35cbc0b4beb6273f55e915494b5aa0b2 - languageName: node - linkType: hard - -"@babel/plugin-proposal-optional-catch-binding@npm:^7.0.0": - version: 7.18.6 - resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7b5b39fb5d8d6d14faad6cb68ece5eeb2fd550fb66b5af7d7582402f974f5bc3684641f7c192a5a57e0f59acfae4aada6786be1eba030881ddc590666eff4d1e - languageName: node - linkType: hard - -"@babel/plugin-proposal-optional-chaining@npm:^7.13.12, @babel/plugin-proposal-optional-chaining@npm:^7.20.0": +"@babel/plugin-proposal-optional-chaining@npm:^7.13.12": version: 7.21.0 resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0" dependencies: @@ -1255,7 +1196,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-dynamic-import@npm:^7.8.0": +"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" dependencies: @@ -1266,47 +1207,47 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-export-default-from@npm:^7.0.0": - version: 7.25.9 - resolution: "@babel/plugin-syntax-export-default-from@npm:7.25.9" +"@babel/plugin-syntax-export-default-from@npm:^7.24.7": + version: 7.27.1 + resolution: "@babel/plugin-syntax-export-default-from@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8eb254c8050369f3cfac7755230ad9d39a53d1b489e03170684d6b514a0d09ad6001c38e6dfd271a439a8035a57d60b8be7d3dd80f997c6bc5c7e688ed529517 + checksum: d9a6a9c51f644a5ed139dbe1e8cf5a38c9b390af27ad2fc6f0eba579ac543b039efff34200744bfc8523132c06aa6de921238bd2088948bb4dce4571cea43438 languageName: node linkType: hard -"@babel/plugin-syntax-flow@npm:^7.12.1, @babel/plugin-syntax-flow@npm:^7.18.0, @babel/plugin-syntax-flow@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/plugin-syntax-flow@npm:7.26.0" +"@babel/plugin-syntax-flow@npm:^7.12.1, @babel/plugin-syntax-flow@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-flow@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fdc0d0a7b512e00d933e12cf93c785ea4645a193f4b539230b7601cfaa8c704410199318ce9ea14e5fca7d13e9027822f7d81a7871d3e854df26b6af04cc3c6c + checksum: 7baca3171ed595d04c865b0ce46fca7f21900686df9d7fcd1017036ce78bb5483e33803de810831e68d39cf478953db69f49ae3f3de2e3207bc4ba49a96b6739 languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" +"@babel/plugin-syntax-import-assertions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b58f2306df4a690ca90b763d832ec05202c50af787158ff8b50cdf3354359710bce2e1eb2b5135fcabf284756ac8eadf09ca74764aa7e76d12a5cac5f6b21e67 + checksum: fb661d630808d67ecb85eabad25aac4e9696a20464bad4c4a6a0d3d40e4dc22557d47e9be3d591ec06429cf048cfe169b8891c373606344d51c4f3ac0f91d6d0 languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" +"@babel/plugin-syntax-import-attributes@npm:^7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c122aa577166c80ee67f75aebebeef4150a132c4d3109d25d7fc058bf802946f883e330f20b78c1d3e3a5ada631c8780c263d2d01b5dbaecc69efefeedd42916 + checksum: 97973982fff1bbf86b3d1df13380567042887c50e2ae13a400d02a8ff2c9742a60a75e279bfb73019e1cd9710f04be5e6ab81f896e6678dcfcec8b135e8896cf languageName: node linkType: hard @@ -1332,14 +1273,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.25.9, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.25.9 - resolution: "@babel/plugin-syntax-jsx@npm:7.25.9" +"@babel/plugin-syntax-jsx@npm:^7.27.1, @babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.27.1 + resolution: "@babel/plugin-syntax-jsx@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bb609d1ffb50b58f0c1bac8810d0e46a4f6c922aa171c458f3a19d66ee545d36e782d3bffbbc1fed0dc65a558bdce1caf5279316583c0fff5a2c1658982a8563 + checksum: c6d1324cff286a369aa95d99b8abd21dd07821b5d3affd5fe7d6058c84cff9190743287826463ee57a7beecd10fa1e4bc99061df532ee14e188c1c8937b13e3a languageName: node linkType: hard @@ -1354,7 +1295,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.0.0, @babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" dependencies: @@ -1398,7 +1339,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-optional-chaining@npm:^7.0.0, @babel/plugin-syntax-optional-chaining@npm:^7.8.3": +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" dependencies: @@ -1431,14 +1372,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.25.9, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.25.9 - resolution: "@babel/plugin-syntax-typescript@npm:7.25.9" +"@babel/plugin-syntax-typescript@npm:^7.27.1, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.27.1 + resolution: "@babel/plugin-syntax-typescript@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0e9821e8ba7d660c36c919654e4144a70546942ae184e85b8102f2322451eae102cbfadbcadd52ce077a2b44b400ee52394c616feab7b5b9f791b910e933fd33 + checksum: 87836f7e32af624c2914c73cd6b9803cf324e07d43f61dbb973c6a86f75df725e12540d91fac7141c14b697aa9268fd064220998daced156e96ac3062d7afb41 languageName: node linkType: hard @@ -1454,787 +1395,774 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" +"@babel/plugin-transform-arrow-functions@npm:^7.24.7, @babel/plugin-transform-arrow-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c29f081224859483accf55fb4d091db2aac0dcd0d7954bac5ca889030cc498d3f771aa20eb2e9cd8310084ec394d85fa084b97faf09298b6bc9541182b3eb5bb + checksum: 62c2cc0ae2093336b1aa1376741c5ed245c0987d9e4b4c5313da4a38155509a7098b5acce582b6781cc0699381420010da2e3086353344abe0a6a0ec38961eb7 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.24.3, @babel/plugin-transform-async-generator-functions@npm:^7.26.8": - version: 7.26.8 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.26.8" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.4, @babel/plugin-transform-async-generator-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.26.5 - "@babel/helper-remap-async-to-generator": ^7.25.9 - "@babel/traverse": ^7.26.8 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-remap-async-to-generator": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10424a1bbfbc7ffdb13cef1e832f76bb2d393a9fbfaa1eaa3091a8f6ec3e2ac0b66cf04fca9cb3fb4dbf3d1bd404d72dfce4a3742b4ef21f6271aca7076a65ef + checksum: 37e8b76c992066f81cc24af11a25f296add6ae39f51f2c37da565fc004dbf3ef9733b42808acbfb86792d73f73bfbb4396338abbd364b9103146b119508b49c7 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.20.0, @babel/plugin-transform-async-to-generator@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" +"@babel/plugin-transform-async-to-generator@npm:^7.24.7, @babel/plugin-transform-async-to-generator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.27.1" dependencies: - "@babel/helper-module-imports": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/helper-remap-async-to-generator": ^7.25.9 + "@babel/helper-module-imports": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-remap-async-to-generator": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b3ad50fb93c171644d501864620ed23952a46648c4df10dc9c62cc9ad08031b66bd272cfdd708faeee07c23b6251b16f29ce0350473e4c79f0c32178d38ce3a6 + checksum: d79d7a7ae7d416f6a48200017d027a6ba94c09c7617eea8b4e9c803630f00094c1a4fc32bf20ce3282567824ce3fcbda51653aac4003c71ea4e681b331338979 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.26.5": - version: 7.26.5 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.26.5" +"@babel/plugin-transform-block-scoped-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.26.5 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f2046c09bf8e588bfb1a6342d0eee733189102cf663ade27adb0130f3865123af5816b40a55ec8d8fa09271b54dfdaf977cd2f8e0b3dc97f18e690188d5a2174 + checksum: 7fb4988ca80cf1fc8345310d5edfe38e86b3a72a302675cdd09404d5064fe1d1fe1283ebe658ad2b71445ecef857bfb29a748064306b5f6c628e0084759c2201 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" +"@babel/plugin-transform-block-scoping@npm:^7.25.0, @babel/plugin-transform-block-scoping@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-block-scoping@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e869500cfb1995e06e64c9608543b56468639809febfcdd6fcf683bc0bf1be2431cacf2981a168a1a14f4766393e37bc9f7c96d25bc5b5f39a64a8a8ad0bf8e0 + checksum: 490773ee111fd298d74bd0ba454c941ae23a39db5cd08bf4258997f44f7584399fc4214a7c3816ee70f0273c263fe2ea4e11bb07939e57845702ba05258a9cb0 languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.24.1, @babel/plugin-transform-class-properties@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" +"@babel/plugin-transform-class-properties@npm:^7.25.4, @babel/plugin-transform-class-properties@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-class-properties@npm:7.27.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a8d69e2c285486b63f49193cbcf7a15e1d3a5f632c1c07d7a97f65306df7f554b30270b7378dde143f8b557d1f8f6336c643377943dec8ec405e4cd11e90b9ea + checksum: 475a6e5a9454912fe1bdc171941976ca10ea4e707675d671cdb5ce6b6761d84d1791ac61b6bca81a2e5f6430cb7b9d8e4b2392404110e69c28207a754e196294 languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/plugin-transform-class-static-block@npm:7.26.0" +"@babel/plugin-transform-class-static-block@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-class-static-block@npm:7.27.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.12.0 - checksum: d779d4d3a6f8d363f67fcbd928c15baa72be8d3b86c6d05e0300b50e66e2c4be9e99398b803d13064bc79d90ae36e37a505e3dc8af11904459804dec07660246 + checksum: 69688fe1641ae0ea025b916b8c2336e8b5643a5ec292e8f546ecd35d9d9d4bb301d738910822a79d867098cf687d550d92cd906ae4cda03c0f69b1ece2149a58 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-classes@npm:7.25.9" +"@babel/plugin-transform-classes@npm:^7.25.4, @babel/plugin-transform-classes@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-classes@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.25.9 - "@babel/helper-compilation-targets": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/helper-replace-supers": ^7.25.9 - "@babel/traverse": ^7.25.9 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-compilation-targets": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-replace-supers": ^7.27.1 + "@babel/traverse": ^7.27.1 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d12584f72125314cc0fa8c77586ece2888d677788ac75f7393f5da574dfe4e45a556f7e3488fab29c8777ab3e5856d7a2d79f6df02834083aaa9d766440e3c68 + checksum: a4275d3a9e2e4144c421baa49958191e4b33957fca6e87686ed8da0eb3240270d4f91a2a4b9491c87feb6c33f459d8aec013cec8d5f5099c794b740703802dc7 languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" +"@babel/plugin-transform-computed-properties@npm:^7.24.7, @babel/plugin-transform-computed-properties@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-computed-properties@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/template": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/template": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f77fa4bc0c1e0031068172df28852388db6b0f91c268d037905f459607cf1e8ebab00015f9f179f4ad96e11c5f381b635cd5dc4e147a48c7ac79d195ae7542de + checksum: 48bd20f7d631b08c51155751bf75b698d4a22cca36f41c22921ab92e53039c9ec5c3544e5282e18692325ef85d2e4a18c27e12c62b5e20c26fb0c92447e35224 languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.20.0, @babel/plugin-transform-destructuring@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" +"@babel/plugin-transform-destructuring@npm:^7.24.8, @babel/plugin-transform-destructuring@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-destructuring@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 965f63077a904828f4adee91393f83644098533442b8217d5a135c23a759a4c252c714074c965676a60d2c33f610f579a4eeb59ffd783724393af61c0ca45fef + checksum: 492013fc4befd5f3554853f983b82cfa748dd2004a525f1f16a37f841ac402a51e891cac2084b03e2b89553f0e1e685cf5bf8bf9df8fed82114c580b3c567bb6 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9" +"@babel/plugin-transform-dotall-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8bdf1bb9e6e3a2cc8154ae88a3872faa6dc346d6901994505fb43ac85f858728781f1219f40b67f7bb0687c507450236cb7838ac68d457e65637f98500aa161b + checksum: 2173e5b13f403538ffc6bd57b190cedf4caf320abc13a99e5b2721864e7148dbd3bd7c82d92377136af80432818f665fdd9a1fd33bc5549a4c91e24e5ce2413c languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.9" +"@babel/plugin-transform-duplicate-keys@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b553eebc328797ead6be5ba5bdaf2f1222cea8a5bd33fb4ed625975d4f9b510bfb0d688d97e314cd4b4a48b279bea7b3634ad68c1b41ee143c3082db0ae74037 + checksum: ef2112d658338e3ff0827f39a53c0cfa211f1cbbe60363bca833a5269df389598ec965e7283600b46533c39cdca82307d0d69c0f518290ec5b00bb713044715b languageName: node linkType: hard -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.9" +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: f7233cf596be8c6843d31951afaf2464a62a610cb89c72c818c044765827fab78403ab8a7d3a6386f838c8df574668e2a48f6c206b1d7da965aff9c6886cb8e6 + checksum: 2a109613535e6ac79240dced71429e988affd6a5b3d0cd0f563c8d6c208c51ce7bf2c300bc1150502376b26a51f279119b3358f1c0f2d2f8abca3bcd62e1ae46 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.9" +"@babel/plugin-transform-dynamic-import@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: aaca1ccda819be9b2b85af47ba08ddd2210ff2dbea222f26e4cd33f97ab020884bf81a66197e50872721e9daf36ceb5659502c82199884ea74d5d75ecda5c58b + checksum: 7a9fbc8d17148b7f11a1d1ca3990d2c2cd44bd08a45dcaf14f20a017721235b9044b20e6168b6940282bb1b48fb78e6afbdfb9dd9d82fde614e15baa7d579932 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.26.3": - version: 7.26.3 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.26.3" +"@babel/plugin-transform-exponentiation-operator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b369ffad07e02e259c43a09d309a5ca86cb9da6b43b1df6256463a810b172cedc4254742605eec0fc2418371c3f7430430f5abd36f21717281e79142308c13ba + checksum: 4ff4a0f30babc457a5ae8564deda209599627c2ce647284a0e8e66f65b44f6d968cf77761a4cc31b45b61693f0810479248c79e681681d8ccb39d0c52944c1fd languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" +"@babel/plugin-transform-export-namespace-from@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4dfe8df86c5b1d085d591290874bb2d78a9063090d71567ed657a418010ad333c3f48af2c974b865f53bbb718987a065f89828d43279a7751db1a56c9229078d + checksum: 85082923eca317094f08f4953d8ea2a6558b3117826c0b740676983902b7236df1f4213ad844cb38c2dae104753dbe8f1cc51f01567835d476d32f5f544a4385 languageName: node linkType: hard -"@babel/plugin-transform-flow-strip-types@npm:^7.20.0, @babel/plugin-transform-flow-strip-types@npm:^7.25.9": - version: 7.26.5 - resolution: "@babel/plugin-transform-flow-strip-types@npm:7.26.5" +"@babel/plugin-transform-flow-strip-types@npm:^7.25.2, @babel/plugin-transform-flow-strip-types@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.26.5 - "@babel/plugin-syntax-flow": ^7.26.0 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/plugin-syntax-flow": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a15ae76aea55f1801a5c8ebdfdd0e4616f256ca1eeb504b0781120242aae5a2174439a084bacd2b9e3e83d2a8463cf10c2a8c9f0f0504ded21144297c2b4a380 + checksum: 0885028866fadefef35292d5a27f878d6a12b6f83778f8731481d4503b49c258507882a7de2aafda9b62d5f6350042f1a06355b998d5ed5e85d693bfcb77b939 languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.0.0, @babel/plugin-transform-for-of@npm:^7.26.9": - version: 7.26.9 - resolution: "@babel/plugin-transform-for-of@npm:7.26.9" +"@babel/plugin-transform-for-of@npm:^7.24.7, @babel/plugin-transform-for-of@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-for-of@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.26.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 361323cfc1d9e9dc0bf0d68326b5e7f4da5b8a8be8931f6cacda749d39b88ee1b0f9b4d8b771a5a4d52bb881a90da97950c8a9e6fb47f2c9db11d91f6351768e + checksum: c9224e08de5d80b2c834383d4359aa9e519db434291711434dd996a4f86b7b664ad67b45d65459b7ec11fa582e3e11a3c769b8a8ca71594bdd4e2f0503f84126 languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-function-name@npm:7.25.9" +"@babel/plugin-transform-function-name@npm:^7.25.1, @babel/plugin-transform-function-name@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-function-name@npm:7.27.1" dependencies: - "@babel/helper-compilation-targets": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/traverse": ^7.25.9 + "@babel/helper-compilation-targets": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a8d7c8d019a6eb57eab5ca1be3e3236f175557d55b1f3b11f8ad7999e3fbb1cf37905fd8cb3a349bffb4163a558e9f33b63f631597fdc97c858757deac1b2fd7 + checksum: 26a2a183c3c52a96495967420a64afc5a09f743a230272a131668abf23001e393afa6371e6f8e6c60f4182bea210ed31d1caf866452d91009c1daac345a52f23 languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-json-strings@npm:7.25.9" +"@babel/plugin-transform-json-strings@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-json-strings@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e2498d84761cfd05aaea53799933d55af309c9d6204e66b38778792d171e4d1311ad34f334259a3aa3407dd0446f6bd3e390a1fcb8ce2e42fe5aabed0e41bee1 + checksum: 2c05a02f63b49f47069271b3405a66c3c8038de5b995b0700b1bd9a5e2bb3e67abd01e4604629302a521f4d8122a4233944aefa16559fd4373d256cc5d3da57f languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-literals@npm:7.25.9" +"@babel/plugin-transform-literals@npm:^7.25.2, @babel/plugin-transform-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3cca75823a38aab599bc151b0fa4d816b5e1b62d6e49c156aa90436deb6e13649f5505973151a10418b64f3f9d1c3da53e38a186402e0ed7ad98e482e70c0c14 + checksum: 0a76d12ab19f32dd139964aea7da48cecdb7de0b75e207e576f0f700121fe92367d788f328bf4fb44b8261a0f605c97b44e62ae61cddbb67b14e94c88b411f95 languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.1, @babel/plugin-transform-logical-assignment-operators@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7, @babel/plugin-transform-logical-assignment-operators@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8c6febb4ac53852314d28b5e2c23d5dbbff7bf1e57d61f9672e0d97531ef7778b3f0ad698dcf1179f5486e626c77127508916a65eb846a89e98a92f70ed3537b + checksum: 2757955d81d65cc4701c17b83720745f6858f7a1d1d58117e379c204f47adbeb066b778596b6168bdbf4a22c229aab595d79a9abc261d0c6bfd62d4419466e73 languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.9" +"@babel/plugin-transform-member-expression-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: db92041ae87b8f59f98b50359e0bb172480f6ba22e5e76b13bdfe07122cbf0daa9cd8ad2e78dcb47939938fed88ad57ab5989346f64b3a16953fc73dea3a9b1f + checksum: 804121430a6dcd431e6ffe99c6d1fbbc44b43478113b79c677629e7f877b4f78a06b69c6bfb2747fd84ee91879fe2eb32e4620b53124603086cf5b727593ebe8 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-modules-amd@npm:7.25.9" +"@babel/plugin-transform-modules-amd@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-amd@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: baad1f6fd0e0d38e9a9c1086a06abdc014c4c653fd452337cadfe23fb5bd8bf4368d1bc433a5ac8e6421bc0732ebb7c044cf3fb39c1b7ebe967d66e26c4e5cec + checksum: 8bb36d448e438d5d30f4faf19120e8c18aa87730269e65d805bf6032824d175ed738057cc392c2c8a650028f1ae0f346cad8d6b723f31a037b586e2092a7be18 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.25.9, @babel/plugin-transform-modules-commonjs@npm:^7.26.3": - version: 7.26.3 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.26.3" +"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.24.8, @babel/plugin-transform-modules-commonjs@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": ^7.26.0 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0ac9aa4e5fe9fe34b58ee174881631e5e1c89eee5b1ebfd1147934686be92fc5fbfdc11119f0b607b3743d36a1cbcb7c36f18e0dd4424d6d7b749b1b9a18808a + checksum: bc45c1beff9b145c982bd6a614af338893d38bce18a9df7d658c9084e0d8114b286dcd0e015132ae7b15dd966153cb13321e4800df9766d0ddd892d22bf09d2a languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.9" +"@babel/plugin-transform-modules-systemjs@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/helper-validator-identifier": ^7.25.9 - "@babel/traverse": ^7.25.9 + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-validator-identifier": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bf446202f372ba92dc0db32b24b56225b6e3ad3b227e31074de8b86fdec01c273ae2536873e38dbe3ceb1cd0894209343adeaa37df208e3fa88c0c7dffec7924 + checksum: 7c17a8973676c18525d87f277944616596f1b154cc2b9263bfd78ecdbf5f4288ec46c7f58017321ca3e3d6dfeb96875467b95311a39719b475d42a157525d87f languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-modules-umd@npm:7.25.9" +"@babel/plugin-transform-modules-umd@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-umd@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 946db66be5f04ab9ee56c424b00257276ec094aa2f148508927e6085239f76b00304fa1e33026d29eccdbe312efea15ca3d92e74a12689d7f0cdd9a7ba1a6c54 + checksum: b007dd89231f2eeccf1c71a85629bcb692573303977a4b1c5f19a835ea6b5142c18ef07849bc6d752b874a11bc0ddf3c67468b77c8ee8310290b688a4f01ef31 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.0.0, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 434346ba05cf74e3f4704b3bdd439287b95cd2a8676afcdc607810b8c38b6f4798cd69c1419726b2e4c7204e62e4a04d31b0360e91ca57a930521c9211e07789 + checksum: a711c92d9753df26cefc1792481e5cbff4fe4f32b383d76b25e36fa865d8023b1b9aa6338cf18f5c0e864c71a7fbe8115e840872ccd61a914d9953849c68de7d languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-new-target@npm:7.25.9" +"@babel/plugin-transform-new-target@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-new-target@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f8113539919aafce52f07b2bd182c771a476fe1d5d96d813460b33a16f173f038929369c595572cadc1f7bd8cb816ce89439d056e007770ddd7b7a0878e7895f + checksum: 32c8078d843bda001244509442d68fd3af088d7348ba883f45c262b2c817a27ffc553b0d78e7f7a763271b2ece7fac56151baad7a91fb21f5bb1d2f38e5acad7 languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.1, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.26.6": - version: 7.26.6 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.26.6" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.26.5 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 752837d532b85c41f6bb868e83809605f513bc9a3b8e88ac3d43757c9bf839af4f246874c1c6d6902bb2844d355efccae602c3856098911f8abdd603672f8379 + checksum: 1c6b3730748782d2178cc30f5cc37be7d7666148260f3f2dfc43999908bdd319bdfebaaf19cf04ac1f9dee0f7081093d3fa730cda5ae1b34bcd73ce406a78be7 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.1, @babel/plugin-transform-numeric-separator@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" +"@babel/plugin-transform-numeric-separator@npm:^7.24.7, @babel/plugin-transform-numeric-separator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0528ef041ed88e8c3f51624ee87b8182a7f246fe4013f0572788e0727d20795b558f2b82e3989b5dd416cbd339500f0d88857de41b6d3b6fdacb1d5344bcc5b1 + checksum: 049b958911de86d32408cd78017940a207e49c054ae9534ab53a32a57122cc592c0aae3c166d6f29bd1a7d75cc779d71883582dd76cb28b2fbb493e842d8ffca languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.5, @babel/plugin-transform-object-rest-spread@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" +"@babel/plugin-transform-object-rest-spread@npm:^7.24.7, @babel/plugin-transform-object-rest-spread@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.27.2" dependencies: - "@babel/helper-compilation-targets": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/plugin-transform-parameters": ^7.25.9 + "@babel/helper-compilation-targets": ^7.27.2 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/plugin-transform-destructuring": ^7.27.1 + "@babel/plugin-transform-parameters": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a8ff73e1c46a03056b3a2236bafd6b3a4b83da93afe7ee24a50d0a8088150bf85bc5e5977daa04e66ff5fb7613d02d63ad49b91ebb64cf3f3022598d722e3a7a + checksum: 6d518c21cddfa436029d72409aac8f680d3ba3a10eb94477112869132226498474a61218893ac9958f8bc079109af0f684d1347d5036fee8e9b477daecf2d8f3 languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-object-super@npm:7.25.9" +"@babel/plugin-transform-object-super@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-object-super@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/helper-replace-supers": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-replace-supers": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1817b5d8b80e451ae1ad9080cca884f4f16df75880a158947df76a2ed8ab404d567a7dce71dd8051ef95f90fbe3513154086a32aba55cc76027f6cbabfbd7f98 + checksum: 46b819cb9a6cd3cfefe42d07875fee414f18d5e66040366ae856116db560ad4e16f3899a0a7fddd6773e0d1458444f94b208b67c0e3b6977a27ea17a5c13dbf6 languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.1, @babel/plugin-transform-optional-catch-binding@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7, @babel/plugin-transform-optional-catch-binding@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b46a8d1e91829f3db5c252583eb00d05a779b4660abeea5500fda0f8ffa3584fd18299443c22f7fddf0ed9dfdb73c782c43b445dc468d4f89803f2356963b406 + checksum: f4356b04cf21a98480f9788ea50f1f13ee88e89bb6393ba4b84d1f39a4a84c7928c9a4328e8f4c5b6deb218da68a8fd17bf4f46faec7653ddc20ffaaa5ba49f4 languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.5, @babel/plugin-transform-optional-chaining@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" +"@babel/plugin-transform-optional-chaining@npm:^7.24.8, @babel/plugin-transform-optional-chaining@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/helper-skip-transparent-expression-wrappers": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f1642a7094456067e82b176e1e9fd426fda7ed9df54cb6d10109fc512b622bf4b3c83acc5875125732b8622565107fdbe2d60fe3ec8685e1d1c22c38c1b57782 + checksum: c4428d31f182d724db6f10575669aad3dbccceb0dea26aa9071fa89f11b3456278da3097fcc78937639a13c105a82cd452dc0218ce51abdbcf7626a013b928a5 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-parameters@npm:7.25.9" +"@babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-parameters@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d7ba2a7d05edbc85aed741289b0ff3d6289a1c25d82ac4be32c565f88a66391f46631aad59ceeed40824037f7eeaa7a0de1998db491f50e65a565cd964f78786 + checksum: 52dd9db2be63ca954dbf86bba3f1dedce5f8bcf0cbc2b9ab26981b6f9c3ad5ea3a1b7ba286d18ae05d7487763f2bd086533826ee82f7b8d76873265569e45125 languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" +"@babel/plugin-transform-private-methods@npm:^7.24.7, @babel/plugin-transform-private-methods@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-private-methods@npm:7.27.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6e3671b352c267847c53a170a1937210fa8151764d70d25005e711ef9b21969aaf422acc14f9f7fb86bc0e4ec43e7aefcc0ad9196ae02d262ec10f509f126a58 + checksum: c76f8f6056946466116e67eb9d8014a2d748ade2062636ab82045c1dac9c233aff10e597777bc5af6f26428beb845ceb41b95007abef7d0484da95789da56662 languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.22.11, @babel/plugin-transform-private-property-in-object@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" +"@babel/plugin-transform-private-property-in-object@npm:^7.24.7, @babel/plugin-transform-private-property-in-object@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.25.9 - "@babel/helper-create-class-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9ce3e983fea9b9ba677c192aa065c0b42ebdc7774be4c02135df09029ad92a55c35b004650c75952cb64d650872ed18f13ab64422c6fc891d06333762caa8a0a + checksum: af539af1bd423aa46b9da83d649be716494ca80783841f47094b6741fa24e11141446027fd152ddff791dede9d4a76d0d5eb467402a2e584d7f5ea90e2673c7e languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-property-literals@npm:7.25.9" +"@babel/plugin-transform-property-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-property-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 436046ab07d54a9b44a384eeffec701d4e959a37a7547dda72e069e751ca7ff753d1782a8339e354b97c78a868b49ea97bf41bf5a44c6d7a3c0a05ad40eeb49c + checksum: 7caec27d5ed8870895c9faf4f71def72745d69da0d8e77903146a4e135fd7bed5778f5f9cebb36c5fba86338e6194dd67a08c033fc84b4299b7eceab6d9630cb languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-display-name@npm:7.25.9" +"@babel/plugin-transform-react-display-name@npm:^7.24.7, @babel/plugin-transform-react-display-name@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-display-name@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cd7020494e6f31c287834e8929e6a718d5b0ace21232fa30feb48622c2312045504c34b347dcff9e88145c349882b296a7d6b6cc3d3447d8c85502f16471747c + checksum: 9fb5fae6283f612983dac4df51a6cd41e085e698008146e046357fe324e6e8264cedf8426ea5a188326f6d3cd1e7a3d3174e15d510851e93e9ef7ceeba380dc2 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-development@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.25.9" +"@babel/plugin-transform-react-jsx-development@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.27.1" dependencies: - "@babel/plugin-transform-react-jsx": ^7.25.9 + "@babel/plugin-transform-react-jsx": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 537d38369537f1eb56041c4b770bc0733fde1801a7f5ffef40a1217ea448f33ee2fa8e6098a58a82fd00e432c1b9426a66849496da419020c9eca3b1b1a23779 + checksum: b88865d5b8c018992f2332da939faa15c4d4a864c9435a5937beaff3fe43781432cc42e0a5d5631098e0bd4066fc33f5fa72203b388b074c3545fe7aaa21e474 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.0.0": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.25.9" +"@babel/plugin-transform-react-jsx-self@npm:^7.24.7": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 41c833cd7f91b1432710f91b1325706e57979b2e8da44e83d86312c78bbe96cd9ef778b4e79e4e17ab25fa32c72b909f2be7f28e876779ede28e27506c41f4ae + checksum: 72cbae66a58c6c36f7e12e8ed79f292192d858dd4bb00e9e89d8b695e4c5cb6ef48eec84bffff421a5db93fd10412c581f1cccdb00264065df76f121995bdb68 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-source@npm:^7.0.0": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.25.9" +"@babel/plugin-transform-react-jsx-source@npm:^7.24.7": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a3e0e5672e344e9d01fb20b504fe29a84918eaa70cec512c4d4b1b035f72803261257343d8e93673365b72c371f35cf34bb0d129720bf178a4c87812c8b9c662 + checksum: e2843362adb53692be5ee9fa07a386d2d8883daad2063a3575b3c373fc14cdf4ea7978c67a183cb631b4c9c8d77b2f48c24c088f8e65cc3600cb8e97d72a7161 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-jsx@npm:7.25.9" +"@babel/plugin-transform-react-jsx@npm:^7.25.2, @babel/plugin-transform-react-jsx@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.25.9 - "@babel/helper-module-imports": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/plugin-syntax-jsx": ^7.25.9 - "@babel/types": ^7.25.9 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-module-imports": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/plugin-syntax-jsx": ^7.27.1 + "@babel/types": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5c6523c3963e3c6cf4c3cc2768a3766318af05b8f6c17aff52a4010e2c170e87b2fcdc94e9c9223ae12158664df4852ce81b9c8d042c15ea8fd83d6375f9f30f + checksum: 960d36e5d11ba68e4fbf1e2b935c153cb6ea7b0004f838aaee8baf7de30462b8f0562743a39ce3c370cc70b8f79d3c549104a415a615b2b0055b71fd025df0f3 languageName: node linkType: hard -"@babel/plugin-transform-react-pure-annotations@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.25.9" +"@babel/plugin-transform-react-pure-annotations@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9995c0fc7c25d3aaaa0ce84233de02eab2564ea111d0813ec5baa538eb21520402879cc787ad1ad4c2061b99cebc3beb09910e64c9592e8ccb42ae62d9e4fd9a + checksum: a6f591c5e85a1ab0685d4a25afe591fe8d11dc0b73c677cf9560ff8d540d036a1cce9efcb729fc9092def4d854dc304ffdc063a89a9247900b69c516bf971a4c languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.20.0, @babel/plugin-transform-regenerator@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" +"@babel/plugin-transform-regenerator@npm:^7.24.7, @babel/plugin-transform-regenerator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-regenerator@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - regenerator-transform: ^0.15.2 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1c09e8087b476c5967282c9790fb8710e065eda77c60f6cb5da541edd59ded9d003d96f8ef640928faab4a0b35bf997673499a194973da4f0c97f0935807a482 + checksum: e1e28e08abf1c8fcdeaa8af5ab44cfda83bebc0ba6ebc155afdae243c51a2e941dd8ff6c51affb0447deb07a6bc66424fbf04482b050c061e272bc75c15853bf languageName: node linkType: hard -"@babel/plugin-transform-regexp-modifiers@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.26.0" +"@babel/plugin-transform-regexp-modifiers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 726deca486bbd4b176f8a966eb0f4aabc19d9def3b8dabb8b3a656778eca0df1fda3f3c92b213aa5a184232fdafd5b7bd73b4e24ca4345c498ef6baff2bda4e1 - languageName: node - linkType: hard - -"@babel/plugin-transform-reserved-words@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8beda04481b25767acbd1f6b9ef7b3a9c12fbd9dcb24df45a6ad120e1dc4b247c073db60ac742f9093657d6d8c050501fc0606af042f81a3bb6a3ff862cddc47 + checksum: f6cb385fe0e798bff7e9b20cf5912bf40e180895ff3610b1ccdce260f3c20daaebb3a99dc087c8168a99151cd3e16b94f4689fd5a4b01cf1834b45c133e620b2 languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:7.12.15": - version: 7.12.15 - resolution: "@babel/plugin-transform-runtime@npm:7.12.15" +"@babel/plugin-transform-reserved-words@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-reserved-words@npm:7.27.1" dependencies: - "@babel/helper-module-imports": ^7.12.13 - "@babel/helper-plugin-utils": ^7.12.13 - semver: ^5.5.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c79f3c49a03e880a5b5c47c0c8aef2248654ee23fdc54d79439073c823d610a3f7c87b75cb16b17e0e2121d819b6e0fbe88e9c3ec822264d8831adefd6687444 + checksum: dea0b66742d2863b369c06c053e11e15ba785892ea19cccf7aef3c1bdaa38b6ab082e19984c5ea7810d275d9445c5400fcc385ad71ce707ed9256fadb102af3b languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:^7.0.0": - version: 7.26.10 - resolution: "@babel/plugin-transform-runtime@npm:7.26.10" +"@babel/plugin-transform-runtime@npm:^7.24.7, @babel/plugin-transform-runtime@npm:^7.25.0": + version: 7.27.1 + resolution: "@babel/plugin-transform-runtime@npm:7.27.1" dependencies: - "@babel/helper-module-imports": ^7.25.9 - "@babel/helper-plugin-utils": ^7.26.5 + "@babel/helper-module-imports": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 babel-plugin-polyfill-corejs2: ^0.4.10 babel-plugin-polyfill-corejs3: ^0.11.0 babel-plugin-polyfill-regenerator: ^0.6.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f50096ebea8c6106db2906b4b73955139c7c338d86f4940ed329703b49848843cf7a1308cafd6f23f9fc9f35f5e835daba2bb56be991b91d2a4a8092c4a9943b + checksum: 9328060b54e430732883cac672cfd4c952c2bf2d9fb5268c675ae01f74ccb224ecdf105f5ad52b6277ad8b34b6df1e7cec6d1c02a0d17be54414265414e8ac88 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" +"@babel/plugin-transform-shorthand-properties@npm:^7.24.7, @babel/plugin-transform-shorthand-properties@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f774995d58d4e3a992b732cf3a9b8823552d471040e280264dd15e0735433d51b468fef04d75853d061309389c66bda10ce1b298297ce83999220eb0ad62741d + checksum: fbba6e2aef0b69681acb68202aa249c0598e470cc0853d7ff5bd0171fd6a7ec31d77cfabcce9df6360fc8349eded7e4a65218c32551bd3fc0caaa1ac899ac6d4 languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-spread@npm:7.25.9" +"@babel/plugin-transform-spread@npm:^7.24.7, @babel/plugin-transform-spread@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-spread@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/helper-skip-transparent-expression-wrappers": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2403a5d49171b7714d5e5ecb1f598c61575a4dbe5e33e5a5f08c0ea990b75e693ca1ea983b6a96b2e3e5e7da48c8238333f525e47498c53b577c5d094d964c06 + checksum: 58b08085ee9c29955ac3b68d61c1a79728d44d19a69cb5eb669794aeaf54c57c6647af7b979c1297e81ede3d08b3ddcb1936ef39a533f28ff3e399a9be54dab1 languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.0.0, @babel/plugin-transform-sticky-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" +"@babel/plugin-transform-sticky-regex@npm:^7.24.7, @babel/plugin-transform-sticky-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7454b00844dbe924030dd15e2b3615b36e196500c4c47e98dabc6b37a054c5b1038ecd437e910aabf0e43bf56b973cb148d3437d50f6e2332d8309568e3e979b + checksum: e1414a502efba92c7974681767e365a8cda6c5e9e5f33472a9eaa0ce2e75cea0a9bef881ff8dda37c7810ad902f98d3c00ead92a3ac3b73a79d011df85b5a189 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.26.8": - version: 7.26.8 - resolution: "@babel/plugin-transform-template-literals@npm:7.26.8" +"@babel/plugin-transform-template-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-template-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.26.5 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 65874c8844ce906507cd5b9c78950d6173f8339b6416a2a9e763021db5a7045315a6f0e58976ec4af5e960c003ef322576c105130a644addb8f94d1a0821a972 + checksum: 93aad782503b691faef7c0893372d5243df3219b07f1f22cfc32c104af6a2e7acd6102c128439eab15336d048f1b214ca134b87b0630d8cd568bf447f78b25ce languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.26.7": - version: 7.26.7 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.26.7" +"@babel/plugin-transform-typeof-symbol@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.26.5 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1fcc48bde1426527d9905d561884e1ecaf3c03eb5abb507d33f71591f8da0c384e92097feaf91cc30692e04fb7f5e6ff1cb172acc5de7675d93fdb42db850d6a + checksum: ed8048c8de72c60969a64cf2273cc6d9275d8fa8db9bd25a1268273a00fb9cbd79931140311411bda1443aa56cb3961fb911d1795abacde7f0482f1d8fdf0356 languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.25.9, @babel/plugin-transform-typescript@npm:^7.5.0": - version: 7.26.8 - resolution: "@babel/plugin-transform-typescript@npm:7.26.8" +"@babel/plugin-transform-typescript@npm:^7.25.2, @babel/plugin-transform-typescript@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-typescript@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.25.9 - "@babel/helper-create-class-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.26.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.25.9 - "@babel/plugin-syntax-typescript": ^7.25.9 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 + "@babel/plugin-syntax-typescript": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3d8866f2c5cb70d27bfb724bf205f073b59d04fe7e535c63439968579dc79b69055681088b522dab49695bdf1365b00e22aee11e3f3253381e554d89a8aa9dd6 + checksum: 0037db32fedaacf42b5b3df774263bb7176d455859f77322f57135f7e50e457e5c95151280fc83bb9942fc1839e785489b098d73c9539d0f3c7dc9d42b3a8e86 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.9" +"@babel/plugin-transform-unicode-escapes@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: be067e07488d804e3e82d7771f23666539d2ae5af03bf6eb8480406adf3dabd776e60c1fd5c6078dc5714b73cd80bbaca70e71d4f5d154c5c57200581602ca2f + checksum: d817154bc10758ddd85b716e0bc1af1a1091e088400289ab6b78a1a4d609907ce3d2f1fd51a6fd0e0c8ecbb5f8e3aab4957e0747776d132d2379e85c3ef0520a languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.9" +"@babel/plugin-transform-unicode-property-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 201f6f46c1beb399e79aa208b94c5d54412047511795ce1e790edcd189cef73752e6a099fdfc01b3ad12205f139ae344143b62f21f44bbe02338a95e8506a911 + checksum: 5d99c89537d1ebaac3f526c04b162cf95a47d363d4829f78c6701a2c06ab78a48da66a94f853f85f44a3d72153410ba923e072bed4b7166fa097f503eb14131d languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.0.0, @babel/plugin-transform-unicode-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" +"@babel/plugin-transform-unicode-regex@npm:^7.24.7, @babel/plugin-transform-unicode-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e8baae867526e179467c6ef5280d70390fa7388f8763a19a27c21302dd59b121032568be080749514b097097ceb9af716bf4b90638f1b3cf689aa837ba20150f + checksum: a34d89a2b75fb78e66d97c3dc90d4877f7e31f43316b52176f95a5dee20e9bb56ecf158eafc42a001676ddf7b393d9e67650bad6b32f5405780f25fb83cd68e3 languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.9" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.25.9 - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 4445ef20de687cb4dcc95169742a8d9013d680aa5eee9186d8e25875bbfa7ee5e2de26a91177ccf70b1db518e36886abcd44750d28db5d7a9539f0efa6839f4b + checksum: 295126074c7388ab05c82ef3ed0907a1ee4666bbdd763477ead9aba6eb2c74bdf65669416861ac93d337a4a27640963bb214acadc2697275ce95aab14868d57f languageName: node linkType: hard -"@babel/preset-env@npm:^7.18.2, @babel/preset-env@npm:^7.20.0": - version: 7.26.9 - resolution: "@babel/preset-env@npm:7.26.9" +"@babel/preset-env@npm:^7.18.2, @babel/preset-env@npm:^7.25.3": + version: 7.27.2 + resolution: "@babel/preset-env@npm:7.27.2" dependencies: - "@babel/compat-data": ^7.26.8 - "@babel/helper-compilation-targets": ^7.26.5 - "@babel/helper-plugin-utils": ^7.26.5 - "@babel/helper-validator-option": ^7.25.9 - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.25.9 - "@babel/plugin-bugfix-safari-class-field-initializer-scope": ^7.25.9 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.25.9 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.25.9 - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.25.9 + "@babel/compat-data": ^7.27.2 + "@babel/helper-compilation-targets": ^7.27.2 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-validator-option": ^7.27.1 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.27.1 + "@babel/plugin-bugfix-safari-class-field-initializer-scope": ^7.27.1 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.27.1 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.27.1 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.27.1 "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 - "@babel/plugin-syntax-import-assertions": ^7.26.0 - "@babel/plugin-syntax-import-attributes": ^7.26.0 + "@babel/plugin-syntax-import-assertions": ^7.27.1 + "@babel/plugin-syntax-import-attributes": ^7.27.1 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.25.9 - "@babel/plugin-transform-async-generator-functions": ^7.26.8 - "@babel/plugin-transform-async-to-generator": ^7.25.9 - "@babel/plugin-transform-block-scoped-functions": ^7.26.5 - "@babel/plugin-transform-block-scoping": ^7.25.9 - "@babel/plugin-transform-class-properties": ^7.25.9 - "@babel/plugin-transform-class-static-block": ^7.26.0 - "@babel/plugin-transform-classes": ^7.25.9 - "@babel/plugin-transform-computed-properties": ^7.25.9 - "@babel/plugin-transform-destructuring": ^7.25.9 - "@babel/plugin-transform-dotall-regex": ^7.25.9 - "@babel/plugin-transform-duplicate-keys": ^7.25.9 - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ^7.25.9 - "@babel/plugin-transform-dynamic-import": ^7.25.9 - "@babel/plugin-transform-exponentiation-operator": ^7.26.3 - "@babel/plugin-transform-export-namespace-from": ^7.25.9 - "@babel/plugin-transform-for-of": ^7.26.9 - "@babel/plugin-transform-function-name": ^7.25.9 - "@babel/plugin-transform-json-strings": ^7.25.9 - "@babel/plugin-transform-literals": ^7.25.9 - "@babel/plugin-transform-logical-assignment-operators": ^7.25.9 - "@babel/plugin-transform-member-expression-literals": ^7.25.9 - "@babel/plugin-transform-modules-amd": ^7.25.9 - "@babel/plugin-transform-modules-commonjs": ^7.26.3 - "@babel/plugin-transform-modules-systemjs": ^7.25.9 - "@babel/plugin-transform-modules-umd": ^7.25.9 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.25.9 - "@babel/plugin-transform-new-target": ^7.25.9 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.26.6 - "@babel/plugin-transform-numeric-separator": ^7.25.9 - "@babel/plugin-transform-object-rest-spread": ^7.25.9 - "@babel/plugin-transform-object-super": ^7.25.9 - "@babel/plugin-transform-optional-catch-binding": ^7.25.9 - "@babel/plugin-transform-optional-chaining": ^7.25.9 - "@babel/plugin-transform-parameters": ^7.25.9 - "@babel/plugin-transform-private-methods": ^7.25.9 - "@babel/plugin-transform-private-property-in-object": ^7.25.9 - "@babel/plugin-transform-property-literals": ^7.25.9 - "@babel/plugin-transform-regenerator": ^7.25.9 - "@babel/plugin-transform-regexp-modifiers": ^7.26.0 - "@babel/plugin-transform-reserved-words": ^7.25.9 - "@babel/plugin-transform-shorthand-properties": ^7.25.9 - "@babel/plugin-transform-spread": ^7.25.9 - "@babel/plugin-transform-sticky-regex": ^7.25.9 - "@babel/plugin-transform-template-literals": ^7.26.8 - "@babel/plugin-transform-typeof-symbol": ^7.26.7 - "@babel/plugin-transform-unicode-escapes": ^7.25.9 - "@babel/plugin-transform-unicode-property-regex": ^7.25.9 - "@babel/plugin-transform-unicode-regex": ^7.25.9 - "@babel/plugin-transform-unicode-sets-regex": ^7.25.9 + "@babel/plugin-transform-arrow-functions": ^7.27.1 + "@babel/plugin-transform-async-generator-functions": ^7.27.1 + "@babel/plugin-transform-async-to-generator": ^7.27.1 + "@babel/plugin-transform-block-scoped-functions": ^7.27.1 + "@babel/plugin-transform-block-scoping": ^7.27.1 + "@babel/plugin-transform-class-properties": ^7.27.1 + "@babel/plugin-transform-class-static-block": ^7.27.1 + "@babel/plugin-transform-classes": ^7.27.1 + "@babel/plugin-transform-computed-properties": ^7.27.1 + "@babel/plugin-transform-destructuring": ^7.27.1 + "@babel/plugin-transform-dotall-regex": ^7.27.1 + "@babel/plugin-transform-duplicate-keys": ^7.27.1 + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ^7.27.1 + "@babel/plugin-transform-dynamic-import": ^7.27.1 + "@babel/plugin-transform-exponentiation-operator": ^7.27.1 + "@babel/plugin-transform-export-namespace-from": ^7.27.1 + "@babel/plugin-transform-for-of": ^7.27.1 + "@babel/plugin-transform-function-name": ^7.27.1 + "@babel/plugin-transform-json-strings": ^7.27.1 + "@babel/plugin-transform-literals": ^7.27.1 + "@babel/plugin-transform-logical-assignment-operators": ^7.27.1 + "@babel/plugin-transform-member-expression-literals": ^7.27.1 + "@babel/plugin-transform-modules-amd": ^7.27.1 + "@babel/plugin-transform-modules-commonjs": ^7.27.1 + "@babel/plugin-transform-modules-systemjs": ^7.27.1 + "@babel/plugin-transform-modules-umd": ^7.27.1 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.27.1 + "@babel/plugin-transform-new-target": ^7.27.1 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.27.1 + "@babel/plugin-transform-numeric-separator": ^7.27.1 + "@babel/plugin-transform-object-rest-spread": ^7.27.2 + "@babel/plugin-transform-object-super": ^7.27.1 + "@babel/plugin-transform-optional-catch-binding": ^7.27.1 + "@babel/plugin-transform-optional-chaining": ^7.27.1 + "@babel/plugin-transform-parameters": ^7.27.1 + "@babel/plugin-transform-private-methods": ^7.27.1 + "@babel/plugin-transform-private-property-in-object": ^7.27.1 + "@babel/plugin-transform-property-literals": ^7.27.1 + "@babel/plugin-transform-regenerator": ^7.27.1 + "@babel/plugin-transform-regexp-modifiers": ^7.27.1 + "@babel/plugin-transform-reserved-words": ^7.27.1 + "@babel/plugin-transform-shorthand-properties": ^7.27.1 + "@babel/plugin-transform-spread": ^7.27.1 + "@babel/plugin-transform-sticky-regex": ^7.27.1 + "@babel/plugin-transform-template-literals": ^7.27.1 + "@babel/plugin-transform-typeof-symbol": ^7.27.1 + "@babel/plugin-transform-unicode-escapes": ^7.27.1 + "@babel/plugin-transform-unicode-property-regex": ^7.27.1 + "@babel/plugin-transform-unicode-regex": ^7.27.1 + "@babel/plugin-transform-unicode-sets-regex": ^7.27.1 "@babel/preset-modules": 0.1.6-no-external-plugins babel-plugin-polyfill-corejs2: ^0.4.10 babel-plugin-polyfill-corejs3: ^0.11.0 @@ -2243,20 +2171,20 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7a657f947d069b7a27b02258012ce3ceb9383a8c10c249d4a3565c486294c3fe63ed08128ca3d124444d17eb821cfbf64a91fe8160af2e39f70d5cd2232f079e + checksum: 318b123c8783ac3833bde5a5ff315970967ccd4c1e5c97e0843c0199fe9eab48a8cb40b367b784ae19a33667bee63eb8533eb924dab05bfc92ff9ef436109001 languageName: node linkType: hard "@babel/preset-flow@npm:^7.13.13, @babel/preset-flow@npm:^7.17.12": - version: 7.25.9 - resolution: "@babel/preset-flow@npm:7.25.9" + version: 7.27.1 + resolution: "@babel/preset-flow@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/helper-validator-option": ^7.25.9 - "@babel/plugin-transform-flow-strip-types": ^7.25.9 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-validator-option": ^7.27.1 + "@babel/plugin-transform-flow-strip-types": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b1591ea63a7ace7e34bcefa6deba9e2814d7f082e3c074e2648efb68a1a49016ccefbea024156ba28bd3042a4e768e3eb8b5ecfe433978144fdaaadd36203ba2 + checksum: f3f25b390debf72a6ff0170a2d5198aea344ba96f05eaca0bae2c7072119706fd46321604d89646bda1842527cfc6eab8828a983ec90149218d2120b9cd26596 languageName: node linkType: hard @@ -2274,39 +2202,39 @@ __metadata: linkType: hard "@babel/preset-react@npm:^7.17.12": - version: 7.26.3 - resolution: "@babel/preset-react@npm:7.26.3" - dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/helper-validator-option": ^7.25.9 - "@babel/plugin-transform-react-display-name": ^7.25.9 - "@babel/plugin-transform-react-jsx": ^7.25.9 - "@babel/plugin-transform-react-jsx-development": ^7.25.9 - "@babel/plugin-transform-react-pure-annotations": ^7.25.9 + version: 7.27.1 + resolution: "@babel/preset-react@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-validator-option": ^7.27.1 + "@babel/plugin-transform-react-display-name": ^7.27.1 + "@babel/plugin-transform-react-jsx": ^7.27.1 + "@babel/plugin-transform-react-jsx-development": ^7.27.1 + "@babel/plugin-transform-react-pure-annotations": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9c76f145026715c8e4a1f6c44f208918e700227d8d8a8068f4ae10d87031d23eb8b483e508cd4452d65066f731b7a8169527e66e83ffe165595e8db7899dd859 + checksum: 00bc146f9c742eed804c598d3f31b7d889c1baf8c768989b7f84a93ca527dd1518d3b86781e89ca45cae6dbee136510d3a121658e01416c5578aecf751517bb5 languageName: node linkType: hard "@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.17.12": - version: 7.26.0 - resolution: "@babel/preset-typescript@npm:7.26.0" - dependencies: - "@babel/helper-plugin-utils": ^7.25.9 - "@babel/helper-validator-option": ^7.25.9 - "@babel/plugin-syntax-jsx": ^7.25.9 - "@babel/plugin-transform-modules-commonjs": ^7.25.9 - "@babel/plugin-transform-typescript": ^7.25.9 + version: 7.27.1 + resolution: "@babel/preset-typescript@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-validator-option": ^7.27.1 + "@babel/plugin-syntax-jsx": ^7.27.1 + "@babel/plugin-transform-modules-commonjs": ^7.27.1 + "@babel/plugin-transform-typescript": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6d8641fa6efd0e10eec5e8f92cd164b916a06d57131cfa5216c281404289c87d2b4995140a1c1d9c3bad171ff6ef2226be5f0585e09577ffff349706e991ec71 + checksum: 38020f1b23e88ec4fbffd5737da455d8939244bddfb48a2516aef93fb5947bd9163fb807ce6eff3e43fa5ffe9113aa131305fef0fb5053998410bbfcfe6ce0ec languageName: node linkType: hard "@babel/register@npm:^7.13.16": - version: 7.25.9 - resolution: "@babel/register@npm:7.25.9" + version: 7.27.1 + resolution: "@babel/register@npm:7.27.1" dependencies: clone-deep: ^4.0.1 find-cache-dir: ^2.0.0 @@ -2315,52 +2243,50 @@ __metadata: source-map-support: ^0.5.16 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1df38d9ed6fd60feb0a82e1926508bca8f60915ee8a12ab9f6c9714a8f13bafc7865409c7fa92604a5b79ba84f7990181b312bc469bfdfa30dd79655b3260b85 + checksum: 154ab3075f245466bbd7a3f0cf972328365961a6f621ecb7795ba67e70243596138c264ac7cb79df4a93527318021b5edbab1df39b669afc83159a9e6e560770 languageName: node linkType: hard -"@babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.25.0, @babel/runtime@npm:^7.8.4": - version: 7.26.10 - resolution: "@babel/runtime@npm:7.26.10" - dependencies: - regenerator-runtime: ^0.14.0 - checksum: 22d2e0abb86e90de489ab16bb578db6fe2b63a88696db431198b24963749820c723f1982298cdbbea187f7b2b80fb4d98a514faf114ddb2fdc14a4b96277b955 +"@babel/runtime@npm:^7.25.0": + version: 7.27.1 + resolution: "@babel/runtime@npm:7.27.1" + checksum: 11339838a54783e5b14e04d94d7a4d032e9965c5823f3f687e41556fa40344ae7aeb57c535720b7a74ab3e8217def7834a6f1a665ee55bbb3befede141419913 languageName: node linkType: hard -"@babel/template@npm:^7.0.0, @babel/template@npm:^7.25.9, @babel/template@npm:^7.26.9, @babel/template@npm:^7.3.3": - version: 7.26.9 - resolution: "@babel/template@npm:7.26.9" +"@babel/template@npm:^7.25.0, @babel/template@npm:^7.27.1, @babel/template@npm:^7.3.3": + version: 7.27.2 + resolution: "@babel/template@npm:7.27.2" dependencies: - "@babel/code-frame": ^7.26.2 - "@babel/parser": ^7.26.9 - "@babel/types": ^7.26.9 - checksum: 32259298c775e543ab994daff0c758b3d6a184349b146d6497aa46cec5907bc47a6bc09e7295a81a5eccfbd023d4811a9777cb5d698d582d09a87cabf5b576e7 + "@babel/code-frame": ^7.27.1 + "@babel/parser": ^7.27.2 + "@babel/types": ^7.27.1 + checksum: ff5628bc066060624afd970616090e5bba91c6240c2e4b458d13267a523572cbfcbf549391eec8217b94b064cf96571c6273f0c04b28a8567b96edc675c28e27 languageName: node linkType: hard -"@babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.10, @babel/traverse@npm:^7.26.5, @babel/traverse@npm:^7.26.8, @babel/traverse@npm:^7.26.9, @babel/traverse@npm:^7.7.4": - version: 7.26.10 - resolution: "@babel/traverse@npm:7.26.10" +"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.7.4": + version: 7.27.1 + resolution: "@babel/traverse@npm:7.27.1" dependencies: - "@babel/code-frame": ^7.26.2 - "@babel/generator": ^7.26.10 - "@babel/parser": ^7.26.10 - "@babel/template": ^7.26.9 - "@babel/types": ^7.26.10 + "@babel/code-frame": ^7.27.1 + "@babel/generator": ^7.27.1 + "@babel/parser": ^7.27.1 + "@babel/template": ^7.27.1 + "@babel/types": ^7.27.1 debug: ^4.3.1 globals: ^11.1.0 - checksum: 9b58039cf388ea0f6758204a31678753f3e3d9f62cd8bfb814cdcb2af81a0df35a23b7573719345b425faaaec1c1400f253d50054bac3db5952e389f71b19bc6 + checksum: 7ea3ec36a65e734f2921f5dba6f417f5dd0c90eb44a60f6addbacbbedb44e8c82eba415a74feb7d6df58e351519b81b11b6ca3c0c7c41a3f73ebeaf6895a826c languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.10, @babel/types@npm:^7.26.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": - version: 7.26.10 - resolution: "@babel/types@npm:7.26.10" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.27.1, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.27.1 + resolution: "@babel/types@npm:7.27.1" dependencies: - "@babel/helper-string-parser": ^7.25.9 - "@babel/helper-validator-identifier": ^7.25.9 - checksum: 07340068ea3824dcaccf702dfc9628175c9926912ad6efba182d8b07e20953297d0a514f6fb103a61b9d5c555c8b87fc2237ddb06efebe14794eefc921dfa114 + "@babel/helper-string-parser": ^7.27.1 + "@babel/helper-validator-identifier": ^7.27.1 + checksum: 357c13f37aaa2f2e2cfcdb63f986d5f7abc9f38df20182b620ace34387d2460620415770fe5856eb54d70c9f0ba2f71230d29465e789188635a948476b830ae4 languageName: node linkType: hard @@ -2428,10 +2354,10 @@ __metadata: languageName: node linkType: hard -"@datadog/libdatadog@npm:^0.5.0": - version: 0.5.0 - resolution: "@datadog/libdatadog@npm:0.5.0" - checksum: e5113291d7e762b40dcdf8760b427cd61bd26e97eec3aefbe087ce60436a6d920dc80e5105ea5aa48b88402067724c4e3f7ac2cb066c3725d3e73a269c9e4c17 +"@datadog/libdatadog@npm:^0.5.1": + version: 0.5.1 + resolution: "@datadog/libdatadog@npm:0.5.1" + checksum: a6eb278b5e0e381f59ac4c1b9c540b8c170c39cba42c18fb20b507e4c78dda18237d3296c66a4930517cec3dfbb769644b9aa901728f152291e63d889224177c languageName: node linkType: hard @@ -2545,50 +2471,40 @@ __metadata: languageName: unknown linkType: soft -"@datadog/native-appsec@npm:8.5.0": - version: 8.5.0 - resolution: "@datadog/native-appsec@npm:8.5.0" +"@datadog/native-appsec@npm:8.5.2": + version: 8.5.2 + resolution: "@datadog/native-appsec@npm:8.5.2" dependencies: node-gyp: latest node-gyp-build: ^3.9.0 - checksum: e1cf9ba9838d59370563afd9bac8377ea3f8b3ef05f00148f43a1d525dc226c65c99f6dfaf528cae67230243775ad4546b933e1ac7023ee7ce66ffc26f4d31b6 - languageName: node - linkType: hard - -"@datadog/native-iast-rewriter@npm:2.8.0": - version: 2.8.0 - resolution: "@datadog/native-iast-rewriter@npm:2.8.0" - dependencies: - lru-cache: ^7.14.0 - node-gyp-build: ^4.5.0 - checksum: 41ebea1038f2a6567b8304377ed1304969d5879ee83bb3910ce43bb69329b6eafe0dbbba3bd9bd5944749dd8ea35f1ddc246d2c3581ebb914cd635aaffd911bc + checksum: a78cb31a272d592b7950409afd326f029feda6548d000de43ac252e97a395d475ef022e8d82ab33c5172a630cab7bfc1fad125b0879d9bac445f2556c9c2b742 languageName: node linkType: hard -"@datadog/native-iast-taint-tracking@npm:3.3.0": - version: 3.3.0 - resolution: "@datadog/native-iast-taint-tracking@npm:3.3.0" +"@datadog/native-iast-taint-tracking@npm:4.0.0": + version: 4.0.0 + resolution: "@datadog/native-iast-taint-tracking@npm:4.0.0" dependencies: node-gyp: latest node-gyp-build: ^3.9.0 - checksum: 37160299e0400c29d96a87a159dcaf8811f2ab4d27974a4f37d691ddc8f923a8bde9a286ab0657d2afcb227f6b5b5a8c4bc8a293cabb45af3a7e4abb8ec0ea3a + checksum: 1b43d0fca052fd920f0e8ea8e75d66ce750b8311a70fecacfaad105200217be958bb420b5206a7406feadd337f301ee63406e5b745c1e20b359689058494b58d languageName: node linkType: hard -"@datadog/native-metrics@npm:^3.1.0": - version: 3.1.0 - resolution: "@datadog/native-metrics@npm:3.1.0" +"@datadog/native-metrics@npm:^3.1.1": + version: 3.1.1 + resolution: "@datadog/native-metrics@npm:3.1.1" dependencies: node-addon-api: ^6.1.0 node-gyp: latest node-gyp-build: ^3.9.0 - checksum: a9cb2a5fd56b53525c9f645d4d2359b44d18651fa121c7352d89115404748564d9fd1ae09209abd2955ae884bb2a8ce171258f1bc3e5a9ca6bedc25f0f81ad0b + checksum: 734bf13ad0813f846e5619eed82b43386f807c83feba963ab8efea37faa9622f244362d1440ea4a39280a61318081106e25f60f267accab4634893b6e30b20bb languageName: node linkType: hard -"@datadog/pprof@npm:5.6.0": - version: 5.6.0 - resolution: "@datadog/pprof@npm:5.6.0" +"@datadog/pprof@npm:5.8.0": + version: 5.8.0 + resolution: "@datadog/pprof@npm:5.8.0" dependencies: delay: ^5.0.0 node-gyp: latest @@ -2596,7 +2512,7 @@ __metadata: p-limit: ^3.1.0 pprof-format: ^2.1.0 source-map: ^0.7.4 - checksum: fb8900d811cf7a38df463a5c24aa44fdb5db8135049e9a06af33d053e846ffd9ae3de5af0580ee0f31cc1de7762c0ced7caeb2866fdca9e09e96aacb374c7f5e + checksum: 72e8c193d68190e62fb8e1e561daa1f319e61523e294c7dad8aba8ef0430739e8918725a2965e41425309fd7827392a6e1cad6465970198a85e56428deba61ad languageName: node linkType: hard @@ -2622,6 +2538,18 @@ __metadata: languageName: node linkType: hard +"@datadog/wasm-js-rewriter@npm:4.0.1": + version: 4.0.1 + resolution: "@datadog/wasm-js-rewriter@npm:4.0.1" + dependencies: + js-yaml: ^4.1.0 + lru-cache: ^7.14.0 + module-details-from-path: ^1.0.3 + node-gyp-build: ^4.5.0 + checksum: 8ac8aaefb75777bb11a9939b49ae8afb1b14d6ef835bc1c682af1c21863d77de96f7963eb48a59d20ffdebb66d8b985071dff1ffad3740952f2de2ffbc81d9b4 + languageName: node + linkType: hard + "@egjs/hammerjs@npm:^2.0.17": version: 2.0.17 resolution: "@egjs/hammerjs@npm:2.0.17" @@ -2632,41 +2560,41 @@ __metadata: linkType: hard "@emnapi/core@npm:^1.1.0": - version: 1.3.1 - resolution: "@emnapi/core@npm:1.3.1" + version: 1.4.3 + resolution: "@emnapi/core@npm:1.4.3" dependencies: - "@emnapi/wasi-threads": 1.0.1 + "@emnapi/wasi-threads": 1.0.2 tslib: ^2.4.0 - checksum: 9b4e4bc37e09d901f5d95ca998c4936432a7a2207f33e98e15ae8c9bb34803baa444cef66b8acc80fd701f6634c2718f43709e82432052ea2aa7a71a58cb9164 + checksum: 1c757d380b3cecec637a2eccfb31b770b995060f695d1e15b29a86e2038909a24152947ef6e4b6586759e6716148ff17f40e51367d1b79c9a3e1b6812537bdf4 languageName: node linkType: hard "@emnapi/runtime@npm:^1.1.0": - version: 1.3.1 - resolution: "@emnapi/runtime@npm:1.3.1" + version: 1.4.3 + resolution: "@emnapi/runtime@npm:1.4.3" dependencies: tslib: ^2.4.0 - checksum: 9a16ae7905a9c0e8956cf1854ef74e5087fbf36739abdba7aa6b308485aafdc993da07c19d7af104cd5f8e425121120852851bb3a0f78e2160e420a36d47f42f + checksum: ff2074809638ed878e476ece370c6eae7e6257bf029a581bb7a290488d8f2a08c420a65988c7f03bfc6bb689218f0cd995d2f935bd182150b357fc2341142f4f languageName: node linkType: hard -"@emnapi/wasi-threads@npm:1.0.1": - version: 1.0.1 - resolution: "@emnapi/wasi-threads@npm:1.0.1" +"@emnapi/wasi-threads@npm:1.0.2": + version: 1.0.2 + resolution: "@emnapi/wasi-threads@npm:1.0.2" dependencies: tslib: ^2.4.0 - checksum: e154880440ff9bfe67b417f30134f0ff6fee28913dbf4a22de2e67dda5bf5b51055647c5d1565281df17ef5dfcc89256546bdf9b8ccfd07e07566617e7ce1498 + checksum: c289cd3d0e26f11de23429a4abc7f99927917c0871d5a22637cbb75170f2b58d3a42e80d76dea89d054e529f79e35cdc953324819a7f990305d0db2897fa5fab languageName: node linkType: hard "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.5.1 - resolution: "@eslint-community/eslint-utils@npm:4.5.1" + version: 4.7.0 + resolution: "@eslint-community/eslint-utils@npm:4.7.0" dependencies: eslint-visitor-keys: ^3.4.3 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 853e681fd134e96ce88066b0cfb3ce8b7a87afc9ea207139059f51e302eb9e6de4ab73c9eeb3995407bd6c08f836aade9fce47e91124c254a4eea24a5465c2ac + checksum: b177e3b75c0b8d0e5d71f1c532edb7e40b31313db61f0c879f9bf19c3abb2783c6c372b5deb2396dab4432f2946b9972122ac682e77010376c029dfd0149c681 languageName: node linkType: hard @@ -2785,18 +2713,18 @@ __metadata: linkType: hard "@grpc/grpc-js@npm:^1.10.9": - version: 1.13.0 - resolution: "@grpc/grpc-js@npm:1.13.0" + version: 1.13.4 + resolution: "@grpc/grpc-js@npm:1.13.4" dependencies: "@grpc/proto-loader": ^0.7.13 "@js-sdsl/ordered-map": ^4.4.2 - checksum: 5153924bd9a995c6a820fb5a5d439cb4258a83cc92b9cca6c896d5f909dea99a8fa4ca63a036dea96657fbfd4a17727e8e3be88ce2530da908e73667f5fa2db7 + checksum: fe5db84bbbcd07cc1b68d1683b7fbe9cfcc5c3a60655ecc17fb3e1cd2adc4c1ce891b15e6e9a9c2140f6891def6f93b509a60d2bce253d13b317f9136e968451 languageName: node linkType: hard "@grpc/proto-loader@npm:^0.7.13": - version: 0.7.13 - resolution: "@grpc/proto-loader@npm:0.7.13" + version: 0.7.15 + resolution: "@grpc/proto-loader@npm:0.7.15" dependencies: lodash.camelcase: ^4.3.0 long: ^5.0.0 @@ -2804,7 +2732,7 @@ __metadata: yargs: ^17.7.2 bin: proto-loader-gen-types: build/bin/proto-loader-gen-types.js - checksum: 399c1b8a4627f93dc31660d9636ea6bf58be5675cc7581e3df56a249369e5be02c6cd0d642c5332b0d5673bc8621619bc06fb045aa3e8f57383737b5d35930dc + checksum: 9f19f4c611a17cd33aec0d6e3686a76696495f40593f7c284933c4b7877f58dfa5a225ddc20705860a632311f4dc0d143cb6a0da7b51b6f5ffd7de26938df308 languageName: node linkType: hard @@ -3992,29 +3920,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli-clean@npm:12.3.7" - dependencies: - "@react-native-community/cli-tools": 12.3.7 - chalk: ^4.1.2 - execa: ^5.0.0 - checksum: de92469c161fb3b6bdc8665c0d248f43aeb920f6018e225f50a99a851fe96ef88ec0c78c36c2b3339728adda2dde5229d527684a70698a1fc9fdef6af289734a - languageName: node - linkType: hard - -"@react-native-community/cli-clean@npm:14.1.0": - version: 14.1.0 - resolution: "@react-native-community/cli-clean@npm:14.1.0" - dependencies: - "@react-native-community/cli-tools": 14.1.0 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-glob: ^3.3.2 - checksum: 495c354a2d4c90e6a7a8b02214454f567a070529a24c4e6d5be1648492ca743b1fa223756aa1f255866150b0043cbb28a132bf48c53d1d00250bd1dc43642208 - languageName: node - linkType: hard - "@react-native-community/cli-clean@npm:15.0.1": version: 15.0.1 resolution: "@react-native-community/cli-clean@npm:15.0.1" @@ -4039,34 +3944,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-config@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli-config@npm:12.3.7" - dependencies: - "@react-native-community/cli-tools": 12.3.7 - chalk: ^4.1.2 - cosmiconfig: ^5.1.0 - deepmerge: ^4.3.0 - glob: ^7.1.3 - joi: ^17.2.1 - checksum: 051c9f27e75a3d812970c18e70aa61f936cf4bc334cad3b01641267daa9f22949f19eef4102f6b91d502276b857eff3a5b9f86a87e1fe6b8c2d2f0274d54985d - languageName: node - linkType: hard - -"@react-native-community/cli-config@npm:14.1.0": - version: 14.1.0 - resolution: "@react-native-community/cli-config@npm:14.1.0" - dependencies: - "@react-native-community/cli-tools": 14.1.0 - chalk: ^4.1.2 - cosmiconfig: ^9.0.0 - deepmerge: ^4.3.0 - fast-glob: ^3.3.2 - joi: ^17.2.1 - checksum: f41b629a0617ec79dc585a1974d2989e607f1022103b09ed1ba95a07a6a299dd41f32a0b224a3afc81046c32d17de696c8039063db4567369fe6a9bfa7ae4cd8 - languageName: node - linkType: hard - "@react-native-community/cli-config@npm:15.0.1": version: 15.0.1 resolution: "@react-native-community/cli-config@npm:15.0.1" @@ -4081,24 +3958,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-debugger-ui@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli-debugger-ui@npm:12.3.7" - dependencies: - serve-static: ^1.13.1 - checksum: 1ee7bac1e3df9adfe0978d091b896f93b992cb92590664ded654631158d754fb9ac5d0ba67cd5cb8371697518052ee48e933b6f2b7636548e9921f369bd9014c - languageName: node - linkType: hard - -"@react-native-community/cli-debugger-ui@npm:14.1.0": - version: 14.1.0 - resolution: "@react-native-community/cli-debugger-ui@npm:14.1.0" - dependencies: - serve-static: ^1.13.1 - checksum: 410fb5e57cbd58a7deb81ab4f83ae882a1b2b42729a5f9db5837b6a32edf35aae06f0293ef5ada49c2e51da193da9e21132cd54c213130975e57c8c53ee5042f - languageName: node - linkType: hard - "@react-native-community/cli-debugger-ui@npm:15.0.1": version: 15.0.1 resolution: "@react-native-community/cli-debugger-ui@npm:15.0.1" @@ -4108,54 +3967,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli-doctor@npm:12.3.7" - dependencies: - "@react-native-community/cli-config": 12.3.7 - "@react-native-community/cli-platform-android": 12.3.7 - "@react-native-community/cli-platform-ios": 12.3.7 - "@react-native-community/cli-tools": 12.3.7 - chalk: ^4.1.2 - command-exists: ^1.2.8 - deepmerge: ^4.3.0 - envinfo: ^7.10.0 - execa: ^5.0.0 - hermes-profile-transformer: ^0.0.6 - node-stream-zip: ^1.9.1 - ora: ^5.4.1 - semver: ^7.5.2 - strip-ansi: ^5.2.0 - wcwidth: ^1.0.1 - yaml: ^2.2.1 - checksum: 85eb78d6a5d887f8a97845493075b3fffd403d8c7e32395755d7855ea4e9ddfb52e02a0500d90e5626c03a6ecb3768bf1d40bfbe8675ffd6ca55f26fe38d14c9 - languageName: node - linkType: hard - -"@react-native-community/cli-doctor@npm:14.1.0": - version: 14.1.0 - resolution: "@react-native-community/cli-doctor@npm:14.1.0" - dependencies: - "@react-native-community/cli-config": 14.1.0 - "@react-native-community/cli-platform-android": 14.1.0 - "@react-native-community/cli-platform-apple": 14.1.0 - "@react-native-community/cli-platform-ios": 14.1.0 - "@react-native-community/cli-tools": 14.1.0 - chalk: ^4.1.2 - command-exists: ^1.2.8 - deepmerge: ^4.3.0 - envinfo: ^7.13.0 - execa: ^5.0.0 - node-stream-zip: ^1.9.1 - ora: ^5.4.1 - semver: ^7.5.2 - strip-ansi: ^5.2.0 - wcwidth: ^1.0.1 - yaml: ^2.2.1 - checksum: 2e47b306db5bc6a27e15e00b0d4123e69a5c7561e69d39688e98a74349a9aa6aa84737be7988e69bfe5e3c4caf8f697d3c788a65a29b352907aba9a90cdb349b - languageName: node - linkType: hard - "@react-native-community/cli-doctor@npm:15.0.1": version: 15.0.1 resolution: "@react-native-community/cli-doctor@npm:15.0.1" @@ -4180,60 +3991,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-hermes@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli-hermes@npm:12.3.7" - dependencies: - "@react-native-community/cli-platform-android": 12.3.7 - "@react-native-community/cli-tools": 12.3.7 - chalk: ^4.1.2 - hermes-profile-transformer: ^0.0.6 - checksum: a7db113e2a00a666cd705c9791391cb19ddf8441b94daf2c16577b33dd85eef43be1627fa2fafeb4def5db1ce45f2c28b59744d913fbbbd877489280eb9b6f03 - languageName: node - linkType: hard - -"@react-native-community/cli-platform-android@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli-platform-android@npm:12.3.7" - dependencies: - "@react-native-community/cli-tools": 12.3.7 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-xml-parser: ^4.2.4 - glob: ^7.1.3 - logkitty: ^0.7.1 - checksum: 8f694fe30a5043a923199dd030cd506142ceb349666be0716560a6e3d42645490ecf0542a727be4ffd0ac07c5c74c9b01a75105f5a079b7810e37a282e265cb7 - languageName: node - linkType: hard - -"@react-native-community/cli-platform-android@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-platform-android@npm:13.6.9" - dependencies: - "@react-native-community/cli-tools": 13.6.9 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-glob: ^3.3.2 - fast-xml-parser: ^4.2.4 - logkitty: ^0.7.1 - checksum: a743571c99d8a9769ec37086d3a1e04ceddb9ea0e76788a3fc95c458ca1f419b15059bbc18485e25f33d853e1116937ec09464b9fe463109dca5010914c2e72a - languageName: node - linkType: hard - -"@react-native-community/cli-platform-android@npm:14.1.0": - version: 14.1.0 - resolution: "@react-native-community/cli-platform-android@npm:14.1.0" - dependencies: - "@react-native-community/cli-tools": 14.1.0 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-glob: ^3.3.2 - fast-xml-parser: ^4.4.1 - logkitty: ^0.7.1 - checksum: 4c240321344757cbd660174d44bc1dea81265369353dc50a703c93eb1692c2eb6f33839901b640fd4a609416d36c26ca2341f44c5f417751d2cc45833a58b012 - languageName: node - linkType: hard - "@react-native-community/cli-platform-android@npm:15.0.1": version: 15.0.1 resolution: "@react-native-community/cli-platform-android@npm:15.0.1" @@ -4248,20 +4005,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-platform-apple@npm:14.1.0": - version: 14.1.0 - resolution: "@react-native-community/cli-platform-apple@npm:14.1.0" - dependencies: - "@react-native-community/cli-tools": 14.1.0 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-glob: ^3.3.2 - fast-xml-parser: ^4.4.1 - ora: ^5.4.1 - checksum: f9ea2520880511f0f914a4a8e9ba7be33058461ff75188e96578f2b8706231b355905b251f362a75ed2270082635809f13055e0bea01c4b57448c0ea43a05a31 - languageName: node - linkType: hard - "@react-native-community/cli-platform-apple@npm:15.0.1": version: 15.0.1 resolution: "@react-native-community/cli-platform-apple@npm:15.0.1" @@ -4275,29 +4018,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli-platform-ios@npm:12.3.7" - dependencies: - "@react-native-community/cli-tools": 12.3.7 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-xml-parser: ^4.0.12 - glob: ^7.1.3 - ora: ^5.4.1 - checksum: 9d005c450aa99a58882130bd1cf964d9963efe7d70db4eb017ae5d5d384ada80ebeb8e9e087b1a6cb383741913a7f21e5f2644fe5909895e406eff2e9914dcae - languageName: node - linkType: hard - -"@react-native-community/cli-platform-ios@npm:14.1.0": - version: 14.1.0 - resolution: "@react-native-community/cli-platform-ios@npm:14.1.0" - dependencies: - "@react-native-community/cli-platform-apple": 14.1.0 - checksum: 17033ed819bf9701359117341b2650616161d078cabd8d87e7c1c1fc4f9333c2d087894ed893e0719b71cd5e2a34f76b01ba0e7edfb273cd8c6a5249e50429bd - languageName: node - linkType: hard - "@react-native-community/cli-platform-ios@npm:15.0.1": version: 15.0.1 resolution: "@react-native-community/cli-platform-ios@npm:15.0.1" @@ -4307,47 +4027,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-plugin-metro@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli-plugin-metro@npm:12.3.7" - checksum: e5d1265bfaec8054debce98f8417f547b2a6841608945ca83e4d2b483ee2ca41b9cace3b24376dd86e4591e13ef162bb11869c1615ede8b4b8caf09e795079c7 - languageName: node - linkType: hard - -"@react-native-community/cli-server-api@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli-server-api@npm:12.3.7" - dependencies: - "@react-native-community/cli-debugger-ui": 12.3.7 - "@react-native-community/cli-tools": 12.3.7 - compression: ^1.7.1 - connect: ^3.6.5 - errorhandler: ^1.5.1 - nocache: ^3.0.1 - pretty-format: ^26.6.2 - serve-static: ^1.13.1 - ws: ^7.5.1 - checksum: 67bdabb3af523b516b7b55b57857c89ac2881e4357b027f1bd3be72e80b83ae70a21a4f0972d4aa0b0b5fc919720b86c327301e5ed0fe18fba7fff5340c1489e - languageName: node - linkType: hard - -"@react-native-community/cli-server-api@npm:14.1.0": - version: 14.1.0 - resolution: "@react-native-community/cli-server-api@npm:14.1.0" - dependencies: - "@react-native-community/cli-debugger-ui": 14.1.0 - "@react-native-community/cli-tools": 14.1.0 - compression: ^1.7.1 - connect: ^3.6.5 - errorhandler: ^1.5.1 - nocache: ^3.0.1 - pretty-format: ^26.6.2 - serve-static: ^1.13.1 - ws: ^6.2.3 - checksum: c165ba799ccfb0ee6c38f3b9aa0c341733310400f3c9689578078b94ddded9d33c06144719732445ce7da9f27eaf120d9d04258d307475a24576d7a5b2b3847c - languageName: node - linkType: hard - "@react-native-community/cli-server-api@npm:15.0.1": version: 15.0.1 resolution: "@react-native-community/cli-server-api@npm:15.0.1" @@ -4365,175 +4044,48 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-tools@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli-tools@npm:12.3.7" +"@react-native-community/cli-tools@npm:15.0.1": + version: 15.0.1 + resolution: "@react-native-community/cli-tools@npm:15.0.1" dependencies: appdirsjs: ^1.2.4 chalk: ^4.1.2 + execa: ^5.0.0 find-up: ^5.0.0 mime: ^2.4.1 - node-fetch: ^2.6.0 open: ^6.2.0 ora: ^5.4.1 + prompts: ^2.4.2 semver: ^7.5.2 shell-quote: ^1.7.3 sudo-prompt: ^9.0.0 - checksum: 5b1703683cd060656938d48221b4cf80786f9a8d71b2c30e5a22b9070b37551425be8a66107dc28dfda15f5366534a0d195e138687eb681c62f711ce421e7e8b + checksum: 0c40d5aa2306a2bfc1ee15362d045b0eff3cb162dd1b070f504508b2bbdd00c791151cf9f8679d248b4480b75b758e60b8d0cf3c19a19a02b4b4ece9928a119c languageName: node linkType: hard -"@react-native-community/cli-tools@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-tools@npm:13.6.9" +"@react-native-community/cli-types@npm:15.0.1": + version: 15.0.1 + resolution: "@react-native-community/cli-types@npm:15.0.1" dependencies: - appdirsjs: ^1.2.4 - chalk: ^4.1.2 - execa: ^5.0.0 - find-up: ^5.0.0 - mime: ^2.4.1 - node-fetch: ^2.6.0 - open: ^6.2.0 - ora: ^5.4.1 - semver: ^7.5.2 - shell-quote: ^1.7.3 - sudo-prompt: ^9.0.0 - checksum: dc5ee921480a03249b408544146737a0674aa6259d797672a5f369d337a2775ec62fb986fcf62fe554992605305b75a220609db8eea9f6b75d97241a4dd79ad3 + joi: ^17.2.1 + checksum: 77452486158afcf1f03a3596135b6dba16dba5dd10209dacd5a6a4b176df36d37b8e49af61590d5a64df4907cf0575b6f37e0a3893335f961a9380edaee32152 languageName: node linkType: hard -"@react-native-community/cli-tools@npm:14.1.0": - version: 14.1.0 - resolution: "@react-native-community/cli-tools@npm:14.1.0" +"@react-native-community/cli@npm:15.0.1": + version: 15.0.1 + resolution: "@react-native-community/cli@npm:15.0.1" dependencies: - appdirsjs: ^1.2.4 + "@react-native-community/cli-clean": 15.0.1 + "@react-native-community/cli-config": 15.0.1 + "@react-native-community/cli-debugger-ui": 15.0.1 + "@react-native-community/cli-doctor": 15.0.1 + "@react-native-community/cli-server-api": 15.0.1 + "@react-native-community/cli-tools": 15.0.1 + "@react-native-community/cli-types": 15.0.1 chalk: ^4.1.2 - execa: ^5.0.0 - find-up: ^5.0.0 - mime: ^2.4.1 - open: ^6.2.0 - ora: ^5.4.1 - semver: ^7.5.2 - shell-quote: ^1.7.3 - sudo-prompt: ^9.0.0 - checksum: 90b163e67c7d5a1d06b25d662ba678447acf26cd0f6c7bef265d40dcd9684d1e14ec0c21447c9dfb2f09083d4b5c429dd008de7df966075efa79220149d2da54 - languageName: node - linkType: hard - -"@react-native-community/cli-tools@npm:15.0.1": - version: 15.0.1 - resolution: "@react-native-community/cli-tools@npm:15.0.1" - dependencies: - appdirsjs: ^1.2.4 - chalk: ^4.1.2 - execa: ^5.0.0 - find-up: ^5.0.0 - mime: ^2.4.1 - open: ^6.2.0 - ora: ^5.4.1 - prompts: ^2.4.2 - semver: ^7.5.2 - shell-quote: ^1.7.3 - sudo-prompt: ^9.0.0 - checksum: 0c40d5aa2306a2bfc1ee15362d045b0eff3cb162dd1b070f504508b2bbdd00c791151cf9f8679d248b4480b75b758e60b8d0cf3c19a19a02b4b4ece9928a119c - languageName: node - linkType: hard - -"@react-native-community/cli-types@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli-types@npm:12.3.7" - dependencies: - joi: ^17.2.1 - checksum: c424e9a1b2042bb36ab1b18e4463491e1ea1bf778280441ad16da7f41a092bea26b687954d354b738bc8e36ab004590aaaad3ec78b4cdba2e25c0652842026aa - languageName: node - linkType: hard - -"@react-native-community/cli-types@npm:14.1.0": - version: 14.1.0 - resolution: "@react-native-community/cli-types@npm:14.1.0" - dependencies: - joi: ^17.2.1 - checksum: c721d256a1e90fa3f8353cb0b9d37688aad080e2de44ad6b69516dd591c9f4089d214c43e85b5be0aff0d8b08595af4727a13ddd1c88492f5d3acc57bc22ce8f - languageName: node - linkType: hard - -"@react-native-community/cli-types@npm:15.0.1": - version: 15.0.1 - resolution: "@react-native-community/cli-types@npm:15.0.1" - dependencies: - joi: ^17.2.1 - checksum: 77452486158afcf1f03a3596135b6dba16dba5dd10209dacd5a6a4b176df36d37b8e49af61590d5a64df4907cf0575b6f37e0a3893335f961a9380edaee32152 - languageName: node - linkType: hard - -"@react-native-community/cli@npm:12.3.7": - version: 12.3.7 - resolution: "@react-native-community/cli@npm:12.3.7" - dependencies: - "@react-native-community/cli-clean": 12.3.7 - "@react-native-community/cli-config": 12.3.7 - "@react-native-community/cli-debugger-ui": 12.3.7 - "@react-native-community/cli-doctor": 12.3.7 - "@react-native-community/cli-hermes": 12.3.7 - "@react-native-community/cli-plugin-metro": 12.3.7 - "@react-native-community/cli-server-api": 12.3.7 - "@react-native-community/cli-tools": 12.3.7 - "@react-native-community/cli-types": 12.3.7 - chalk: ^4.1.2 - commander: ^9.4.1 - deepmerge: ^4.3.0 - execa: ^5.0.0 - find-up: ^4.1.0 - fs-extra: ^8.1.0 - graceful-fs: ^4.1.3 - prompts: ^2.4.2 - semver: ^7.5.2 - bin: - react-native: build/bin.js - checksum: 9eea5cc860a9b376425bc1552bfce8cb541b5a5a9c813e5632c37414468dcab73d3cd8b12d53188679dba71d29faf8ace5323d9747ccb106ca0c402d74e31a66 - languageName: node - linkType: hard - -"@react-native-community/cli@npm:14.1.0": - version: 14.1.0 - resolution: "@react-native-community/cli@npm:14.1.0" - dependencies: - "@react-native-community/cli-clean": 14.1.0 - "@react-native-community/cli-config": 14.1.0 - "@react-native-community/cli-debugger-ui": 14.1.0 - "@react-native-community/cli-doctor": 14.1.0 - "@react-native-community/cli-server-api": 14.1.0 - "@react-native-community/cli-tools": 14.1.0 - "@react-native-community/cli-types": 14.1.0 - chalk: ^4.1.2 - commander: ^9.4.1 - deepmerge: ^4.3.0 - execa: ^5.0.0 - find-up: ^5.0.0 - fs-extra: ^8.1.0 - graceful-fs: ^4.1.3 - prompts: ^2.4.2 - semver: ^7.5.2 - bin: - rnc-cli: build/bin.js - checksum: 57c412cd3da1ef2312e9e314352cde0e783a5efcac7821798d5d69a390168837240b87b486538aab31a4d7e7e6d41bd31c487878a5485503289e89e15f468bbf - languageName: node - linkType: hard - -"@react-native-community/cli@npm:15.0.1": - version: 15.0.1 - resolution: "@react-native-community/cli@npm:15.0.1" - dependencies: - "@react-native-community/cli-clean": 15.0.1 - "@react-native-community/cli-config": 15.0.1 - "@react-native-community/cli-debugger-ui": 15.0.1 - "@react-native-community/cli-doctor": 15.0.1 - "@react-native-community/cli-server-api": 15.0.1 - "@react-native-community/cli-tools": 15.0.1 - "@react-native-community/cli-types": 15.0.1 - chalk: ^4.1.2 - commander: ^9.4.1 - deepmerge: ^4.3.0 + commander: ^9.4.1 + deepmerge: ^4.3.0 execa: ^5.0.0 find-up: ^5.0.0 fs-extra: ^8.1.0 @@ -4546,197 +4098,84 @@ __metadata: languageName: node linkType: hard -"@react-native-community/masked-view@npm:^0.1.10": - version: 0.1.11 - resolution: "@react-native-community/masked-view@npm:0.1.11" - peerDependencies: - react: ">=16.0" - react-native: ">=0.57" - checksum: 246bcd94a6a2cafc415c7a192fb5a76ef7cd9b648b47ea4b2366f06128376ab377dcff3fab676261050fd3a97324bde5d64802aa3e8d1580fe6c0e3b0138cefc - languageName: node - linkType: hard - -"@react-native/assets-registry@npm:0.73.1": - version: 0.73.1 - resolution: "@react-native/assets-registry@npm:0.73.1" - checksum: d9d09774d497bae13b1fb6a1c977bf6e442858639ee66fe4e8f955cfc903a16f79de6129471114a918a4b814eb5150bd808a5a7dc9f8b12d49795d9488d4cb67 - languageName: node - linkType: hard - -"@react-native/assets-registry@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/assets-registry@npm:0.75.4" - checksum: bf30525b83aa17423144ac100c649ad9c1b2f5cd10d3daeda80aa0a3c8097b2be25d5573924acacd6973dd65b64b6ade23dc18b8273ee52960d71037afe2eaf8 - languageName: node - linkType: hard - -"@react-native/babel-plugin-codegen@npm:0.73.4": - version: 0.73.4 - resolution: "@react-native/babel-plugin-codegen@npm:0.73.4" - dependencies: - "@react-native/codegen": 0.73.3 - checksum: b32651c29d694a530390347c06fa09cfbc0189bddb3ccdbe47caa050e2e909ea0e4e32182b1a2c12fb73e9b8f352da9f3c239fb77e6e892c59c297371758f53a - languageName: node - linkType: hard - -"@react-native/babel-plugin-codegen@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/babel-plugin-codegen@npm:0.75.4" - dependencies: - "@react-native/codegen": 0.75.4 - checksum: eb3c7592e4627929494370de6e8a290217b5fc561ab6afe86f33fd16f9074539866822c68755ae06f67bf7b5eed2806d231305db4a7b83b19dd93c74b35ca41f - languageName: node - linkType: hard - -"@react-native/babel-preset@npm:0.73.21": - version: 0.73.21 - resolution: "@react-native/babel-preset@npm:0.73.21" - dependencies: - "@babel/core": ^7.20.0 - "@babel/plugin-proposal-async-generator-functions": ^7.0.0 - "@babel/plugin-proposal-class-properties": ^7.18.0 - "@babel/plugin-proposal-export-default-from": ^7.0.0 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.0 - "@babel/plugin-proposal-numeric-separator": ^7.0.0 - "@babel/plugin-proposal-object-rest-spread": ^7.20.0 - "@babel/plugin-proposal-optional-catch-binding": ^7.0.0 - "@babel/plugin-proposal-optional-chaining": ^7.20.0 - "@babel/plugin-syntax-dynamic-import": ^7.8.0 - "@babel/plugin-syntax-export-default-from": ^7.0.0 - "@babel/plugin-syntax-flow": ^7.18.0 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.0.0 - "@babel/plugin-syntax-optional-chaining": ^7.0.0 - "@babel/plugin-transform-arrow-functions": ^7.0.0 - "@babel/plugin-transform-async-to-generator": ^7.20.0 - "@babel/plugin-transform-block-scoping": ^7.0.0 - "@babel/plugin-transform-classes": ^7.0.0 - "@babel/plugin-transform-computed-properties": ^7.0.0 - "@babel/plugin-transform-destructuring": ^7.20.0 - "@babel/plugin-transform-flow-strip-types": ^7.20.0 - "@babel/plugin-transform-function-name": ^7.0.0 - "@babel/plugin-transform-literals": ^7.0.0 - "@babel/plugin-transform-modules-commonjs": ^7.0.0 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.0.0 - "@babel/plugin-transform-parameters": ^7.0.0 - "@babel/plugin-transform-private-methods": ^7.22.5 - "@babel/plugin-transform-private-property-in-object": ^7.22.11 - "@babel/plugin-transform-react-display-name": ^7.0.0 - "@babel/plugin-transform-react-jsx": ^7.0.0 - "@babel/plugin-transform-react-jsx-self": ^7.0.0 - "@babel/plugin-transform-react-jsx-source": ^7.0.0 - "@babel/plugin-transform-runtime": ^7.0.0 - "@babel/plugin-transform-shorthand-properties": ^7.0.0 - "@babel/plugin-transform-spread": ^7.0.0 - "@babel/plugin-transform-sticky-regex": ^7.0.0 - "@babel/plugin-transform-typescript": ^7.5.0 - "@babel/plugin-transform-unicode-regex": ^7.0.0 - "@babel/template": ^7.0.0 - "@react-native/babel-plugin-codegen": 0.73.4 - babel-plugin-transform-flow-enums: ^0.0.2 - react-refresh: ^0.14.0 - peerDependencies: - "@babel/core": "*" - checksum: 111b09b211e12723fde6655b8dfe70344ed8105fa24305ddc82531a98b97c294fd572d33445464ac043b72d033d5421975a11692bcbef1bb047215e3fabb258a - languageName: node - linkType: hard - -"@react-native/babel-preset@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/babel-preset@npm:0.75.4" - dependencies: - "@babel/core": ^7.20.0 - "@babel/plugin-proposal-export-default-from": ^7.0.0 - "@babel/plugin-syntax-dynamic-import": ^7.8.0 - "@babel/plugin-syntax-export-default-from": ^7.0.0 - "@babel/plugin-syntax-flow": ^7.18.0 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.0.0 - "@babel/plugin-syntax-optional-chaining": ^7.0.0 - "@babel/plugin-transform-arrow-functions": ^7.0.0 - "@babel/plugin-transform-async-generator-functions": ^7.24.3 - "@babel/plugin-transform-async-to-generator": ^7.20.0 - "@babel/plugin-transform-block-scoping": ^7.0.0 - "@babel/plugin-transform-class-properties": ^7.24.1 - "@babel/plugin-transform-classes": ^7.0.0 - "@babel/plugin-transform-computed-properties": ^7.0.0 - "@babel/plugin-transform-destructuring": ^7.20.0 - "@babel/plugin-transform-flow-strip-types": ^7.20.0 - "@babel/plugin-transform-for-of": ^7.0.0 - "@babel/plugin-transform-function-name": ^7.0.0 - "@babel/plugin-transform-literals": ^7.0.0 - "@babel/plugin-transform-logical-assignment-operators": ^7.24.1 - "@babel/plugin-transform-modules-commonjs": ^7.0.0 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.0.0 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.1 - "@babel/plugin-transform-numeric-separator": ^7.24.1 - "@babel/plugin-transform-object-rest-spread": ^7.24.5 - "@babel/plugin-transform-optional-catch-binding": ^7.24.1 - "@babel/plugin-transform-optional-chaining": ^7.24.5 - "@babel/plugin-transform-parameters": ^7.0.0 - "@babel/plugin-transform-private-methods": ^7.22.5 - "@babel/plugin-transform-private-property-in-object": ^7.22.11 - "@babel/plugin-transform-react-display-name": ^7.0.0 - "@babel/plugin-transform-react-jsx": ^7.0.0 - "@babel/plugin-transform-react-jsx-self": ^7.0.0 - "@babel/plugin-transform-react-jsx-source": ^7.0.0 - "@babel/plugin-transform-regenerator": ^7.20.0 - "@babel/plugin-transform-runtime": ^7.0.0 - "@babel/plugin-transform-shorthand-properties": ^7.0.0 - "@babel/plugin-transform-spread": ^7.0.0 - "@babel/plugin-transform-sticky-regex": ^7.0.0 - "@babel/plugin-transform-typescript": ^7.5.0 - "@babel/plugin-transform-unicode-regex": ^7.0.0 - "@babel/template": ^7.0.0 - "@react-native/babel-plugin-codegen": 0.75.4 - babel-plugin-transform-flow-enums: ^0.0.2 - react-refresh: ^0.14.0 - peerDependencies: - "@babel/core": "*" - checksum: 89b251e8f9ee0a5528a165f99d9ab6babfacd498f5cc693fd427f72d5eb1769b240b2ddd318409b548d7977c2f56028b8d4ad87dc71662404dc7c60eb86aa3df +"@react-native/assets-registry@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/assets-registry@npm:0.76.9" + checksum: 07e7da7a20745b6bdea99620e50d69c76219b7232b21cc43982696123a330cebd9d24e1a4be2a61588ab3af5155557e651267dfad9c91ad0bc8e098e6e7ad38f languageName: node linkType: hard -"@react-native/codegen@npm:0.73.3": - version: 0.73.3 - resolution: "@react-native/codegen@npm:0.73.3" +"@react-native/babel-plugin-codegen@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/babel-plugin-codegen@npm:0.76.9" dependencies: - "@babel/parser": ^7.20.0 - flow-parser: ^0.206.0 - glob: ^7.1.1 - invariant: ^2.2.4 - jscodeshift: ^0.14.0 - mkdirp: ^0.5.1 - nullthrows: ^1.1.1 - peerDependencies: - "@babel/preset-env": ^7.1.6 - checksum: 08984813003ce58c2904c837c89605cc3161e93a704f3b8a0ee1593088dbbd7bcda9b867c1b21ec4f217f71df9de21b25ce35a3f2df9587f6c73763504a4d014 + "@react-native/codegen": 0.76.9 + checksum: 13bba234a6c9e29fa4f7bf13a23ce8aecc5fc00da6cef6f6dd0462f82cdfeeeca62842c054ffe626662a92326774bf22723a90be5ac2158990386422ceee96c5 languageName: node linkType: hard -"@react-native/codegen@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/codegen@npm:0.75.4" +"@react-native/babel-preset@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/babel-preset@npm:0.76.9" dependencies: - "@babel/parser": ^7.20.0 - glob: ^7.1.1 - hermes-parser: 0.22.0 - invariant: ^2.2.4 - jscodeshift: ^0.14.0 - mkdirp: ^0.5.1 - nullthrows: ^1.1.1 - yargs: ^17.6.2 + "@babel/core": ^7.25.2 + "@babel/plugin-proposal-export-default-from": ^7.24.7 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-export-default-from": ^7.24.7 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-transform-arrow-functions": ^7.24.7 + "@babel/plugin-transform-async-generator-functions": ^7.25.4 + "@babel/plugin-transform-async-to-generator": ^7.24.7 + "@babel/plugin-transform-block-scoping": ^7.25.0 + "@babel/plugin-transform-class-properties": ^7.25.4 + "@babel/plugin-transform-classes": ^7.25.4 + "@babel/plugin-transform-computed-properties": ^7.24.7 + "@babel/plugin-transform-destructuring": ^7.24.8 + "@babel/plugin-transform-flow-strip-types": ^7.25.2 + "@babel/plugin-transform-for-of": ^7.24.7 + "@babel/plugin-transform-function-name": ^7.25.1 + "@babel/plugin-transform-literals": ^7.25.2 + "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 + "@babel/plugin-transform-modules-commonjs": ^7.24.8 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.7 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.7 + "@babel/plugin-transform-numeric-separator": ^7.24.7 + "@babel/plugin-transform-object-rest-spread": ^7.24.7 + "@babel/plugin-transform-optional-catch-binding": ^7.24.7 + "@babel/plugin-transform-optional-chaining": ^7.24.8 + "@babel/plugin-transform-parameters": ^7.24.7 + "@babel/plugin-transform-private-methods": ^7.24.7 + "@babel/plugin-transform-private-property-in-object": ^7.24.7 + "@babel/plugin-transform-react-display-name": ^7.24.7 + "@babel/plugin-transform-react-jsx": ^7.25.2 + "@babel/plugin-transform-react-jsx-self": ^7.24.7 + "@babel/plugin-transform-react-jsx-source": ^7.24.7 + "@babel/plugin-transform-regenerator": ^7.24.7 + "@babel/plugin-transform-runtime": ^7.24.7 + "@babel/plugin-transform-shorthand-properties": ^7.24.7 + "@babel/plugin-transform-spread": ^7.24.7 + "@babel/plugin-transform-sticky-regex": ^7.24.7 + "@babel/plugin-transform-typescript": ^7.25.2 + "@babel/plugin-transform-unicode-regex": ^7.24.7 + "@babel/template": ^7.25.0 + "@react-native/babel-plugin-codegen": 0.76.9 + babel-plugin-syntax-hermes-parser: ^0.25.1 + babel-plugin-transform-flow-enums: ^0.0.2 + react-refresh: ^0.14.0 peerDependencies: - "@babel/preset-env": ^7.1.6 - checksum: ecbdac43ce62c60362c7ad727a6d568d088148e12d71c36a5f2ce7c0c19601b73d713b69d6999f10ecb0f92d52a74d28650dac06791d69dbb98823bea709873c + "@babel/core": "*" + checksum: b48ac1195d4b52a14134f3dbfa26771aa66db0b787ebced6153d7c60802f1b959a3cf07b873da1b085e7db9b527507d1111302bb177ad52d7c77d635b6f3805b languageName: node linkType: hard -"@react-native/codegen@npm:^0.75.4": - version: 0.75.5 - resolution: "@react-native/codegen@npm:0.75.5" +"@react-native/codegen@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/codegen@npm:0.76.9" dependencies: - "@babel/parser": ^7.20.0 + "@babel/parser": ^7.25.3 glob: ^7.1.1 - hermes-parser: 0.22.0 + hermes-parser: 0.23.1 invariant: ^2.2.4 jscodeshift: ^0.14.0 mkdirp: ^0.5.1 @@ -4744,132 +4183,68 @@ __metadata: yargs: ^17.6.2 peerDependencies: "@babel/preset-env": ^7.1.6 - checksum: f94ef882101b1f222fda168bd6d2adaa1fdfe5dfa9e591247f37d259cbbd002977934ad22664a2fa5552f19b5b64cb167561ab82b909665f94b18e71f093bca2 + checksum: fcb26bd5be6f923eafd05e356ab01c9bbd30cab5e950bb050312a651771bcb2cb8484a3ba511e1460d44f508700565b0b69d43039c8cc61e63b9eacca6b9c756 languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.73.18": - version: 0.73.18 - resolution: "@react-native/community-cli-plugin@npm:0.73.18" +"@react-native/community-cli-plugin@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/community-cli-plugin@npm:0.76.9" dependencies: - "@react-native-community/cli-server-api": 12.3.7 - "@react-native-community/cli-tools": 12.3.7 - "@react-native/dev-middleware": 0.73.8 - "@react-native/metro-babel-transformer": 0.73.15 + "@react-native/dev-middleware": 0.76.9 + "@react-native/metro-babel-transformer": 0.76.9 chalk: ^4.0.0 execa: ^5.1.1 - metro: ^0.80.3 - metro-config: ^0.80.3 - metro-core: ^0.80.3 - node-fetch: ^2.2.0 - readline: ^1.3.0 - checksum: 65c19343a78d49e0b1e075b8a0cbeae5762d1133a99c76306cd437c8ace0fd4d88555580040fa3b1c5ba0fb963850c2c02269cadc18315dc9626010ef162690f - languageName: node - linkType: hard - -"@react-native/community-cli-plugin@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/community-cli-plugin@npm:0.75.4" - dependencies: - "@react-native-community/cli-server-api": 14.1.0 - "@react-native-community/cli-tools": 14.1.0 - "@react-native/dev-middleware": 0.75.4 - "@react-native/metro-babel-transformer": 0.75.4 - chalk: ^4.0.0 - execa: ^5.1.1 - metro: ^0.80.3 - metro-config: ^0.80.3 - metro-core: ^0.80.3 + invariant: ^2.2.4 + metro: ^0.81.0 + metro-config: ^0.81.0 + metro-core: ^0.81.0 node-fetch: ^2.2.0 readline: ^1.3.0 - checksum: ac3f574fe39cf31450a3d0ee8ddc703894d2f91eaf2d2f0116e41eabfea73c8ec2bbfcaa49af9549a61af879f714abc91b348267ef16a8bddc3de59b6d906b03 - languageName: node - linkType: hard - -"@react-native/debugger-frontend@npm:0.73.3": - version: 0.73.3 - resolution: "@react-native/debugger-frontend@npm:0.73.3" - checksum: 71ecf6fdf3ecf2cae80818e2b8717acb22e291fd19edf89f570e695a165660a749244fb03465b3b8b9b7166cbdee627577dd75321f6793649b0a255aec722d92 - languageName: node - linkType: hard - -"@react-native/debugger-frontend@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/debugger-frontend@npm:0.75.4" - checksum: b99bf4ddbda9b88dc974cc418483dfb9bb2887525df6fe9fa9abb894b0304bcf061781d86a8bc52505c5b0c60966704c4e8a1c4f4b2e6f1f47be8c28b3158d9b + semver: ^7.1.3 + peerDependencies: + "@react-native-community/cli": "*" + peerDependenciesMeta: + "@react-native-community/cli": + optional: true + checksum: 1c0c054d20b3b4c978928e80aa5e56cadeb8dfc1c80a374f67a23e80e2acac0fff5aea0b3f6413483f1ba2bad6a65749e8105dd0ebf2dcd6b045f88e3d7c8d24 languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.73.8": - version: 0.73.8 - resolution: "@react-native/dev-middleware@npm:0.73.8" - dependencies: - "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.73.3 - chrome-launcher: ^0.15.2 - chromium-edge-launcher: ^1.0.0 - connect: ^3.6.5 - debug: ^2.2.0 - node-fetch: ^2.2.0 - open: ^7.0.3 - serve-static: ^1.13.1 - temp-dir: ^2.0.0 - ws: ^6.2.2 - checksum: 1b05cd4f36c341ba41ea98360f330ccc78dba0eb3d03099af8e410d2d66ae43dd7a1422165dd26f9d06e6de23ca249b64f8687b9f16d1b165356e004158e587b +"@react-native/debugger-frontend@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/debugger-frontend@npm:0.76.9" + checksum: c537ae5be75bb9a0a549d88b6545762364d87a1166c8a7339ccd774257096a2c62f83efdd86c78553a3f1c4ef35cfa7708aba477bf6eeb76b7814ceab2b98069 languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/dev-middleware@npm:0.75.4" +"@react-native/dev-middleware@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/dev-middleware@npm:0.76.9" dependencies: "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.75.4 + "@react-native/debugger-frontend": 0.76.9 chrome-launcher: ^0.15.2 chromium-edge-launcher: ^0.2.0 connect: ^3.6.5 debug: ^2.2.0 - node-fetch: ^2.2.0 + invariant: ^2.2.4 nullthrows: ^1.1.1 open: ^7.0.3 selfsigned: ^2.4.1 serve-static: ^1.13.1 - ws: ^6.2.2 - checksum: 3f5001cde0081f46b011002303eed4d840eb9e05c2e39225ad8a4f70927e659ff567351dc8631128cf2ed6b57c6dbdf78c88494452db83e068bc9f986aa4c03e - languageName: node - linkType: hard - -"@react-native/eslint-config@npm:0.73.2": - version: 0.73.2 - resolution: "@react-native/eslint-config@npm:0.73.2" - dependencies: - "@babel/core": ^7.20.0 - "@babel/eslint-parser": ^7.20.0 - "@react-native/eslint-plugin": 0.73.1 - "@typescript-eslint/eslint-plugin": ^5.57.1 - "@typescript-eslint/parser": ^5.57.1 - eslint-config-prettier: ^8.5.0 - eslint-plugin-eslint-comments: ^3.2.0 - eslint-plugin-ft-flow: ^2.0.1 - eslint-plugin-jest: ^26.5.3 - eslint-plugin-prettier: ^4.2.1 - eslint-plugin-react: ^7.30.1 - eslint-plugin-react-hooks: ^4.6.0 - eslint-plugin-react-native: ^4.0.0 - peerDependencies: - eslint: ">=8" - prettier: ">=2" - checksum: 6d9de3267d80f1ee4f046a54a86bb906448dbc2a1a708fa7b7cb92f7611dec666b5908451501cd39b8b67eda4c8cfac6b2707a0ea65eb0228c79dcd47fc9b4c5 + ws: ^6.2.3 + checksum: 1f7750ae0c4d4d7970a73cd4f8443004a93b91b998a003ddb965274eb718d2a70ff06d182903dcaeccf15d8d245f488a397ea8ae53f6ed5f25e4d476d844b90f languageName: node linkType: hard -"@react-native/eslint-config@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/eslint-config@npm:0.75.4" +"@react-native/eslint-config@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/eslint-config@npm:0.76.9" dependencies: - "@babel/core": ^7.20.0 - "@babel/eslint-parser": ^7.20.0 - "@react-native/eslint-plugin": 0.75.4 + "@babel/core": ^7.25.2 + "@babel/eslint-parser": ^7.25.1 + "@react-native/eslint-plugin": 0.76.9 "@typescript-eslint/eslint-plugin": ^7.1.1 "@typescript-eslint/parser": ^7.1.1 eslint-config-prettier: ^8.5.0 @@ -4882,154 +4257,74 @@ __metadata: peerDependencies: eslint: ">=8" prettier: ">=2" - checksum: 1bf6d5a46a724f1ebbfb58f2b9a3774f4ef53e22333dd00b3836b1aa487da6b170281f7305cdbebec3b9d0e6c62c7d3f96e1c0eea4245d70c19dc162dced76f8 - languageName: node - linkType: hard - -"@react-native/eslint-plugin@npm:0.73.1": - version: 0.73.1 - resolution: "@react-native/eslint-plugin@npm:0.73.1" - checksum: 82a9bd30ada10ec4e926021967d1ffeb7c82eaaba6f7171cc655daf3339d2e2c15897bc3cd0f529e83ef2958c3b9b0365590a6b672a1a0efe7c781bd3e854473 - languageName: node - linkType: hard - -"@react-native/eslint-plugin@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/eslint-plugin@npm:0.75.4" - checksum: 3209c6ed6f99880a1cd58bf703105a1e48d8da4459be5b15446bcf74625ee4a76afca2ecf99d1ca561719cce6b512acd097dd9dbe2e1106f85926c110ab466c2 + checksum: 79147a2c55df65358ced8d28ca2c885206c95006e48f981aeebed21528ecfe607c7786c7dda5b65bcfce96a4dcb3d9e5786ec199994c8782256f375bedd88393 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.73.4": - version: 0.73.4 - resolution: "@react-native/gradle-plugin@npm:0.73.4" - checksum: f72e2a9fc44f7a848142f09e939686b85f7f51edb0634407635b742f152f2d5162eb08579a6a03c37f2550397a64915578d185dac1b95c7cf1ba8729fa51f389 +"@react-native/eslint-plugin@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/eslint-plugin@npm:0.76.9" + checksum: b932f7b44590142c6bf255b3dbfcd65ff1fd76805dc3d59f4874f9d1f3a4324d02a6854fbb46bde9d205e0d68d109db2875f6ab68ac12d5f567b64a82c86e340 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/gradle-plugin@npm:0.75.4" - checksum: ec3c39e08963ccff3ca4557ca94fff44b8242e5267b9d6226fde17a9df2a9d87e4c343893c7e6f5e4db48a1e61b8f77161a9175d5f9f371c0260f0fc29aa148d +"@react-native/gradle-plugin@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/gradle-plugin@npm:0.76.9" + checksum: afc6010cf278ed7dba58fb67cb789965edb6cfb3608e54b518232ef46b651f541915b7f6eae0b298457ccd8626213c687962ec250143e714de5e3bd2dc6dc210 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:^0.75.4": - version: 0.75.5 - resolution: "@react-native/gradle-plugin@npm:0.75.5" - checksum: 5c85e758fd4f85055cd92c467a1a702c455235f04939f4adbfb0df39fb84d05d1b62fc96140b2053b50731e080a356085b505a91d88c3ef0c0161adc42ec7fed - languageName: node - linkType: hard - -"@react-native/js-polyfills@npm:0.73.1": - version: 0.73.1 - resolution: "@react-native/js-polyfills@npm:0.73.1" - checksum: ec5899c3f2480475a6dccb252f3de6cc0b2eccc32d3d4a61a479e5f09d6458d86860fd60af472448b417d6e19f75c6b4008de245ab7fbb6d9c4300f452a37fd5 - languageName: node - linkType: hard - -"@react-native/js-polyfills@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/js-polyfills@npm:0.75.4" - checksum: 0634b2dc5f4d8fde84aef7e19bb497eae83c9ce9c70a2233ebcddc308ae605ba96ad03f2c7e70c9f14db89714376fd79a6fc2b44058276969c62338cfd3d5b98 - languageName: node - linkType: hard - -"@react-native/metro-babel-transformer@npm:0.73.15": - version: 0.73.15 - resolution: "@react-native/metro-babel-transformer@npm:0.73.15" - dependencies: - "@babel/core": ^7.20.0 - "@react-native/babel-preset": 0.73.21 - hermes-parser: 0.15.0 - nullthrows: ^1.1.1 - peerDependencies: - "@babel/core": "*" - checksum: 49d2a5c19186dd8eab78d334e3499af8084b9a083a7c5dab11cd668a79324d5942acdb3c3c32ce0e63bace8b0140c72029efdabf99297e93107e90c7b79bf880 +"@react-native/js-polyfills@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/js-polyfills@npm:0.76.9" + checksum: c49aac99f6973b102a9013632c204f02a57d96da500901bc6730ab96f56950d6924417e39c87be640a3a59b67e1af2583432361f55bf42c959aff02a285bcafc languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/metro-babel-transformer@npm:0.75.4" +"@react-native/metro-babel-transformer@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/metro-babel-transformer@npm:0.76.9" dependencies: - "@babel/core": ^7.20.0 - "@react-native/babel-preset": 0.75.4 - hermes-parser: 0.22.0 + "@babel/core": ^7.25.2 + "@react-native/babel-preset": 0.76.9 + hermes-parser: 0.23.1 nullthrows: ^1.1.1 peerDependencies: "@babel/core": "*" - checksum: a35c6b16e91ad1be3d2379ce512bdbb83b34a91801ae16d0a7bfc736f15380b0bcc455fbc028575fd4d950f421c0787c0ec99f5d1b2edd2f34485fd5fdb0a318 - languageName: node - linkType: hard - -"@react-native/metro-config@npm:0.73.5": - version: 0.73.5 - resolution: "@react-native/metro-config@npm:0.73.5" - dependencies: - "@react-native/js-polyfills": 0.73.1 - "@react-native/metro-babel-transformer": 0.73.15 - metro-config: ^0.80.3 - metro-runtime: ^0.80.3 - checksum: ddf5793664a47bbf16d79d2a4ea7f90cecb01206fbe5fc91aadb5e4169159cf24282ab0116799b9271332b7cb6ce9bc1420a57ad65d9cdfe98ac1e3b9a1f75ae + checksum: cb38d150e30b3e07e2cb8e637e26b4dcb8b58d6accc95f51e507baea94bb970a0077573c319849a3e7d9bf976dadc39cf363bb505f53de1a209e1bb9ea0428f8 languageName: node linkType: hard -"@react-native/metro-config@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/metro-config@npm:0.75.4" +"@react-native/metro-config@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/metro-config@npm:0.76.9" dependencies: - "@react-native/js-polyfills": 0.75.4 - "@react-native/metro-babel-transformer": 0.75.4 - metro-config: ^0.80.3 - metro-runtime: ^0.80.3 - checksum: 49608519e45396e1c6e5301dfa7af598f3309a1b7b7be4ac1e13a27de4a4ed09c9ca3d29abf0c5f9f391ebc7aa5ee13fb1f2bed00ba063d82b1b5ca27011d029 - languageName: node - linkType: hard - -"@react-native/normalize-colors@npm:0.73.2, @react-native/normalize-colors@npm:^0.73.0": - version: 0.73.2 - resolution: "@react-native/normalize-colors@npm:0.73.2" - checksum: ddf9384ad41adc4f3c8eb61ddd27113130c8060bd2f4255bee284a52aa7ddcff8a5e751f569dd416c45f8b9d4062392fa7219b221f2f7f0b229d02b8d2a5b974 - languageName: node - linkType: hard - -"@react-native/normalize-colors@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/normalize-colors@npm:0.75.4" - checksum: d6f916b20b2ba3959e07e107c2bfb175ec3530cf0e611da962ba66a65f2675864881c7c10d5ee6b51cb957cd1a35f7303b4d34a25fde590aa29618f37432447e + "@react-native/js-polyfills": 0.76.9 + "@react-native/metro-babel-transformer": 0.76.9 + metro-config: ^0.81.0 + metro-runtime: ^0.81.0 + checksum: c52dd64967e6ead75d735702def2e29767f56321d888eae48b683e65118852c567c066755fa0f18c554773a8a0cb44493b436f516bf2c96bb6625f86e7439fec languageName: node linkType: hard -"@react-native/typescript-config@npm:0.73.1": - version: 0.73.1 - resolution: "@react-native/typescript-config@npm:0.73.1" - checksum: 9b66fe369c26758764e782f876241f51b75101b627659a148b2709e3c0548a314f5e98dfb508a72d038379a9a11eef18f5cc3e20b04d4e28210b0e09edd819fe +"@react-native/normalize-colors@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/normalize-colors@npm:0.76.9" + checksum: 4fddb977b8aad2e848cb698f13b9ffec539668e8ae891846327d5e23ce3de13dea59a2dfbea8a154ea034791c7abc3f7d1d4c8caae2114f7a683c78b221aed36 languageName: node linkType: hard -"@react-native/typescript-config@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/typescript-config@npm:0.75.4" - checksum: 0c4bdffffbe990671c9e878683c1ac809bf205e35a4185e9ec77a82ecfbd4c8defdd08e5c1741e8d2b460cd29daaea8333f98090fcd01d57f2ec993122a71e98 +"@react-native/typescript-config@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/typescript-config@npm:0.76.9" + checksum: 768240aacdfdc80dfab6593a497841f8e2bf2a227778f8abc60396b3e7a261d36f8243bd0926e850a34d1a98a4f372327d3cabb5c3ce1049fafbb775d852e0c1 languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.73.4": - version: 0.73.4 - resolution: "@react-native/virtualized-lists@npm:0.73.4" - dependencies: - invariant: ^2.2.4 - nullthrows: ^1.1.1 - peerDependencies: - react-native: "*" - checksum: 59826b146cdcff358f27b118b9dcc6fa23534f3880b5e8546c79aedff8cb4e028af652b0371e0080610e30a250c69607f45b2066c83762788783ccf2031938e3 - languageName: node - linkType: hard - -"@react-native/virtualized-lists@npm:0.75.4": - version: 0.75.4 - resolution: "@react-native/virtualized-lists@npm:0.75.4" +"@react-native/virtualized-lists@npm:0.76.9": + version: 0.76.9 + resolution: "@react-native/virtualized-lists@npm:0.76.9" dependencies: invariant: ^2.2.4 nullthrows: ^1.1.1 @@ -5040,7 +4335,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 51abfbc44a7afddb2ba5f5a0b810167852dbeb566fe62478fed761a71de11f956891ec80c8e706e7f5c27f6a06f8a2376eddd916f7eb0bc25892c7f331d149d6 + checksum: 697a04bdf4b5f430164bf666bf60cd0207f4d3fb06b0a62d7c39b54c166973b29c73640e5c1a44f1c6891d93398bedd63eb8addcbe78641d7ebb13b9ab022052 languageName: node linkType: hard @@ -5423,145 +4718,145 @@ __metadata: languageName: node linkType: hard -"@smithy/abort-controller@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/abort-controller@npm:4.0.1" +"@smithy/abort-controller@npm:^4.0.3": + version: 4.0.3 + resolution: "@smithy/abort-controller@npm:4.0.3" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 9f6ac65639ae5823e7ea83fcd05282fca105adecda8a40bd4280cacb87ef2af935cf18e649897369db53c1b82c81fcdea75240260ca0ce9795ee22d6afa4f067 + checksum: d708b70ab5b00cfe43a07d2e95d3f5f35f2a722f9429f2c65b7899869c84979b2a670f71f521932dcd5f605e720901755158c98d40f057e765a0b77950e5fedb languageName: node linkType: hard -"@smithy/config-resolver@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/config-resolver@npm:4.0.1" +"@smithy/config-resolver@npm:^4.1.2, @smithy/config-resolver@npm:^4.1.3": + version: 4.1.3 + resolution: "@smithy/config-resolver@npm:4.1.3" dependencies: - "@smithy/node-config-provider": ^4.0.1 - "@smithy/types": ^4.1.0 + "@smithy/node-config-provider": ^4.1.2 + "@smithy/types": ^4.3.0 "@smithy/util-config-provider": ^4.0.0 - "@smithy/util-middleware": ^4.0.1 + "@smithy/util-middleware": ^4.0.3 tslib: ^2.6.2 - checksum: 24035ea6766693668f0776f8eed3d0a81aecbabf925e48c20ef759e6a95b39cd3e1b04efd819860d46727fe094382803fe3f625a0fbfcd652196753b44b7864f + checksum: b9a0b5ef0e9358e77049cb9a1cddcd26cdad84b2164399408f5fb7f69100b0bbd89e061750f9ea1a1805dcaa09221d42bbfee797ed453a3a8201d762d31fec2e languageName: node linkType: hard -"@smithy/core@npm:^3.1.5": - version: 3.1.5 - resolution: "@smithy/core@npm:3.1.5" +"@smithy/core@npm:^3.3.3, @smithy/core@npm:^3.4.0": + version: 3.4.0 + resolution: "@smithy/core@npm:3.4.0" dependencies: - "@smithy/middleware-serde": ^4.0.2 - "@smithy/protocol-http": ^5.0.1 - "@smithy/types": ^4.1.0 + "@smithy/middleware-serde": ^4.0.6 + "@smithy/protocol-http": ^5.1.1 + "@smithy/types": ^4.3.0 "@smithy/util-body-length-browser": ^4.0.0 - "@smithy/util-middleware": ^4.0.1 - "@smithy/util-stream": ^4.1.2 + "@smithy/util-middleware": ^4.0.3 + "@smithy/util-stream": ^4.2.1 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: 39154aed37228e66c7a96d5305dd5f1a8fbd742c672ca9782efc032b025b8e78f1403ab88fd00ae8fb5eaa2eb3cca7b2f7736be331c39a19386a0cc0987ba285 + checksum: 0186f1fab718a8ec0f1d84eeb0570bf4ab3304775f0c0e07e983465c3515c2f88494c74c1e225015db8d3d190c8c5f585998c982481ffd46f4016f96833717dd languageName: node linkType: hard -"@smithy/credential-provider-imds@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/credential-provider-imds@npm:4.0.1" +"@smithy/credential-provider-imds@npm:^4.0.4, @smithy/credential-provider-imds@npm:^4.0.5": + version: 4.0.5 + resolution: "@smithy/credential-provider-imds@npm:4.0.5" dependencies: - "@smithy/node-config-provider": ^4.0.1 - "@smithy/property-provider": ^4.0.1 - "@smithy/types": ^4.1.0 - "@smithy/url-parser": ^4.0.1 + "@smithy/node-config-provider": ^4.1.2 + "@smithy/property-provider": ^4.0.3 + "@smithy/types": ^4.3.0 + "@smithy/url-parser": ^4.0.3 tslib: ^2.6.2 - checksum: ec03248abf9b2e89f5a49539d2a069c3d034af35dc49a09d260dd58662ac0b639c6463d1eaa7d80253b8168c67ecb00de8c79376ed65433fc20f8e934a9017d9 + checksum: d395622f4a7123ebaaa518d5dd3c35a8b695c67470c2403ddb40712e59da24387cf99bca480cb73f6ef362bc9a4dbef53280d01e7128e21429c9f2b668e18e44 languageName: node linkType: hard -"@smithy/eventstream-codec@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/eventstream-codec@npm:4.0.1" +"@smithy/eventstream-codec@npm:^4.0.3": + version: 4.0.3 + resolution: "@smithy/eventstream-codec@npm:4.0.3" dependencies: "@aws-crypto/crc32": 5.2.0 - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 "@smithy/util-hex-encoding": ^4.0.0 tslib: ^2.6.2 - checksum: a99733e446b7f4054ba62e0f06a6d88fc0b70324518e2d21f128c1a2c4b3c3a2bf18398ca7e4b2a59e54a62d7bedf451d65e8c9945ba4aa3db10c5df18c00fed + checksum: 6a2792a7e5352d86aceabc79d545a743b3ac19387f10ce1f20b4d40ef3abcb2e732f3c37dbfc59929f2fb56a196a702583723754cfc42b58e49d9acc3dbce410 languageName: node linkType: hard -"@smithy/eventstream-serde-browser@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/eventstream-serde-browser@npm:4.0.1" +"@smithy/eventstream-serde-browser@npm:^4.0.2": + version: 4.0.3 + resolution: "@smithy/eventstream-serde-browser@npm:4.0.3" dependencies: - "@smithy/eventstream-serde-universal": ^4.0.1 - "@smithy/types": ^4.1.0 + "@smithy/eventstream-serde-universal": ^4.0.3 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: cfa141c76002be5e3fc0ff80826b793f052b5dac4e5806e8548f29d18b77523d37cf597724f070a53227337f77e7da9cde505ba7f44297561d681b96e4ab762b + checksum: 5a1b917c64f394f88f63416fd0a50487d652ec3fed11cb3fb10be329d6a4b084b29a63cd6d4aa57467aa2c5150bbe78c84c441f70ad984336a5d4cf9d957acab languageName: node linkType: hard -"@smithy/eventstream-serde-config-resolver@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/eventstream-serde-config-resolver@npm:4.0.1" +"@smithy/eventstream-serde-config-resolver@npm:^4.1.0": + version: 4.1.1 + resolution: "@smithy/eventstream-serde-config-resolver@npm:4.1.1" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 37c49d5ffa6b9c2f1f5b83b9c7f1de431ecef92a710e3dc4d91af5b978c662153d86ed558504424363c0c53682137ffa077ada9103f72eadc5d40ef4613f0241 + checksum: c00d99cadf74ca1082d0816bb79a64997123ed25f4277298b76a6079e2703d6f8d48183d762a5391f4640e9f4d60a77335e1c1fb9fc5ccb2d0f0e4c4b45e8d5e languageName: node linkType: hard -"@smithy/eventstream-serde-node@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/eventstream-serde-node@npm:4.0.1" +"@smithy/eventstream-serde-node@npm:^4.0.2": + version: 4.0.3 + resolution: "@smithy/eventstream-serde-node@npm:4.0.3" dependencies: - "@smithy/eventstream-serde-universal": ^4.0.1 - "@smithy/types": ^4.1.0 + "@smithy/eventstream-serde-universal": ^4.0.3 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: c24de78ac6bd3f4609a7e652301ff44fa0e5a499e2c10505068f17a8fa7387a5b6717601053c9c3804b94760df1da4799e5cd68900f97bab60160c075d93506a + checksum: 902d4486682288d06120c98488676aa689a543e06222ea946d0555c04221728f27fdcf2502460efcfabecdf991e9a4af986ba4c24e774d2a242885f23f233fb2 languageName: node linkType: hard -"@smithy/eventstream-serde-universal@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/eventstream-serde-universal@npm:4.0.1" +"@smithy/eventstream-serde-universal@npm:^4.0.3": + version: 4.0.3 + resolution: "@smithy/eventstream-serde-universal@npm:4.0.3" dependencies: - "@smithy/eventstream-codec": ^4.0.1 - "@smithy/types": ^4.1.0 + "@smithy/eventstream-codec": ^4.0.3 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 1fc609a5d341a43c427f233a64afa722b458f9b1dc7db9bab898f62d6805edcbe4fba866620a8b83001240e90254d9057636a6cf4eca80ada58f9dd2e0ca864b + checksum: 2e7d50689ed33490e339c96f664c639be3dd78ef77a1bba1bcbf17493b8c5b8849b6f4989e85c6e1c3d760ae31d17c9a410e4fd74755e49f8f9651fff32cd864 languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^5.0.1": - version: 5.0.1 - resolution: "@smithy/fetch-http-handler@npm:5.0.1" +"@smithy/fetch-http-handler@npm:^5.0.2, @smithy/fetch-http-handler@npm:^5.0.3": + version: 5.0.3 + resolution: "@smithy/fetch-http-handler@npm:5.0.3" dependencies: - "@smithy/protocol-http": ^5.0.1 - "@smithy/querystring-builder": ^4.0.1 - "@smithy/types": ^4.1.0 + "@smithy/protocol-http": ^5.1.1 + "@smithy/querystring-builder": ^4.0.3 + "@smithy/types": ^4.3.0 "@smithy/util-base64": ^4.0.0 tslib: ^2.6.2 - checksum: d8e160e4a57e1fb7b7805fcafda81fb7d7511904b48d2e25229d18bd15598c64cdd12bd39c0dee9fc9cc31a76952fae1d400c6a80e9015cfd6e22c2f930a6212 + checksum: 9c1e7bfa1c9a338acf1bf1179c69e8ff0dde2b4ee2a37948573ccaa2a2590affb4da26386858fb7c2ec8ff235fd8a6ce9c10e5760187825abeb0713d352b073b languageName: node linkType: hard -"@smithy/hash-node@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/hash-node@npm:4.0.1" +"@smithy/hash-node@npm:^4.0.2": + version: 4.0.3 + resolution: "@smithy/hash-node@npm:4.0.3" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 "@smithy/util-buffer-from": ^4.0.0 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: c68d222d4c39e97e90965cc669b6d30628b07ae136f49981ff551bccd5c104161fd2a322ebea85514c925e1d3525e413c05513e303a76e7af6c3e0cdb55960d0 + checksum: 750de0862e4e743ca4cc755fbfa086413c5ae249f93e294a649b978167ad97f827b88e33a8584ce4a78606a18b1df973b3dd923feb637dcbc6ba51a3087e43cb languageName: node linkType: hard -"@smithy/invalid-dependency@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/invalid-dependency@npm:4.0.1" +"@smithy/invalid-dependency@npm:^4.0.2": + version: 4.0.3 + resolution: "@smithy/invalid-dependency@npm:4.0.3" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 541e89a18cb5ce8db063ea74ea8831a11bdf42ac58412ae6aad350d4a128b6e9d3b0b5b31cac2597e5e52a0da4a2a3cf202946bb6649d398a84876a89c332bd1 + checksum: 62321aa8cfbb124a3c4da71f8644e50863fee4bae358eb1eec30faf9eea581bb86ace04bb76018a9b5ed7ce264660f688e5d3bc9e6de11023091377ef2217670 languageName: node linkType: hard @@ -5583,92 +4878,93 @@ __metadata: languageName: node linkType: hard -"@smithy/middleware-content-length@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/middleware-content-length@npm:4.0.1" +"@smithy/middleware-content-length@npm:^4.0.2": + version: 4.0.3 + resolution: "@smithy/middleware-content-length@npm:4.0.3" dependencies: - "@smithy/protocol-http": ^5.0.1 - "@smithy/types": ^4.1.0 + "@smithy/protocol-http": ^5.1.1 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 61109cfee368b8b20d39efcc050c0a30c4a4355dc4fb1c8521b1ec258c35c454bda9a6489571b01eb14c48e030642fd674d28e6c8083e6e4272b2b24cee0e61e + checksum: 97b6d575d58a0e4b9ec0f25d4f5c89d8bd8db3b552fd7455e48f03678480f8906bd97f705943ad2fc36eb929e14aae793684968e93dd936dd6ad17ab4ed00811 languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^4.0.6": - version: 4.0.6 - resolution: "@smithy/middleware-endpoint@npm:4.0.6" - dependencies: - "@smithy/core": ^3.1.5 - "@smithy/middleware-serde": ^4.0.2 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/shared-ini-file-loader": ^4.0.1 - "@smithy/types": ^4.1.0 - "@smithy/url-parser": ^4.0.1 - "@smithy/util-middleware": ^4.0.1 +"@smithy/middleware-endpoint@npm:^4.1.6, @smithy/middleware-endpoint@npm:^4.1.7": + version: 4.1.7 + resolution: "@smithy/middleware-endpoint@npm:4.1.7" + dependencies: + "@smithy/core": ^3.4.0 + "@smithy/middleware-serde": ^4.0.6 + "@smithy/node-config-provider": ^4.1.2 + "@smithy/shared-ini-file-loader": ^4.0.3 + "@smithy/types": ^4.3.0 + "@smithy/url-parser": ^4.0.3 + "@smithy/util-middleware": ^4.0.3 tslib: ^2.6.2 - checksum: d023df4eeecc0d6148e2d8bbd5aa8272e232ceb92b9e6e7b409fbbd557c41cf15fecfc51c3b90a4437c9941403bcd45e5e7bd24f9a0081ef086d2a0ffd2f226d + checksum: 1c87555ed7465ee33771845332b80c8243a1dbe35b393a97fb570d8faad8a3df4a5dc4492c15b164cb124ff12f38824a8f02ced97dc3b64d288a64598eb985d6 languageName: node linkType: hard -"@smithy/middleware-retry@npm:^4.0.7": - version: 4.0.7 - resolution: "@smithy/middleware-retry@npm:4.0.7" - dependencies: - "@smithy/node-config-provider": ^4.0.1 - "@smithy/protocol-http": ^5.0.1 - "@smithy/service-error-classification": ^4.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 - "@smithy/util-middleware": ^4.0.1 - "@smithy/util-retry": ^4.0.1 +"@smithy/middleware-retry@npm:^4.1.7": + version: 4.1.8 + resolution: "@smithy/middleware-retry@npm:4.1.8" + dependencies: + "@smithy/node-config-provider": ^4.1.2 + "@smithy/protocol-http": ^5.1.1 + "@smithy/service-error-classification": ^4.0.4 + "@smithy/smithy-client": ^4.3.0 + "@smithy/types": ^4.3.0 + "@smithy/util-middleware": ^4.0.3 + "@smithy/util-retry": ^4.0.4 tslib: ^2.6.2 uuid: ^9.0.1 - checksum: 5226c44515fb971889d22c7b93d717be54edd90427f9c967b482255a9cdc3259c717275f42f41af2497702b03e42c4e247a6a397e12b605e98a3a36fdd772929 + checksum: 8186bc70fdf2fcd807b43259fcc76b917b75e1cb1357fae58c1adbb53459cb3a128717555d08ef37e7930b9c483ad38e509f87698eb923cb798d5718ee0ce4a9 languageName: node linkType: hard -"@smithy/middleware-serde@npm:^4.0.2": - version: 4.0.2 - resolution: "@smithy/middleware-serde@npm:4.0.2" +"@smithy/middleware-serde@npm:^4.0.5, @smithy/middleware-serde@npm:^4.0.6": + version: 4.0.6 + resolution: "@smithy/middleware-serde@npm:4.0.6" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/protocol-http": ^5.1.1 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 51f33cf1f34bb7034a49025664b1575d7dd9450a3c12655b49d5804b5eeeec6e024991715d217f661eddc506ad91abc23a8f3c8f0cfeb7e2b45aa079ed61cd85 + checksum: c710829646f6f47574212ec8e34dd5c39a159f36cf43a24d1e1ce993d5033a0064a1e8321b939bbdf6f9e9446613fb97f16892e63aea9e248eddffbc087a3d4f languageName: node linkType: hard -"@smithy/middleware-stack@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/middleware-stack@npm:4.0.1" +"@smithy/middleware-stack@npm:^4.0.2, @smithy/middleware-stack@npm:^4.0.3": + version: 4.0.3 + resolution: "@smithy/middleware-stack@npm:4.0.3" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 21f61adf5071c6c32356c9f6b2423fffc0ba0cfdedae37b5162659e156bec122e03f67a5dac5fbd224f9bbb15a6793fd332cf1a02ea17eda0c4fb7e4ca22ce95 + checksum: c4db64a738848e95781dcaed3b4c22fd112eb3bff8168c841edc59deea5844e3819a7e50fc5fa3332dbac727c6180eef16e09e3f95cc75ebf8ef127ee49c64f0 languageName: node linkType: hard -"@smithy/node-config-provider@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/node-config-provider@npm:4.0.1" +"@smithy/node-config-provider@npm:^4.1.1, @smithy/node-config-provider@npm:^4.1.2": + version: 4.1.2 + resolution: "@smithy/node-config-provider@npm:4.1.2" dependencies: - "@smithy/property-provider": ^4.0.1 - "@smithy/shared-ini-file-loader": ^4.0.1 - "@smithy/types": ^4.1.0 + "@smithy/property-provider": ^4.0.3 + "@smithy/shared-ini-file-loader": ^4.0.3 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: e997b3732a686e1dd9c5544a97fb18519acb45d522700045301391eee4a7b305a31ed68dd3a407fe754bebdfd4b759d8128a4bc80cdcd490113934ef8c3aaaa7 + checksum: 2796c79606df5824b45cbb5aafcf4a455c81ce3b5ece69257079f6e82a57adea911f7f014394e6aea84be46469f05fa96647e5b5b88309c746ba86329a7a490b languageName: node linkType: hard -"@smithy/node-http-handler@npm:^4.0.3": - version: 4.0.3 - resolution: "@smithy/node-http-handler@npm:4.0.3" +"@smithy/node-http-handler@npm:^4.0.4, @smithy/node-http-handler@npm:^4.0.5": + version: 4.0.5 + resolution: "@smithy/node-http-handler@npm:4.0.5" dependencies: - "@smithy/abort-controller": ^4.0.1 - "@smithy/protocol-http": ^5.0.1 - "@smithy/querystring-builder": ^4.0.1 - "@smithy/types": ^4.1.0 + "@smithy/abort-controller": ^4.0.3 + "@smithy/protocol-http": ^5.1.1 + "@smithy/querystring-builder": ^4.0.3 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 78d00526df2d54d8a639bebd904dfe35ec51595d341bb8134e81ec57740e4cbbe415db17365f439365a691b42e3ee51b766f4478a9068a86bdf887972df8d876 + checksum: 413bbc73dd745629b2cd9e7017c0ddedc6d45721583799dd2851e7115f49cb4509f764d008310294a635a14a62b2982f3feddc8a5c70c061f683e5edfad6e0dc languageName: node linkType: hard @@ -5682,44 +4978,44 @@ __metadata: languageName: node linkType: hard -"@smithy/property-provider@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/property-provider@npm:4.0.1" +"@smithy/property-provider@npm:^4.0.2, @smithy/property-provider@npm:^4.0.3": + version: 4.0.3 + resolution: "@smithy/property-provider@npm:4.0.3" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: c03bd23a9e707af6201e49d1d7c67d370b630eb39ab60eaebd628bda725105d3ed67392078d6ae73a22be35f7dcec9771fafd2a88c48b532ca717b68fc3c9a33 + checksum: a1d602c696fdebb51b472a53fa88bc5940f2389513a86f30c5632f3ae3bb63b06340c313aed7ffe45dac14f9d46af5513d4303053effd282cd173a796d657b05 languageName: node linkType: hard -"@smithy/protocol-http@npm:^5.0.1": - version: 5.0.1 - resolution: "@smithy/protocol-http@npm:5.0.1" +"@smithy/protocol-http@npm:^5.1.0, @smithy/protocol-http@npm:^5.1.1": + version: 5.1.1 + resolution: "@smithy/protocol-http@npm:5.1.1" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 3978f544aa4bf36bcf2484126f5208f7035b210ca0088f2721edd11dbe7bbddeacb6b9e7ca493437dc7b5fdd0d9d85992f2c6e31846744690f205f852a981a3b + checksum: cb54259c10242627c2df279d1860b659c433955ee8bb8c7629e9e0a953fcd68ceb72a1d66172fb5fdf8ba7a4a49ec812dabac28d4165ad0b929f7f999a8541fc languageName: node linkType: hard -"@smithy/querystring-builder@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/querystring-builder@npm:4.0.1" +"@smithy/querystring-builder@npm:^4.0.3": + version: 4.0.3 + resolution: "@smithy/querystring-builder@npm:4.0.3" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 "@smithy/util-uri-escape": ^4.0.0 tslib: ^2.6.2 - checksum: 8c8486a1c5a8f7cb05db4fdbe213bd02a9b323121da885ff234763d63730aa269ce779adc4dea74715fbf53a7ff4f487d9d51dda33ddb14533ad42166f10b0cb + checksum: 1e1490a2ce5f99cf918eea3da1808e42f486e16aa2a206830e2e12d0d348807570764777bfc04dfab6974ae39ba37424421ff6fabef9f206a1e0fcb6be5ea84d languageName: node linkType: hard -"@smithy/querystring-parser@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/querystring-parser@npm:4.0.1" +"@smithy/querystring-parser@npm:^4.0.3": + version: 4.0.3 + resolution: "@smithy/querystring-parser@npm:4.0.3" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 0ce6963937aa44882aeaf44b6aff68ca08faa927bd93da7adf354dd83b48beaef4246672504d8fc10d91be07e2f78c2b670bb82a46638da573183a69fa393278 + checksum: 3a9fa7f8275ddcad1c59be39eeefc1c245454a3ba7d7e77b2a08c2b5af9bb04d723a5323ab85532a7880a2ea46efb922de605e8d5fdb0265099555c78655df54 languageName: node linkType: hard @@ -5732,53 +5028,53 @@ __metadata: languageName: node linkType: hard -"@smithy/service-error-classification@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/service-error-classification@npm:4.0.1" +"@smithy/service-error-classification@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/service-error-classification@npm:4.0.4" dependencies: - "@smithy/types": ^4.1.0 - checksum: 331c06d7a07cd2f9303cc396e1f9b1d44c785ccb27f4f8f02177b9f496667ffa4df40ae38d2ed1b557cd9c75b5cacb9b00106462dc62094253f8619a7d370343 + "@smithy/types": ^4.3.0 + checksum: 52033f44f7d8793487fdc3ae49a76fae682663b582923fb048c094aed57a7216d2a6e228142ba0daec958b0bcf5dafab35cdb61699dee06bc94a5dc00db7bc4a languageName: node linkType: hard -"@smithy/shared-ini-file-loader@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/shared-ini-file-loader@npm:4.0.1" +"@smithy/shared-ini-file-loader@npm:^4.0.2, @smithy/shared-ini-file-loader@npm:^4.0.3": + version: 4.0.3 + resolution: "@smithy/shared-ini-file-loader@npm:4.0.3" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 54a399800dc32368ad99c5da4fd5eae62de4f9ddd249144b6516493bc42625e83c21ccd7c61d667c88d6000a3f5b42db452c10b870740cc9bec9e6c776607a9e + checksum: fb80886cc59470d06c13e0ca022e0edd07f0f57161a2fc6ddb18989541e5aa97572b0154fd629389b6eb8ddc88c8fd48aa0b2224177261d164663c88b5a121c9 languageName: node linkType: hard -"@smithy/signature-v4@npm:^5.0.1": - version: 5.0.1 - resolution: "@smithy/signature-v4@npm:5.0.1" +"@smithy/signature-v4@npm:^5.1.0": + version: 5.1.1 + resolution: "@smithy/signature-v4@npm:5.1.1" dependencies: "@smithy/is-array-buffer": ^4.0.0 - "@smithy/protocol-http": ^5.0.1 - "@smithy/types": ^4.1.0 + "@smithy/protocol-http": ^5.1.1 + "@smithy/types": ^4.3.0 "@smithy/util-hex-encoding": ^4.0.0 - "@smithy/util-middleware": ^4.0.1 + "@smithy/util-middleware": ^4.0.3 "@smithy/util-uri-escape": ^4.0.0 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: fb6613ce08e2008e3da447eeaafdfdcbd8a428c9d4aaf3220eab77cb33832596885f77966acbee3f753e113ce728f440ca31747908d81d0ecbcf1822c5c7bd28 + checksum: dcf352e20d8f0342cb18b6f745ba1a1d655fc7987b4d742cfd312b70739fbc765ddff1419a1739057559417e75ee71f70f2ca0f2e44c6a9d50294c10c29696b7 languageName: node linkType: hard -"@smithy/smithy-client@npm:^4.1.6": - version: 4.1.6 - resolution: "@smithy/smithy-client@npm:4.1.6" - dependencies: - "@smithy/core": ^3.1.5 - "@smithy/middleware-endpoint": ^4.0.6 - "@smithy/middleware-stack": ^4.0.1 - "@smithy/protocol-http": ^5.0.1 - "@smithy/types": ^4.1.0 - "@smithy/util-stream": ^4.1.2 +"@smithy/smithy-client@npm:^4.2.6, @smithy/smithy-client@npm:^4.3.0": + version: 4.3.0 + resolution: "@smithy/smithy-client@npm:4.3.0" + dependencies: + "@smithy/core": ^3.4.0 + "@smithy/middleware-endpoint": ^4.1.7 + "@smithy/middleware-stack": ^4.0.3 + "@smithy/protocol-http": ^5.1.1 + "@smithy/types": ^4.3.0 + "@smithy/util-stream": ^4.2.1 tslib: ^2.6.2 - checksum: 79e1f2a3fa25cd96986abbaae79a528f2418e888a4f5664941b4f34627571f8de534cc4f0d999d3fa31bc96538c687010f8ca924b13a8021889ee2ecff9451fd + checksum: c7be9b88519cc2d3253087009f446d97925c228e9538c886725f779651b85d8b3b1415da6234d80eaa3dbaeaed86d9849f84de69be34b1d0ec8c336131b662ce languageName: node linkType: hard @@ -5791,23 +5087,23 @@ __metadata: languageName: node linkType: hard -"@smithy/types@npm:^4.1.0": - version: 4.1.0 - resolution: "@smithy/types@npm:4.1.0" +"@smithy/types@npm:^4.2.0, @smithy/types@npm:^4.3.0": + version: 4.3.0 + resolution: "@smithy/types@npm:4.3.0" dependencies: tslib: ^2.6.2 - checksum: ff7dcb7a72a2f5e984df95342ec7276cc3249e57de76d5013bf69314a4dbd081e193c5f849e8e5c3f54be222d861272a90ab15b437678e31958eb2c76f55c689 + checksum: 30bb2985033307c6a25fbc9fa5852d6f4765a4cf53bf9fcddccba002729618a99b006a7eb038177525182ee2dbf96b95a3816209554405a7925977d8e6e0642a languageName: node linkType: hard -"@smithy/url-parser@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/url-parser@npm:4.0.1" +"@smithy/url-parser@npm:^4.0.2, @smithy/url-parser@npm:^4.0.3": + version: 4.0.3 + resolution: "@smithy/url-parser@npm:4.0.3" dependencies: - "@smithy/querystring-parser": ^4.0.1 - "@smithy/types": ^4.1.0 + "@smithy/querystring-parser": ^4.0.3 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 3ec0ebf024a333d20cfe463c246196a188abcd3460014cf535979540e873c5b9f7a13214e221aed31b50dd1f28b24b5eafbb6ef5ae1998987f81622c4ccd156b + checksum: 22ff8c5cf81d1f8b7d29cbe629243ec5d1fbe060ea9c2f5b3fe39bc120641e8f5ea97687904bc8f7c1f3864037a63f863e2ae900ad8047b6aafaeabc53cbb683 languageName: node linkType: hard @@ -5869,42 +5165,42 @@ __metadata: languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^4.0.7": - version: 4.0.7 - resolution: "@smithy/util-defaults-mode-browser@npm:4.0.7" +"@smithy/util-defaults-mode-browser@npm:^4.0.14": + version: 4.0.15 + resolution: "@smithy/util-defaults-mode-browser@npm:4.0.15" dependencies: - "@smithy/property-provider": ^4.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 + "@smithy/property-provider": ^4.0.3 + "@smithy/smithy-client": ^4.3.0 + "@smithy/types": ^4.3.0 bowser: ^2.11.0 tslib: ^2.6.2 - checksum: fde9c6d748b5a57c3057655b1b062dd691a1d94f9111b3ff6bd4e197bdf11c3977e065f445bd6a5960bf2c2e034d2a5d3a94fd68961e0210e31af790f3b50f12 + checksum: 219c8bb80bf75b0e375026352782af7f5110fd6a1b43f4d8fd1cc80bf86955d602c5c6b777aacd9fd677f8aa5c856686814cda22cac2121edff2ab9638899231 languageName: node linkType: hard -"@smithy/util-defaults-mode-node@npm:^4.0.7": - version: 4.0.7 - resolution: "@smithy/util-defaults-mode-node@npm:4.0.7" - dependencies: - "@smithy/config-resolver": ^4.0.1 - "@smithy/credential-provider-imds": ^4.0.1 - "@smithy/node-config-provider": ^4.0.1 - "@smithy/property-provider": ^4.0.1 - "@smithy/smithy-client": ^4.1.6 - "@smithy/types": ^4.1.0 +"@smithy/util-defaults-mode-node@npm:^4.0.14": + version: 4.0.15 + resolution: "@smithy/util-defaults-mode-node@npm:4.0.15" + dependencies: + "@smithy/config-resolver": ^4.1.3 + "@smithy/credential-provider-imds": ^4.0.5 + "@smithy/node-config-provider": ^4.1.2 + "@smithy/property-provider": ^4.0.3 + "@smithy/smithy-client": ^4.3.0 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 75e335ea6303d0708a1efdcf9639932a39d6e07ed13d30df289dbd477c9724b15db43af761a498d0bf03404b67575dadbb43d7745fee6d53b74cd9338bda6daf + checksum: 8c15d3d92e322dc4c323b9faa2a7e357381da4cec9205e07fcd63a0de3160373aecfd9ccc733c39cc94e38834f2465d4fcc248678acae99fd2fedf60804b9403 languageName: node linkType: hard -"@smithy/util-endpoints@npm:^3.0.1": - version: 3.0.1 - resolution: "@smithy/util-endpoints@npm:3.0.1" +"@smithy/util-endpoints@npm:^3.0.4": + version: 3.0.5 + resolution: "@smithy/util-endpoints@npm:3.0.5" dependencies: - "@smithy/node-config-provider": ^4.0.1 - "@smithy/types": ^4.1.0 + "@smithy/node-config-provider": ^4.1.2 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 2d351e297353fb624ba564b46ecf324376bc8fe34529ab4551e1d640c3b0317613a620c28977819db2c2d240791ff354d1d996fda119c0c4885a11507fb86af6 + checksum: 577113e836d469f44ab7c6afee9ef589ea29842c840adf603526576ee7482310ef1d7a8f7e5605260d12aac5d718b86d3aae257d625bd2d6483d6d529e07c8ad languageName: node linkType: hard @@ -5917,13 +5213,13 @@ __metadata: languageName: node linkType: hard -"@smithy/util-middleware@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/util-middleware@npm:4.0.1" +"@smithy/util-middleware@npm:^4.0.2, @smithy/util-middleware@npm:^4.0.3": + version: 4.0.3 + resolution: "@smithy/util-middleware@npm:4.0.3" dependencies: - "@smithy/types": ^4.1.0 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 1402e0abd9bfeb0d8b0033ad1b572984df1469dccf9f562353ec0133691826cdd85aa180616267819f80d8bb56c57f5a3a2ae92033f52cd8249230a6e670343b + checksum: 8c564d69f27e0166de14c85df062af14f45b652bc3246f64adb03fae01fcffa913b808410f55a4d5d00f9f086bb96d4f59b23fa430d4aa35d4a7da629d867971 languageName: node linkType: hard @@ -5938,30 +5234,30 @@ __metadata: languageName: node linkType: hard -"@smithy/util-retry@npm:^4.0.1": - version: 4.0.1 - resolution: "@smithy/util-retry@npm:4.0.1" +"@smithy/util-retry@npm:^4.0.3, @smithy/util-retry@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/util-retry@npm:4.0.4" dependencies: - "@smithy/service-error-classification": ^4.0.1 - "@smithy/types": ^4.1.0 + "@smithy/service-error-classification": ^4.0.4 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 29f8afd444f4b692ebd8cb2d0f6045ac0d5ca3834c0b6bbfdf1f6c1faec17c7bdc9734413ba93c55a672d373900aaf08e3c9f2023b3ec9b60c057afb8bcb4966 + checksum: 8d29f2c75d1b3a19dd0257cb2dddc700dab7bbd76bb47677f5f0134ca20850be727f2e038672b500729e91e57d1f8dd96f95b51184f4e804be5fde07b23f4168 languageName: node linkType: hard -"@smithy/util-stream@npm:^4.1.2": - version: 4.1.2 - resolution: "@smithy/util-stream@npm:4.1.2" +"@smithy/util-stream@npm:^4.2.0, @smithy/util-stream@npm:^4.2.1": + version: 4.2.1 + resolution: "@smithy/util-stream@npm:4.2.1" dependencies: - "@smithy/fetch-http-handler": ^5.0.1 - "@smithy/node-http-handler": ^4.0.3 - "@smithy/types": ^4.1.0 + "@smithy/fetch-http-handler": ^5.0.3 + "@smithy/node-http-handler": ^4.0.5 + "@smithy/types": ^4.3.0 "@smithy/util-base64": ^4.0.0 "@smithy/util-buffer-from": ^4.0.0 "@smithy/util-hex-encoding": ^4.0.0 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: 6faea1450d266984e11611047fbcc4b23922ede59c797e143f7f31142984d04787a686dddc5e84707f1d8d139097af077231ecbd304b15df2946590684728f35 + checksum: d2f3a12a74d2edd71a95457ce2be6585e460743bccb9a1ab966c91f04978e12d8a426d4e3da0626a5259b08cd655e469a5858a465ce975b395d8fa962786918b languageName: node linkType: hard @@ -5994,14 +5290,14 @@ __metadata: languageName: node linkType: hard -"@smithy/util-waiter@npm:^4.0.2": - version: 4.0.2 - resolution: "@smithy/util-waiter@npm:4.0.2" +"@smithy/util-waiter@npm:^4.0.3": + version: 4.0.4 + resolution: "@smithy/util-waiter@npm:4.0.4" dependencies: - "@smithy/abort-controller": ^4.0.1 - "@smithy/types": ^4.1.0 + "@smithy/abort-controller": ^4.0.3 + "@smithy/types": ^4.3.0 tslib: ^2.6.2 - checksum: 8e5cbf0ea3d93e3bc834b2db8e158c2a84a1c36f5163d4b9b925f6444c5be60c23803b6afb323de2d32f16f08f3e03e8e423bc7e8b531bbf9ff6e23f42554fe9 + checksum: fd5278f88cc50010003240893ae24f1c4678675e347e0a0fc854520889b035aa844c3064d947d1d3288cca15cab1316e075fe7b9d3e6df050d259e244bbfacd0 languageName: node linkType: hard @@ -6071,11 +5367,11 @@ __metadata: linkType: hard "@types/babel__generator@npm:*": - version: 7.6.8 - resolution: "@types/babel__generator@npm:7.6.8" + version: 7.27.0 + resolution: "@types/babel__generator@npm:7.27.0" dependencies: "@babel/types": ^7.0.0 - checksum: 5b332ea336a2efffbdeedb92b6781949b73498606ddd4205462f7d96dafd45ff3618770b41de04c4881e333dd84388bfb8afbdf6f2764cbd98be550d85c6bb48 + checksum: e6739cacfa276c1ad38e1d8a6b4b1f816c2c11564e27f558b68151728489aaf0f4366992107ee4ed7615dfa303f6976dedcdce93df2b247116d1bcd1607ee260 languageName: node linkType: hard @@ -6090,11 +5386,11 @@ __metadata: linkType: hard "@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.20.6 - resolution: "@types/babel__traverse@npm:7.20.6" + version: 7.20.7 + resolution: "@types/babel__traverse@npm:7.20.7" dependencies: "@babel/types": ^7.20.7 - checksum: 2bdc65eb62232c2d5c1086adeb0c31e7980e6fd7e50a3483b4a724a1a1029c84d9cb59749cf8de612f9afa2bc14c85b8f50e64e21f8a4398fa77eb9059a4283c + checksum: 2a2e5ad29c34a8b776162b0fe81c9ccb6459b2b46bf230f756ba0276a0258fcae1cbcfdccbb93a1e8b1df44f4939784ee8a1a269f95afe0c78b24b9cb6d50dd1 languageName: node linkType: hard @@ -6187,9 +5483,9 @@ __metadata: linkType: hard "@types/lodash@npm:*": - version: 4.17.16 - resolution: "@types/lodash@npm:4.17.16" - checksum: 915618c5735b10007e0ed7d06fdce6b344f88fc721d492b189a69064bfd046d2382e1ba61d683eeb61cad60ca0286cd110e6fe0fa4ab2e99066a40478376831d + version: 4.17.17 + resolution: "@types/lodash@npm:4.17.17" + checksum: cfa34a752f3c540a196e9f92dbaff93ae15fe4058da8cce1918dd9219076dc19eec33b043aae45865e2b3ef8234a845bb57366144ec8e52551e2bc3f119e04a1 languageName: node linkType: hard @@ -6224,11 +5520,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=13.7.0": - version: 22.13.11 - resolution: "@types/node@npm:22.13.11" + version: 22.15.21 + resolution: "@types/node@npm:22.15.21" dependencies: - undici-types: ~6.20.0 - checksum: 82d8e0ff385ddcdd0c4d07967ae1e1bbadf3b26143fbf9e16b35652c6080fd783333e9fc828188d8918e03c526433de6b5c0eaa07374873801982251568da030 + undici-types: ~6.21.0 + checksum: 989f1ce3a99916a7298ae885210385fbcb339b07f8ef420b015d69dd68863aca68aeae07833736b300720d9394b8e1875600ce74166c24957d9907d29de0b788 languageName: node linkType: hard @@ -6274,21 +5570,21 @@ __metadata: linkType: hard "@types/react@npm:*": - version: 19.0.12 - resolution: "@types/react@npm:19.0.12" + version: 19.1.5 + resolution: "@types/react@npm:19.1.5" dependencies: csstype: ^3.0.2 - checksum: 795f27287e44ef5f81ef9e8439ede54c16d692eb7aadcfc314a2e2de6160033e32d3ee9ce7027e05417e9d80f57a4eb22a6a9cbc40a0a12346c71a1fce939956 + checksum: 49c01b9d1874e11c02c26f08623474d86093ae02c76cf2b9c952093d855fab505ab8d8aaa162200270bd7b1fc03033859db24f6599affa1d05c5fe46374ecafc languageName: node linkType: hard "@types/react@npm:^18, @types/react@npm:^18.2.6": - version: 18.3.19 - resolution: "@types/react@npm:18.3.19" + version: 18.3.22 + resolution: "@types/react@npm:18.3.22" dependencies: "@types/prop-types": "*" csstype: ^3.0.2 - checksum: 41305614686cfc618ef154f06d3f80e7b2df4673ebbc474880c524ecbbaa48f14620b3b1c6cff9f225176932d362c62fe617020027069157cb040752902c35cb + checksum: e69bdec2df18397e0ecc48e0e858ba331e56130b0b2cd1561098dcdddf04a8aa1ae0b51a294d60d0ade13bfabe5670131a3bd82bedca3b323d51de2b9cd0debd languageName: node linkType: hard @@ -6305,9 +5601,9 @@ __metadata: linkType: hard "@types/semver@npm:^7.3.12": - version: 7.5.8 - resolution: "@types/semver@npm:7.5.8" - checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 + version: 7.7.0 + resolution: "@types/semver@npm:7.7.0" + checksum: d488eaeddb23879a0a8a759bed667e1a76cb0dd4d23e3255538e24c189db387357953ca9e7a3bda2bb7f95e84cac8fe0db4fbe6b3456e893043337732d1d23cc languageName: node linkType: hard @@ -6381,30 +5677,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.57.1": - version: 5.62.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.62.0" - dependencies: - "@eslint-community/regexpp": ^4.4.0 - "@typescript-eslint/scope-manager": 5.62.0 - "@typescript-eslint/type-utils": 5.62.0 - "@typescript-eslint/utils": 5.62.0 - debug: ^4.3.4 - graphemer: ^1.4.0 - ignore: ^5.2.0 - natural-compare-lite: ^1.4.0 - semver: ^7.3.7 - tsutils: ^3.21.0 - peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: fc104b389c768f9fa7d45a48c86d5c1ad522c1d0512943e782a56b1e3096b2cbcc1eea3fcc590647bf0658eef61aac35120a9c6daf979bf629ad2956deb516a1 - languageName: node - linkType: hard - "@typescript-eslint/eslint-plugin@npm:^7.1.1": version: 7.18.0 resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" @@ -6445,23 +5717,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.57.1": - version: 5.62.0 - resolution: "@typescript-eslint/parser@npm:5.62.0" - dependencies: - "@typescript-eslint/scope-manager": 5.62.0 - "@typescript-eslint/types": 5.62.0 - "@typescript-eslint/typescript-estree": 5.62.0 - debug: ^4.3.4 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: d168f4c7f21a7a63f47002e2d319bcbb6173597af5c60c1cf2de046b46c76b4930a093619e69faf2d30214c29ab27b54dcf1efc7046a6a6bd6f37f59a990e752 - languageName: node - linkType: hard - "@typescript-eslint/parser@npm:^7.1.1": version: 7.18.0 resolution: "@typescript-eslint/parser@npm:7.18.0" @@ -6527,23 +5782,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/type-utils@npm:5.62.0" - dependencies: - "@typescript-eslint/typescript-estree": 5.62.0 - "@typescript-eslint/utils": 5.62.0 - debug: ^4.3.4 - tsutils: ^3.21.0 - peerDependencies: - eslint: "*" - peerDependenciesMeta: - typescript: - optional: true - checksum: fc41eece5f315dfda14320be0da78d3a971d650ea41300be7196934b9715f3fe1120a80207551eb71d39568275dbbcf359bde540d1ca1439d8be15e9885d2739 - languageName: node - linkType: hard - "@typescript-eslint/type-utils@npm:7.18.0": version: 7.18.0 resolution: "@typescript-eslint/type-utils@npm:7.18.0" @@ -6655,7 +5893,21 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.62.0, @typescript-eslint/utils@npm:^5.10.0": +"@typescript-eslint/utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/typescript-estree": 7.18.0 + peerDependencies: + eslint: ^8.56.0 + checksum: 751dbc816dab8454b7dc6b26a56671dbec08e3f4ef94c2661ce1c0fc48fa2d05a64e03efe24cba2c22d03ba943cd3c5c7a5e1b7b03bbb446728aec1c640bd767 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:^5.10.0": version: 5.62.0 resolution: "@typescript-eslint/utils@npm:5.62.0" dependencies: @@ -6673,20 +5925,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/utils@npm:7.18.0" - dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 7.18.0 - "@typescript-eslint/types": 7.18.0 - "@typescript-eslint/typescript-estree": 7.18.0 - peerDependencies: - eslint: ^8.56.0 - checksum: 751dbc816dab8454b7dc6b26a56671dbec08e3f4ef94c2661ce1c0fc48fa2d05a64e03efe24cba2c22d03ba943cd3c5c7a5e1b7b03bbb446728aec1c640bd767 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:5.61.0": version: 5.61.0 resolution: "@typescript-eslint/visitor-keys@npm:5.61.0" @@ -6799,17 +6037,17 @@ __metadata: version: 0.0.0-use.local resolution: "DdSdkReactNativeExample@workspace:example-new-architecture" dependencies: - "@babel/core": ^7.20.0 - "@babel/preset-env": ^7.20.0 - "@babel/runtime": ^7.20.0 + "@babel/core": ^7.25.2 + "@babel/preset-env": ^7.25.3 + "@babel/runtime": ^7.25.0 "@datadog/mobile-react-native": "workspace:packages/core" - "@react-native-community/cli-platform-android": 13.6.9 - "@react-native/babel-preset": 0.75.4 - "@react-native/codegen": ^0.75.4 - "@react-native/eslint-config": 0.75.4 - "@react-native/gradle-plugin": ^0.75.4 - "@react-native/metro-config": 0.75.4 - "@react-native/typescript-config": 0.75.4 + "@react-native-community/cli": 15.0.1 + "@react-native-community/cli-platform-android": 15.0.1 + "@react-native-community/cli-platform-ios": 15.0.1 + "@react-native/babel-preset": 0.76.9 + "@react-native/eslint-config": 0.76.9 + "@react-native/metro-config": 0.76.9 + "@react-native/typescript-config": 0.76.9 "@types/react": ^18.2.6 "@types/react-test-renderer": ^18.0.0 babel-jest: ^29.6.3 @@ -6817,7 +6055,7 @@ __metadata: jest: ^29.6.3 prettier: ^2.8.8 react: 18.3.1 - react-native: 0.75.4 + react-native: 0.76.9 react-test-renderer: 18.3.1 typescript: 5.0.4 languageName: unknown @@ -6843,9 +6081,9 @@ __metadata: linkType: hard "abbrev@npm:^3.0.0": - version: 3.0.0 - resolution: "abbrev@npm:3.0.0" - checksum: 2500075b5ef85e97c095ab6ab2ea640dcf90bb388f46398f4d347b296f53399f984ec9462c74bee81df6bba56ef5fd9dbc2fb29076b1feb0023e0f52d43eb984 + version: 3.0.1 + resolution: "abbrev@npm:3.0.1" + checksum: e70b209f5f408dd3a3bbd0eec4b10a2ffd64704a4a3821d0969d84928cc490a8eb60f85b78a95622c1841113edac10161c62e52f5e7d0027aa26786a8136e02e languageName: node linkType: hard @@ -6886,7 +6124,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.14.0, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.14.0, acorn@npm:^8.9.0": version: 8.14.1 resolution: "acorn@npm:8.14.1" bin: @@ -7445,14 +6683,32 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.6.1": - version: 0.6.4 - resolution: "babel-plugin-polyfill-regenerator@npm:0.6.4" +"babel-plugin-polyfill-regenerator@npm:^0.6.1": + version: 0.6.4 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.4" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.6.4 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: f4d4a803834ffa72713579d696586d8cc654c0025cbd5ec775fc5d37faa00381dcb80e5b97d4b16059443352653585596d87848b5590b1d8670c235408e73fb3 + languageName: node + linkType: hard + +"babel-plugin-syntax-hermes-parser@npm:^0.23.1": + version: 0.23.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.23.1" + dependencies: + hermes-parser: 0.23.1 + checksum: 5412008e8e85b08cd0d78168f746ade68b8ed69c0068831ce5e3d028f01c644f546ca0e2b7c9a4a8c6b9d5f14aff84c2453ab44b19cbec55e4366b20bbba9040 + languageName: node + linkType: hard + +"babel-plugin-syntax-hermes-parser@npm:^0.25.1": + version: 0.25.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.25.1" dependencies: - "@babel/helper-define-polyfill-provider": ^0.6.4 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: f4d4a803834ffa72713579d696586d8cc654c0025cbd5ec775fc5d37faa00381dcb80e5b97d4b16059443352653585596d87848b5590b1d8670c235408e73fb3 + hermes-parser: 0.25.1 + checksum: dc80fafde1aed8e60cf86ecd2e9920e7f35ffe02b33bd4e772daaa786167bcf508aac3fc1aea425ff4c7a0be94d82528f3fe8619b7f41dac853264272d640c04 languageName: node linkType: hard @@ -7547,9 +6803,9 @@ __metadata: linkType: hard "bignumber.js@npm:^9.0.0": - version: 9.1.2 - resolution: "bignumber.js@npm:9.1.2" - checksum: 582c03af77ec9cb0ebd682a373ee6c66475db94a4325f92299621d544aa4bd45cb45fd60001610e94aef8ae98a0905fa538241d9638d4422d57abbeeac6fadaf + version: 9.3.0 + resolution: "bignumber.js@npm:9.3.0" + checksum: 580d783d60246e758e527fa879ae0d282d8f250f555dd0fcee1227d680186ceba49ed7964c6d14e2e8d8eac7a2f4dd6ef1b7925dc52f5fc28a5a87639dd2dbd1 languageName: node linkType: hard @@ -7637,16 +6893,16 @@ __metadata: linkType: hard "browserslist@npm:^4.20.4, browserslist@npm:^4.24.0, browserslist@npm:^4.24.4": - version: 4.24.4 - resolution: "browserslist@npm:4.24.4" + version: 4.24.5 + resolution: "browserslist@npm:4.24.5" dependencies: - caniuse-lite: ^1.0.30001688 - electron-to-chromium: ^1.5.73 + caniuse-lite: ^1.0.30001716 + electron-to-chromium: ^1.5.149 node-releases: ^2.0.19 - update-browserslist-db: ^1.1.1 + update-browserslist-db: ^1.1.3 bin: browserslist: cli.js - checksum: 64074bf6cf0a9ae3094d753270e3eae9cf925149db45d646f0bc67bacc2e46d7ded64a4e835b95f5fdcf0350f63a83c3755b32f80831f643a47f0886deb8a065 + checksum: 69310ade58b0cb2b2871022fdaba8388902f9a2d17a6fa05f383d046d6da87fd9f83018a66fe1c6296648ca7d52e3208c3fc68c82f17a0fd4bf12a452c036247 languageName: node linkType: hard @@ -7666,7 +6922,7 @@ __metadata: languageName: node linkType: hard -"buffer-equal-constant-time@npm:1.0.1": +"buffer-equal-constant-time@npm:^1.0.1": version: 1.0.1 resolution: "buffer-equal-constant-time@npm:1.0.1" checksum: 80bb945f5d782a56f374b292770901065bad21420e34936ecbe949e57724b4a13874f735850dd1cc61f078773c4fb5493a41391e7bda40d1fa388d6bd80daaab @@ -7840,10 +7096,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001688": - version: 1.0.30001706 - resolution: "caniuse-lite@npm:1.0.30001706" - checksum: e164acd9d40b36fd0bfbd779962dc2c5e67defa932c1c8e1d36f1fdb96eafd18d524d1d28cfa93444c0f414470da413007916dc4a215398e035003749281685b +"caniuse-lite@npm:^1.0.30001716": + version: 1.0.30001718 + resolution: "caniuse-lite@npm:1.0.30001718" + checksum: c6598b6eb2c4358fc9f8ead8982bf5f9efdc1f29bb74948b9481d314ced10675bd0beb99771094ac52d56c2cec121049d1f18e9405cab7d81807816d1836b38a languageName: node linkType: hard @@ -7933,20 +7189,6 @@ __metadata: languageName: node linkType: hard -"chromium-edge-launcher@npm:^1.0.0": - version: 1.0.0 - resolution: "chromium-edge-launcher@npm:1.0.0" - dependencies: - "@types/node": "*" - escape-string-regexp: ^4.0.0 - is-wsl: ^2.2.0 - lighthouse-logger: ^1.0.0 - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: 77ce4fc03e7ee6f72383cc23c9b34a18ff368fcce8d23bcdc777c603c6d48ae25d3b79be5a1256e7edeec65f6e2250245a5372175454a329bcc99df672160ee4 - languageName: node - linkType: hard - "ci-info@npm:^2.0.0": version: 2.0.0 resolution: "ci-info@npm:2.0.0" @@ -8213,6 +7455,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^12.0.0": + version: 12.1.0 + resolution: "commander@npm:12.1.0" + checksum: 68e9818b00fc1ed9cdab9eb16905551c2b768a317ae69a5e3c43924c2b20ac9bb65b27e1cab36aeda7b6496376d4da908996ba2c0b5d79463e0fb1e77935d514 + languageName: node + linkType: hard + "commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -8435,11 +7684,11 @@ __metadata: linkType: hard "core-js-compat@npm:^3.40.0": - version: 3.41.0 - resolution: "core-js-compat@npm:3.41.0" + version: 3.42.0 + resolution: "core-js-compat@npm:3.42.0" dependencies: browserslist: ^4.24.4 - checksum: 060f6d6ede3a5f201462ae6f54975ca4eefdb731c4983950c54bc81411fc1c2865a9e916091d034b5229d4dcb79e0f5f8aeda5eeb7a31d940550a5c14e8e8729 + checksum: 4f0a7db9ed9a95c4edae0749fe9a4d4d4f8f51a53c7c3e06049887500e98763732e8afef9628d2145f875b6e262567e951a77e4d06273f9eac273f5241259fd3 languageName: node linkType: hard @@ -8450,7 +7699,7 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^5.0.5, cosmiconfig@npm:^5.1.0": +"cosmiconfig@npm:^5.0.5": version: 5.2.1 resolution: "cosmiconfig@npm:5.2.1" dependencies: @@ -8647,10 +7896,10 @@ __metadata: languageName: node linkType: hard -"dc-polyfill@npm:^0.1.4": - version: 0.1.7 - resolution: "dc-polyfill@npm:0.1.7" - checksum: 5e03bf363467595f78688758073ace14510d11f12c5f0480cf37314c26a6f4b4eaa4aedb135265857a80b22099d7ce50ab9c684320c49b4c771b12e24752544e +"dc-polyfill@npm:0.1.8": + version: 0.1.8 + resolution: "dc-polyfill@npm:0.1.8" + checksum: 8605da3baaf191788c66d62287702789adfb8b5159cd78267623e6c8d8f0002d36a1e90d76b457f5f60ce36e9f909262cd8b3042fde506b82aa66205afe94bdd languageName: node linkType: hard @@ -8658,9 +7907,9 @@ __metadata: version: 0.0.0-use.local resolution: "dd-sdk-reactnative-example@workspace:example" dependencies: - "@babel/core": ^7.20.0 - "@babel/preset-env": ^7.20.0 - "@babel/runtime": ^7.20.0 + "@babel/core": ^7.25.2 + "@babel/preset-env": ^7.25.3 + "@babel/runtime": ^7.25.0 "@datadog/datadog-ci": ^2.39.0 "@datadog/mobile-react-native": "workspace:packages/core" "@datadog/mobile-react-native-navigation": "workspace:packages/react-native-navigation" @@ -8668,14 +7917,13 @@ __metadata: "@datadog/mobile-react-native-webview": "workspace:packages/react-native-webview" "@datadog/mobile-react-navigation": "workspace:packages/react-navigation" "@react-native-async-storage/async-storage": ^2.1.2 - "@react-native-community/cli-platform-android": 13.6.9 - "@react-native-community/masked-view": ^0.1.10 - "@react-native/babel-preset": 0.75.4 - "@react-native/codegen": ^0.75.4 - "@react-native/eslint-config": 0.75.4 - "@react-native/gradle-plugin": ^0.75.4 - "@react-native/metro-config": 0.75.4 - "@react-native/typescript-config": 0.75.4 + "@react-native-community/cli": 15.0.1 + "@react-native-community/cli-platform-android": 15.0.1 + "@react-native-community/cli-platform-ios": 15.0.1 + "@react-native/babel-preset": 0.76.9 + "@react-native/eslint-config": 0.76.9 + "@react-native/metro-config": 0.76.9 + "@react-native/typescript-config": 0.76.9 "@react-navigation/bottom-tabs": ^6.3.1 "@react-navigation/native": ^6.1.18 "@react-navigation/stack": ^6.2.1 @@ -8685,10 +7933,10 @@ __metadata: patch-package: ^8.0.0 postinstall-postinstall: ^2.1.0 react: 18.3.1 - react-native: 0.75.4 + react-native: 0.76.9 react-native-crash-tester: 0.2.3 react-native-gesture-handler: ^2.24.0 - react-native-navigation: 7.40.1 + react-native-navigation: 8.0.0-snapshot.1658 react-native-safe-area-context: 5.1.0 react-native-screens: 4.5.0 react-native-webview: ^13.13.4 @@ -8699,12 +7947,17 @@ __metadata: version: 0.0.0-use.local resolution: "dd-sdk-reactnative@workspace:." dependencies: - "@babel/plugin-transform-runtime": 7.12.15 + "@babel/core": ^7.25.2 + "@babel/plugin-transform-runtime": ^7.25.0 + "@babel/preset-env": ^7.25.3 + "@babel/runtime": ^7.25.0 "@react-native-community/cli": 15.0.1 - "@react-native/babel-preset": 0.73.21 - "@react-native/eslint-config": 0.73.2 - "@react-native/metro-config": 0.73.5 - "@react-native/typescript-config": 0.73.1 + "@react-native-community/cli-platform-android": 15.0.1 + "@react-native-community/cli-platform-ios": 15.0.1 + "@react-native/babel-preset": 0.76.9 + "@react-native/eslint-config": 0.76.9 + "@react-native/metro-config": 0.76.9 + "@react-native/typescript-config": 0.76.9 "@testing-library/react-native": 7.0.2 "@types/jest": ^29.5.0 "@types/react": ^18.2.6 @@ -8726,12 +7979,12 @@ __metadata: lerna: 8.1.6 pod-install: 0.1.14 prettier: 2.2.0 - react: 18.2.0 - react-native: 0.73.9 + react: 18.3.1 + react-native: 0.76.9 react-native-builder-bob: 0.26.0 react-native-gradle-plugin: ^0.71.19 react-native-webview: 13.12.2 - react-test-renderer: 18.1.0 + react-test-renderer: 18.3.1 typescript: 5.0.4 peerDependencies: react: "*" @@ -8740,21 +7993,21 @@ __metadata: linkType: soft "dd-trace@npm:^5.28.0": - version: 5.43.0 - resolution: "dd-trace@npm:5.43.0" - dependencies: - "@datadog/libdatadog": ^0.5.0 - "@datadog/native-appsec": 8.5.0 - "@datadog/native-iast-rewriter": 2.8.0 - "@datadog/native-iast-taint-tracking": 3.3.0 - "@datadog/native-metrics": ^3.1.0 - "@datadog/pprof": 5.6.0 + version: 5.53.0 + resolution: "dd-trace@npm:5.53.0" + dependencies: + "@datadog/libdatadog": ^0.5.1 + "@datadog/native-appsec": 8.5.2 + "@datadog/native-iast-taint-tracking": 4.0.0 + "@datadog/native-metrics": ^3.1.1 + "@datadog/pprof": 5.8.0 "@datadog/sketches-js": ^2.1.0 + "@datadog/wasm-js-rewriter": 4.0.1 "@isaacs/ttlcache": ^1.4.1 "@opentelemetry/api": ">=1.0.0 <1.9.0" "@opentelemetry/core": ^1.14.0 crypto-randomuuid: ^1.0.0 - dc-polyfill: ^0.1.4 + dc-polyfill: 0.1.8 ignore: ^5.2.4 import-in-the-middle: 1.13.1 istanbul-lib-coverage: 3.2.0 @@ -8764,6 +8017,7 @@ __metadata: lodash.sortby: ^4.7.0 lru-cache: ^7.14.0 module-details-from-path: ^1.0.3 + mutexify: ^1.4.0 opentracing: ">=0.12.1" path-to-regexp: ^0.1.12 pprof-format: ^2.1.0 @@ -8775,7 +8029,7 @@ __metadata: source-map: ^0.7.4 tlhunter-sorted-set: ^0.1.0 ttl-set: ^1.0.0 - checksum: d713477aba1068f954c2c5fc073ae0e436e4aa26c2d0a04cb841d94f19c5a74f1d70afae8032484a15479e51b26cf8d83abbaeb9a5439903fa682bec71d8bc2a + checksum: 843af82d30547a0a08d11ed3a3c2afa59b729096f6f23602e43d217a84348689601d9a5a680c3707bd07bf59651c01676c65797e9da3d9d0afb0e664620f7d70 languageName: node linkType: hard @@ -8798,14 +8052,14 @@ __metadata: linkType: hard "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": - version: 4.4.0 - resolution: "debug@npm:4.4.0" + version: 4.4.1 + resolution: "debug@npm:4.4.1" dependencies: ms: ^2.1.3 peerDependenciesMeta: supports-color: optional: true - checksum: fb42df878dd0e22816fc56e1fdca9da73caa85212fbe40c868b1295a6878f9101ae684f4eeef516c13acfc700f5ea07f1136954f43d4cd2d477a811144136479 + checksum: a43826a01cda685ee4cec00fb2d3322eaa90ccadbef60d9287debc2a886be3e835d9199c80070ede75a409ee57828c4c6cd80e4b154f2843f0dc95a570dc0729 languageName: node linkType: hard @@ -8842,7 +8096,7 @@ __metadata: languageName: node linkType: hard -"dedent@npm:1.5.3, dedent@npm:^1.0.0": +"dedent@npm:1.5.3": version: 1.5.3 resolution: "dedent@npm:1.5.3" peerDependencies: @@ -8861,6 +8115,18 @@ __metadata: languageName: node linkType: hard +"dedent@npm:^1.0.0": + version: 1.6.0 + resolution: "dedent@npm:1.6.0" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: ecaa83968b3db4ffeadf8f679c01280f8679ec79993d7e203c0281d7926e883bb79f42b263ba0df1f78e146e4b0be1b9a5b922b1fe040cb89b09977bc9c25b38 + languageName: node + linkType: hard + "deep-extend@npm:0.6.0, deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -8968,13 +8234,6 @@ __metadata: languageName: node linkType: hard -"denodeify@npm:^1.2.1": - version: 1.2.1 - resolution: "denodeify@npm:1.2.1" - checksum: a85c8f7fce5626e311edd897c27ad571b29393c4a739dc29baee48328e09edd82364ff697272dd612462c67e48b4766389642b5bdfaea0dc114b7c6a276c0eae - languageName: node - linkType: hard - "depd@npm:2.0.0": version: 2.0.0 resolution: "depd@npm:2.0.0" @@ -8982,17 +8241,6 @@ __metadata: languageName: node linkType: hard -"deprecated-react-native-prop-types@npm:^5.0.0": - version: 5.0.0 - resolution: "deprecated-react-native-prop-types@npm:5.0.0" - dependencies: - "@react-native/normalize-colors": ^0.73.0 - invariant: ^2.2.4 - prop-types: ^15.8.1 - checksum: ccbd4214733a178ef51934c4e0149f5c3ab60aa318d68500b6d6b4b59be9d6c25b844f808ed7095d82e1bbef6fc4bc49e0dea14d55d3ebd1ff383011ac2a1576 - languageName: node - linkType: hard - "deprecation@npm:^2.0.0": version: 2.3.1 resolution: "deprecation@npm:2.3.1" @@ -9114,7 +8362,14 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^16.4.5, dotenv@npm:~16.4.5": +"dotenv@npm:^16.4.5": + version: 16.5.0 + resolution: "dotenv@npm:16.5.0" + checksum: 6543fe87b5ddf2d60dd42df6616eec99148a5fc150cb4530fef5bda655db5204a3afa0e6f25f7cd64b20657ace4d79c0ef974bec32fdb462cad18754191e7a90 + languageName: node + linkType: hard + +"dotenv@npm:~16.4.5": version: 16.4.7 resolution: "dotenv@npm:16.4.7" checksum: c27419b5875a44addcc56cc69b7dc5b0e6587826ca85d5b355da9303c6fc317fc9989f1f18366a16378c9fdd9532d14117a1abe6029cc719cdbbef6eaef2cea4 @@ -9195,10 +8450,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.73": - version: 1.5.123 - resolution: "electron-to-chromium@npm:1.5.123" - checksum: cdcf83e58ccab30ed25a1aae35e54dbaa268efa8c8f01b57d1fbac62529f5d561218fb6b3bd518cc8d6c4fdd3ceda4f98081a96a1dffe34d51be295916542c31 +"electron-to-chromium@npm:^1.5.149": + version: 1.5.157 + resolution: "electron-to-chromium@npm:1.5.157" + checksum: 479d1bb9458f0e19d0853a7f423b8a2468ca0f4a36772bfe115460183bc94662d63d4a4cde98c4aaf3c06e1840646e85dd48ef854ddf634fd169c6504540ea44 languageName: node linkType: hard @@ -9283,7 +8538,7 @@ __metadata: languageName: node linkType: hard -"envinfo@npm:^7.10.0, envinfo@npm:^7.13.0": +"envinfo@npm:^7.13.0": version: 7.14.0 resolution: "envinfo@npm:7.14.0" bin: @@ -9328,25 +8583,25 @@ __metadata: linkType: hard "es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": - version: 1.23.9 - resolution: "es-abstract@npm:1.23.9" + version: 1.23.10 + resolution: "es-abstract@npm:1.23.10" dependencies: array-buffer-byte-length: ^1.0.2 arraybuffer.prototype.slice: ^1.0.4 available-typed-arrays: ^1.0.7 call-bind: ^1.0.8 - call-bound: ^1.0.3 + call-bound: ^1.0.4 data-view-buffer: ^1.0.2 data-view-byte-length: ^1.0.2 data-view-byte-offset: ^1.0.1 es-define-property: ^1.0.1 es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 + es-object-atoms: ^1.1.1 es-set-tostringtag: ^2.1.0 es-to-primitive: ^1.3.0 function.prototype.name: ^1.1.8 - get-intrinsic: ^1.2.7 - get-proto: ^1.0.0 + get-intrinsic: ^1.3.0 + get-proto: ^1.0.1 get-symbol-description: ^1.1.0 globalthis: ^1.0.4 gopd: ^1.2.0 @@ -9362,13 +8617,13 @@ __metadata: is-shared-array-buffer: ^1.0.4 is-string: ^1.1.1 is-typed-array: ^1.1.15 - is-weakref: ^1.1.0 + is-weakref: ^1.1.1 math-intrinsics: ^1.1.0 - object-inspect: ^1.13.3 + object-inspect: ^1.13.4 object-keys: ^1.1.1 object.assign: ^4.1.7 own-keys: ^1.0.1 - regexp.prototype.flags: ^1.5.3 + regexp.prototype.flags: ^1.5.4 safe-array-concat: ^1.1.3 safe-push-apply: ^1.0.0 safe-regex-test: ^1.1.0 @@ -9381,8 +8636,8 @@ __metadata: typed-array-byte-offset: ^1.0.4 typed-array-length: ^1.0.7 unbox-primitive: ^1.1.0 - which-typed-array: ^1.1.18 - checksum: f3ee2614159ca197f97414ab36e3f406ee748ce2f97ffbf09e420726db5a442ce13f1e574601468bff6e6eb81588e6c9ce1ac6c03868a37c7cd48ac679f8485a + which-typed-array: ^1.1.19 + checksum: 0b1baf903096c4f19030ab3334062deb6df577441266223b44cb431d8733f21852e9ac8be1c73c28dddc8f0c214c668969195cee0a14d21967ca91628f5f4366 languageName: node linkType: hard @@ -9631,23 +8886,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jest@npm:^26.5.3": - version: 26.9.0 - resolution: "eslint-plugin-jest@npm:26.9.0" - dependencies: - "@typescript-eslint/utils": ^5.10.0 - peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - "@typescript-eslint/eslint-plugin": - optional: true - jest: - optional: true - checksum: 6d5fd5c95368f1ca2640389aeb7ce703d6202493c3ec6bdedb4eaca37233710508b0c75829e727765a16fd27029a466d34202bc7f2811c752038ccbbce224400 - languageName: node - linkType: hard - "eslint-plugin-jest@npm:^27.9.0": version: 27.9.0 resolution: "eslint-plugin-jest@npm:27.9.0" @@ -9681,21 +8919,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-prettier@npm:^4.2.1": - version: 4.2.1 - resolution: "eslint-plugin-prettier@npm:4.2.1" - dependencies: - prettier-linter-helpers: ^1.0.0 - peerDependencies: - eslint: ">=7.28.0" - prettier: ">=2.0.0" - peerDependenciesMeta: - eslint-config-prettier: - optional: true - checksum: b9e839d2334ad8ec7a5589c5cb0f219bded260839a857d7a486997f9870e95106aa59b8756ff3f37202085ebab658de382b0267cae44c3a7f0eb0bcc03a4f6d6 - languageName: node - linkType: hard - "eslint-plugin-react-hooks@npm:4.3.0": version: 4.3.0 resolution: "eslint-plugin-react-hooks@npm:4.3.0" @@ -9766,8 +8989,8 @@ __metadata: linkType: hard "eslint-plugin-react@npm:^7.30.1": - version: 7.37.4 - resolution: "eslint-plugin-react@npm:7.37.4" + version: 7.37.5 + resolution: "eslint-plugin-react@npm:7.37.5" dependencies: array-includes: ^3.1.8 array.prototype.findlast: ^1.2.5 @@ -9779,7 +9002,7 @@ __metadata: hasown: ^2.0.2 jsx-ast-utils: ^2.4.1 || ^3.0.0 minimatch: ^3.1.2 - object.entries: ^1.1.8 + object.entries: ^1.1.9 object.fromentries: ^2.0.8 object.values: ^1.2.1 prop-types: ^15.8.1 @@ -9789,7 +9012,7 @@ __metadata: string.prototype.repeat: ^1.0.0 peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - checksum: 8a37bdc9b347bf3a1273fef73dfbc39279cc3e58441940a5e13b3ba4e82b34132d1d1172db9d6746f153ee981280bd6bd06a9065fb453388c68f4bebe0d9f839 + checksum: 8675e7558e646e3c2fcb04bb60cfe416000b831ef0b363f0117838f5bfc799156113cb06058ad4d4b39fc730903b7360b05038da11093064ca37caf76b7cf2ca languageName: node linkType: hard @@ -10143,7 +9366,7 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:^4.0.12, fast-xml-parser@npm:^4.2.4, fast-xml-parser@npm:^4.4.1": +"fast-xml-parser@npm:^4.4.1": version: 4.5.3 resolution: "fast-xml-parser@npm:4.5.3" dependencies: @@ -10201,6 +9424,18 @@ __metadata: languageName: node linkType: hard +"fdir@npm:^6.4.4": + version: 6.4.4 + resolution: "fdir@npm:6.4.4" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 79043610236579ffbd0647c508b43bd030a2d034a17c43cf96813a00e8e92e51acdb115c6ddecef3b5812cc2692b976155b4f6413e51e3761f1e772fa019a321 + languageName: node + linkType: hard + "figures@npm:3.2.0, figures@npm:^3.0.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -10371,16 +9606,9 @@ __metadata: linkType: hard "flow-parser@npm:0.*": - version: 0.265.3 - resolution: "flow-parser@npm:0.265.3" - checksum: ace1509503e88f5d392ef9769ecb7db23305f163b474ba00b3505c6b93abd4faabae5c80fcc064eda09d8e9d1d0aebdb8bc1a2a3ed27e0ca80aed580dd381f13 - languageName: node - linkType: hard - -"flow-parser@npm:^0.206.0": - version: 0.206.0 - resolution: "flow-parser@npm:0.206.0" - checksum: 1b87d87b59815b09852a6981543ad222da7f4d0e0c26702f9d5e0065174f5f64d2563db76d07a487c6b55e1979344e3845ac42929db70f77a82e8c9171a62a86 + version: 0.272.1 + resolution: "flow-parser@npm:0.272.1" + checksum: ebd9fee5ee662f1bef52715cb284f6ac8ba3fcaed4e5e97e3474cf888da4f8d8133ca63921ff467ab6f229ef9128e01436d0c22cb5039a68955d8b3e68ee9beb languageName: node linkType: hard @@ -10855,7 +10083,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": +"glob@npm:^10.2.2, glob@npm:^10.3.10": version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: @@ -10979,8 +10207,8 @@ __metadata: linkType: hard "google-gax@npm:^4.0.3": - version: 4.4.1 - resolution: "google-gax@npm:4.4.1" + version: 4.6.1 + resolution: "google-gax@npm:4.6.1" dependencies: "@grpc/grpc-js": ^1.10.9 "@grpc/proto-loader": ^0.7.13 @@ -10994,7 +10222,7 @@ __metadata: protobufjs: ^7.3.2 retry-request: ^7.0.0 uuid: ^9.0.1 - checksum: 945dc57fa80a9e95621460585f99319ef123c3eb904f0c5f4d10197bfa7981294d7f600c77e481a0cb071f8c08d692d394d81cd06f7f3dd3c34c581c65100f6a + checksum: b46479b3160b9a71f73c82ef100a54f1b8f40ac1e43d819eef307022cc17d67a575764eef94fe72f379cfd10f818ccc7b94c80eb15910d5560c0a1f77bf36728 languageName: node linkType: hard @@ -11038,9 +10266,9 @@ __metadata: linkType: hard "graphql@npm:^16.8.0": - version: 16.10.0 - resolution: "graphql@npm:16.10.0" - checksum: 969c2d1061d69ad6fe08a7fe642428212b0b8485a2f9b5d8650203eb6c3221479e81ec6a757708f849d84b85afcb3ebc5a8ff2f71778bb66c5e4850f051c170e + version: 16.11.0 + resolution: "graphql@npm:16.11.0" + checksum: 65bc206edbe980f2759a8e4cf324873f75a66ab48263961472716e50127ae446739be20f926bb7f036a8d199bd4de072f684fd147c285bd6ba965d98cebb6200 languageName: node linkType: hard @@ -11150,20 +10378,6 @@ __metadata: languageName: node linkType: hard -"hermes-estree@npm:0.15.0": - version: 0.15.0 - resolution: "hermes-estree@npm:0.15.0" - checksum: 227d7ac117a00b4f02cdadf33f4ca73dd263bb05e692065f6709ef5a348b283d0fc319fc5d188438c84c688c4e1245cd990ade27f229abd4e9f94dda1abe147d - languageName: node - linkType: hard - -"hermes-estree@npm:0.22.0": - version: 0.22.0 - resolution: "hermes-estree@npm:0.22.0" - checksum: 7c37e7e2f43d650255f5b1d0034e7dc5a1637ac0d15f0beaa672adbcea9db8d2a71b275d48c115862b7952ba2d5b36e736e72cb48b9ae8b236b329d712a74083 - languageName: node - linkType: hard - "hermes-estree@npm:0.23.1": version: 0.23.1 resolution: "hermes-estree@npm:0.23.1" @@ -11171,21 +10385,10 @@ __metadata: languageName: node linkType: hard -"hermes-parser@npm:0.15.0": - version: 0.15.0 - resolution: "hermes-parser@npm:0.15.0" - dependencies: - hermes-estree: 0.15.0 - checksum: 6c06a57a3998edd8c3aff05bbacdc8ec80f930360fa82ab75021b4b20edce8d76d30232babb7d6e7a0fcb758b0b36d7ee0f25936c9accf0b977542a079cb39cf - languageName: node - linkType: hard - -"hermes-parser@npm:0.22.0": - version: 0.22.0 - resolution: "hermes-parser@npm:0.22.0" - dependencies: - hermes-estree: 0.22.0 - checksum: b2d5c0730dc9845606a5b4a045fbf67e4985c62eb0f9baa21e204576274227ddfb52da0d2a29f7858293557f3a229448625118a382154337487c7bee610a290c +"hermes-estree@npm:0.25.1": + version: 0.25.1 + resolution: "hermes-estree@npm:0.25.1" + checksum: 97f42e9178dff61db017810b4f79f5a2cdbb3cde94b7d99ba84ed632ee2adfcae2244555587951b3151fc036676c68f48f57fbe2b49e253eb1f3f904d284a8b0 languageName: node linkType: hard @@ -11198,12 +10401,12 @@ __metadata: languageName: node linkType: hard -"hermes-profile-transformer@npm:^0.0.6": - version: 0.0.6 - resolution: "hermes-profile-transformer@npm:0.0.6" +"hermes-parser@npm:0.25.1": + version: 0.25.1 + resolution: "hermes-parser@npm:0.25.1" dependencies: - source-map: ^0.7.3 - checksum: b5f874eaa65b70d88df7a4ce3b20d73312bb0bc73410f1b63d708f02e1c532ae16975da84e23b977eab8592ac95d7e6fc0c4094c78604fd0a092ed886c62aa7a + hermes-estree: 0.25.1 + checksum: 4edcfaa3030931343b540182b83c432aba4cdcb1925952521ab4cfb7ab90c2c1543dfcb042ccd51d5e81e4bfe2809420e85902c2ff95ef7c6c64644ce17138ea languageName: node linkType: hard @@ -11249,9 +10452,9 @@ __metadata: linkType: hard "html-entities@npm:^2.5.2": - version: 2.5.2 - resolution: "html-entities@npm:2.5.2" - checksum: b23f4a07d33d49ade1994069af4e13d31650e3fb62621e92ae10ecdf01d1a98065c78fd20fdc92b4c7881612210b37c275f2c9fba9777650ab0d6f2ceb3b99b6 + version: 2.6.0 + resolution: "html-entities@npm:2.6.0" + checksum: 720643f7954019c80911430a7df2728524c07080edfe812610bfc5d8191cd772b470bee0ee151bf7426679314ae53cf28a1c845d702123714e625a8565b26567 languageName: node linkType: hard @@ -11263,9 +10466,9 @@ __metadata: linkType: hard "http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + version: 4.2.0 + resolution: "http-cache-semantics@npm:4.2.0" + checksum: 7a7246ddfce629f96832791176fd643589d954e6f3b49548dadb4290451961237fab8fcea41cd2008fe819d95b41c1e8b97f47d088afc0a1c81705287b4ddbcc languageName: node linkType: hard @@ -11379,13 +10582,13 @@ __metadata: linkType: hard "image-size@npm:^1.0.2": - version: 1.2.0 - resolution: "image-size@npm:1.2.0" + version: 1.2.1 + resolution: "image-size@npm:1.2.1" dependencies: queue: 6.0.2 bin: image-size: bin/image-size.js - checksum: 6264ae22ea6f349480c5305f84cd1e64f9757442abf4baac79e29519cba38f7ccab90488996e5e4d0c232b2f44dc720576fdf3e7e63c161e49eb1d099e563f82 + checksum: 8601ddd4edc1db16f097f5cf585c23214e29c3b8f4d8a8f8d59b8e3bae2338c8a5073236bfff421d8541091a98a38b802ed049203c745286a69d1aac4e5bc4c7 languageName: node linkType: hard @@ -12000,7 +11203,7 @@ __metadata: languageName: node linkType: hard -"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.0": +"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.1": version: 1.1.1 resolution: "is-weakref@npm:1.1.1" dependencies: @@ -12568,7 +11771,7 @@ __metadata: languageName: node linkType: hard -"jest-validate@npm:^29.6.3, jest-validate@npm:^29.7.0": +"jest-validate@npm:^29.7.0": version: 29.7.0 resolution: "jest-validate@npm:29.7.0" dependencies: @@ -12598,7 +11801,7 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^29.6.3, jest-worker@npm:^29.7.0": +"jest-worker@npm:^29.7.0": version: 29.7.0 resolution: "jest-worker@npm:29.7.0" dependencies: @@ -12820,15 +12023,15 @@ __metadata: linkType: hard "json-stable-stringify@npm:^1.0.2": - version: 1.2.1 - resolution: "json-stable-stringify@npm:1.2.1" + version: 1.3.0 + resolution: "json-stable-stringify@npm:1.3.0" dependencies: call-bind: ^1.0.8 - call-bound: ^1.0.3 + call-bound: ^1.0.4 isarray: ^2.0.5 jsonify: ^0.0.1 object-keys: ^1.1.1 - checksum: 7cd7c4b996759d337f89835bd38c241a64a31d4031bcf27fbfafd12ed115369079823d79b21da2959c9b3bb69a56006a727a4485f41f272e917771b6f74c0e08 + checksum: aaa8b56b7dbee2234adc5e318cf71e38ecd7b8a3811a420a77add8c870d281f7f5050008e2964a7ced4857f501f4667f3ac88b44bf70197bd0682e068a4d93ea languageName: node linkType: hard @@ -12951,13 +12154,13 @@ __metadata: linkType: hard "jwa@npm:^2.0.0": - version: 2.0.0 - resolution: "jwa@npm:2.0.0" + version: 2.0.1 + resolution: "jwa@npm:2.0.1" dependencies: - buffer-equal-constant-time: 1.0.1 + buffer-equal-constant-time: ^1.0.1 ecdsa-sig-formatter: 1.0.11 safe-buffer: ^5.0.1 - checksum: 8f00b71ad5fe94cb55006d0d19202f8f56889109caada2f7eeb63ca81755769ce87f4f48101967f398462e3b8ae4faebfbd5a0269cb755dead5d63c77ba4d2f1 + checksum: 6a9828c054c407f6718057089bd3d46dfcb1394e1553e3867abd4579dbec7728b4b0759e7253422ab7d824d95615a86427b35c43f94b83fc3a76470ca4bd2037 languageName: node linkType: hard @@ -13364,9 +12567,9 @@ __metadata: linkType: hard "long@npm:^5.0.0": - version: 5.3.1 - resolution: "long@npm:5.3.1" - checksum: 2a44ed1408ce96d4480f1dc8c6833c5f9de8733c6fde3faf4754253e145ce62b99c8c448cd0fd0d6fb2fd1ed64bac23513974e252c5738115e92a7ffda295707 + version: 5.3.2 + resolution: "long@npm:5.3.2" + checksum: be215816b563f4ca27ad3677678b53415bc489f9e3466414e54d2d85f5f8e86768547fa58493bacfb363ffc57a664debc83403ccc2178aef0c40aca28bad47c9 languageName: node linkType: hard @@ -13495,9 +12698,9 @@ __metadata: linkType: hard "marky@npm:^1.2.2": - version: 1.2.5 - resolution: "marky@npm:1.2.5" - checksum: 823b946677749551cdfc3b5221685478b5d1b9cc0dc03eff977c6f9a615fb05c67559f9556cb3c0fcb941a9ea0e195e37befd83026443396ccee8b724f54f4c5 + version: 1.3.0 + resolution: "marky@npm:1.3.0" + checksum: c25fe1d45525e317f89d116e87a50d385cc7e7d0d418548e75334273cb97990db37228c365718b5572077c80f22a599c732ccbd3da9728cd806465d63c786eda languageName: node linkType: hard @@ -13573,235 +12776,227 @@ __metadata: languageName: node linkType: hard -"metro-babel-transformer@npm:0.80.12": - version: 0.80.12 - resolution: "metro-babel-transformer@npm:0.80.12" +"metro-babel-transformer@npm:0.81.5": + version: 0.81.5 + resolution: "metro-babel-transformer@npm:0.81.5" dependencies: - "@babel/core": ^7.20.0 + "@babel/core": ^7.25.2 flow-enums-runtime: ^0.0.6 - hermes-parser: 0.23.1 + hermes-parser: 0.25.1 nullthrows: ^1.1.1 - checksum: 1ea8bce0c169f3d8bf46f56da126ca52f4c8ba5ca9ffeaca987c34d269b0a3e2a54d0544bd44bfa5d0322e37f0171a52d2a2160defcbcd91ec1fd96f62b0eece + checksum: 687b0657fcb2c6a01784a29abaa9979539a9047c0632c299d7764e7cafa9412cbb17f4e866212dc4c96a73eb47381d30340b30628b2d083fef0c88523ae0a293 languageName: node linkType: hard -"metro-cache-key@npm:0.80.12": - version: 0.80.12 - resolution: "metro-cache-key@npm:0.80.12" +"metro-cache-key@npm:0.81.5": + version: 0.81.5 + resolution: "metro-cache-key@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 - checksum: 7a06601180604361339d19eb833d61b79cc188a4e6ebe73188cc10fbf3a33e711d74c81d1d19a14b6581bd9dfeebe1b253684360682d033ab55909c9995b6a18 + checksum: d5656bc8906ff4366d8093d19304d6ac386c59429e3e7e24050f4bc9f93ca4e04d8062af6bdd28874a5e4b9bcc84f248855933ffa80af56aeed8be5ff02c85bf languageName: node linkType: hard -"metro-cache@npm:0.80.12": - version: 0.80.12 - resolution: "metro-cache@npm:0.80.12" +"metro-cache@npm:0.81.5": + version: 0.81.5 + resolution: "metro-cache@npm:0.81.5" dependencies: exponential-backoff: ^3.1.1 flow-enums-runtime: ^0.0.6 - metro-core: 0.80.12 - checksum: 724e33fdda6a3568572c36a3f2d3465ad1b5f3e8ded5ec116b98e0038826187ebdadd05f77e91ddc17fa71ff4dd91281793a940e7b619cac36044ed868abc01d + metro-core: 0.81.5 + checksum: cba822d3f5c38163558e8240f7b8f189a597829c7df07a3f205c9565f66c0d3a9d7deab7be9449dec3bd1c615b71918c8cd05b0e2bf9cc21c517702405d468d1 languageName: node linkType: hard -"metro-config@npm:0.80.12, metro-config@npm:^0.80.3": - version: 0.80.12 - resolution: "metro-config@npm:0.80.12" +"metro-config@npm:0.81.5, metro-config@npm:^0.81.0": + version: 0.81.5 + resolution: "metro-config@npm:0.81.5" dependencies: connect: ^3.6.5 cosmiconfig: ^5.0.5 flow-enums-runtime: ^0.0.6 - jest-validate: ^29.6.3 - metro: 0.80.12 - metro-cache: 0.80.12 - metro-core: 0.80.12 - metro-runtime: 0.80.12 - checksum: 49496d2bc875fbb8c89639979753377888f5ce779742a4ef487d812e7c5f3f6c87dd6ae129727f614d2fe3210f7fde08041055d29772b8c86c018e2ef08e7785 + jest-validate: ^29.7.0 + metro: 0.81.5 + metro-cache: 0.81.5 + metro-core: 0.81.5 + metro-runtime: 0.81.5 + checksum: 43ba163fcfcbd0bcf69c3416901779c3de94536b0ee451ad73cad6311734e931cb1bf2c007dd71317f35ddf346cca74bc07b5a3075adf5c09b0e6e859d2169e4 languageName: node linkType: hard -"metro-core@npm:0.80.12, metro-core@npm:^0.80.3": - version: 0.80.12 - resolution: "metro-core@npm:0.80.12" +"metro-core@npm:0.81.5, metro-core@npm:^0.81.0": + version: 0.81.5 + resolution: "metro-core@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 lodash.throttle: ^4.1.1 - metro-resolver: 0.80.12 - checksum: 319f3965fa76fc08987cbd0228024bdbb0eaad7406e384e48929674188f1066cbc7a233053615ebd84b3ce1bbae28f59c114885fd0a0c179a580319ed69f717e + metro-resolver: 0.81.5 + checksum: 5fb02d055669f0d37aaffc165444aa723741e9e9a74c1e17c54b53e635e4b7246d8ec582bfb951710ff02cd2d26d5565811182464f3f42728c1f346d0e699f8a languageName: node linkType: hard -"metro-file-map@npm:0.80.12": - version: 0.80.12 - resolution: "metro-file-map@npm:0.80.12" +"metro-file-map@npm:0.81.5": + version: 0.81.5 + resolution: "metro-file-map@npm:0.81.5" dependencies: - anymatch: ^3.0.3 debug: ^2.2.0 fb-watchman: ^2.0.0 flow-enums-runtime: ^0.0.6 - fsevents: ^2.3.2 graceful-fs: ^4.2.4 invariant: ^2.2.4 - jest-worker: ^29.6.3 + jest-worker: ^29.7.0 micromatch: ^4.0.4 - node-abort-controller: ^3.1.1 nullthrows: ^1.1.1 walker: ^1.0.7 - dependenciesMeta: - fsevents: - optional: true - checksum: 5e6eafcfafe55fd8a9a6e5613394a20ed2a0ad433a394dcb830f017b8fc9d82ddcd715391e36abe5e98c651c074b99a806d3b04d76f2cadb225f9f5b1c92daef + checksum: dcc975a6a3a0ceaf25048cca834d6b065b719b768f332c2a720d6a0341b6b640783625d1188dc1b85204e42420853240fa0419988bade2395ce3c054079c3b65 languageName: node linkType: hard -"metro-minify-terser@npm:0.80.12": - version: 0.80.12 - resolution: "metro-minify-terser@npm:0.80.12" +"metro-minify-terser@npm:0.81.5": + version: 0.81.5 + resolution: "metro-minify-terser@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 terser: ^5.15.0 - checksum: ff527b3f04c5814db139e55ceb7689aaaf0af5c7fbb0eb5d4a6f22044932dfb10bd385d388fa7b352acd03a2d078edaf43a6b5cd11cbc87a7c5502a34fc12735 + checksum: 4623743676e2bb8bb74b99bd2b2c26feb2509a8db5596f265e21042b43e84611f9025977ae298b8271644cb27e8da8a60b8dff791f57517b4bd2f5ae366f2945 languageName: node linkType: hard -"metro-resolver@npm:0.80.12": - version: 0.80.12 - resolution: "metro-resolver@npm:0.80.12" +"metro-resolver@npm:0.81.5": + version: 0.81.5 + resolution: "metro-resolver@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 - checksum: a520030a65afab2f3282604ef6dec802051899a356910606b8ffbc5b82a722008d9d416c8ba3d9ef9527912206586b713733b776803a6b76adac72bcb31870cd + checksum: 84d9f3c10538a747c2718ddc1cf366c38b1a6080e2b6cdfd4731511e5a25cec45fbf35101fae8691bda59fd2e9aa3f559d436bc46e05b603c446072e4a1bc6e9 languageName: node linkType: hard -"metro-runtime@npm:0.80.12, metro-runtime@npm:^0.80.3": - version: 0.80.12 - resolution: "metro-runtime@npm:0.80.12" +"metro-runtime@npm:0.81.5, metro-runtime@npm:^0.81.0": + version: 0.81.5 + resolution: "metro-runtime@npm:0.81.5" dependencies: "@babel/runtime": ^7.25.0 flow-enums-runtime: ^0.0.6 - checksum: 11a6d36c7dcf9d221f7de6989556f45d4d64cd1cdd225ec96273b584138b4aa77b7afdc9e9a9488d1dc9a3d90f8e94bb68ab149079cc6ebdb8f8f8b03462cb4f + checksum: 43b54e07ce0534928c12f59a3d2e68ecf4fc7e7ad1a78cb691f90a406796eec381af21fcef5af73ecc5081153a4da5f935797ebe9ea4a025a5e526039bf19b21 languageName: node linkType: hard -"metro-source-map@npm:0.80.12, metro-source-map@npm:^0.80.3": - version: 0.80.12 - resolution: "metro-source-map@npm:0.80.12" +"metro-source-map@npm:0.81.5, metro-source-map@npm:^0.81.0": + version: 0.81.5 + resolution: "metro-source-map@npm:0.81.5" dependencies: - "@babel/traverse": ^7.20.0 - "@babel/types": ^7.20.0 + "@babel/traverse": ^7.25.3 + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" + "@babel/types": ^7.25.2 flow-enums-runtime: ^0.0.6 invariant: ^2.2.4 - metro-symbolicate: 0.80.12 + metro-symbolicate: 0.81.5 nullthrows: ^1.1.1 - ob1: 0.80.12 + ob1: 0.81.5 source-map: ^0.5.6 vlq: ^1.0.0 - checksum: 39575bff8666abd0944ec71e01a0c0eacbeab48277528608e894ffa6691c4267c389ee51ad86d5cd8e96f13782b66e1f693a3c60786bb201268678232dce6130 + checksum: a31e459c8a18fe3fc6b3cc5d87a2f25b2f3794425d590bbbab8abafa537647110b18edd0ff025971d1783e16d3c114099bf13c406a01a6456e3e004a54f621d8 languageName: node linkType: hard -"metro-symbolicate@npm:0.80.12": - version: 0.80.12 - resolution: "metro-symbolicate@npm:0.80.12" +"metro-symbolicate@npm:0.81.5": + version: 0.81.5 + resolution: "metro-symbolicate@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 invariant: ^2.2.4 - metro-source-map: 0.80.12 + metro-source-map: 0.81.5 nullthrows: ^1.1.1 source-map: ^0.5.6 - through2: ^2.0.1 vlq: ^1.0.0 bin: metro-symbolicate: src/index.js - checksum: b775e4613deec421f6287918d0055c50bb2a38fe3f72581eb70b9441e4497c9c7413c2929c579b24fb76893737b6d5af83a5f6cd8c032e2a83957091f82ec5de + checksum: f1ec6df153be8b469c87179dcc0807e6e94e2523140e0b0044aa2fecedfd222f9d05a408bd142d3293e52e9c7ef59064332fce5f489cddb0f38d11d3ed897c2b languageName: node linkType: hard -"metro-transform-plugins@npm:0.80.12": - version: 0.80.12 - resolution: "metro-transform-plugins@npm:0.80.12" +"metro-transform-plugins@npm:0.81.5": + version: 0.81.5 + resolution: "metro-transform-plugins@npm:0.81.5" dependencies: - "@babel/core": ^7.20.0 - "@babel/generator": ^7.20.0 - "@babel/template": ^7.0.0 - "@babel/traverse": ^7.20.0 + "@babel/core": ^7.25.2 + "@babel/generator": ^7.25.0 + "@babel/template": ^7.25.0 + "@babel/traverse": ^7.25.3 flow-enums-runtime: ^0.0.6 nullthrows: ^1.1.1 - checksum: 85c99c367d6c0b9721af744fc980372329c6d37711177660e2d5e2dbe5e92e2cd853604eb8a513ad824eafbed84663472fa304cbbe2036957ee8688b72c2324c + checksum: 2d156882c6545730638aeb362856288649e5049f336d532040dd4b9435ad53d35adbc808903f01519dfda5e7a9a1d80b6f2303171921f32aa823f86484ab2b60 languageName: node linkType: hard -"metro-transform-worker@npm:0.80.12": - version: 0.80.12 - resolution: "metro-transform-worker@npm:0.80.12" +"metro-transform-worker@npm:0.81.5": + version: 0.81.5 + resolution: "metro-transform-worker@npm:0.81.5" dependencies: - "@babel/core": ^7.20.0 - "@babel/generator": ^7.20.0 - "@babel/parser": ^7.20.0 - "@babel/types": ^7.20.0 + "@babel/core": ^7.25.2 + "@babel/generator": ^7.25.0 + "@babel/parser": ^7.25.3 + "@babel/types": ^7.25.2 flow-enums-runtime: ^0.0.6 - metro: 0.80.12 - metro-babel-transformer: 0.80.12 - metro-cache: 0.80.12 - metro-cache-key: 0.80.12 - metro-minify-terser: 0.80.12 - metro-source-map: 0.80.12 - metro-transform-plugins: 0.80.12 + metro: 0.81.5 + metro-babel-transformer: 0.81.5 + metro-cache: 0.81.5 + metro-cache-key: 0.81.5 + metro-minify-terser: 0.81.5 + metro-source-map: 0.81.5 + metro-transform-plugins: 0.81.5 nullthrows: ^1.1.1 - checksum: 90684b1f1163bfc84b11bfc01082a38de2a5dd9f7bcabc524bc84f1faff32222954f686a60bc0f464d3e46e86c4c01435111e2ed0e9767a5efbfaf205f55245e + checksum: 59d144c44e7979317ee702a0f11da19443e5bf56a4fb6be026e4e09377631a2704ca4aba4e7290711fbe481176e82006fe195a18cacd6007f01c6b1ebe2a7a84 languageName: node linkType: hard -"metro@npm:0.80.12, metro@npm:^0.80.3": - version: 0.80.12 - resolution: "metro@npm:0.80.12" +"metro@npm:0.81.5, metro@npm:^0.81.0": + version: 0.81.5 + resolution: "metro@npm:0.81.5" dependencies: - "@babel/code-frame": ^7.0.0 - "@babel/core": ^7.20.0 - "@babel/generator": ^7.20.0 - "@babel/parser": ^7.20.0 - "@babel/template": ^7.0.0 - "@babel/traverse": ^7.20.0 - "@babel/types": ^7.20.0 + "@babel/code-frame": ^7.24.7 + "@babel/core": ^7.25.2 + "@babel/generator": ^7.25.0 + "@babel/parser": ^7.25.3 + "@babel/template": ^7.25.0 + "@babel/traverse": ^7.25.3 + "@babel/types": ^7.25.2 accepts: ^1.3.7 chalk: ^4.0.0 ci-info: ^2.0.0 connect: ^3.6.5 debug: ^2.2.0 - denodeify: ^1.2.1 error-stack-parser: ^2.0.6 flow-enums-runtime: ^0.0.6 graceful-fs: ^4.2.4 - hermes-parser: 0.23.1 + hermes-parser: 0.25.1 image-size: ^1.0.2 invariant: ^2.2.4 - jest-worker: ^29.6.3 + jest-worker: ^29.7.0 jsc-safe-url: ^0.2.2 lodash.throttle: ^4.1.1 - metro-babel-transformer: 0.80.12 - metro-cache: 0.80.12 - metro-cache-key: 0.80.12 - metro-config: 0.80.12 - metro-core: 0.80.12 - metro-file-map: 0.80.12 - metro-resolver: 0.80.12 - metro-runtime: 0.80.12 - metro-source-map: 0.80.12 - metro-symbolicate: 0.80.12 - metro-transform-plugins: 0.80.12 - metro-transform-worker: 0.80.12 + metro-babel-transformer: 0.81.5 + metro-cache: 0.81.5 + metro-cache-key: 0.81.5 + metro-config: 0.81.5 + metro-core: 0.81.5 + metro-file-map: 0.81.5 + metro-resolver: 0.81.5 + metro-runtime: 0.81.5 + metro-source-map: 0.81.5 + metro-symbolicate: 0.81.5 + metro-transform-plugins: 0.81.5 + metro-transform-worker: 0.81.5 mime-types: ^2.1.27 nullthrows: ^1.1.1 serialize-error: ^2.1.0 source-map: ^0.5.6 - strip-ansi: ^6.0.0 throat: ^5.0.0 ws: ^7.5.10 yargs: ^17.6.2 bin: metro: src/cli.js - checksum: 8016f7448e6e0947bd38633c01c3daad47b5a29d4a7294ebe922fa3c505430f78861d85965ecfc6f41d9b209e2663cac0f23c99a80a3f941a19de564203fcdb8 + checksum: 7665b811aa09abe5c7743764402f03cf64ccb3e1b381a46716470b58b05a952dde45e5e34c6a485f79154e2905b89fc178455c378831f9425767d76392418f9f languageName: node linkType: hard @@ -14049,12 +13244,11 @@ __metadata: linkType: hard "minizlib@npm:^3.0.1": - version: 3.0.1 - resolution: "minizlib@npm:3.0.1" + version: 3.0.2 + resolution: "minizlib@npm:3.0.2" dependencies: - minipass: ^7.0.4 - rimraf: ^5.0.5 - checksum: da0a53899252380475240c587e52c824f8998d9720982ba5c4693c68e89230718884a209858c156c6e08d51aad35700a3589987e540593c36f6713fe30cd7338 + minipass: ^7.1.2 + checksum: 493bed14dcb6118da7f8af356a8947cf1473289c09658e5aabd69a737800a8c3b1736fb7d7931b722268a9c9bc038a6d53c049b6a6af24b34a121823bb709996 languageName: node linkType: hard @@ -14115,9 +13309,9 @@ __metadata: linkType: hard "module-details-from-path@npm:^1.0.3": - version: 1.0.3 - resolution: "module-details-from-path@npm:1.0.3" - checksum: 378a8a26013889aa3086bfb0776b7860c5bb957336253e1ba5d779c2f239a218930b145ca76e52c1dd7c8079d52b2af64b8eec30822f81ffdb0dfa27d6fe6f33 + version: 1.0.4 + resolution: "module-details-from-path@npm:1.0.4" + checksum: 2ebfada5358492f6ab496b70f70a1042f2ee7a4c79d29467f59ed6704f741fb4461d7cecb5082144ed39a05fec4d19e9ff38b731c76228151be97227240a05b2 languageName: node linkType: hard @@ -14162,6 +13356,15 @@ __metadata: languageName: node linkType: hard +"mutexify@npm:^1.4.0": + version: 1.4.0 + resolution: "mutexify@npm:1.4.0" + dependencies: + queue-tick: ^1.0.0 + checksum: 2ad9712d4f2e75551a2dbfb1dc274dfa6c1dea7418ee48468a9bf252014d3480adc70c264bd93775b034d29b7dbfcfd26ecb2a4d83aa8d137456e617a01d3f76 + languageName: node + linkType: hard + "nan@npm:^2.19.0, nan@npm:^2.20.0": version: 2.22.2 resolution: "nan@npm:2.22.2" @@ -14236,13 +13439,6 @@ __metadata: languageName: node linkType: hard -"node-abort-controller@npm:^3.1.1": - version: 3.1.1 - resolution: "node-abort-controller@npm:3.1.1" - checksum: 2c340916af9710328b11c0828223fc65ba320e0d082214a211311bf64c2891028e42ef276b9799188c4ada9e6e1c54cf7a0b7c05dd9d59fcdc8cd633304c8047 - languageName: node - linkType: hard - "node-addon-api@npm:^6.1.0": version: 6.1.0 resolution: "node-addon-api@npm:6.1.0" @@ -14275,7 +13471,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.2.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9, node-fetch@npm:^2.7.0": +"node-fetch@npm:^2.2.0, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9, node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -14339,22 +13535,22 @@ __metadata: linkType: hard "node-gyp@npm:latest": - version: 11.1.0 - resolution: "node-gyp@npm:11.1.0" + version: 11.2.0 + resolution: "node-gyp@npm:11.2.0" dependencies: env-paths: ^2.2.0 exponential-backoff: ^3.1.1 - glob: ^10.3.10 graceful-fs: ^4.2.6 make-fetch-happen: ^14.0.3 nopt: ^8.0.0 proc-log: ^5.0.0 semver: ^7.3.5 tar: ^7.4.3 + tinyglobby: ^0.2.12 which: ^5.0.0 bin: node-gyp: bin/node-gyp.js - checksum: b196da39a7a45f302d6e03cfdb579eeecbfffa1ab3796de45652c2c0dcbf46b83fde715b054e4d00aa53da5f33033ac5791e20cbb7cc11267dac4f8975ef276c + checksum: 2536282ba81f8a94b29482d3622b6ab298611440619e46de4512a6f32396a68b5530357c474b859787069d84a4c537d99e0c71078cce5b9f808bf84eeb78e8fb languageName: node linkType: hard @@ -14636,12 +13832,12 @@ __metadata: languageName: node linkType: hard -"ob1@npm:0.80.12": - version: 0.80.12 - resolution: "ob1@npm:0.80.12" +"ob1@npm:0.81.5": + version: 0.81.5 + resolution: "ob1@npm:0.81.5" dependencies: flow-enums-runtime: ^0.0.6 - checksum: c78af51d6ecf47ba5198bc7eb27d0456a287589533f1445e6d595e2d067f6f8038da02a98e5faa4a6c3d0c04f77c570bc9b29c652fec55518884c40c73212f17 + checksum: 249ad576be69151a3099207b35b2f6da5c6bb39dfacb9295028ebdc182c2f61f6544d1f6f167af759a77174ab19d8997d1ae6aecdbd9bdc293b2826067e66c5b languageName: node linkType: hard @@ -14659,7 +13855,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.13.3": +"object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": version: 1.13.4 resolution: "object-inspect@npm:1.13.4" checksum: 582810c6a8d2ef988ea0a39e69e115a138dad8f42dd445383b394877e5816eb4268489f316a6f74ee9c4e0a984b3eab1028e3e79d62b1ed67c726661d55c7a8b @@ -14687,7 +13883,7 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.2, object.entries@npm:^1.1.8": +"object.entries@npm:^1.1.2, object.entries@npm:^1.1.9": version: 1.1.9 resolution: "object.entries@npm:1.1.9" dependencies: @@ -15166,11 +14362,11 @@ __metadata: linkType: hard "parse-path@npm:^7.0.0": - version: 7.0.1 - resolution: "parse-path@npm:7.0.1" + version: 7.1.0 + resolution: "parse-path@npm:7.1.0" dependencies: protocols: ^2.0.0 - checksum: a3aa6776df12f26b09bc9f6e510f3e4b27d7a38d8f13081e696059d415eea2d5a073fc4a8d3b9d1b6818591a986198a7f0016ae70fe75410af4c439a3a12b56a + checksum: 1da6535a967b14911837bba98e5f8d16acb415b28753ff6225e3121dce71167a96c79278fbb631d695210dadae37462a9eff40d93b9c659cf1ce496fd5db9bb6 languageName: node linkType: hard @@ -15290,7 +14486,7 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": +"picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 @@ -15304,6 +14500,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: a7a5188c954f82c6585720e9143297ccd0e35ad8072231608086ca950bee672d51b0ef676254af0788205e59bd4e4deb4e7708769226bed725bf13370a7d1464 + languageName: node + linkType: hard + "pify@npm:5.0.0": version: 5.0.0 resolution: "pify@npm:5.0.0" @@ -15333,9 +14536,9 @@ __metadata: linkType: hard "pirates@npm:^4.0.4, pirates@npm:^4.0.6": - version: 4.0.6 - resolution: "pirates@npm:4.0.6" - checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 + version: 4.0.7 + resolution: "pirates@npm:4.0.7" + checksum: 3dcbaff13c8b5bc158416feb6dc9e49e3c6be5fddc1ea078a05a73ef6b85d79324bbb1ef59b954cdeff000dbf000c1d39f32dc69310c7b78fbada5171b583e40 languageName: node linkType: hard @@ -15451,7 +14654,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^26.0.1, pretty-format@npm:^26.5.2, pretty-format@npm:^26.6.2": +"pretty-format@npm:^26.0.1, pretty-format@npm:^26.6.2": version: 26.6.2 resolution: "pretty-format@npm:26.6.2" dependencies: @@ -15591,8 +14794,8 @@ __metadata: linkType: hard "protobufjs@npm:^7.2.5, protobufjs@npm:^7.3.2": - version: 7.4.0 - resolution: "protobufjs@npm:7.4.0" + version: 7.5.2 + resolution: "protobufjs@npm:7.5.2" dependencies: "@protobufjs/aspromise": ^1.1.2 "@protobufjs/base64": ^1.1.2 @@ -15606,7 +14809,7 @@ __metadata: "@protobufjs/utf8": ^1.1.0 "@types/node": ">=13.7.0" long: ^5.0.0 - checksum: ba0e6b60541bbf818bb148e90f5eb68bd99004e29a6034ad9895a381cbd352be8dce5376e47ae21b2e05559f2505b4a5f4a3c8fa62402822c6ab4dcdfb89ffb3 + checksum: fe5663a1f3ec351f08b6281bb87aade9604f0d90d09fd470080bcd64f10c08e94835c7809acf34474c3c003cb25a240fb7350203a0e087337c7a9ca1bee90eec languageName: node linkType: hard @@ -15722,6 +14925,13 @@ __metadata: languageName: node linkType: hard +"queue-tick@npm:^1.0.0": + version: 1.0.1 + resolution: "queue-tick@npm:1.0.1" + checksum: 57c3292814b297f87f792fbeb99ce982813e4e54d7a8bdff65cf53d5c084113913289d4a48ec8bbc964927a74b847554f9f4579df43c969a6c8e0f026457ad01 + languageName: node + linkType: hard + "queue@npm:6.0.2": version: 6.0.2 resolution: "queue@npm:6.0.2" @@ -15759,16 +14969,6 @@ __metadata: languageName: node linkType: hard -"react-devtools-core@npm:^4.27.7": - version: 4.28.5 - resolution: "react-devtools-core@npm:4.28.5" - dependencies: - shell-quote: ^1.6.1 - ws: ^7 - checksum: d8e4b32ffcfe1ada5c9f7decffd04afc4707a3d6261953a92b8aed1c8abe15cd57d6eb4ce711f842180a2f5c60d2947209e3c1202f7ea29303ee150c55da59e0 - languageName: node - linkType: hard - "react-devtools-core@npm:^5.3.1": version: 5.3.2 resolution: "react-devtools-core@npm:5.3.2" @@ -15788,7 +14988,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.12.0 || ^17.0.0 || ^18.0.0, react-is@npm:^18.0.0, react-is@npm:^18.1.0, react-is@npm:^18.3.1": +"react-is@npm:^16.12.0 || ^17.0.0 || ^18.0.0, react-is@npm:^18.0.0, react-is@npm:^18.3.1": version: 18.3.1 resolution: "react-is@npm:18.3.1" checksum: e20fe84c86ff172fc8d898251b7cc2c43645d108bf96d0b8edf39b98f9a2cae97b40520ee7ed8ee0085ccc94736c4886294456033304151c3f94978cec03df21 @@ -15816,7 +15016,7 @@ __metadata: languageName: node linkType: hard -"react-lifecycles-compat@npm:^3.0.2": +"react-lifecycles-compat@npm:^3.0.2, react-lifecycles-compat@npm:^3.0.4": version: 3.0.4 resolution: "react-lifecycles-compat@npm:3.0.4" checksum: a904b0fc0a8eeb15a148c9feb7bc17cec7ef96e71188280061fc340043fd6d8ee3ff233381f0e8f95c1cf926210b2c4a31f38182c8f35ac55057e453d6df204f @@ -15891,8 +15091,8 @@ __metadata: linkType: hard "react-native-gesture-handler@npm:^2.24.0": - version: 2.24.0 - resolution: "react-native-gesture-handler@npm:2.24.0" + version: 2.25.0 + resolution: "react-native-gesture-handler@npm:2.25.0" dependencies: "@egjs/hammerjs": ^2.0.17 hoist-non-react-statics: ^3.3.0 @@ -15900,7 +15100,7 @@ __metadata: peerDependencies: react: "*" react-native: "*" - checksum: 65abaeef68180fee2811d01d88ff50c231a91faca05279222fcaaa55349e758b68a7d6a9ac3eddfb1887f6b4c4790ac195b99989f1ad8a2a1f3f3bdff3ba0a76 + checksum: 51b155bcc56043b9e06bf8ded089c44348e8da297b38e73f203f2d6ce8bd51698f85a38dca8eeab3d2ab721aeddefc270acd99e16cf493b20f1f429ad02214b8 languageName: node linkType: hard @@ -15942,14 +15142,14 @@ __metadata: languageName: node linkType: hard -"react-native-navigation@npm:7.40.1": - version: 7.40.1 - resolution: "react-native-navigation@npm:7.40.1" +"react-native-navigation@npm:8.0.0-snapshot.1658": + version: 8.0.0-snapshot.1658 + resolution: "react-native-navigation@npm:8.0.0-snapshot.1658" dependencies: hoist-non-react-statics: 3.x.x lodash: 4.17.x prop-types: 15.x.x - react-lifecycles-compat: 2.0.0 + react-lifecycles-compat: ^3.0.4 tslib: 1.9.3 peerDependencies: react: "*" @@ -15960,7 +15160,7 @@ __metadata: optional: true bin: rnn-link: autolink/postlink/run.js - checksum: 3c4425d9f89fcb055e6b40c2bc92eb7eb9f5672b0b8914262413d66209ed5f789d45032b9ac74c87fb0a7bb1f7aeeebbe306949ec3b932f6bbfdf04c46d12ef6 + checksum: d19ae605cb768b58390bb87a2a7ce037c3070bde62c7ee6e03fcef03c5754c95176016d0a7de07d0d031ee2c22d488716c8b3ef79fa45c10e9cf3b89524a0bbb languageName: node linkType: hard @@ -16011,89 +15211,38 @@ __metadata: linkType: hard "react-native-webview@npm:^13.12.2, react-native-webview@npm:^13.13.4": - version: 13.13.4 - resolution: "react-native-webview@npm:13.13.4" + version: 13.13.5 + resolution: "react-native-webview@npm:13.13.5" dependencies: escape-string-regexp: ^4.0.0 invariant: 2.2.4 peerDependencies: react: "*" react-native: "*" - checksum: 5dc6580a974c25c701f4e17027145c583574b3efc50a9d799328c82d169e0806fed6d1517652b9d1a4d877a0e8d7e70f98838e271399c763576a2cf6b60a8c29 - languageName: node - linkType: hard - -"react-native@npm:0.73.9": - version: 0.73.9 - resolution: "react-native@npm:0.73.9" - dependencies: - "@jest/create-cache-key-function": ^29.6.3 - "@react-native-community/cli": 12.3.7 - "@react-native-community/cli-platform-android": 12.3.7 - "@react-native-community/cli-platform-ios": 12.3.7 - "@react-native/assets-registry": 0.73.1 - "@react-native/codegen": 0.73.3 - "@react-native/community-cli-plugin": 0.73.18 - "@react-native/gradle-plugin": 0.73.4 - "@react-native/js-polyfills": 0.73.1 - "@react-native/normalize-colors": 0.73.2 - "@react-native/virtualized-lists": 0.73.4 - abort-controller: ^3.0.0 - anser: ^1.4.9 - ansi-regex: ^5.0.0 - base64-js: ^1.5.1 - chalk: ^4.0.0 - deprecated-react-native-prop-types: ^5.0.0 - event-target-shim: ^5.0.1 - flow-enums-runtime: ^0.0.6 - invariant: ^2.2.4 - jest-environment-node: ^29.6.3 - jsc-android: ^250231.0.0 - memoize-one: ^5.0.0 - metro-runtime: ^0.80.3 - metro-source-map: ^0.80.3 - mkdirp: ^0.5.1 - nullthrows: ^1.1.1 - pretty-format: ^26.5.2 - promise: ^8.3.0 - react-devtools-core: ^4.27.7 - react-refresh: ^0.14.0 - react-shallow-renderer: ^16.15.0 - regenerator-runtime: ^0.13.2 - scheduler: 0.24.0-canary-efb381bbf-20230505 - stacktrace-parser: ^0.1.10 - whatwg-fetch: ^3.0.0 - ws: ^6.2.2 - yargs: ^17.6.2 - peerDependencies: - react: 18.2.0 - bin: - react-native: cli.js - checksum: b3d187dc594f4d3dd67dfeca7046bf3de7bb12461f67e1c7919f0ed6a1d1d2aeeeb8e7f52ac7f078726843d4408754abefbb404552496684b3e67a56d32cb465 + checksum: 7f3bce1b37d6be9b2f07f0f7481181d5344f9e58022645b0d20dc58cd66056bb6efecacb231963959db6283cc66d977593db62a403c7c151f83568f83041c2eb languageName: node linkType: hard -"react-native@npm:0.75.4": - version: 0.75.4 - resolution: "react-native@npm:0.75.4" +"react-native@npm:0.76.9": + version: 0.76.9 + resolution: "react-native@npm:0.76.9" dependencies: "@jest/create-cache-key-function": ^29.6.3 - "@react-native-community/cli": 14.1.0 - "@react-native-community/cli-platform-android": 14.1.0 - "@react-native-community/cli-platform-ios": 14.1.0 - "@react-native/assets-registry": 0.75.4 - "@react-native/codegen": 0.75.4 - "@react-native/community-cli-plugin": 0.75.4 - "@react-native/gradle-plugin": 0.75.4 - "@react-native/js-polyfills": 0.75.4 - "@react-native/normalize-colors": 0.75.4 - "@react-native/virtualized-lists": 0.75.4 + "@react-native/assets-registry": 0.76.9 + "@react-native/codegen": 0.76.9 + "@react-native/community-cli-plugin": 0.76.9 + "@react-native/gradle-plugin": 0.76.9 + "@react-native/js-polyfills": 0.76.9 + "@react-native/normalize-colors": 0.76.9 + "@react-native/virtualized-lists": 0.76.9 abort-controller: ^3.0.0 anser: ^1.4.9 ansi-regex: ^5.0.0 + babel-jest: ^29.7.0 + babel-plugin-syntax-hermes-parser: ^0.23.1 base64-js: ^1.5.1 chalk: ^4.0.0 - commander: ^9.4.1 + commander: ^12.0.0 event-target-shim: ^5.0.1 flow-enums-runtime: ^0.0.6 glob: ^7.1.1 @@ -16101,11 +15250,11 @@ __metadata: jest-environment-node: ^29.6.3 jsc-android: ^250231.0.0 memoize-one: ^5.0.0 - metro-runtime: ^0.80.3 - metro-source-map: ^0.80.3 + metro-runtime: ^0.81.0 + metro-source-map: ^0.81.0 mkdirp: ^0.5.1 nullthrows: ^1.1.1 - pretty-format: ^26.5.2 + pretty-format: ^29.7.0 promise: ^8.3.0 react-devtools-core: ^5.3.1 react-refresh: ^0.14.0 @@ -16114,7 +15263,7 @@ __metadata: semver: ^7.1.3 stacktrace-parser: ^0.1.10 whatwg-fetch: ^3.0.0 - ws: ^6.2.2 + ws: ^6.2.3 yargs: ^17.6.2 peerDependencies: "@types/react": ^18.2.6 @@ -16124,7 +15273,7 @@ __metadata: optional: true bin: react-native: cli.js - checksum: 7dcbffffd529b47d34c7457cdf71ec0c9257fa5e467d8395e61675eab4a2494727464a1cd6d2d1b1fd1348cf71c409ee4a28a79a43ea38b1eb99fcf16e910b1c + checksum: cf621cef0649920bac2b730998be6eaaf9762d516bc65d9073b46f634bb640dfb6b9b5d64ce6a6e09da64d52d114d96d96435a91c9db8ec61b76c818fe209827 languageName: node linkType: hard @@ -16147,19 +15296,6 @@ __metadata: languageName: node linkType: hard -"react-test-renderer@npm:18.1.0": - version: 18.1.0 - resolution: "react-test-renderer@npm:18.1.0" - dependencies: - react-is: ^18.1.0 - react-shallow-renderer: ^16.15.0 - scheduler: ^0.22.0 - peerDependencies: - react: ^18.1.0 - checksum: 401a0020ff39ebdb37e015197ab11ceb13ddb7004716b7fb6304b169f20d6b0c4d0e14aaa0da139ce2b1eb14088cf370b5771b30fee52f16d6b682b5332c5781 - languageName: node - linkType: hard - "react-test-renderer@npm:18.3.1": version: 18.3.1 resolution: "react-test-renderer@npm:18.3.1" @@ -16173,15 +15309,6 @@ __metadata: languageName: node linkType: hard -"react@npm:18.2.0": - version: 18.2.0 - resolution: "react@npm:18.2.0" - dependencies: - loose-envify: ^1.1.0 - checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b - languageName: node - linkType: hard - "react@npm:18.3.1": version: 18.3.1 resolution: "react@npm:18.3.1" @@ -16365,23 +15492,7 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.14.0": - version: 0.14.1 - resolution: "regenerator-runtime@npm:0.14.1" - checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 - languageName: node - linkType: hard - -"regenerator-transform@npm:^0.15.2": - version: 0.15.2 - resolution: "regenerator-transform@npm:0.15.2" - dependencies: - "@babel/runtime": ^7.8.4 - checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.3": +"regexp.prototype.flags@npm:^1.5.3, regexp.prototype.flags@npm:^1.5.4": version: 1.5.4 resolution: "regexp.prototype.flags@npm:1.5.4" dependencies: @@ -16664,17 +15775,6 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^5.0.5": - version: 5.0.10 - resolution: "rimraf@npm:5.0.10" - dependencies: - glob: ^10.3.7 - bin: - rimraf: dist/esm/bin.mjs - checksum: 50e27388dd2b3fa6677385fc1e2966e9157c89c86853b96d02e6915663a96b7ff4d590e14f6f70e90f9b554093aa5dbc05ac3012876be558c06a65437337bc05 - languageName: node - linkType: hard - "rimraf@npm:~2.6.2": version: 2.6.3 resolution: "rimraf@npm:2.6.3" @@ -16702,8 +15802,8 @@ __metadata: "rum-events-format@DataDog/rum-events-format#workspace=rum-events-format": version: 1.0.0 - resolution: "rum-events-format@https://github.com/DataDog/rum-events-format.git#workspace=rum-events-format&commit=45a80c1390b8ec886534f5f1b43763a6d9d0a643" - checksum: 581bb42981596b65b9f340206b23f31e3e457edc847f0e1163c1f9488e703702d330f713bef54923d33fb15ffff343486683c807c92527efe45942b64f8d8013 + resolution: "rum-events-format@https://github.com/DataDog/rum-events-format.git#workspace=rum-events-format&commit=df69253e7a875963d2a9cf0abb97882a97ebf85e" + checksum: f5fc512b6a05a1df52109763c5a959d8715276b754dac4a73585858fdcd09210e52411ebf2987ae068256f3ce32627b5f7130512e90fba307feb001b28d839ff languageName: node linkType: hard @@ -16812,15 +15912,6 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.22.0": - version: 0.22.0 - resolution: "scheduler@npm:0.22.0" - dependencies: - loose-envify: ^1.1.0 - checksum: a8ef5cab769c020cd6382ad9ecc3f72dbde56a50a36639b3a42ad9c11f7724f03700bcad373044059b8067d4a6365154dc7c0ca8027ef20ff4900cf58a0fc2c5 - languageName: node - linkType: hard - "scheduler@npm:^0.23.2": version: 0.23.2 resolution: "scheduler@npm:0.23.2" @@ -16854,7 +15945,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.1, semver@npm:^5.6.0": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -16873,11 +15964,11 @@ __metadata: linkType: hard "semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": - version: 7.7.1 - resolution: "semver@npm:7.7.1" + version: 7.7.2 + resolution: "semver@npm:7.7.2" bin: semver: bin/semver.js - checksum: 586b825d36874007c9382d9e1ad8f93888d8670040add24a28e06a910aeebd673a2eb9e3bf169c6679d9245e66efb9057e0852e70d9daa6c27372aab1dda7104 + checksum: dd94ba8f1cbc903d8eeb4dd8bf19f46b3deb14262b6717d0de3c804b594058ae785ef2e4b46c5c3b58733c99c83339068203002f9e37cfe44f7e2cc5e3d2f621 languageName: node linkType: hard @@ -17167,14 +16258,14 @@ __metadata: linkType: hard "snyk@npm:^1.192.3": - version: 1.1296.0 - resolution: "snyk@npm:1.1296.0" + version: 1.1297.1 + resolution: "snyk@npm:1.1297.1" dependencies: "@sentry/node": ^7.36.0 global-agent: ^3.0.0 bin: snyk: bin/snyk - checksum: 0ea75ccba96ce8cd53f0ef787d975b144e17ee06efa21db2714b3f5dd230104a951aa309b659c673203d9cc50fc284efcb84b3f1f15b67dde371062f1a54a3c5 + checksum: 083b30c9a0372657b443df1c918e8748fdf65aba91386966e883fc3a1d9b523521470d626ba743a2686d6a339d5f1218a65cffd8d2ba44d1d9ef1352941ee282 languageName: node linkType: hard @@ -17242,7 +16333,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.7.3, source-map@npm:^0.7.4": +"source-map@npm:^0.7.4": version: 0.7.4 resolution: "source-map@npm:0.7.4" checksum: 01cc5a74b1f0e1d626a58d36ad6898ea820567e87f18dfc9d24a9843a351aaa2ec09b87422589906d6ff1deed29693e176194dc88bcae7c9a852dc74b311dbf5 @@ -17776,9 +16867,9 @@ __metadata: linkType: hard "tapable@npm:^2.2.0": - version: 2.2.1 - resolution: "tapable@npm:2.2.1" - checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51 + version: 2.2.2 + resolution: "tapable@npm:2.2.2" + checksum: 781b3666f4454eb506fd2bcd985c1994f2b93884ea88a7a2a5be956cad8337b31128a7591e771f7aab8e247993b2a0887d360a2d4f54382902ed89994c102740 languageName: node linkType: hard @@ -17843,13 +16934,6 @@ __metadata: languageName: node linkType: hard -"temp-dir@npm:^2.0.0": - version: 2.0.0 - resolution: "temp-dir@npm:2.0.0" - checksum: cc4f0404bf8d6ae1a166e0e64f3f409b423f4d1274d8c02814a59a5529f07db6cd070a749664141b992b2c1af337fa9bb451a460a43bb9bcddc49f235d3115aa - languageName: node - linkType: hard - "temp@npm:^0.8.4": version: 0.8.4 resolution: "temp@npm:0.8.4" @@ -17870,16 +16954,16 @@ __metadata: linkType: hard "terser@npm:^5.15.0": - version: 5.39.0 - resolution: "terser@npm:5.39.0" + version: 5.39.2 + resolution: "terser@npm:5.39.2" dependencies: "@jridgewell/source-map": ^0.3.3 - acorn: ^8.8.2 + acorn: ^8.14.0 commander: ^2.20.0 source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: e39c302aed7a70273c8b03032c37c68c8d9d3b432a7b6abe89caf9d087f7dd94d743c01ee5ba1431a095ad347c4a680b60d258f298a097cf512346d6041eb661 + checksum: 986a47896503c5bc6475c751d9445d4326de2e6f8b0be2c943b7726426ad0fe2385aacb9dce1dbc3aee13171595a0234411479bc855e6c730a51f23175132c84 languageName: node linkType: hard @@ -17915,7 +16999,7 @@ __metadata: languageName: node linkType: hard -"through2@npm:^2.0.0, through2@npm:^2.0.1": +"through2@npm:^2.0.0": version: 2.0.5 resolution: "through2@npm:2.0.5" dependencies: @@ -17939,6 +17023,16 @@ __metadata: languageName: node linkType: hard +"tinyglobby@npm:^0.2.12": + version: 0.2.14 + resolution: "tinyglobby@npm:0.2.14" + dependencies: + fdir: ^6.4.4 + picomatch: ^4.0.2 + checksum: 261e986e3f2062dec3a582303bad2ce31b4634b9348648b46828c000d464b012cf474e38f503312367d4117c3f2f18611992738fca684040758bba44c24de522 + languageName: node + linkType: hard + "tlhunter-sorted-set@npm:^0.1.0": version: 0.1.0 resolution: "tlhunter-sorted-set@npm:0.1.0" @@ -18256,12 +17350,12 @@ __metadata: linkType: hard "typescript@npm:>=3 < 6": - version: 5.8.2 - resolution: "typescript@npm:5.8.2" + version: 5.8.3 + resolution: "typescript@npm:5.8.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 7f9e3d7ac15da6df713e439e785e51facd65d6450d5f51fab3e8d2f2e3f4eb317080d895480b8e305450cdbcb37e17383e8bf521e7395f8b556e2f2a4730ed86 + checksum: cb1d081c889a288b962d3c8ae18d337ad6ee88a8e81ae0103fa1fecbe923737f3ba1dbdb3e6d8b776c72bc73bfa6d8d850c0306eed1a51377d2fccdfd75d92c4 languageName: node linkType: hard @@ -18276,12 +17370,12 @@ __metadata: linkType: hard "typescript@patch:typescript@>=3 < 6#~builtin": - version: 5.8.2 - resolution: "typescript@patch:typescript@npm%3A5.8.2#~builtin::version=5.8.2&hash=1f5320" + version: 5.8.3 + resolution: "typescript@patch:typescript@npm%3A5.8.3#~builtin::version=5.8.3&hash=1f5320" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: a58d19ff9811c1764a299dd83ca20ed8020f0ab642906dafc880121b710751227201531fdc99878158205c356ac79679b0b61ac5b42eda0e28bfb180947a258d + checksum: 1b503525a88ff0ff5952e95870971c4fb2118c17364d60302c21935dedcd6c37e6a0a692f350892bafcef6f4a16d09073fe461158547978d2f16fbe4cb18581c languageName: node linkType: hard @@ -18322,10 +17416,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.20.0": - version: 6.20.0 - resolution: "undici-types@npm:6.20.0" - checksum: b7bc50f012dc6afbcce56c9fd62d7e86b20a62ff21f12b7b5cbf1973b9578d90f22a9c7fe50e638e96905d33893bf2f9f16d98929c4673c2480de05c6c96ea8b +"undici-types@npm:~6.21.0": + version: 6.21.0 + resolution: "undici-types@npm:6.21.0" + checksum: 46331c7d6016bf85b3e8f20c159d62f5ae471aba1eb3dc52fff35a0259d58dcc7d592d4cc4f00c5f9243fa738a11cfa48bd20203040d4a9e6bc25e807fab7ab3 languageName: node linkType: hard @@ -18431,7 +17525,7 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.1.1": +"update-browserslist-db@npm:^1.1.3": version: 1.1.3 resolution: "update-browserslist-db@npm:1.1.3" dependencies: @@ -18674,7 +17768,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.18": +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19": version: 1.1.19 resolution: "which-typed-array@npm:1.1.19" dependencies: @@ -18841,7 +17935,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^6.2.2, ws@npm:^6.2.3": +"ws@npm:^6.2.3": version: 6.2.3 resolution: "ws@npm:6.2.3" dependencies: @@ -18850,7 +17944,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7, ws@npm:^7.5.1, ws@npm:^7.5.10": +"ws@npm:^7, ws@npm:^7.5.10": version: 7.5.10 resolution: "ws@npm:7.5.10" peerDependencies: @@ -18942,11 +18036,11 @@ __metadata: linkType: hard "yaml@npm:^2.2.1, yaml@npm:^2.2.2": - version: 2.7.0 - resolution: "yaml@npm:2.7.0" + version: 2.8.0 + resolution: "yaml@npm:2.8.0" bin: yaml: bin.mjs - checksum: 6e8b2f9b9d1b18b10274d58eb3a47ec223d9a93245a890dcb34d62865f7e744747190a9b9177d5f0ef4ea2e44ad2c0214993deb42e0800766203ac46f00a12dd + checksum: 66f103ca5a2f02dac0526895cc7ae7626d91aa8c43aad6fdcff15edf68b1199be4012140b390063877913441aaa5288fdf57eca30e06268a8282dd741525e626 languageName: node linkType: hard From a7e7ccda0702ec7ca727d09664ee2ab08fbcc9c5 Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Fri, 9 May 2025 17:31:54 +0200 Subject: [PATCH 02/13] Introduced internal native bridge for retrieving RUM Session ID --- .../reactnative/DdSdkImplementation.kt | 2 +- .../reactnative/DdSdkNativeInitialization.kt | 32 +--- .../reactnative/DdSdkReactNativePackage.kt | 27 ++- .../DdSdkSessionStartedListener.kt | 84 ++++++++ .../kotlin/com/datadog/reactnative/DdSdk.kt | 35 ++-- .../DdSdkNativeInitializationTest.kt | 1 - packages/core/ios/Sources/DdSdk.h | 10 +- packages/core/ios/Sources/DdSdk.mm | 97 +++++++--- .../ios/Sources/DdSdkImplementation.swift | 4 +- .../Sources/DdSdkNativeInitialization.swift | 31 +-- .../Sources/DdSdkSessionStartedListener.swift | 92 +++++++++ packages/core/src/DdSdkReactNative.tsx | 15 +- .../src/__tests__/DdSdkReactNative.test.tsx | 37 ---- packages/core/src/index.tsx | 22 +-- packages/core/src/rum/DdRum.ts | 24 +-- packages/core/src/rum/__tests__/DdRum.test.ts | 6 +- .../distributedTracing/distributedTracing.tsx | 6 +- .../distributedTracingHeaders.ts | 4 +- .../requestProxy/XHRProxy/XHRProxy.ts | 4 +- .../__tests__/sessionIdHelper.test.ts | 162 ---------------- .../core/src/rum/sessionId/sessionIdHelper.ts | 97 +++++----- .../DdSdkInternalNativeBridge.tsx | 12 ++ .../DdSdkNativeBridge.tsx | 55 ++++++ .../DdSdkNativeBridgeSpec.tsx | 13 ++ .../core/src/sdk/EventEmitter/EventEmitter.ts | 55 ------ .../__tests__/EventEmitter.test.ts | 181 ------------------ packages/core/src/specs/NativeDdSdk.ts | 7 +- 27 files changed, 481 insertions(+), 634 deletions(-) create mode 100644 packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt create mode 100644 packages/core/ios/Sources/DdSdkSessionStartedListener.swift delete mode 100644 packages/core/src/rum/sessionId/__tests__/sessionIdHelper.test.ts create mode 100644 packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridge.tsx create mode 100644 packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridge.tsx create mode 100644 packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridgeSpec.tsx delete mode 100644 packages/core/src/sdk/EventEmitter/EventEmitter.ts delete mode 100644 packages/core/src/sdk/EventEmitter/__tests__/EventEmitter.test.ts diff --git a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkImplementation.kt b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkImplementation.kt index 31f26ee2f..e964054f8 100644 --- a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkImplementation.kt +++ b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkImplementation.kt @@ -38,7 +38,7 @@ class DdSdkImplementation( fun initialize(configuration: ReadableMap, promise: Promise) { val ddSdkConfiguration = configuration.asDdSdkConfiguration() - val nativeInitialization = DdSdkNativeInitialization(appContext, reactContext, datadog) + val nativeInitialization = DdSdkNativeInitialization(appContext, datadog) nativeInitialization.initialize(ddSdkConfiguration) this.frameRateProvider = createFrameRateProvider(ddSdkConfiguration) diff --git a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt index a3a793d6d..81861c1f1 100644 --- a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt +++ b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt @@ -18,7 +18,6 @@ import com.datadog.android.event.EventMapper import com.datadog.android.log.LogsConfiguration import com.datadog.android.privacy.TrackingConsent import com.datadog.android.rum.RumConfiguration -import com.datadog.android.rum.RumSessionListener import com.datadog.android.rum._RumInternalProxy import com.datadog.android.rum.configuration.VitalsUpdateFrequency import com.datadog.android.rum.metric.networksettled.TimeBasedInitialResourceIdentifier @@ -27,25 +26,22 @@ import com.datadog.android.rum.model.ResourceEvent import com.datadog.android.rum.tracking.ActivityViewTrackingStrategy import com.datadog.android.telemetry.model.TelemetryConfigurationEvent import com.datadog.android.trace.TraceConfiguration -import com.facebook.react.bridge.ReactApplicationContext -import com.facebook.react.bridge.WritableNativeMap -import com.facebook.react.modules.core.DeviceEventManagerModule import com.google.gson.Gson import java.util.Locale import kotlin.time.Duration.Companion.seconds + /** * Initializes the Android Datadog SDK. */ class DdSdkNativeInitialization internal constructor( private val appContext: Context, - private val reactContext: ReactApplicationContext, private val datadog: DatadogWrapper = DatadogSDKWrapper(), private val jsonFileReader: JSONFileReader = JSONFileReader() ) { internal fun initialize(ddSdkConfiguration: DdSdkConfiguration) { val sdkConfiguration = buildSdkConfiguration(ddSdkConfiguration) - val rumConfiguration = buildRumConfiguration(ddSdkConfiguration, reactContext) + val rumConfiguration = buildRumConfiguration(ddSdkConfiguration) val logsConfiguration = buildLogsConfiguration(ddSdkConfiguration) val traceConfiguration = buildTraceConfiguration(ddSdkConfiguration) val trackingConsent = buildTrackingConsent(ddSdkConfiguration.trackingConsent) @@ -105,7 +101,7 @@ class DdSdkNativeInitialization internal constructor( } @Suppress("ComplexMethod") - private fun buildRumConfiguration(configuration: DdSdkConfiguration, reactContext: ReactApplicationContext): RumConfiguration { + private fun buildRumConfiguration(configuration: DdSdkConfiguration): RumConfiguration { val configBuilder = RumConfiguration.Builder( applicationId = configuration.applicationId @@ -209,28 +205,14 @@ class DdSdkNativeInitialization internal constructor( configBuilder.trackNonFatalAnrs(it) } - configBuilder.setSessionListener( - object : RumSessionListener { - override fun onSessionStarted(sessionId: String, isDiscarded: Boolean) { - sendSessionIdEvent(sessionId, isDiscarded) - } - } - ) - configuration.initialResourceThreshold?.let { val milliseconds = it.seconds.inWholeMilliseconds configBuilder.setInitialResourceIdentifier(TimeBasedInitialResourceIdentifier(milliseconds)) } - return configBuilder.build() - } + configBuilder.setSessionListener(DdSdkSessionStartedListener.getInstance()) - private fun sendSessionIdEvent(sessionId: String, isDiscarded: Boolean) { - val attributes = WritableNativeMap() - attributes.putString("sessionId", sessionId) - attributes.putBoolean("isDiscarded", isDiscarded) - reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java) - .emit("RumSessionStarted", attributes) + return configBuilder.build() } private fun buildLogsConfiguration(configuration: DdSdkConfiguration): LogsConfiguration { @@ -381,8 +363,8 @@ class DdSdkNativeInitialization internal constructor( * @param appContext: The application context of your React Native application. */ @JvmStatic - fun initFromNative(appContext: Context, reactContext: ReactApplicationContext) { - val nativeInitialization = DdSdkNativeInitialization(appContext.applicationContext, reactContext) + fun initFromNative(appContext: Context) { + val nativeInitialization = DdSdkNativeInitialization(appContext.applicationContext) try { nativeInitialization.initialize(nativeInitialization.getConfigurationFromJSONFile()) } catch (@Suppress("TooGenericExceptionCaught") error: Exception) { diff --git a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt index 8fcf84a2f..766620a33 100644 --- a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt +++ b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt @@ -6,7 +6,8 @@ package com.datadog.reactnative -import com.facebook.react.TurboReactPackage +import com.facebook.react.BaseReactPackage +import com.facebook.react.bridge.LifecycleEventListener import com.facebook.react.bridge.NativeModule import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.module.model.ReactModuleInfo @@ -15,10 +16,11 @@ import com.facebook.react.module.model.ReactModuleInfoProvider /** * Package of native dd-sdk-reactnative native modules. */ -class DdSdkReactNativePackage : TurboReactPackage() { +class DdSdkReactNativePackage : BaseReactPackage() { private val sdkWrapper = DatadogSDKWrapper() - + private var lifecycleEventListener: LifecycleEventListener? = null override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { + registerLifecycleEventListener(reactContext) return when (name) { DdSdkImplementation.NAME -> DdSdk(reactContext, sdkWrapper) DdRumImplementation.NAME -> DdRum(reactContext, sdkWrapper) @@ -28,6 +30,25 @@ class DdSdkReactNativePackage : TurboReactPackage() { } } + private fun registerLifecycleEventListener(reactContext: ReactApplicationContext) { + if (lifecycleEventListener != null) { + return + } + + lifecycleEventListener = object: LifecycleEventListener{ + override fun onHostDestroy() { + DdSdkSessionStartedListener.invalidate() + } + override fun onHostPause() { + DdSdkSessionStartedListener.invalidate() + } + override fun onHostResume() { + DdSdkSessionStartedListener.getInstance().setReactContext(reactContext) + } + } + reactContext.addLifecycleEventListener(lifecycleEventListener) + } + override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { return ReactModuleInfoProvider { val isTurboModule: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED diff --git a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt new file mode 100644 index 000000000..971c244b5 --- /dev/null +++ b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt @@ -0,0 +1,84 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +package com.datadog.reactnative + +import android.util.Log +import com.datadog.android.rum.RumSessionListener +import com.facebook.react.bridge.ReactContext +import com.facebook.react.bridge.WritableNativeArray + +class DdSdkSessionStartedListener private constructor(): RumSessionListener { + companion object { + private const val BRIDGE_MODULE_NAME = "DatadogInternalReactBridge" + private const val BRIDGE_MODULE_METHOD = "__datadogRumSessionStarted" + + private var instance: DdSdkSessionStartedListener? = null + + fun getInstance(): DdSdkSessionStartedListener { + if (instance == null) { + instance = DdSdkSessionStartedListener() + } + return instance!! + } + + fun invalidate() { + instance = null + } + } + + private var reactContext: ReactContext? = null + private var lastSessionId: String? = null + private var listener: ((sessionId: String) -> Unit)? = null + + override fun onSessionStarted(sessionId: String, isDiscarded: Boolean) { + sendSessionStartedToJS(sessionId) + } + + fun setListener(listener: (sessionId: String) -> Unit) { + this.listener = listener + this.lastSessionId?.let { sendSessionStartedToJS(it) } + } + + fun setReactContext(reactContext: ReactContext) { + this.reactContext = reactContext + if (hasValidBridge()) { + this.lastSessionId?.let { sendSessionStartedToJS(it) } + } + } + + private fun hasValidBridge(): Boolean { + val context = reactContext ?: return false + val instance = context.catalystInstance ?: return false + val isNotFabric = context.fabricUIManager == null + return isNotFabric && !instance.isDestroyed && context.hasActiveReactInstance(); + } + + private fun sendSessionStartedToJS(sessionId: String) { + this.lastSessionId = sessionId + if (hasValidBridge()) { + sendSessionIdWithBridge(sessionId) + } else { + sendSessionIdWithListener(sessionId) + } + } + + private fun sendSessionIdWithBridge(sessionId: String) { + @Suppress("TooGenericExceptionCaught") + try { + val args = WritableNativeArray() + args.pushString(sessionId) + reactContext?.catalystInstance?.callFunction( + BRIDGE_MODULE_NAME, + BRIDGE_MODULE_METHOD, + args + ) + } catch(_: Exception) { /* empty */ } + } + + private fun sendSessionIdWithListener(sessionId: String) { + listener?.invoke(sessionId) + } +} \ No newline at end of file diff --git a/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt b/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt index a9fb179cb..5bd1d0026 100644 --- a/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt +++ b/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt @@ -24,20 +24,10 @@ class DdSdk( override fun getName(): String = DdSdkImplementation.NAME init { - reactContext.addLifecycleEventListener(object : LifecycleEventListener { - override fun onHostResume() { - val currentActivity: Activity? = currentActivity - if (currentActivity != null) { - val intent = currentActivity.intent - val extras = intent.extras - DdSdkSynthetics.testId = extras?.getString("_dd.synthetics.test_id") - DdSdkSynthetics.resultId = extras?.getString("_dd.synthetics.result_id") - } - } - - override fun onHostPause() {} - override fun onHostDestroy() {} - }) + registerLifecycleEvents(reactContext) + DdSdkSessionStartedListener.getInstance().setListener { sessionId -> + emitOnRUMSessionStarted(sessionId) + } } /** @@ -143,4 +133,21 @@ class DdSdk( override fun removeListeners(count: Double) { // No-op } + + private fun registerLifecycleEvents(reactContext: ReactApplicationContext) { + reactContext.addLifecycleEventListener(object : LifecycleEventListener { + override fun onHostResume() { + val currentActivity: Activity? = currentActivity + if (currentActivity != null) { + val intent = currentActivity.intent + val extras = intent.extras + DdSdkSynthetics.testId = extras?.getString("_dd.synthetics.test_id") + DdSdkSynthetics.resultId = extras?.getString("_dd.synthetics.result_id") + } + } + + override fun onHostPause() {} + override fun onHostDestroy() {} + }) + } } diff --git a/packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkNativeInitializationTest.kt b/packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkNativeInitializationTest.kt index 7a63c5b24..d05d43c57 100644 --- a/packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkNativeInitializationTest.kt +++ b/packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkNativeInitializationTest.kt @@ -62,7 +62,6 @@ internal class DdSdkNativeInitializationTest { ) doReturn mockPackageInfo testedNativeInitialization = DdSdkNativeInitialization( - mockContext, mockContext, mockDatadog, mockJSONFileReader diff --git a/packages/core/ios/Sources/DdSdk.h b/packages/core/ios/Sources/DdSdk.h index 2b8a652b6..20a3b4f98 100644 --- a/packages/core/ios/Sources/DdSdk.h +++ b/packages/core/ios/Sources/DdSdk.h @@ -6,24 +6,26 @@ #import #import +#import +#import +#import @class DdSdkImplementation; #ifdef RCT_NEW_ARCH_ENABLED #import -@interface DdSdk : RCTEventEmitter +@interface DdSdk : NativeDdSdkSpecBase #else #import -@interface DdSdk : RCTEventEmitter +@interface DdSdk : RCTEventEmitter #endif -@property(nonatomic, strong) DdSdkImplementation *ddSdkImplementation; +@property(nonatomic, strong) DdSdkImplementation * _Nonnull ddSdkImplementation; + (void)initFromNative; -+ (RCTBridge * _Nullable)latestBridgeReference; @end diff --git a/packages/core/ios/Sources/DdSdk.mm b/packages/core/ios/Sources/DdSdk.mm index acdb311f2..925a45421 100644 --- a/packages/core/ios/Sources/DdSdk.mm +++ b/packages/core/ios/Sources/DdSdk.mm @@ -10,19 +10,15 @@ #import #endif #import "DdSdk.h" -#import @implementation DdSdk static __weak RCTBridge *_bridge = nil; -- (void)setBridge:(RCTBridge *)bridge { - [super setBridge:bridge]; - _bridge = bridge; -} - -+ (RCTBridge *)latestBridgeReference { - return _bridge; +/// This method can be called from AppDelegate to initialize the SDK from the native layer, to be able to catch startup errors and logs. ++ (void)initFromNative { + DdSdkNativeInitialization *nativeInitialization = [[DdSdkNativeInitialization alloc] init]; + [nativeInitialization initializeFromNative]; } RCT_EXPORT_MODULE() @@ -98,37 +94,27 @@ + (RCTBridge *)latestBridgeReference { [self clearAllData:resolve reject:reject]; } -// Thanks to this guard, we won't compile this code when we build for the old architecture. -#ifdef RCT_NEW_ARCH_ENABLED -- (std::shared_ptr)getTurboModule: - (const facebook::react::ObjCTurboModule::InitParams &)params -{ - return std::make_shared(params); -} -#endif - - -- (NSArray *)supportedEvents { - return @[@"RumSessionStarted"]; +- (instancetype)init { + self = [super init]; + if (self) { + RCTExecuteOnMainQueue(^{ + RCTRegisterReloadCommandListener(self); + }); + } + return self; } - (DdSdkImplementation*)ddSdkImplementation { if (_ddSdkImplementation == nil) { - _ddSdkImplementation = [[DdSdkImplementation alloc] initWithBridge: _bridge ]; + _ddSdkImplementation = [[DdSdkImplementation alloc] initWithBridge:_bridge]; +#ifdef RCT_NEW_ARCH_ENABLED + [self registerSessionIdListener]; +#endif } return _ddSdkImplementation; } -+ (BOOL)requiresMainQueueSetup { - return NO; -} - -+ (void)initFromNative { - DdSdkNativeInitialization *nativeInitialization = [[DdSdkNativeInitialization alloc] init]; - [nativeInitialization initializeFromNative]; -} - - (dispatch_queue_t)methodQueue { return [RNQueue getSharedQueue]; } @@ -138,7 +124,7 @@ - (void)consumeWebviewEvent:(NSString *)message resolve:(RCTPromiseResolveBlock) } - (void)initialize:(NSDictionary *)configuration resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { - [self.ddSdkImplementation initializeWithConfiguration:configuration eventEmitter:self resolve:resolve reject:reject]; + [self.ddSdkImplementation initializeWithConfiguration:configuration resolve:resolve reject:reject]; } - (void)setAttributes:(NSDictionary *)attributes resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { @@ -173,4 +159,53 @@ - (void)clearAllData:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlo [self.ddSdkImplementation clearAllDataWithResolve:resolve reject:reject]; } +- (void)addListener:(NSString *)eventType { + // No-OP +} + +- (void)removeListeners:(double)count { + // No-OP +} + ++ (BOOL)requiresMainQueueSetup { + return NO; +} + +- (void)didReceiveReloadCommand { + [DdSdkSessionStartedListener invalidate]; +} + ++ (RCTBridge *)latestBridgeReference { + return _bridge; +} + +#ifdef RCT_NEW_ARCH_ENABLED +- (std::shared_ptr)getTurboModule: + (const facebook::react::ObjCTurboModule::InitParams &)params +{ + return std::make_shared(params); +} + +- (void)registerSessionIdListener { + __weak DdSdk* weakSelf = self; + [DdSdkSessionStartedListener.instance setListener:^(NSString * _Nonnull sessionId) { + DdSdk* strongSelf = weakSelf; + if (!strongSelf) { + return; + } + [strongSelf emitOnRUMSessionStarted: sessionId]; + }]; +} +#else +- (void)registerNativeBridge { + [DdSdkSessionStartedListener.instance setRCTBridge: _bridge]; +} + +- (void)setBridge:(RCTBridge *)bridge { + [super setBridge:bridge]; + _bridge = bridge; + [self registerNativeBridge]; +} +#endif + @end diff --git a/packages/core/ios/Sources/DdSdkImplementation.swift b/packages/core/ios/Sources/DdSdkImplementation.swift index 68e1756dd..843ccaf5d 100644 --- a/packages/core/ios/Sources/DdSdkImplementation.swift +++ b/packages/core/ios/Sources/DdSdkImplementation.swift @@ -59,11 +59,11 @@ public class DdSdkImplementation: NSObject { // Using @escaping RCTPromiseResolveBlock type will result in an issue when compiling the Swift header file. @objc - public func initialize(configuration: NSDictionary, eventEmitter: RCTEventEmitter?, resolve:@escaping ((Any?) -> Void), reject:RCTPromiseRejectBlock) -> Void { + public func initialize(configuration: NSDictionary, resolve:@escaping ((Any?) -> Void), reject:RCTPromiseRejectBlock) -> Void { let sdkConfiguration = configuration.asDdSdkConfiguration() let nativeInitialization = DdSdkNativeInitialization() - nativeInitialization.initialize(sdkConfiguration: sdkConfiguration, eventEmitter: eventEmitter) + nativeInitialization.initialize(sdkConfiguration: sdkConfiguration) self.startJSRefreshRateMonitoring(sdkConfiguration: sdkConfiguration) self.overrideReactNativeTelemetry(rnConfiguration: sdkConfiguration) diff --git a/packages/core/ios/Sources/DdSdkNativeInitialization.swift b/packages/core/ios/Sources/DdSdkNativeInitialization.swift index 29ac7f242..4783f6190 100644 --- a/packages/core/ios/Sources/DdSdkNativeInitialization.swift +++ b/packages/core/ios/Sources/DdSdkNativeInitialization.swift @@ -29,7 +29,7 @@ public class DdSdkNativeInitialization: NSObject { self.jsonFileReader = jsonFileReader } - internal func initialize(sdkConfiguration: DdSdkConfiguration, eventEmitter: RCTEventEmitter?) { + internal func initialize(sdkConfiguration: DdSdkConfiguration) { // TODO: see if this `if` is still needed if DatadogSDKWrapper.shared.isInitialized() { // Initializing the SDK twice results in Global.rum and @@ -47,7 +47,7 @@ public class DdSdkNativeInitialization: NSObject { trackingConsent: sdkConfiguration.trackingConsent ) - self.enableFeatures(sdkConfiguration: sdkConfiguration, eventEmitter: eventEmitter) + self.enableFeatures(sdkConfiguration: sdkConfiguration) } internal func getConfigurationFromJSONFile() -> DdSdkConfiguration? { @@ -66,12 +66,12 @@ public class DdSdkNativeInitialization: NSObject { @objc public func initializeFromNative() -> Void { if let configuration = getConfigurationFromJSONFile() { - self.initialize(sdkConfiguration: configuration, eventEmitter: nil) + self.initialize(sdkConfiguration: configuration) } } - func enableFeatures(sdkConfiguration: DdSdkConfiguration, eventEmitter: RCTEventEmitter?) { - let rumConfig = buildRUMConfiguration(configuration: sdkConfiguration, eventEmitter: eventEmitter) + func enableFeatures(sdkConfiguration: DdSdkConfiguration) { + let rumConfig = buildRUMConfiguration(configuration: sdkConfiguration) DatadogSDKWrapper.shared.enableRUM(with: rumConfig) let logsConfig = buildLogsConfiguration(configuration: sdkConfiguration) @@ -113,7 +113,7 @@ public class DdSdkNativeInitialization: NSObject { return config } - func buildRUMConfiguration(configuration: DdSdkConfiguration, eventEmitter: RCTEventEmitter?) -> RUM.Configuration { + func buildRUMConfiguration(configuration: DdSdkConfiguration) -> RUM.Configuration { var longTaskThreshold: TimeInterval? = nil if let threshold = configuration.nativeLongTaskThresholdMs { if (threshold != 0) { @@ -150,22 +150,7 @@ public class DdSdkNativeInitialization: NSObject { customRUMEndpointURL = URL(string: "\(customRUMEndpoint)/api/v2/rum" as String) } } - let onSessionStart: RUM.SessionListener = { sessionId, isDiscarded in - guard - let emitter = eventEmitter, - let bridge = emitter.bridge, - let latestBridge = DdSdk.latestBridgeReference(), - bridge === latestBridge - else { - return - } - - let body: [String: Any?] = [ - "sessionId": sessionId, "isDiscarded": isDiscarded, - ] - eventEmitter?.sendEvent(withName: "RumSessionStarted", body: body) - } - + var networkSettledResourcePredicate: TimeBasedTNSResourcePredicate? = nil if let initialResourceThreshold = configuration.initialResourceThreshold as TimeInterval? { networkSettledResourcePredicate = TimeBasedTNSResourcePredicate(threshold: initialResourceThreshold) @@ -196,7 +181,7 @@ public class DdSdkNativeInitialization: NSObject { } return actionEvent }, - onSessionStart: onSessionStart, + onSessionStart: DdSdkSessionStartedListener.instance.rumSessionListener, customEndpoint: customRUMEndpointURL, telemetrySampleRate: (configuration.telemetrySampleRate as? NSNumber)?.floatValue ?? Float(DefaultConfiguration.telemetrySampleRate) ) diff --git a/packages/core/ios/Sources/DdSdkSessionStartedListener.swift b/packages/core/ios/Sources/DdSdkSessionStartedListener.swift new file mode 100644 index 000000000..5db6bca03 --- /dev/null +++ b/packages/core/ios/Sources/DdSdkSessionStartedListener.swift @@ -0,0 +1,92 @@ +/* +* Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. +* This product includes software developed at Datadog (https://www.datadoghq.com/). +* Copyright 2019-2020 Datadog, Inc. +*/ + +import Foundation +import DatadogRUM +import React + +@objc +public class DdSdkSessionStartedListener: NSObject { + @objc public static var instance: DdSdkSessionStartedListener { + if _instance == nil { + _instance = DdSdkSessionStartedListener() + } + return _instance! + } + + @objc public static func invalidate() { + _instance?.invalidate() + } + + public private(set) var rumSessionListener: RUM.SessionListener? + + private static let BRIDGE_MODULE_NAME = "DatadogInternalReactBridge" + private static let BRIDGE_MODULE_METHOD = "__datadogRumSessionStarted" + private static var _instance: DdSdkSessionStartedListener? + + private var listener: ((String) -> Void)? + private var rctBridge: RCTBridge? + private var lastSessionId: String? + + @objc private override init() { + super.init() + self.rumSessionListener = { [weak self] sessionId, isDiscarded in + self?.lastSessionId = sessionId + self?.sendSessionStartedToJS(sessionId: sessionId) + } + } + + @objc public func setListener(_ listener: ((String) -> Void)?) { + self.listener = listener + } + + @objc public func setRCTBridge(_ rctBridge: RCTBridge) { + self.rctBridge = rctBridge + guard let sessionId = lastSessionId else { + return + } + sendSessionStartedToJS(sessionId: sessionId) + } + + func invalidate() { + self.rctBridge = nil + self.listener = nil + } + + private func sendSessionStartedToJS(sessionId: String) { + self.lastSessionId = sessionId + + if self.rctBridge != nil { + sendToJsWithBridge(sessionId: sessionId) + } else { + sendToJsWithListener(sessionId: sessionId) + } + } + + private func sendToJsWithBridge(sessionId: String) { + guard + let rctBridge = self.rctBridge, + rctBridge.isValid + else { + return + } + + rctBridge.enqueueJSCall( + DdSdkSessionStartedListener.BRIDGE_MODULE_NAME, + method: DdSdkSessionStartedListener.BRIDGE_MODULE_METHOD, + args: [sessionId], + completion: {} + ) + } + + private func sendToJsWithListener(sessionId: String) { + guard let listener = self.listener else { + return + } + + listener(sessionId) + } +} diff --git a/packages/core/src/DdSdkReactNative.tsx b/packages/core/src/DdSdkReactNative.tsx index 37af827d3..43719fed1 100644 --- a/packages/core/src/DdSdkReactNative.tsx +++ b/packages/core/src/DdSdkReactNative.tsx @@ -29,9 +29,13 @@ import { DdRum } from './rum/DdRum'; import { DdRumErrorTracking } from './rum/instrumentation/DdRumErrorTracking'; import { DdRumUserInteractionTracking } from './rum/instrumentation/interactionTracking/DdRumUserInteractionTracking'; import { DdRumResourceTracking } from './rum/instrumentation/resourceTracking/DdRumResourceTracking'; -import { registerRumSessionIdListener } from './rum/sessionId/sessionIdHelper'; +import { + pollForSessionId, + verifySessionId +} from './rum/sessionId/sessionIdHelper'; import { AttributesSingleton } from './sdk/AttributesSingleton/AttributesSingleton'; import type { Attributes } from './sdk/AttributesSingleton/types'; +import { hasNativeBridge } from './sdk/DatadogInternalBridge/DdSdkNativeBridge'; import { BufferSingleton } from './sdk/DatadogProvider/Buffer/BufferSingleton'; import { DdSdk } from './sdk/DdSdk'; import { FileBasedConfiguration } from './sdk/FileBasedConfiguration/FileBasedConfiguration'; @@ -77,8 +81,6 @@ export class DdSdkReactNative { initializationModeForTelemetry: InitializationModeForTelemetry; } ): Promise => { - registerRumSessionIdListener(); - if (GlobalState.instance.isInitialized) { InternalLog.log( "Can't initialize Datadog, SDK was already initialized", @@ -97,6 +99,13 @@ export class DdSdkReactNative { await DdSdk.initialize( DdSdkReactNative.buildConfiguration(configuration, params) ); + + if (!hasNativeBridge()) { + pollForSessionId(); + } else { + verifySessionId(); + } + InternalLog.log('Datadog SDK was initialized', SdkVerbosity.INFO); GlobalState.instance.isInitialized = true; BufferSingleton.onInitialization(); diff --git a/packages/core/src/__tests__/DdSdkReactNative.test.tsx b/packages/core/src/__tests__/DdSdkReactNative.test.tsx index 801b18382..2e90a8acd 100644 --- a/packages/core/src/__tests__/DdSdkReactNative.test.tsx +++ b/packages/core/src/__tests__/DdSdkReactNative.test.tsx @@ -17,7 +17,6 @@ import { DdRum } from '../rum/DdRum'; import { DdRumErrorTracking } from '../rum/instrumentation/DdRumErrorTracking'; import { DdRumUserInteractionTracking } from '../rum/instrumentation/interactionTracking/DdRumUserInteractionTracking'; import { DdRumResourceTracking } from '../rum/instrumentation/resourceTracking/DdRumResourceTracking'; -import { registerRumSessionIdListener } from '../rum/sessionId/sessionIdHelper'; import { ErrorSource, PropagatorType, RumActionType } from '../rum/types'; import { AttributesSingleton } from '../sdk/AttributesSingleton/AttributesSingleton'; import { DdSdk } from '../sdk/DdSdk'; @@ -58,15 +57,6 @@ jest.mock('../rum/instrumentation/DdRumErrorTracking', () => { }; }); -jest.mock('../rum/sessionId/sessionIdHelper', () => { - return { - registerRumSessionIdListener: jest.fn(), - removeRumSessionIdListeners: jest.fn(), - getCachedRumSessionId: jest.fn(), - setCachedRumSessionId: jest.fn() - }; -}); - beforeEach(async () => { GlobalState.instance.isInitialized = false; DdSdkReactNative['wasAutoInstrumented'] = false; @@ -88,10 +78,6 @@ beforeEach(async () => { UserInfoSingleton.reset(); AttributesSingleton.reset(); - - (registerRumSessionIdListener as jest.MockedFunction< - () => void - >).mockClear(); }); describe('DdSdkReactNative', () => { @@ -1056,29 +1042,6 @@ describe('DdSdkReactNative', () => { logs: 'https://logs.example.com/' }); }); - - it('registers RUM Session ID listener when initialize', async () => { - // GIVEN - const fakeAppId = '1'; - const fakeClientToken = '2'; - const fakeEnvName = 'env'; - const configuration = new DdSdkReactNativeConfiguration( - fakeClientToken, - fakeEnvName, - fakeAppId, - false, - false, - true - ); - - NativeModules.DdSdk.initialize.mockResolvedValue(null); - - // WHEN - await DdSdkReactNative.initialize(configuration); - - // THEN - expect(registerRumSessionIdListener).toHaveBeenCalledTimes(1); - }); }); describe('setAttributes', () => { diff --git a/packages/core/src/index.tsx b/packages/core/src/index.tsx index a42637082..792dc326e 100644 --- a/packages/core/src/index.tsx +++ b/packages/core/src/index.tsx @@ -3,8 +3,6 @@ * This product includes software developed at Datadog (https://www.datadoghq.com/). * Copyright 2016-Present Datadog, Inc. */ -/* eslint-disable arca/import-ordering */ - import { DatadogProviderConfiguration, DdSdkReactNativeConfiguration, @@ -15,34 +13,36 @@ import { BatchProcessingLevel } from './DdSdkReactNativeConfiguration'; import { DdSdkReactNative } from './DdSdkReactNative'; -import { DdSdk } from './sdk/DdSdk'; import { InternalLog } from './InternalLog'; import { ProxyConfiguration, ProxyType } from './ProxyConfiguration'; import { SdkVerbosity } from './SdkVerbosity'; import { TrackingConsent } from './TrackingConsent'; import { DdLogs } from './logs/DdLogs'; import { DdRum } from './rum/DdRum'; +import { DatadogTracingContext } from './rum/instrumentation/resourceTracking/distributedTracing/DatadogTracingContext'; +import { DatadogTracingIdentifier } from './rum/instrumentation/resourceTracking/distributedTracing/DatadogTracingIdentifier'; +import { + TracingIdType, + TracingIdFormat +} from './rum/instrumentation/resourceTracking/distributedTracing/TracingIdentifier'; import { DATADOG_GRAPH_QL_OPERATION_TYPE_HEADER, DATADOG_GRAPH_QL_OPERATION_NAME_HEADER, DATADOG_GRAPH_QL_VARIABLES_HEADER } from './rum/instrumentation/resourceTracking/graphql/graphqlHeaders'; import { RumActionType, ErrorSource, PropagatorType } from './rum/types'; +import type { FirstPartyHost } from './rum/types'; +import { DdSdkInternalNativeBridge } from './sdk/DatadogInternalBridge/DdSdkInternalNativeBridge'; +import { registerNativeBridge } from './sdk/DatadogInternalBridge/DdSdkNativeBridge'; import { DatadogProvider } from './sdk/DatadogProvider/DatadogProvider'; +import { DdSdk } from './sdk/DdSdk'; import { FileBasedConfiguration } from './sdk/FileBasedConfiguration/FileBasedConfiguration'; import { DdTrace } from './trace/DdTrace'; import { DefaultTimeProvider } from './utils/time-provider/DefaultTimeProvider'; import { TimeProvider } from './utils/time-provider/TimeProvider'; import type { Timestamp } from './utils/time-provider/TimeProvider'; -import { - TracingIdType, - TracingIdFormat -} from './rum/instrumentation/resourceTracking/distributedTracing/TracingIdentifier'; -import { DatadogTracingIdentifier } from './rum/instrumentation/resourceTracking/distributedTracing/DatadogTracingIdentifier'; -import { DatadogTracingContext } from './rum/instrumentation/resourceTracking/distributedTracing/DatadogTracingContext'; -import type { FirstPartyHost } from './rum/types'; -/* eslint-enable arca/import-ordering */ +registerNativeBridge(new DdSdkInternalNativeBridge()); export { DatadogProvider, diff --git a/packages/core/src/rum/DdRum.ts b/packages/core/src/rum/DdRum.ts index f30f7012f..f2f456098 100644 --- a/packages/core/src/rum/DdRum.ts +++ b/packages/core/src/rum/DdRum.ts @@ -30,8 +30,8 @@ import { getTracingContextForPropagators } from './instrumentation/resourceTracking/distributedTracing/distributedTracingHeaders'; import { - getCachedRumSessionId, - setCachedRumSessionId + getCachedSessionId, + setCachedSessionId } from './sessionId/sessionIdHelper'; import type { ErrorSource, @@ -54,13 +54,6 @@ class DdRumWrapper implements DdRumType { private actionEventMapper = generateActionEventMapper(undefined); private timeProvider: TimeProvider = new DefaultTimeProvider(); - constructor() { - // Fetch the current session if any (because we might have missed the first RumSessionStarted event) - this.getCurrentSessionId().then(value => { - setCachedRumSessionId(value ?? null); - }); - } - startView = ( key: string, name: string, @@ -324,15 +317,12 @@ class DdRumWrapper implements DdRumType { return undefined; } const sessionId = await this.nativeRum.getCurrentSessionId(); - setCachedRumSessionId(sessionId ?? null); - + if (sessionId) { + setCachedSessionId(sessionId); + } return sessionId; } - getCachedSessionId(): string | null { - return getCachedRumSessionId(); - } - getTracingContext = ( url: string, tracingSamplingRate: number, @@ -342,7 +332,7 @@ class DdRumWrapper implements DdRumType { url, tracingSamplingRate, firstPartyHosts, - getCachedRumSessionId() + getCachedSessionId() ); }; @@ -353,7 +343,7 @@ class DdRumWrapper implements DdRumType { return getTracingContextForPropagators( propagators, tracingSamplingRate, - getCachedRumSessionId() + getCachedSessionId() ); }; diff --git a/packages/core/src/rum/__tests__/DdRum.test.ts b/packages/core/src/rum/__tests__/DdRum.test.ts index 29a12d2e8..527492891 100644 --- a/packages/core/src/rum/__tests__/DdRum.test.ts +++ b/packages/core/src/rum/__tests__/DdRum.test.ts @@ -20,7 +20,7 @@ import { DatadogTracingContext } from '../instrumentation/resourceTracking/distr import { DatadogTracingIdentifier } from '../instrumentation/resourceTracking/distributedTracing/DatadogTracingIdentifier'; import { TracingIdFormat } from '../instrumentation/resourceTracking/distributedTracing/TracingIdentifier'; import { TracingIdentifierUtils } from '../instrumentation/resourceTracking/distributedTracing/__tests__/__utils__/TracingIdentifierUtils'; -import { setCachedRumSessionId } from '../sessionId/sessionIdHelper'; +import { setCachedSessionId } from '../sessionId/sessionIdHelper'; import type { FirstPartyHost } from '../types'; import { ErrorSource, PropagatorType, RumActionType } from '../types'; @@ -47,7 +47,7 @@ describe('DdRum', () => { beforeEach(() => { jest.clearAllMocks(); BufferSingleton.onInitialization(); - setCachedRumSessionId(null); + setCachedSessionId(undefined as any); }); describe('Context validation', () => { @@ -985,8 +985,8 @@ describe('DdRum', () => { it('tracing context contains RUM session ID in baggage when RUM Session ID is cached', () => { for (let i = 0; i < 100; i++) { const randomSessionId = `test-${Math.random()}`; - setCachedRumSessionId(randomSessionId); + setCachedSessionId(randomSessionId); const tracingContext = DdRum.getTracingContextForPropagators( [ PropagatorType.DATADOG, diff --git a/packages/core/src/rum/instrumentation/resourceTracking/distributedTracing/distributedTracing.tsx b/packages/core/src/rum/instrumentation/resourceTracking/distributedTracing/distributedTracing.tsx index e3f273bab..e529f3cd1 100644 --- a/packages/core/src/rum/instrumentation/resourceTracking/distributedTracing/distributedTracing.tsx +++ b/packages/core/src/rum/instrumentation/resourceTracking/distributedTracing/distributedTracing.tsx @@ -25,7 +25,7 @@ export type DdRumResourceTracingAttributes = samplingPriorityHeader: '1' | '0'; rulePsr: number; propagatorTypes: PropagatorType[]; - rumSessionId: string | null; + rumSessionId?: string; } | { tracingStrategy: 'DISCARD'; @@ -48,7 +48,7 @@ export const getTracingAttributes = ({ hostname: Hostname | null; firstPartyHostsRegexMap: RegexMap; tracingSamplingRate: number; - rumSessionId: string | null; + rumSessionId?: string; }): DdRumResourceTracingAttributes => { if (hostname === null) { return DISCARDED_TRACE_ATTRIBUTES; @@ -70,7 +70,7 @@ export const getTracingAttributes = ({ export const generateTracingAttributesWithSampling = ( tracingSamplingRate: number, propagatorTypes: PropagatorType[], - rumSessionId: string | null + rumSessionId?: string ): DdRumResourceTracingAttributes => { if (!propagatorTypes || propagatorTypes.length === 0) { return DISCARDED_TRACE_ATTRIBUTES; diff --git a/packages/core/src/rum/instrumentation/resourceTracking/distributedTracing/distributedTracingHeaders.ts b/packages/core/src/rum/instrumentation/resourceTracking/distributedTracing/distributedTracingHeaders.ts index 8f08fbee4..f4decf2ac 100644 --- a/packages/core/src/rum/instrumentation/resourceTracking/distributedTracing/distributedTracingHeaders.ts +++ b/packages/core/src/rum/instrumentation/resourceTracking/distributedTracing/distributedTracingHeaders.ts @@ -152,7 +152,7 @@ export const getTracingContext = ( url: string, tracingSamplingRate: number, firstPartyHosts: FirstPartyHost[], - rumSessionId: string | null + rumSessionId?: string ): DatadogTracingContext => { const hostname = URLHostParser(url); const firstPartyHostsRegexMap = firstPartyHostsRegexMapBuilder( @@ -174,7 +174,7 @@ export const getTracingContext = ( export const getTracingContextForPropagators = ( propagators: PropagatorType[], tracingSamplingRate: number, - rumSessionId: string | null + rumSessionId?: string ): DatadogTracingContext => { return getTracingContextForAttributes( generateTracingAttributesWithSampling( diff --git a/packages/core/src/rum/instrumentation/resourceTracking/requestProxy/XHRProxy/XHRProxy.ts b/packages/core/src/rum/instrumentation/resourceTracking/requestProxy/XHRProxy/XHRProxy.ts index 1d28d95f8..e81c8014f 100644 --- a/packages/core/src/rum/instrumentation/resourceTracking/requestProxy/XHRProxy/XHRProxy.ts +++ b/packages/core/src/rum/instrumentation/resourceTracking/requestProxy/XHRProxy/XHRProxy.ts @@ -5,7 +5,7 @@ */ import { Timer } from '../../../../../utils/Timer'; -import { DdRum } from '../../../../DdRum'; +import { getCachedSessionId } from '../../../../sessionId/sessionIdHelper'; import { getTracingHeadersFromAttributes } from '../../distributedTracing/distributedTracingHeaders'; import type { DdRumResourceTracingAttributes } from '../../distributedTracing/distributedTracing'; import { getTracingAttributes } from '../../distributedTracing/distributedTracing'; @@ -110,7 +110,7 @@ const proxyOpen = ( hostname, firstPartyHostsRegexMap, tracingSamplingRate, - rumSessionId: DdRum.getCachedSessionId() + rumSessionId: getCachedSessionId() }) }; // eslint-disable-next-line prefer-rest-params diff --git a/packages/core/src/rum/sessionId/__tests__/sessionIdHelper.test.ts b/packages/core/src/rum/sessionId/__tests__/sessionIdHelper.test.ts deleted file mode 100644 index 8796f0cd9..000000000 --- a/packages/core/src/rum/sessionId/__tests__/sessionIdHelper.test.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. - * This product includes software developed at Datadog (https://www.datadoghq.com/). - * Copyright 2016-Present Datadog, Inc. - */ - -/* eslint-disable @typescript-eslint/no-var-requires */ -/* eslint-disable global-require */ -import { createNativeEventEmitterForModule } from '../../../sdk/EventEmitter/EventEmitter'; - -describe('sessionIdHelper', () => { - beforeEach(() => { - jest.resetModules(); - }); - - it('M registerRumSessionIdListener correctly registers a listener for RumSessionStarted', () => { - // GIVEN - const { registerRumSessionIdListener } = require('../sessionIdHelper'); - const nativeModuleMock = { - addListener: jest.fn(), - removeListeners: jest.fn() - }; - - const eventEmitter = createNativeEventEmitterForModule( - nativeModuleMock - ); - - // WHEN - registerRumSessionIdListener(); - - // THEN - expect(eventEmitter.listenerCount('RumSessionStarted')).toBe(1); - }); - - it('M registerRumSessionIdListener does not register more than one listener for RumSessionStarted', () => { - // GIVEN - const { registerRumSessionIdListener } = require('../sessionIdHelper'); - - const nativeModuleMock = { - addListener: jest.fn(), - removeListeners: jest.fn() - }; - - const eventEmitter = createNativeEventEmitterForModule( - nativeModuleMock - ); - - // WHEN - registerRumSessionIdListener(); - registerRumSessionIdListener(); - registerRumSessionIdListener(); - - // THEN - expect(eventEmitter.listenerCount('RumSessionStarted')).toBe(1); - }); - - it('M removeRumSessionIdListeners should remove RumSessionStarted listener', () => { - // GIVEN - const { - registerRumSessionIdListener, - removeRumSessionIdListeners - } = require('../sessionIdHelper'); - - const nativeModuleMock = { - addListener: jest.fn(), - removeListeners: jest.fn() - }; - const eventEmitter = createNativeEventEmitterForModule( - nativeModuleMock - ); - - registerRumSessionIdListener(); - expect(eventEmitter.listenerCount('RumSessionStarted')).toBe(1); - - // WHEN - removeRumSessionIdListeners(); - - // THEN - expect(eventEmitter.listenerCount('RumSessionStarted')).toBe(0); - }); - - it('M getCachedRumSessionId should return null W { cachedRumSessionId has not been set }', () => { - // GIVEN - const { getCachedRumSessionId } = require('../sessionIdHelper'); - - // WHEN - const sessionId = getCachedRumSessionId(); - - // THEN - expect(sessionId).toBeNull(); - }); - - it('M getCachedRumSessionId should return cached RUM Session ID W { cachedRumSessionId has been set }', () => { - // GIVEN - const { - setCachedRumSessionId, - getCachedRumSessionId - } = require('../sessionIdHelper'); - - setCachedRumSessionId('TEST_SESSION_ID'); - - // WHEN - const sessionId = getCachedRumSessionId(); - - // THEN - expect(sessionId).toBe('TEST_SESSION_ID'); - }); - - it('M getCachedRumSessionId should return sessionID W { registered listener is called }', () => { - // GIVEN - const { - registerRumSessionIdListener, - getCachedRumSessionId - } = require('../sessionIdHelper'); - - const nativeModuleMock = { - addListener: jest.fn(), - removeListeners: jest.fn() - }; - const eventEmitter = createNativeEventEmitterForModule( - nativeModuleMock - ); - - registerRumSessionIdListener(); - - // WHEN - const event = { - sessionId: 'LISTENER_TEST_SESSION_ID' - }; - eventEmitter.emit('RumSessionStarted', event); - - // THEN - expect(getCachedRumSessionId()).toBe('LISTENER_TEST_SESSION_ID'); - }); - - it('M getCachedRumSessionId should be null W { registered listener is called with undefined value }', () => { - // GIVEN - const { - registerRumSessionIdListener, - getCachedRumSessionId - } = require('../sessionIdHelper'); - - const nativeModuleMock = { - addListener: jest.fn(), - removeListeners: jest.fn() - }; - const eventEmitter = createNativeEventEmitterForModule( - nativeModuleMock - ); - - registerRumSessionIdListener(); - - // WHEN - const event = { - sessionId: undefined - }; - eventEmitter.emit('RumSessionStarted', event); - - // THEN - expect(getCachedRumSessionId()).toBeNull(); - }); -}); diff --git a/packages/core/src/rum/sessionId/sessionIdHelper.ts b/packages/core/src/rum/sessionId/sessionIdHelper.ts index 43f16a4e8..5c87485fb 100644 --- a/packages/core/src/rum/sessionId/sessionIdHelper.ts +++ b/packages/core/src/rum/sessionId/sessionIdHelper.ts @@ -3,70 +3,61 @@ * This product includes software developed at Datadog (https://www.datadoghq.com/). * Copyright 2016-Present Datadog, Inc. */ -/* eslint-disable @typescript-eslint/no-var-requires */ -/* eslint-disable global-require */ -import { NativeModules } from 'react-native'; -import { createNativeEventEmitterForModule } from '../../sdk/EventEmitter/EventEmitter'; -import type { RumSessionStartedEvent } from '../../specs/NativeDdSdk'; +import { DdRum } from '../DdRum'; -const RUM_SESSION_STARTED_EVENT_KEY = 'RumSessionStarted'; +const SESSION_ID_POLL_INTERVAL = 500; +const SESSION_ID_POLL_MAX_ATTEMPTS = 10; +const SESSION_ID_VERIFY_DELAY = 1500; -let cachedRumSessionId: string | null; +let _cachedSessionId: string | undefined; +let _pollForSessionIdTimeout: NodeJS.Timeout | undefined; +let _verifySessionIdTimeout: NodeJS.Timeout | undefined; -/** - * [INTERNAL API] - * Registers a listener for the native 'RumSessionStarted' event, to update - * the cached Session ID. - */ -export const registerRumSessionIdListener = () => { - const DdSdkModule = - NativeModules.DdSdk || require('../../specs/NativeDdSdk').default; - const eventEmitter = createNativeEventEmitterForModule(DdSdkModule); - const listenerCount = eventEmitter.listenerCount( - RUM_SESSION_STARTED_EVENT_KEY - ); +export const pollForSessionId = ( + intervalMs = SESSION_ID_POLL_INTERVAL, + maxAttempts = SESSION_ID_POLL_MAX_ATTEMPTS +): void => { + let attempts = 0; - // Always remove old listeners to avoid potential issues with invalid bridge references - if (listenerCount > 0) { - removeRumSessionIdListeners(); - } + const poll = async () => { + if (_pollForSessionIdTimeout) { + clearTimeout(_pollForSessionIdTimeout); + } + attempts++; + try { + const id = await DdRum.getCurrentSessionId(); + if (id) { + _cachedSessionId = id; + return; + } + } catch (e) { + /* empty */ + } - eventEmitter.addListener( - RUM_SESSION_STARTED_EVENT_KEY, - (event: RumSessionStartedEvent) => { - const field: keyof RumSessionStartedEvent = 'sessionId'; - const sessionId = event[field]; - cachedRumSessionId = sessionId; + if (attempts < maxAttempts) { + _pollForSessionIdTimeout = setTimeout(poll, intervalMs); } - ); + }; + + poll(); }; -/** - * [INTERNAL API] - * Removes all listeners for the native 'RumSessionStarted' event (USEFUL FOR TESTING). - */ -export const removeRumSessionIdListeners = () => { - const eventEmitter = createNativeEventEmitterForModule(NativeModules.DdSdk); - eventEmitter.removeAllListeners(RUM_SESSION_STARTED_EVENT_KEY); +export const verifySessionId = () => { + if (_verifySessionIdTimeout) { + clearTimeout(_verifySessionIdTimeout); + } + _verifySessionIdTimeout = setTimeout(() => { + if (!_cachedSessionId) { + pollForSessionId(); + } + }, SESSION_ID_VERIFY_DELAY); }; -/** - * [INTERNAL API] - * Returns the cached RUM Session ID, updated either by: - * - `RUMSessionStarted` events from the native layer - * - Calls to `DdRum.getCurrentSessionId()` public API - * @returns The cached RUM Session ID. - */ -export const getCachedRumSessionId = (): string | null => { - return cachedRumSessionId ?? null; +export const getCachedSessionId = () => { + return _cachedSessionId; }; -/** - * [INTERNAL API] - * Manually overrides the cached RUM Session ID. - * @param sessionId The RUM Session ID to set (or null). - */ -export const setCachedRumSessionId = (sessionId: string | null) => { - cachedRumSessionId = sessionId; +export const setCachedSessionId = (sessionId: string) => { + _cachedSessionId = sessionId; }; diff --git a/packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridge.tsx b/packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridge.tsx new file mode 100644 index 000000000..c17f47879 --- /dev/null +++ b/packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridge.tsx @@ -0,0 +1,12 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +import { setCachedSessionId } from '../../rum/sessionId/sessionIdHelper'; + +export class DdSdkInternalNativeBridge { + __datadogRumSessionStarted(sessionId: string) { + setCachedSessionId(sessionId); + } +} diff --git a/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridge.tsx b/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridge.tsx new file mode 100644 index 000000000..2b2240373 --- /dev/null +++ b/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridge.tsx @@ -0,0 +1,55 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +import NativeDdSdk from '../../specs/NativeDdSdk'; + +import type { DdSdkNativeBridgeSpec } from './DdSdkNativeBridgeSpec'; + +let _hasNativeBridge = false; + +type ErrorHandler = (err: any) => void; +const noOpErrorHandler: ErrorHandler = (_: any) => { + /* empty */ +}; +export const registerNativeBridge = ( + bridge: DdSdkNativeBridgeSpec, + errorHandler: ErrorHandler = noOpErrorHandler +) => { + try { + const globalThis = global as any; + if (globalThis.RN$Bridgeless) { + registerNewArchitectureBridge(bridge); + } else { + registerOldArchitectureBridge(bridge); + } + + _hasNativeBridge = true; + } catch (err) { + errorHandler(err); + } +}; + +function registerNewArchitectureBridge(bridge: DdSdkNativeBridgeSpec) { + const nativeDdSdk = NativeDdSdk; + if (!nativeDdSdk) { + throw new Error( + 'registerNativeBridge() ERROR: NativeDdSdk is undefined' + ); + } + + // Register Turbo Module Event Listeners here + nativeDdSdk.onRUMSessionStarted(bridge.__datadogRumSessionStarted); +} + +function registerOldArchitectureBridge(internalBridge: DdSdkNativeBridgeSpec) { + // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires + const batchedBridge = require('react-native/Libraries/BatchedBridge/BatchedBridge'); + batchedBridge.registerCallableModule( + 'DatadogInternalReactBridge', + internalBridge + ); +} + +export const hasNativeBridge = () => _hasNativeBridge; diff --git a/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridgeSpec.tsx b/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridgeSpec.tsx new file mode 100644 index 000000000..531c7dfea --- /dev/null +++ b/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridgeSpec.tsx @@ -0,0 +1,13 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ + +export interface DdSdkNativeBridgeSpec { + /** + * Internal event used to retrieve the RUM Session ID from 'RUMSessionStarted' native events. + * @param sessionId The current RUM Session ID. + */ + __datadogRumSessionStarted(sessionId: string): void; +} diff --git a/packages/core/src/sdk/EventEmitter/EventEmitter.ts b/packages/core/src/sdk/EventEmitter/EventEmitter.ts deleted file mode 100644 index 4674731e6..000000000 --- a/packages/core/src/sdk/EventEmitter/EventEmitter.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. - * This product includes software developed at Datadog (https://www.datadoghq.com/). - * Copyright 2016-Present Datadog, Inc. - */ -import { NativeEventEmitter, Platform } from 'react-native'; -import type { NativeModule } from 'react-native'; - -const EMPTY_NATIVE_MODULE: NativeModule = { - addListener(_: string): void { - /* empty */ - }, - removeListeners(_: number): void { - /* empty */ - } -}; - -const nativeEventEmitters = new Map(); - -/** - * Default implementation for creating a NativeEventEmitter. - * @param nativeModule The NativeModule for which the NativeEventEmitter is created for. - * @returns The NativeEventEmitter. - */ -const createDefaultNativeEventEmitter = ( - nativeModule?: NativeModule -): NativeEventEmitter => { - return new NativeEventEmitter(nativeModule); -}; - -/** - * [INTERNAL API] - * Creates a {@link NativeEventEmitter} from the given {@link NativeModule}. - * @param nativeModule The {@link NativeModule} to create the {@link NativeEventEmitter} for. - * @param createNativeEventEmitter Custom implementation for creating a {@link NativeEventEmitter}. - * Defaults to {@link createDefaultNativeEventEmitter} (USEFUL FOR TESTING) - * @returns The created {@link NativeEventEmitter}. - */ -export const createNativeEventEmitterForModule = ( - nativeModule: NativeModule, - createNativeEventEmitter: ( - nativeEventModule?: NativeModule - ) => NativeEventEmitter = createDefaultNativeEventEmitter -): NativeEventEmitter => { - const eventEmitter = nativeEventEmitters.get(nativeModule); - if (!eventEmitter) { - const newEventEmitter = - Platform.OS === 'android' - ? createNativeEventEmitter() - : createNativeEventEmitter(nativeModule ?? EMPTY_NATIVE_MODULE); - nativeEventEmitters.set(nativeModule, newEventEmitter); - return newEventEmitter; - } - return eventEmitter; -}; diff --git a/packages/core/src/sdk/EventEmitter/__tests__/EventEmitter.test.ts b/packages/core/src/sdk/EventEmitter/__tests__/EventEmitter.test.ts deleted file mode 100644 index 1aff3e5bd..000000000 --- a/packages/core/src/sdk/EventEmitter/__tests__/EventEmitter.test.ts +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. - * This product includes software developed at Datadog (https://www.datadoghq.com/). - * Copyright 2016-Present Datadog, Inc. - */ - -/* eslint-disable @typescript-eslint/no-var-requires */ -/* eslint-disable global-require */ -import type { NativeModule } from 'react-native'; -import { NativeModules, Platform } from 'react-native'; - -const mockPlatform = (platform: typeof Platform.OS) => { - Object.defineProperty(Platform, 'OS', { - value: platform - }); -}; - -describe('EventEmitter', () => { - let defaultPlatform: typeof Platform.OS; - const createNativeEventEmitterMock = jest.fn(); - - beforeAll(() => { - createNativeEventEmitterMock.mockReturnValue({}); - }); - - beforeEach(() => { - defaultPlatform = Platform.OS; - createNativeEventEmitterMock.mockClear(); - jest.resetModules(); - }); - - afterEach(() => { - mockPlatform(defaultPlatform); - }); - - it('M createNativeEventEmitterForModule returns valid event emitter W { platform = Android, NativeModules = undefined }', () => { - // GIVEN - mockPlatform('android'); - const createNativeEventEmitterForModule = require('../EventEmitter') - .createNativeEventEmitterForModule; - - // WHEN - const eventEmitter = createNativeEventEmitterForModule( - NativeModules.DdSdk, - createNativeEventEmitterMock - ); - - // THEN - expect(eventEmitter).toBeDefined(); - expect(createNativeEventEmitterMock).toHaveBeenCalledWith(); - }); - - it('M createNativeEventEmitterForModule returns valid event emitter W { platform = iOS, NativeModules = undefined }', () => { - // GIVEN - mockPlatform('ios'); - const createNativeEventEmitterForModule = require('../EventEmitter') - .createNativeEventEmitterForModule; - - // WHEN - const eventEmitter = createNativeEventEmitterForModule( - NativeModules.DdSdk, - createNativeEventEmitterMock - ); - - // THEN - expect(eventEmitter).toBeDefined(); - expect(createNativeEventEmitterMock).toHaveBeenCalledWith( - // iOS expects an object of type NativeModule to be passed - expect.objectContaining({ - addListener: expect.any(Function), - removeListeners: expect.any(Function) - } as NativeModule) - ); - }); - - it('M createNativeEventEmitterForModule returns valid event emitter W { platform = Android, NativeModules != undefined }', () => { - // GIVEN - mockPlatform('android'); - const createNativeEventEmitterForModule = require('../EventEmitter') - .createNativeEventEmitterForModule; - - const nativeModuleMock = { - addListener: jest.fn(), - removeListeners: jest.fn() - }; - - // WHEN - const eventEmitter = createNativeEventEmitterForModule( - nativeModuleMock, - createNativeEventEmitterMock - ); - - // THEN - expect(eventEmitter).toBeDefined(); - expect(createNativeEventEmitterMock).toHaveBeenCalledWith(); - }); - - it('M createNativeEventEmitterForModule returns valid event emitter W { platform= iOS, NativeModules != undefined }', () => { - // GIVEN - mockPlatform('ios'); - const createNativeEventEmitterForModule = require('../EventEmitter') - .createNativeEventEmitterForModule; - - const nativeModuleMock = { - addListener: () => { - /* empty */ - }, - removeListeners: () => { - /* empty */ - }, - testFunction: () => { - /* empty */ - } - }; - - // WHEN - const eventEmitter = createNativeEventEmitterForModule( - nativeModuleMock, - createNativeEventEmitterMock - ); - - // THEN - expect(eventEmitter).toBeDefined(); - expect(createNativeEventEmitterMock).toHaveBeenCalledWith( - nativeModuleMock - ); - }); - - it('M createNativeEventEmitterForModule initializes NativeEventEmitter only once W { platform = Android }', () => { - // GIVEN - mockPlatform('android'); - const createNativeEventEmitterForModule = require('../EventEmitter') - .createNativeEventEmitterForModule; - - // WHEN - const eventEmitter1 = createNativeEventEmitterForModule( - NativeModules.DdSdk, - createNativeEventEmitterMock - ); - const eventEmitter2 = createNativeEventEmitterForModule( - NativeModules.DdSdk, - createNativeEventEmitterMock - ); - - // THEN - expect(eventEmitter1).toBeDefined(); - expect(eventEmitter2).toBeDefined(); - expect(eventEmitter1).toBe(eventEmitter2); - expect(createNativeEventEmitterMock).toHaveBeenCalledTimes(1); - expect(createNativeEventEmitterMock).toHaveBeenCalledWith(); - }); - - it('M createNativeEventEmitterForModule initializes NativeEventEmitter only once W { platform = iOS }', () => { - // GIVEN - mockPlatform('ios'); - const createNativeEventEmitterForModule = require('../EventEmitter') - .createNativeEventEmitterForModule; - - // WHEN - const eventEmitter1 = createNativeEventEmitterForModule( - NativeModules.DdSdk, - createNativeEventEmitterMock - ); - const eventEmitter2 = createNativeEventEmitterForModule( - NativeModules.DdSdk, - createNativeEventEmitterMock - ); - - // THEN - expect(eventEmitter1).toBeDefined(); - expect(eventEmitter2).toBeDefined(); - expect(eventEmitter1).toBe(eventEmitter2); - expect(createNativeEventEmitterMock).toHaveBeenCalledTimes(1); - expect(createNativeEventEmitterMock).toHaveBeenCalledWith( - expect.objectContaining({ - addListener: expect.any(Function), - removeListeners: expect.any(Function) - }) - ); - }); -}); diff --git a/packages/core/src/specs/NativeDdSdk.ts b/packages/core/src/specs/NativeDdSdk.ts index a93ea283b..b0ab5e357 100644 --- a/packages/core/src/specs/NativeDdSdk.ts +++ b/packages/core/src/specs/NativeDdSdk.ts @@ -5,6 +5,7 @@ */ /* eslint-disable @typescript-eslint/ban-types */ +import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes'; import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; @@ -86,8 +87,12 @@ export interface Spec extends TurboModule { * https://github.com/react-native-community/RNNewArchitectureLibraries/tree/feat/swift-event-emitter?tab=readme-ov-file#codegen-update-codegen-specs) */ addListener: (eventType: string) => void; - removeListeners: (count: number) => void; + + /** + * Internal method to send the Session ID over to the React Native layer. + */ + readonly onRUMSessionStarted: EventEmitter; } // eslint-disable-next-line import/no-default-export From d4a5a70d9072daf23242f7c8c93c8ad9423b045d Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Wed, 14 May 2025 10:37:55 +0200 Subject: [PATCH 03/13] Added JS unit tests for Session ID listener --- packages/core/__mocks__/react-native.ts | 5 +- .../src/__tests__/DdSdkReactNative.test.tsx | 1 + .../XHRProxy/__tests__/XHRProxy.test.ts | 83 +++++- .../__tests__/DdSdkNativeBridge.test.tsx | 268 ++++++++++++++++++ 4 files changed, 355 insertions(+), 2 deletions(-) create mode 100644 packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx diff --git a/packages/core/__mocks__/react-native.ts b/packages/core/__mocks__/react-native.ts index fb7a1a706..0ed135857 100644 --- a/packages/core/__mocks__/react-native.ts +++ b/packages/core/__mocks__/react-native.ts @@ -50,7 +50,10 @@ actualRN.NativeModules.DdSdk = { }) as jest.MockedFunction, removeListeners: jest.fn().mockImplementation((_: number) => { /* empty */ - }) as jest.MockedFunction + }) as jest.MockedFunction, + onRUMSessionStarted: jest.fn().mockImplementation((_: string) => { + /* empty */ + }) as jest.MockedFunction }; actualRN.NativeModules.DdLogs = { diff --git a/packages/core/src/__tests__/DdSdkReactNative.test.tsx b/packages/core/src/__tests__/DdSdkReactNative.test.tsx index 2e90a8acd..49c0bd1f2 100644 --- a/packages/core/src/__tests__/DdSdkReactNative.test.tsx +++ b/packages/core/src/__tests__/DdSdkReactNative.test.tsx @@ -64,6 +64,7 @@ beforeEach(async () => { NativeModules.DdSdk.setAttributes.mockClear(); NativeModules.DdSdk.setUser.mockClear(); NativeModules.DdSdk.setTrackingConsent.mockClear(); + NativeModules.DdSdk.onRUMSessionStarted.mockClear(); (DdRumUserInteractionTracking.startTracking as jest.MockedFunction< typeof DdRumUserInteractionTracking.startTracking diff --git a/packages/core/src/rum/instrumentation/resourceTracking/requestProxy/XHRProxy/__tests__/XHRProxy.test.ts b/packages/core/src/rum/instrumentation/resourceTracking/requestProxy/XHRProxy/__tests__/XHRProxy.test.ts index 6cd57b11c..907bfe57a 100644 --- a/packages/core/src/rum/instrumentation/resourceTracking/requestProxy/XHRProxy/__tests__/XHRProxy.test.ts +++ b/packages/core/src/rum/instrumentation/resourceTracking/requestProxy/XHRProxy/__tests__/XHRProxy.test.ts @@ -11,6 +11,7 @@ import { InternalLog } from '../../../../../../InternalLog'; import { SdkVerbosity } from '../../../../../../SdkVerbosity'; import { BufferSingleton } from '../../../../../../sdk/DatadogProvider/Buffer/BufferSingleton'; import { DdRum } from '../../../../../DdRum'; +import { setCachedSessionId } from '../../../../../sessionId/sessionIdHelper'; import { PropagatorType } from '../../../../../types'; import { XMLHttpRequestMock } from '../../../__tests__/__utils__/XMLHttpRequestMock'; import { TracingIdentifierUtils } from '../../../distributedTracing/__tests__/__utils__/TracingIdentifierUtils'; @@ -26,7 +27,8 @@ import { ORIGIN_RUM, ORIGIN_HEADER_KEY, TRACESTATE_HEADER_KEY, - TAGS_HEADER_KEY + TAGS_HEADER_KEY, + BAGGAGE_HEADER_KEY } from '../../../distributedTracing/distributedTracingHeaders'; import { firstPartyHostsRegexMapBuilder } from '../../../distributedTracing/firstPartyHosts'; import { @@ -758,6 +760,85 @@ describe('XHRProxy', () => { expect(xhr.requestHeaders[SAMPLING_PRIORITY_HEADER_KEY]).toBe('1'); expect(xhr.requestHeaders[ORIGIN_HEADER_KEY]).toBe(ORIGIN_RUM); }); + + it('adds rum session id to baggage headers when available', async () => { + // GIVEN + const method = 'GET'; + const url = 'https://api.example.com:443/v2/user'; + xhrProxy.onTrackingStart({ + tracingSamplingRate: 100, + firstPartyHostsRegexMap: firstPartyHostsRegexMapBuilder([ + { + match: 'api.example.com', + propagatorTypes: [ + PropagatorType.DATADOG, + PropagatorType.TRACECONTEXT + ] + }, + { + match: 'example.com', + propagatorTypes: [ + PropagatorType.B3, + PropagatorType.B3MULTI + ] + } + ]) + }); + + setCachedSessionId('TEST-SESSION-ID'); + + // WHEN + const xhr = new XMLHttpRequestMock(); + xhr.open(method, url); + xhr.send(); + xhr.notifyResponseArrived(); + xhr.complete(200, 'ok'); + await flushPromises(); + + // THEN + expect(xhr.requestHeaders[BAGGAGE_HEADER_KEY]).not.toBeUndefined(); + expect(xhr.requestHeaders[BAGGAGE_HEADER_KEY]).toBe( + 'session.id=TEST-SESSION-ID' + ); + }); + + it('does not add rum session id to baggage headers when session id not cached', async () => { + // GIVEN + const method = 'GET'; + const url = 'https://api.example.com:443/v2/user'; + xhrProxy.onTrackingStart({ + tracingSamplingRate: 100, + firstPartyHostsRegexMap: firstPartyHostsRegexMapBuilder([ + { + match: 'api.example.com', + propagatorTypes: [ + PropagatorType.DATADOG, + PropagatorType.TRACECONTEXT + ] + }, + { + match: 'example.com', + propagatorTypes: [ + PropagatorType.B3, + PropagatorType.B3MULTI + ] + } + ]) + }); + + setCachedSessionId(undefined as any); + + // WHEN + const xhr = new XMLHttpRequestMock(); + xhr.open(method, url); + xhr.send(); + xhr.notifyResponseArrived(); + xhr.complete(200, 'ok'); + await flushPromises(); + + // THEN + expect(xhr.requestHeaders[BAGGAGE_HEADER_KEY]).toBeUndefined(); + }); }); describe('DdRum.startResource calls', () => { diff --git a/packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx b/packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx new file mode 100644 index 000000000..9fe1364fd --- /dev/null +++ b/packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx @@ -0,0 +1,268 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ + +/* eslint-disable @typescript-eslint/no-var-requires */ +/* eslint-disable global-require */ + +import { NativeModules } from 'react-native'; + +import { DdSdkReactNativeConfiguration } from '../../../DdSdkReactNativeConfiguration'; +import type { DdSdkNativeBridgeSpec } from '../DdSdkNativeBridgeSpec'; + +const mockBatchedBridge = { + registerCallableModule: jest.fn() +}; + +const mockSessionIdHelper = { + pollForSessionId: jest.fn(), + verifySessionId: jest.fn() +}; + +const mockNativeDdSdkSpec = { + onRUMSessionStarted: jest.fn() +}; + +const mockErrorHandler = jest.fn(); + +const mockInternalBridge: DdSdkNativeBridgeSpec = { + __datadogRumSessionStarted: jest.fn() +}; + +describe('DdSdkNativeBridge', () => { + beforeEach(() => { + jest.mock('../../DdSdk', () => ({ + DdSdk: { + initialize: jest.fn() + } + })); + + jest.mock( + 'react-native/Libraries/BatchedBridge/BatchedBridge', + () => mockBatchedBridge + ); + + jest.mock( + '../../../rum/sessionId/sessionIdHelper.ts', + () => mockSessionIdHelper + ); + + jest.mock('../../../specs/NativeDdSdk', () => mockNativeDdSdkSpec); + }); + + afterEach(() => { + jest.resetModules(); + jest.resetAllMocks(); + delete global.RN$Bridgeless; + }); + + describe('new architecture implementation', () => { + beforeEach(() => { + (global as any).RN$Bridgeless = true; + }); + + it('does not try to register the batched bridge when index is imported', () => { + const ddBridge = require('../DdSdkNativeBridge'); + ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + expect( + mockBatchedBridge.registerCallableModule + ).toHaveBeenCalledTimes(0); + expect(ddBridge.hasNativeBridge()).toBe(true); + }); + + it('registers onRUMSessionStarted event listener callback', () => { + const ddBridge = require('../DdSdkNativeBridge'); + ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + expect( + mockNativeDdSdkSpec.onRUMSessionStarted + ).toHaveBeenCalledWith( + mockInternalBridge.__datadogRumSessionStarted + ); + }); + + it('catches errors when native spec import fails', () => { + jest.mock('../../../specs/NativeDdSdk', () => undefined); + + const ddBridge = require('../DdSdkNativeBridge'); + ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + + expect(mockErrorHandler).toHaveBeenCalledWith( + expect.objectContaining({ + message: + 'registerNativeBridge() ERROR: NativeDdSdk is undefined' + }) + ); + expect( + mockNativeDdSdkSpec.onRUMSessionStarted + ).toHaveBeenCalledTimes(0); + }); + + it('session ID is polled when event listener setup failed', async () => { + const ddBridge = require('../DdSdkNativeBridge'); + const ddSdkRn = require('../../../DdSdkReactNative'); + jest.mock( + 'react-native/Libraries/BatchedBridge/BatchedBridge', + () => { + throw new Error('Import failed'); + } + ); + jest.mock('../../../specs/NativeDdSdk', () => undefined); + + ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + + // GIVEN + const fakeAppId = '1'; + const fakeClientToken = '2'; + const fakeEnvName = 'env'; + const configuration = new DdSdkReactNativeConfiguration( + fakeClientToken, + fakeEnvName, + fakeAppId + ); + + NativeModules.DdSdk.initialize.mockResolvedValue(null); + + // WHEN + await ddSdkRn.DdSdkReactNative.initialize(configuration); + + // THEN + expect(ddBridge.hasNativeBridge()).toBe(false); + expect(mockSessionIdHelper.pollForSessionId).toHaveBeenCalled(); + expect(mockSessionIdHelper.verifySessionId).toHaveBeenCalledTimes( + 0 + ); + expect(mockErrorHandler).toHaveBeenCalled(); + }); + + it('session ID is verified when event listener setup succeeds', async () => { + const ddBridge = require('../DdSdkNativeBridge'); + const ddSdkRn = require('../../../DdSdkReactNative'); + ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + + // GIVEN + const fakeAppId = '1'; + const fakeClientToken = '2'; + const fakeEnvName = 'env'; + const configuration = new DdSdkReactNativeConfiguration( + fakeClientToken, + fakeEnvName, + fakeAppId + ); + + NativeModules.DdSdk.initialize.mockResolvedValue(null); + + // WHEN + await ddSdkRn.DdSdkReactNative.initialize(configuration); + + // THEN + expect(ddBridge.hasNativeBridge()).toBe(true); + expect(mockSessionIdHelper.verifySessionId).toHaveBeenCalled(); + expect(mockSessionIdHelper.pollForSessionId).toHaveBeenCalledTimes( + 0 + ); + expect(mockErrorHandler).toHaveBeenCalledTimes(0); + }); + }); + + describe('old architecture implementation', () => { + beforeEach(() => { + (global as any).RN$Bridgeless = false; + }); + + it('does not try to register the event listener when index is imported', () => { + const ddBridge = require('../DdSdkNativeBridge'); + ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + expect( + mockNativeDdSdkSpec.onRUMSessionStarted + ).toHaveBeenCalledTimes(0); + expect(ddBridge.hasNativeBridge()).toBe(true); + }); + + it('registers the bridge when index is imported', () => { + const ddBridge = require('../DdSdkNativeBridge'); + ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + expect(mockBatchedBridge.registerCallableModule).toHaveBeenCalled(); + expect(ddBridge.hasNativeBridge()).toBe(true); + expect(mockErrorHandler).toHaveBeenCalledTimes(0); + }); + + it('hasBatchedBridge is false when batched bridge import fails', () => { + const ddBridge = require('../DdSdkNativeBridge'); + jest.mock( + 'react-native/Libraries/BatchedBridge/BatchedBridge', + () => { + throw new Error('TEST IMPORT FAILED'); + } + ); + ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + expect(ddBridge.hasNativeBridge()).toBe(false); + expect(mockErrorHandler).toHaveBeenCalled(); + }); + + it('session ID is polled when batched bridge setup failed', async () => { + const ddBridge = require('../DdSdkNativeBridge'); + const ddSdkRn = require('../../../DdSdkReactNative'); + jest.mock( + 'react-native/Libraries/BatchedBridge/BatchedBridge', + () => { + throw new Error('Import failed'); + } + ); + ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + + // GIVEN + const fakeAppId = '1'; + const fakeClientToken = '2'; + const fakeEnvName = 'env'; + const configuration = new DdSdkReactNativeConfiguration( + fakeClientToken, + fakeEnvName, + fakeAppId + ); + + NativeModules.DdSdk.initialize.mockResolvedValue(null); + + // WHEN + await ddSdkRn.DdSdkReactNative.initialize(configuration); + + // THEN + expect(ddBridge.hasNativeBridge()).toBe(false); + expect(mockSessionIdHelper.pollForSessionId).toHaveBeenCalled(); + expect(mockSessionIdHelper.verifySessionId).toHaveBeenCalledTimes( + 0 + ); + expect(mockErrorHandler).toHaveBeenCalled(); + }); + + it('session ID is verified when batched bridge setup succeeds', async () => { + const ddBridge = require('../DdSdkNativeBridge'); + const ddSdkRn = require('../../../DdSdkReactNative'); + ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + + // GIVEN + const fakeAppId = '1'; + const fakeClientToken = '2'; + const fakeEnvName = 'env'; + const configuration = new DdSdkReactNativeConfiguration( + fakeClientToken, + fakeEnvName, + fakeAppId + ); + + NativeModules.DdSdk.initialize.mockResolvedValue(null); + + // WHEN + await ddSdkRn.DdSdkReactNative.initialize(configuration); + + // THEN + expect(ddBridge.hasNativeBridge()).toBe(true); + expect(mockSessionIdHelper.verifySessionId).toHaveBeenCalled(); + expect(mockSessionIdHelper.pollForSessionId).toHaveBeenCalledTimes( + 0 + ); + expect(mockErrorHandler).toHaveBeenCalledTimes(0); + }); + }); +}); From c4e2ece6699e50d45e9bc634bdf9270ca3dc70e1 Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Thu, 15 May 2025 10:55:07 +0200 Subject: [PATCH 04/13] Added Android unit tests for Session ID listener --- .../DdSdkSessionStartedListener.kt | 34 ++- .../DdSdkSessionStartedListenerTest.kt | 204 ++++++++++++++++++ 2 files changed, 232 insertions(+), 6 deletions(-) create mode 100644 packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkSessionStartedListenerTest.kt diff --git a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt index 971c244b5..c415d77bf 100644 --- a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt +++ b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt @@ -5,12 +5,13 @@ */ package com.datadog.reactnative -import android.util.Log import com.datadog.android.rum.RumSessionListener +import com.facebook.react.bridge.NativeArray import com.facebook.react.bridge.ReactContext import com.facebook.react.bridge.WritableNativeArray +import org.jetbrains.annotations.TestOnly -class DdSdkSessionStartedListener private constructor(): RumSessionListener { +internal class DdSdkSessionStartedListener private constructor(): RumSessionListener { companion object { private const val BRIDGE_MODULE_NAME = "DatadogInternalReactBridge" private const val BRIDGE_MODULE_METHOD = "__datadogRumSessionStarted" @@ -32,6 +33,8 @@ class DdSdkSessionStartedListener private constructor(): RumSessionListener { private var reactContext: ReactContext? = null private var lastSessionId: String? = null private var listener: ((sessionId: String) -> Unit)? = null + private var convertToNativeArray: ((array: Array) -> NativeArray?)? = null + private var exceptionHandler: ((error: Exception) -> Unit)? = null override fun onSessionStarted(sessionId: String, isDiscarded: Boolean) { sendSessionStartedToJS(sessionId) @@ -49,6 +52,16 @@ class DdSdkSessionStartedListener private constructor(): RumSessionListener { } } + @TestOnly + fun setConvertToNativeArray(convertToNativeArray: (array: Array) -> NativeArray?) { + this.convertToNativeArray = convertToNativeArray + } + + @TestOnly + fun setExceptionHandler(exceptionHandler: (error: Exception) -> Unit) { + this.exceptionHandler = exceptionHandler + } + private fun hasValidBridge(): Boolean { val context = reactContext ?: return false val instance = context.catalystInstance ?: return false @@ -68,14 +81,23 @@ class DdSdkSessionStartedListener private constructor(): RumSessionListener { private fun sendSessionIdWithBridge(sessionId: String) { @Suppress("TooGenericExceptionCaught") try { - val args = WritableNativeArray() - args.pushString(sessionId) + val args = arrayOf(sessionId) + val nativeArray = if (convertToNativeArray != null) { + convertToNativeArray?.invoke(args) + } else { + WritableNativeArray().apply { + pushString(sessionId) + } + } + reactContext?.catalystInstance?.callFunction( BRIDGE_MODULE_NAME, BRIDGE_MODULE_METHOD, - args + nativeArray ) - } catch(_: Exception) { /* empty */ } + } catch(err: Exception) { + exceptionHandler?.invoke(err) + } } private fun sendSessionIdWithListener(sessionId: String) { diff --git a/packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkSessionStartedListenerTest.kt b/packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkSessionStartedListenerTest.kt new file mode 100644 index 000000000..404518cb7 --- /dev/null +++ b/packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkSessionStartedListenerTest.kt @@ -0,0 +1,204 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +@file:Suppress("NonAsciiCharacters") + +package com.datadog.reactnative + +import com.datadog.tools.unit.GenericAssert.Companion.assertThat +import com.datadog.tools.unit.forge.BaseConfigurator +import com.facebook.react.bridge.CatalystInstance +import com.facebook.react.bridge.NativeArray +import com.facebook.react.bridge.ReactContext +import fr.xgouchet.elmyr.junit5.ForgeConfiguration +import fr.xgouchet.elmyr.junit5.ForgeExtension +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertDoesNotThrow +import org.junit.jupiter.api.extension.ExtendWith +import org.junit.jupiter.api.extension.Extensions +import org.mockito.Mock +import org.mockito.junit.jupiter.MockitoExtension +import org.mockito.junit.jupiter.MockitoSettings +import org.mockito.kotlin.any +import org.mockito.kotlin.anyOrNull +import org.mockito.kotlin.argThat +import org.mockito.kotlin.argWhere +import org.mockito.kotlin.mock +import org.mockito.kotlin.verify +import org.mockito.kotlin.verifyNoInteractions +import org.mockito.kotlin.whenever +import org.mockito.quality.Strictness + +@Extensions( + ExtendWith(MockitoExtension::class), + ExtendWith(ForgeExtension::class) +) +@MockitoSettings(strictness = Strictness.LENIENT) +@ForgeConfiguration(BaseConfigurator::class) +internal class DdSdkSessionStartedListenerTest { + + @Mock + lateinit var mockListenerCallback: (sessionId: String) -> Unit + + @Mock + lateinit var mockReactContext: ReactContext + + @Mock + lateinit var mockCatalystInstance: CatalystInstance + + @Mock + lateinit var mockExceptionHandler: (error: Exception) -> Unit + + @BeforeEach + fun `set up`() { + DdSdkSessionStartedListener.invalidate() + } + + @Test + fun `𝕄 getInstance implements singleton correctly`() { + // GIVEN + val instance1 = DdSdkSessionStartedListener.getInstance() + // WHEN + val instance2 = DdSdkSessionStartedListener.getInstance() + // THEN + assertThat(instance1).isEqualTo(instance2) + } + + @Test + fun `𝕄 invalidate() invalidates previous instance`() { + // GIVEN + val instance1 = DdSdkSessionStartedListener.getInstance() + // WHEN + DdSdkSessionStartedListener.invalidate() + // THEN + assertThat(instance1).isNotEqualTo(DdSdkSessionStartedListener.getInstance()) + } + + @Test + fun `𝕄 onSessionStarted calls listener callback when set and bridge is invalid`() { + // GIVEN + val instance = DdSdkSessionStartedListener.getInstance() + instance.setListener(mockListenerCallback) + + // WHEN + instance.onSessionStarted("TEST-SESSION-ID", false) + + // THEN + verify(mockListenerCallback).invoke("TEST-SESSION-ID") + } + + @Test + fun `𝕄 onSessionStarted calls react bridge when bridge is valid`() { + // GIVEN + whenever(mockReactContext.hasActiveReactInstance()).thenReturn(true) + whenever(mockReactContext.catalystInstance).thenReturn(mockCatalystInstance) + whenever(mockCatalystInstance.isDestroyed).thenReturn(false) + whenever(mockReactContext.fabricUIManager).thenReturn(null) + + val instance = DdSdkSessionStartedListener.getInstance() + instance.setReactContext(mockReactContext) + + val passedArgs = mutableListOf() + instance.setConvertToNativeArray { + passedArgs.addAll(it) + // We cannot mock or test NativeArray as it relies on native runtime SO library + return@setConvertToNativeArray null + } + // WHEN + instance.onSessionStarted("TEST-SESSION-ID", false) + + // THEN + verify(mockCatalystInstance).callFunction( + module = "DatadogInternalReactBridge", + method = "__datadogRumSessionStarted", + arguments = null + ) + + assertThat(passedArgs.count()).isEqualTo(1) + assertThat(passedArgs.first()).isEqualTo("TEST-SESSION-ID") + } + + @Test + fun `𝕄 onSessionStarted internally catches exception if catalyst instance throws`() { + // GIVEN + whenever(mockReactContext.hasActiveReactInstance()).thenReturn(true) + whenever(mockReactContext.catalystInstance).thenReturn(mockCatalystInstance) + whenever(mockCatalystInstance.isDestroyed).thenReturn(false) + whenever(mockReactContext.fabricUIManager).thenReturn(null) + whenever(mockCatalystInstance.callFunction(any(), any(), anyOrNull())) + .thenThrow(RuntimeException("TEST")) + + val instance = DdSdkSessionStartedListener.getInstance() + instance.setReactContext(mockReactContext) + instance.setExceptionHandler(mockExceptionHandler) + + val passedArgs = mutableListOf() + instance.setConvertToNativeArray { + passedArgs.addAll(it) + // We cannot mock or test NativeArray as it relies on native runtime SO library + return@setConvertToNativeArray null + } + // WHEN + assertDoesNotThrow { + instance.onSessionStarted("TEST-SESSION-ID", false) + } + + // THEN + verify(mockExceptionHandler).invoke( + argThat { + this.message == "TEST" + } + ) + } + + @Test + fun `𝕄 session ID event is delayed until context is available W { bridge }`() { + // GIVEN + whenever(mockReactContext.hasActiveReactInstance()).thenReturn(true) + whenever(mockReactContext.catalystInstance).thenReturn(mockCatalystInstance) + whenever(mockCatalystInstance.isDestroyed).thenReturn(false) + whenever(mockReactContext.fabricUIManager).thenReturn(null) + whenever(mockCatalystInstance.callFunction(any(), any(), anyOrNull())) + .thenThrow(RuntimeException("TEST")) + + val instance = DdSdkSessionStartedListener.getInstance() + + val mockConvertToNativeArray = mock<(array: Array) -> NativeArray?>() + instance.setConvertToNativeArray(mockConvertToNativeArray) + + // WHEN + instance.onSessionStarted("TEST-SESSION-ID", false) + + // THEN + verifyNoInteractions(mockConvertToNativeArray) + + // WHEN + instance.setReactContext(mockReactContext) + + // THEN + verify(mockConvertToNativeArray).invoke(argWhere { it.first() == "TEST-SESSION-ID" }) + } + + @Test + fun `𝕄 session ID event is delayed until context is available W { listener }`() { + // GIVEN + whenever(mockReactContext.hasActiveReactInstance()).thenReturn(true) + whenever(mockReactContext.catalystInstance).thenReturn(mockCatalystInstance) + whenever(mockCatalystInstance.isDestroyed).thenReturn(false) + whenever(mockReactContext.fabricUIManager).thenReturn(null) + whenever(mockCatalystInstance.callFunction(any(), any(), anyOrNull())) + .thenThrow(RuntimeException("TEST")) + + val instance = DdSdkSessionStartedListener.getInstance() + + // WHEN + instance.onSessionStarted("TEST-SESSION-ID", false) + instance.setListener(mockListenerCallback) + + // THEN + verify(mockListenerCallback).invoke("TEST-SESSION-ID") + } +} From c787ae4ac1e81649627906aaec09699a04dcbab4 Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Thu, 15 May 2025 12:35:58 +0200 Subject: [PATCH 05/13] Fixed iOS unit tests --- .../project.pbxproj | 1 + example/ios/Podfile | 33 +- example/ios/Podfile.lock | 2 +- packages/core/ios/Sources/DdSdk.mm | 2 +- packages/core/ios/Tests/DdSdkTests.swift | 291 ++++++++++++------ 5 files changed, 238 insertions(+), 91 deletions(-) diff --git a/example/ios/DdSdkReactNativeExample.xcodeproj/project.pbxproj b/example/ios/DdSdkReactNativeExample.xcodeproj/project.pbxproj index 6de001f48..3631a98b2 100644 --- a/example/ios/DdSdkReactNativeExample.xcodeproj/project.pbxproj +++ b/example/ios/DdSdkReactNativeExample.xcodeproj/project.pbxproj @@ -402,6 +402,7 @@ "-DFOLLY_NO_CONFIG", "-DFOLLY_MOBILE=1", "-DFOLLY_USE_LIBCPP=1", + "-DFOLLY_CFG_NO_COROUTINES=1", ); OTHER_LDFLAGS = ( "$(inherited)", diff --git a/example/ios/Podfile b/example/ios/Podfile index ff10155e7..53eb6ff48 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -30,7 +30,7 @@ target 'ddSdkReactnativeExample' do # pod 'DatadogSDKReactNative', :path => '../../packages/core/DatadogSDKReactNative.podspec', :testspecs => ['Tests'] post_install do |installer| - # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 + # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 react_native_post_install( installer, config[:reactNativePath], @@ -40,6 +40,35 @@ target 'ddSdkReactnativeExample' do datadog_sdk_target = installer.pods_project.targets.detect {|t| ["DatadogCore", "DatadogRUM", "DatadogLogs", "DatadogInternal", "DatadogTrace", "DatadogCrashReporting"].include?(t.name) } datadog_sdk_target.build_configurations.each do |config| config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = '$(inherited) DD_SDK_COMPILED_FOR_TESTING' - end + end + + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.1' + end + end + + # Modify RCT-Folly Portability.h to disable coroutines + Dir.glob(installer.sandbox.root + "RCT-Folly/folly/Portability.h") do |file| + begin + # First try to make the file writable + system "chmod +w #{file}" + + contents = File.read(file) + modified_contents = contents.gsub(/#define FOLLY_HAS_COROUTINES 1/, '#define FOLLY_HAS_COROUTINES 0') + + # Try writing with elevated privileges if needed + if !File.writable?(file) + system "sudo chmod +w #{file}" + end + + File.write(file, modified_contents) + + # Optionally restore original permissions + system "chmod -w #{file}" + rescue => e + Pod::UI.warn "Failed to modify Portability.h: #{e.message}" + end + end end end diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 58be8d894..e213d5959 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -2074,6 +2074,6 @@ SPEC CHECKSUMS: SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 Yoga: feb4910aba9742cfedc059e2b2902e22ffe9954a -PODFILE CHECKSUM: e8dddbd78ae20b78d0de7c374a1828049f69019b +PODFILE CHECKSUM: 1a1fe93450a5c7023350d88379b0f947bdf9f909 COCOAPODS: 1.16.2 diff --git a/packages/core/ios/Sources/DdSdk.mm b/packages/core/ios/Sources/DdSdk.mm index 925a45421..e2d6bbcd2 100644 --- a/packages/core/ios/Sources/DdSdk.mm +++ b/packages/core/ios/Sources/DdSdk.mm @@ -188,7 +188,7 @@ + (RCTBridge *)latestBridgeReference { - (void)registerSessionIdListener { __weak DdSdk* weakSelf = self; - [DdSdkSessionStartedListener.instance setListener:^(NSString * _Nonnull sessionId) { + [DdSdkSessionStartedListener.instance setListenerCallback:^(NSString * _Nonnull sessionId) { DdSdk* strongSelf = weakSelf; if (!strongSelf) { return; diff --git a/packages/core/ios/Tests/DdSdkTests.swift b/packages/core/ios/Tests/DdSdkTests.swift index 165fed685..741fa3a61 100644 --- a/packages/core/ios/Tests/DdSdkTests.swift +++ b/packages/core/ios/Tests/DdSdkTests.swift @@ -57,7 +57,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny(), + resolve: mockResolve, + reject: mockReject + ) XCTAssertEqual(consoleMessage, "") @@ -68,7 +71,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny(), + resolve: mockResolve, + reject: mockReject + ) XCTAssertEqual( consoleMessage, "Datadog SDK is already initialized, skipping initialization.") @@ -93,8 +99,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockPromiseResolve, - reject: mockReject) + configuration: .mockAny(), + resolve: mockPromiseResolve, + reject: mockReject + ) waitForExpectations(timeout: 0.5, handler: nil) } @@ -103,7 +111,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny() let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertNil(ddConfig.uiKitViewsPredicate) } @@ -112,7 +121,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(nativeViewTracking: false) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertNil(ddConfig.uiKitViewsPredicate) } @@ -121,7 +131,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(nativeViewTracking: true) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertNotNil(ddConfig.uiKitViewsPredicate) } @@ -130,7 +141,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny() let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertNil(ddConfig.uiKitActionsPredicate) } @@ -139,7 +151,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(nativeInteractionTracking: false) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertNil(ddConfig.uiKitActionsPredicate) } @@ -148,7 +161,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(nativeInteractionTracking: true) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertNotNil(ddConfig.uiKitActionsPredicate) } @@ -163,8 +177,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: validConfiguration, eventEmitter: nil, resolve: mockResolve, - reject: mockReject) + configuration: validConfiguration, + resolve: mockResolve, + reject: mockReject + ) XCTAssertEqual(Datadog.verbosityLevel, CoreLoggerLevel.debug) } @@ -179,8 +195,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: validConfiguration, eventEmitter: nil, resolve: mockResolve, - reject: mockReject) + configuration: validConfiguration, + resolve: mockResolve, + reject: mockReject + ) XCTAssertEqual(Datadog.verbosityLevel, CoreLoggerLevel.debug) } @@ -195,8 +213,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: validConfiguration, eventEmitter: nil, resolve: mockResolve, - reject: mockReject) + configuration: validConfiguration, + resolve: mockResolve, + reject: mockReject + ) XCTAssertEqual(Datadog.verbosityLevel, CoreLoggerLevel.warn) } @@ -211,8 +231,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: validConfiguration, eventEmitter: nil, resolve: mockResolve, - reject: mockReject) + configuration: validConfiguration, + resolve: mockResolve, + reject: mockReject + ) XCTAssertEqual(Datadog.verbosityLevel, CoreLoggerLevel.error) } @@ -227,8 +249,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: validConfiguration, eventEmitter: nil, resolve: mockResolve, - reject: mockReject) + configuration: validConfiguration, + resolve: mockResolve, + reject: mockReject + ) XCTAssertNil(Datadog.verbosityLevel) } @@ -243,8 +267,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: validConfiguration, eventEmitter: nil, resolve: mockResolve, - reject: mockReject) + configuration: validConfiguration, + resolve: mockResolve, + reject: mockReject + ) XCTAssertNil(Datadog.verbosityLevel) } @@ -262,7 +288,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny(), + resolve: mockResolve, + reject: mockReject + ) XCTAssertNotNil(coreFromCallback) } @@ -273,7 +302,8 @@ class DdSdkTests: XCTestCase { DatadogSDKWrapper.shared.setCoreInstance(core: core) DdSdkNativeInitialization().enableFeatures( - sdkConfiguration: configuration, eventEmitter: nil) + sdkConfiguration: configuration + ) XCTAssertNotNil(core.features[RUMFeature.name]) XCTAssertNotNil(core.features[LogsFeature.name]) @@ -284,7 +314,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny() let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.site, .us1) } @@ -293,7 +324,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(site: "US") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.site, .us1) } @@ -302,7 +334,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(site: "US1") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.site, .us1) } @@ -311,7 +344,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(site: "US3") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.site, .us3) } @@ -320,7 +354,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(site: "US5") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.site, .us5) } @@ -329,7 +364,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(site: "US1_FED") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.site, .us1_fed) } @@ -338,7 +374,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(site: "GOV") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.site, .us1_fed) } @@ -347,7 +384,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(site: "EU") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.site, .eu1) } @@ -356,7 +394,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(site: "EU1") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.site, .eu1) } @@ -365,7 +404,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(site: "AP1") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.site, .ap1) } @@ -376,7 +416,8 @@ class DdSdkTests: XCTestCase { ]) let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) // swiftlint:disable force_cast XCTAssertEqual(ddConfig.additionalConfiguration["foo"] as! String, "test") @@ -388,7 +429,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny() let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertNil(ddConfig.service) } @@ -397,7 +439,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(serviceName: "com.example.app") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.service, "com.example.app") } @@ -407,7 +450,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(nativeCrashReportEnabled: nil) DdSdkNativeInitialization().enableFeatures( - sdkConfiguration: configuration, eventEmitter: nil) + sdkConfiguration: configuration + ) XCTAssertNil(core.features[CrashReportingFeature.name]) } @@ -417,7 +461,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(nativeCrashReportEnabled: false) DdSdkNativeInitialization().enableFeatures( - sdkConfiguration: configuration, eventEmitter: nil) + sdkConfiguration: configuration + ) XCTAssertNil(core.features[CrashReportingFeature.name]) } @@ -428,7 +473,8 @@ class DdSdkTests: XCTestCase { DatadogSDKWrapper.shared.setCoreInstance(core: core) DdSdkNativeInitialization().enableFeatures( - sdkConfiguration: configuration, eventEmitter: nil) + sdkConfiguration: configuration + ) XCTAssertNotNil(core.features[CrashReportingFeature.name]) } @@ -439,7 +485,9 @@ class DdSdkTests: XCTestCase { ]) let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration, defaultAppVersion: "1.2.3") + configuration: configuration, + defaultAppVersion: "1.2.3" + ) XCTAssertEqual( ddConfig.additionalConfiguration["_dd.version"] as! String, "1.2.3:codepush-3") @@ -449,7 +497,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny() let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertEqual(ddConfig.trackFrustrations, true) } @@ -458,7 +507,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(trackFrustrations: true) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertEqual(ddConfig.trackFrustrations, true) } @@ -467,7 +517,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(trackFrustrations: false) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertEqual(ddConfig.trackFrustrations, false) } @@ -481,7 +532,10 @@ class DdSdkTests: XCTestCase { RUMMonitorInternalProvider: { nil } ) bridge.initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny(), + resolve: mockResolve, + reject: mockReject + ) bridge.setUser( user: NSDictionary( @@ -518,7 +572,10 @@ class DdSdkTests: XCTestCase { RUMMonitorInternalProvider: { nil } ) bridge.initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny(), + resolve: mockResolve, + reject: mockReject + ) bridge.setUser( user: NSDictionary( @@ -554,7 +611,10 @@ class DdSdkTests: XCTestCase { RUMMonitorInternalProvider: { nil } ) bridge.initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny(), + resolve: mockResolve, + reject: mockReject + ) bridge.setUserInfo( userInfo: NSDictionary( @@ -605,7 +665,10 @@ class DdSdkTests: XCTestCase { RUMMonitorInternalProvider: { nil } ) bridge.initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny(), + resolve: mockResolve, + reject: mockReject + ) bridge.setUserInfo( userInfo: NSDictionary( @@ -655,7 +718,10 @@ class DdSdkTests: XCTestCase { RUMMonitorInternalProvider: { nil } ) bridge.initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny(), + resolve: mockResolve, + reject: mockReject + ) bridge.setUserInfo( userInfo: NSDictionary( @@ -716,7 +782,10 @@ class DdSdkTests: XCTestCase { RUMMonitorInternalProvider: { nil } ) bridge.initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny(), + resolve: mockResolve, + reject: mockReject + ) bridge.setAttributes( attributes: NSDictionary( @@ -745,7 +814,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(nativeLongTaskThresholdMs: 2500) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertEqual(ddConfig.longTaskThreshold, 2.5) } @@ -754,7 +824,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(nativeLongTaskThresholdMs: 0) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertEqual(ddConfig.longTaskThreshold, nil) } @@ -767,7 +838,8 @@ class DdSdkTests: XCTestCase { ] as NSArray).asFirstPartyHosts(), resourceTracingSamplingRate: 66) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) let expectedFirstPartyHosts: [String: Set]? = [ "example.com": [.datadog, .b3], "datadog.com": [.b3multi, .tracecontext], @@ -793,7 +865,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(telemetrySampleRate: 42.0) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertEqual(ddConfig.telemetrySampleRate, 42.0) } @@ -822,7 +895,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(vitalsUpdateFrequency: "average") let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertEqual(ddConfig.vitalsUpdateFrequency, .average) } @@ -831,7 +905,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(vitalsUpdateFrequency: "never") let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertEqual(ddConfig.vitalsUpdateFrequency, nil) } @@ -840,7 +915,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(uploadFrequency: "AVERAGE") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.uploadFrequency, .average) } @@ -849,7 +925,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(uploadFrequency: "FREQUENT") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.uploadFrequency, .frequent) } @@ -858,7 +935,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(uploadFrequency: "RARE") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.uploadFrequency, .rare) } @@ -867,7 +945,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(batchSize: "SMALL") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.batchSize, .small) } @@ -876,7 +955,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(batchSize: "MEDIUM") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.batchSize, .medium) } @@ -885,7 +965,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(batchSize: "LARGE") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.batchSize, .large) } @@ -894,7 +975,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(batchProcessingLevel: "LOW") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.batchProcessingLevel, .low) } @@ -903,7 +985,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(batchProcessingLevel: "MEDIUM") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.batchProcessingLevel, .medium) } @@ -912,7 +995,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(batchProcessingLevel: "HIGH") let ddConfig = DdSdkNativeInitialization().buildSDKConfiguration( - configuration: configuration) + configuration: configuration + ) XCTAssertEqual(ddConfig.batchProcessingLevel, .high) } @@ -928,8 +1012,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { rumMonitorMock }, RUMMonitorInternalProvider: { rumMonitorMock._internalMock } ).initialize( - configuration: .mockAny(longTaskThresholdMs: 0.0), eventEmitter: nil, - resolve: mockResolve, reject: mockReject) + configuration: .mockAny(longTaskThresholdMs: 0.0), + resolve: mockResolve, + reject: mockReject + ) XCTAssertTrue(mockRefreshRateMonitor.isStarted) @@ -954,8 +1040,13 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { rumMonitorMock }, RUMMonitorInternalProvider: { rumMonitorMock._internalMock } ).initialize( - configuration: .mockAny(longTaskThresholdMs: 0.0, vitalsUpdateFrequency: "never"), - eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny( + longTaskThresholdMs: 0.0, + vitalsUpdateFrequency: "never" + ), + resolve: mockResolve, + reject: mockReject + ) XCTAssertFalse(mockRefreshRateMonitor.isStarted) @@ -977,8 +1068,13 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { rumMonitorMock }, RUMMonitorInternalProvider: { rumMonitorMock._internalMock } ).initialize( - configuration: .mockAny(longTaskThresholdMs: 0.2, vitalsUpdateFrequency: "never"), - eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny( + longTaskThresholdMs: 0.2, + vitalsUpdateFrequency: "never" + ), + resolve: mockResolve, + reject: mockReject + ) XCTAssertTrue(mockRefreshRateMonitor.isStarted) @@ -1004,8 +1100,13 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { rumMonitorMock }, RUMMonitorInternalProvider: { rumMonitorMock._internalMock } ).initialize( - configuration: .mockAny(longTaskThresholdMs: 200, vitalsUpdateFrequency: "average"), - eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny( + longTaskThresholdMs: 200, + vitalsUpdateFrequency: "average" + ), + resolve: mockResolve, + reject: mockReject + ) XCTAssertTrue(mockRefreshRateMonitor.isStarted) @@ -1040,7 +1141,6 @@ class DdSdkTests: XCTestCase { "trace": "https://trace.example.com", ] ), - eventEmitter: nil, resolve: mockResolve, reject: mockReject ) @@ -1082,8 +1182,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { rumMonitorMock }, RUMMonitorInternalProvider: { rumMonitorMock._internalMock } ).initialize( - configuration: configuration, eventEmitter: nil, resolve: mockResolve, - reject: mockReject) + configuration: configuration, + resolve: mockResolve, + reject: mockReject + ) XCTAssertFalse(DatadogSDKWrapper.shared.loggerConfiguration.bundleWithRumEnabled) XCTAssertFalse(DatadogSDKWrapper.shared.loggerConfiguration.bundleWithTraceEnabled) @@ -1093,7 +1195,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(trackBackgroundEvents: true) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertEqual(ddConfig.trackBackgroundEvents, true) } @@ -1102,7 +1205,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(trackBackgroundEvents: false) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertEqual(ddConfig.trackBackgroundEvents, false) } @@ -1111,7 +1215,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(trackBackgroundEvents: nil) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) XCTAssertEqual(ddConfig.trackBackgroundEvents, false) } @@ -1147,7 +1252,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny() let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) let resourceEventMapper = try XCTUnwrap(ddConfig.resourceEventMapper) @@ -1164,7 +1270,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny() let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) let actionEventMapper = try XCTUnwrap(ddConfig.actionEventMapper) @@ -1188,8 +1295,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: .mockAny(longTaskThresholdMs: 0.2), eventEmitter: nil, - resolve: mockResolve, reject: mockReject) + configuration: .mockAny(longTaskThresholdMs: 0.2), + resolve: mockResolve, + reject: mockReject + ) XCTAssertTrue(bridge.isSameQueue(queue: mockJSRefreshRateMonitor.jsQueue!)) } @@ -1207,7 +1316,10 @@ class DdSdkTests: XCTestCase { RUMMonitorProvider: { MockRUMMonitor() }, RUMMonitorInternalProvider: { nil } ).initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny(), + resolve: mockResolve, + reject: mockReject + ) XCTAssertNotNil(mockListener.core) } @@ -1218,7 +1330,8 @@ class DdSdkTests: XCTestCase { DatadogSDKWrapper.shared.setCoreInstance(core: core) DdSdkNativeInitialization().enableFeatures( - sdkConfiguration: configuration, eventEmitter: nil) + sdkConfiguration: configuration + ) DdSdkImplementation().consumeWebviewEvent( message: "{\"eventType\":\"rum\",\"event\":{\"blabla\":\"custom message\"}}", @@ -1231,7 +1344,8 @@ class DdSdkTests: XCTestCase { let configuration: DdSdkConfiguration = .mockAny(initialResourceThreshold: 0.5) let ddConfig = DdSdkNativeInitialization().buildRUMConfiguration( - configuration: configuration, eventEmitter: nil) + configuration: configuration + ) let predicate = ddConfig.networkSettledResourcePredicate let earlyResource = TNSResourceParams( @@ -1271,7 +1385,10 @@ class DdSdkTests: XCTestCase { RUMMonitorInternalProvider: { nil } ) sdk.initialize( - configuration: .mockAny(), eventEmitter: nil, resolve: mockResolve, reject: mockReject) + configuration: .mockAny(), + resolve: mockResolve, + reject: mockReject + ) let core = try XCTUnwrap(CoreRegistry.default as? DatadogCore) // On SDK init, underlying `ConsentAwareDataWriter` performs data migration for each feature, which includes From b5cc5e7ebf407d84a41b3a4392473c5e151aac21 Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Thu, 15 May 2025 12:37:33 +0200 Subject: [PATCH 06/13] Added iOS unit tests for Session ID listener --- .../Sources/DdSdkSessionStartedListener.swift | 12 ++- .../DdSdkSessionStartedListenerTests.swift | 86 +++++++++++++++++++ 2 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 packages/core/ios/Tests/DdSdkSessionStartedListenerTests.swift diff --git a/packages/core/ios/Sources/DdSdkSessionStartedListener.swift b/packages/core/ios/Sources/DdSdkSessionStartedListener.swift index 5db6bca03..19dbaeb02 100644 --- a/packages/core/ios/Sources/DdSdkSessionStartedListener.swift +++ b/packages/core/ios/Sources/DdSdkSessionStartedListener.swift @@ -21,13 +21,13 @@ public class DdSdkSessionStartedListener: NSObject { _instance?.invalidate() } - public private(set) var rumSessionListener: RUM.SessionListener? + @objc public private(set) var rumSessionListener: RUM.SessionListener? + @objc public private(set) var listener: ((String) -> Void)? private static let BRIDGE_MODULE_NAME = "DatadogInternalReactBridge" private static let BRIDGE_MODULE_METHOD = "__datadogRumSessionStarted" private static var _instance: DdSdkSessionStartedListener? - private var listener: ((String) -> Void)? private var rctBridge: RCTBridge? private var lastSessionId: String? @@ -39,8 +39,12 @@ public class DdSdkSessionStartedListener: NSObject { } } - @objc public func setListener(_ listener: ((String) -> Void)?) { + @objc public func setListenerCallback(_ listener: ((String) -> Void)?) { self.listener = listener + guard let sessionId = lastSessionId else { + return + } + sendToJsWithListener(sessionId: sessionId) } @objc public func setRCTBridge(_ rctBridge: RCTBridge) { @@ -48,7 +52,7 @@ public class DdSdkSessionStartedListener: NSObject { guard let sessionId = lastSessionId else { return } - sendSessionStartedToJS(sessionId: sessionId) + sendToJsWithBridge(sessionId: sessionId) } func invalidate() { diff --git a/packages/core/ios/Tests/DdSdkSessionStartedListenerTests.swift b/packages/core/ios/Tests/DdSdkSessionStartedListenerTests.swift new file mode 100644 index 000000000..d4e9fe662 --- /dev/null +++ b/packages/core/ios/Tests/DdSdkSessionStartedListenerTests.swift @@ -0,0 +1,86 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +import XCTest +@testable import DatadogSDKReactNative +@testable import React + +class DdSdkSessionStartedListenerTests: XCTestCase { + var consoleMessage = "" + + override func setUp() { + super.setUp() + } + + override func tearDown() { + super.tearDown() + } + + func testInstanceImplementsSingletonCorrectly() { + // GIVEN + let instance1 = DdSdkSessionStartedListener.instance + + // WHEN + let instance2 = DdSdkSessionStartedListener.instance + + // THEN + XCTAssertEqual(instance1, instance2) + } + + func testInvalidateMakesListenerNil() { + // GIVEN + let instance = DdSdkSessionStartedListener.instance + let listener: ((String) -> Void) = {_ in } + instance.setListenerCallback(listener) + + // WHEN + instance.invalidate() + + // THEN + XCTAssertNil(instance.listener) + } + + func testListenerIsCalledWithSessionIdAfterListenerIsSet() { + // GIVEN + let instance = DdSdkSessionStartedListener.instance + instance.rumSessionListener?("test-session-id", false) + + // WHEN + var outSessionId: String? + instance.setListenerCallback { sessionId in + outSessionId = sessionId + } + + // THEN + XCTAssertEqual(outSessionId, "test-session-id") + } + + func testListenerIsCalledWithSessionIdWhenListenerIsAlreadySet() { + // GIVEN + let instance = DdSdkSessionStartedListener.instance + var outSessionId: String? + instance.setListenerCallback { sessionId in + outSessionId = sessionId + } + + // WHEN + instance.rumSessionListener?("test-session-id", false) + + // THEN + XCTAssertEqual(outSessionId, "test-session-id") + } + + func testRumSessionListenerIsRegisteredOnInit() { + // GIVEN + let instance = DdSdkSessionStartedListener.instance + + // WHEN + let rumSessionListener = instance.rumSessionListener + + // THEN + XCTAssertNotNil(rumSessionListener) + } +} From ddb5f100f68b7acb2d1ce86b54e8ef88f36a92d2 Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Fri, 16 May 2025 15:41:24 +0200 Subject: [PATCH 07/13] Explicitly set RCT_NEW_ARCH_ENABLED in CI pod install --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fd1024ef4..3fa689c58 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -92,7 +92,7 @@ test:native-ios: timeout: 1h script: - yarn - - (cd example/ios && pod install --repo-update) + - (cd example/ios && RCT_NEW_ARCH_ENABLED=0 pod install --repo-update) - set -o pipefail && xcodebuild -workspace example/ios/DdSdkReactNativeExample.xcworkspace -scheme DatadogSDKReactNative test -destination "platform=iOS Simulator,OS=17.4,name=iPhone 15 Pro Max" | xcbeautify test:native-ios-sr: @@ -101,5 +101,5 @@ test:native-ios-sr: timeout: 1h script: - yarn - - (cd example/ios && pod install --repo-update) + - (cd example/ios && RCT_NEW_ARCH_ENABLED=0 pod install --repo-update) - set -o pipefail && xcodebuild -workspace example/ios/DdSdkReactNativeExample.xcworkspace -scheme DatadogSDKReactNativeSessionReplay test -destination "platform=iOS Simulator,OS=17.4,name=iPhone 15 Pro Max" | xcbeautify \ No newline at end of file From 84244c9a4e1d608b5d9f68aee15f7a40842c4ac4 Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Fri, 16 May 2025 16:47:29 +0200 Subject: [PATCH 08/13] Updated Podfile.lock in example projects --- example/ios/Podfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index e213d5959..df46ae22f 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -2074,6 +2074,6 @@ SPEC CHECKSUMS: SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 Yoga: feb4910aba9742cfedc059e2b2902e22ffe9954a -PODFILE CHECKSUM: 1a1fe93450a5c7023350d88379b0f947bdf9f909 +PODFILE CHECKSUM: 94c78da46bacff8e5994c103ca1f6941a5983ed7 COCOAPODS: 1.16.2 From 6511f56967b120a03f3fc414513b5aa092fa0d7b Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Fri, 16 May 2025 17:13:22 +0200 Subject: [PATCH 09/13] Override minSdkVersion for CI builds --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3fa689c58..11429e559 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -82,9 +82,9 @@ test:native-android: - echo "org.gradle.java.home=/opt/homebrew/opt/openjdk@17" >> packages/react-native-session-replay/android/gradle.properties - echo "org.gradle.java.home=/opt/homebrew/opt/openjdk@17" >> packages/internal-testing-tools/android/gradle.properties - yarn - - (cd packages/core/android && ./gradlew build) - - (cd packages/react-native-session-replay/android && ./gradlew build) - - (cd packages/internal-testing-tools/android && ./gradlew build) + - (cd packages/core/android && ./gradlew build -PDdSdkReactNative_minSdkVersion=24) + - (cd packages/react-native-session-replay/android && ./gradlew build -PDdSdkReactNative_minSdkVersion=24 -PDatadogSDKReactNativeSessionReplay_minSdkVersion=24) + - (cd packages/internal-testing-tools/android && ./gradlew build -PDdSdkReactNative_minSdkVersion=24 -PDatadogInternalTesting_minSdkVersion=24) test:native-ios: tags: [ "macos:sonoma", "specific:true" ] From 91dcd7b8cc5e364cfc0dbe3805952ab2c74e1e5c Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Mon, 19 May 2025 12:07:09 +0200 Subject: [PATCH 10/13] Fixed Android for older RN versions --- .../reactnative/DdSdkReactNativePackage.kt | 4 ++-- .../DdSdkSessionStartedListener.kt | 21 +++++++++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt index 766620a33..d936c7bc6 100644 --- a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt +++ b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt @@ -6,7 +6,7 @@ package com.datadog.reactnative -import com.facebook.react.BaseReactPackage +import com.facebook.react.TurboReactPackage import com.facebook.react.bridge.LifecycleEventListener import com.facebook.react.bridge.NativeModule import com.facebook.react.bridge.ReactApplicationContext @@ -16,7 +16,7 @@ import com.facebook.react.module.model.ReactModuleInfoProvider /** * Package of native dd-sdk-reactnative native modules. */ -class DdSdkReactNativePackage : BaseReactPackage() { +class DdSdkReactNativePackage : TurboReactPackage() { private val sdkWrapper = DatadogSDKWrapper() private var lifecycleEventListener: LifecycleEventListener? = null override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { diff --git a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt index c415d77bf..6c39ae9e4 100644 --- a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt +++ b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt @@ -35,6 +35,7 @@ internal class DdSdkSessionStartedListener private constructor(): RumSessionList private var listener: ((sessionId: String) -> Unit)? = null private var convertToNativeArray: ((array: Array) -> NativeArray?)? = null private var exceptionHandler: ((error: Exception) -> Unit)? = null + private var isNewArchitecture: Boolean? = null override fun onSessionStarted(sessionId: String, isDiscarded: Boolean) { sendSessionStartedToJS(sessionId) @@ -65,8 +66,24 @@ internal class DdSdkSessionStartedListener private constructor(): RumSessionList private fun hasValidBridge(): Boolean { val context = reactContext ?: return false val instance = context.catalystInstance ?: return false - val isNotFabric = context.fabricUIManager == null - return isNotFabric && !instance.isDestroyed && context.hasActiveReactInstance(); + return isNewArchitecture(context) && + !instance.isDestroyed && + context.hasActiveReactInstance() + } + + private fun isNewArchitecture(context: ReactContext): Boolean { + isNewArchitecture?.let { return it } + + val method = try { + context.javaClass.getMethod("getFabricUIManager") + } catch (e: NoSuchMethodException) { + return false + } + + val hasFabricUIManager = method.invoke(reactContext) != null + this.isNewArchitecture = hasFabricUIManager + + return hasFabricUIManager } private fun sendSessionStartedToJS(sessionId: String) { From 11c54245b0f82a449828f5d8846a5f92b86ca487 Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Wed, 21 May 2025 14:52:42 +0200 Subject: [PATCH 11/13] Use NativeEventEmitter for new-arch bridge --- .../reactnative/DdSdkNativeInitialization.kt | 8 + .../reactnative/DdSdkReactNativePackage.kt | 21 -- .../DdSdkSessionStartedListener.kt | 35 +-- .../kotlin/com/datadog/reactnative/DdSdk.kt | 26 ++- .../kotlin/com/datadog/reactnative/DdSdk.kt | 18 +- .../DdSdkSessionStartedListenerTest.kt | 64 ------ packages/core/ios/Sources/DdSdk.h | 2 +- packages/core/ios/Sources/DdSdk.mm | 21 +- .../Sources/DdSdkNativeInitialization.swift | 6 + .../Sources/DdSdkSessionStartedListener.swift | 47 ++-- .../DdSdkSessionStartedListenerTests.swift | 30 --- packages/core/src/DdSdkReactNative.tsx | 7 +- packages/core/src/index.tsx | 4 - .../core/src/rum/sessionId/sessionIdHelper.ts | 11 + .../DatadogBatchedBridgeEventEmitter.tsx | 64 ++++++ .../DatadogDefaultEventEmitter.tsx | 46 ++++ .../DatadogEventEmitter.tsx | 12 + .../DatadogNativeEventEmitter.tsx | 60 +++++ .../DdSdkInternalNativeBridge.tsx | 75 ++++++- .../DdSdkInternalNativeBridgeEvent.tsx | 36 +++ .../DdSdkNativeBridge.tsx | 55 ----- .../DdSdkNativeBridgeSpec.tsx | 13 -- .../__tests__/DdSdkNativeBridge.test.tsx | 207 ++++++++++++------ packages/core/src/specs/NativeDdSdk.ts | 6 - 24 files changed, 562 insertions(+), 312 deletions(-) create mode 100644 packages/core/src/sdk/DatadogEventEmitter/DatadogBatchedBridgeEventEmitter.tsx create mode 100644 packages/core/src/sdk/DatadogEventEmitter/DatadogDefaultEventEmitter.tsx create mode 100644 packages/core/src/sdk/DatadogEventEmitter/DatadogEventEmitter.tsx create mode 100644 packages/core/src/sdk/DatadogEventEmitter/DatadogNativeEventEmitter.tsx create mode 100644 packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridgeEvent.tsx delete mode 100644 packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridge.tsx delete mode 100644 packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridgeSpec.tsx diff --git a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt index 81861c1f1..8a3113008 100644 --- a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt +++ b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt @@ -49,6 +49,14 @@ class DdSdkNativeInitialization internal constructor( configureSdkVerbosity(ddSdkConfiguration) configureRumAndTracesForLogs(ddSdkConfiguration) + if (datadog.isInitialized()) { + datadog.getRumMonitor().getCurrentSessionId { + it?.let { sessionId -> + DdSdkSessionStartedListener.getInstance().onSessionStarted(sessionId, false) + } + } + } + datadog.initialize(appContext, sdkConfiguration, trackingConsent) datadog.enableRum(rumConfiguration) diff --git a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt index d936c7bc6..bac9f49f5 100644 --- a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt +++ b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkReactNativePackage.kt @@ -18,9 +18,7 @@ import com.facebook.react.module.model.ReactModuleInfoProvider */ class DdSdkReactNativePackage : TurboReactPackage() { private val sdkWrapper = DatadogSDKWrapper() - private var lifecycleEventListener: LifecycleEventListener? = null override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { - registerLifecycleEventListener(reactContext) return when (name) { DdSdkImplementation.NAME -> DdSdk(reactContext, sdkWrapper) DdRumImplementation.NAME -> DdRum(reactContext, sdkWrapper) @@ -30,25 +28,6 @@ class DdSdkReactNativePackage : TurboReactPackage() { } } - private fun registerLifecycleEventListener(reactContext: ReactApplicationContext) { - if (lifecycleEventListener != null) { - return - } - - lifecycleEventListener = object: LifecycleEventListener{ - override fun onHostDestroy() { - DdSdkSessionStartedListener.invalidate() - } - override fun onHostPause() { - DdSdkSessionStartedListener.invalidate() - } - override fun onHostResume() { - DdSdkSessionStartedListener.getInstance().setReactContext(reactContext) - } - } - reactContext.addLifecycleEventListener(lifecycleEventListener) - } - override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { return ReactModuleInfoProvider { val isTurboModule: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED diff --git a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt index 6c39ae9e4..3cffb7e58 100644 --- a/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt +++ b/packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkSessionStartedListener.kt @@ -5,16 +5,19 @@ */ package com.datadog.reactnative +import androidx.annotation.MainThread import com.datadog.android.rum.RumSessionListener import com.facebook.react.bridge.NativeArray import com.facebook.react.bridge.ReactContext import com.facebook.react.bridge.WritableNativeArray +import com.facebook.react.modules.core.DeviceEventManagerModule import org.jetbrains.annotations.TestOnly + internal class DdSdkSessionStartedListener private constructor(): RumSessionListener { companion object { private const val BRIDGE_MODULE_NAME = "DatadogInternalReactBridge" - private const val BRIDGE_MODULE_METHOD = "__datadogRumSessionStarted" + private const val BRIDGE_MODULE_METHOD = "__datadogOnMessageReceived" private var instance: DdSdkSessionStartedListener? = null @@ -32,20 +35,14 @@ internal class DdSdkSessionStartedListener private constructor(): RumSessionList private var reactContext: ReactContext? = null private var lastSessionId: String? = null - private var listener: ((sessionId: String) -> Unit)? = null private var convertToNativeArray: ((array: Array) -> NativeArray?)? = null - private var exceptionHandler: ((error: Exception) -> Unit)? = null + private var exceptionHandler: ((error:Exception)->Unit)? = null private var isNewArchitecture: Boolean? = null override fun onSessionStarted(sessionId: String, isDiscarded: Boolean) { sendSessionStartedToJS(sessionId) } - fun setListener(listener: (sessionId: String) -> Unit) { - this.listener = listener - this.lastSessionId?.let { sendSessionStartedToJS(it) } - } - fun setReactContext(reactContext: ReactContext) { this.reactContext = reactContext if (hasValidBridge()) { @@ -66,7 +63,7 @@ internal class DdSdkSessionStartedListener private constructor(): RumSessionList private fun hasValidBridge(): Boolean { val context = reactContext ?: return false val instance = context.catalystInstance ?: return false - return isNewArchitecture(context) && + return !isNewArchitecture(context) && !instance.isDestroyed && context.hasActiveReactInstance() } @@ -74,6 +71,7 @@ internal class DdSdkSessionStartedListener private constructor(): RumSessionList private fun isNewArchitecture(context: ReactContext): Boolean { isNewArchitecture?.let { return it } + @Suppress("SwallowedException") val method = try { context.javaClass.getMethod("getFabricUIManager") } catch (e: NoSuchMethodException) { @@ -91,10 +89,11 @@ internal class DdSdkSessionStartedListener private constructor(): RumSessionList if (hasValidBridge()) { sendSessionIdWithBridge(sessionId) } else { - sendSessionIdWithListener(sessionId) + sendSessionIdWithEventEmitter(sessionId) } } + @MainThread private fun sendSessionIdWithBridge(sessionId: String) { @Suppress("TooGenericExceptionCaught") try { @@ -103,6 +102,7 @@ internal class DdSdkSessionStartedListener private constructor(): RumSessionList convertToNativeArray?.invoke(args) } else { WritableNativeArray().apply { + pushString("RUMSessionStarted") pushString(sessionId) } } @@ -117,7 +117,16 @@ internal class DdSdkSessionStartedListener private constructor(): RumSessionList } } - private fun sendSessionIdWithListener(sessionId: String) { - listener?.invoke(sessionId) + @MainThread + private fun sendSessionIdWithEventEmitter(sessionId: String) { + val context = reactContext ?: return + @Suppress("TooGenericExceptionCaught", "SwallowedException") + try { + context + .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java) + .emit("RUMSessionStarted", sessionId) + } catch (err: Exception) { + /* empty */ + } } -} \ No newline at end of file +} diff --git a/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt b/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt index 5bd1d0026..15fd17842 100644 --- a/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt +++ b/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt @@ -7,11 +7,13 @@ package com.datadog.reactnative import android.app.Activity +import androidx.annotation.MainThread import com.facebook.react.bridge.LifecycleEventListener import com.facebook.react.bridge.Promise import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactMethod import com.facebook.react.bridge.ReadableMap +import com.facebook.react.modules.core.DeviceEventManagerModule /** The entry point to initialize Datadog's features. */ class DdSdk( @@ -25,9 +27,6 @@ class DdSdk( init { registerLifecycleEvents(reactContext) - DdSdkSessionStartedListener.getInstance().setListener { sessionId -> - emitOnRUMSessionStarted(sessionId) - } } /** @@ -144,10 +143,27 @@ class DdSdk( DdSdkSynthetics.testId = extras?.getString("_dd.synthetics.test_id") DdSdkSynthetics.resultId = extras?.getString("_dd.synthetics.result_id") } + + DdSdkSessionStartedListener.getInstance().setReactContext(reactContext) } - override fun onHostPause() {} - override fun onHostDestroy() {} + override fun onHostPause() { + DdSdkSessionStartedListener.invalidate() + } + override fun onHostDestroy() { + DdSdkSessionStartedListener.invalidate() + } }) } + + @MainThread + private fun emitSessionId(reactContext: ReactApplicationContext, sessionId: String) { + try { + reactContext + .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java) + .emit("RUMSessionStarted", sessionId) + } catch(err: Exception) { + return + } + } } diff --git a/packages/core/android/src/oldarch/kotlin/com/datadog/reactnative/DdSdk.kt b/packages/core/android/src/oldarch/kotlin/com/datadog/reactnative/DdSdk.kt index 55ada2aaf..80b26691e 100644 --- a/packages/core/android/src/oldarch/kotlin/com/datadog/reactnative/DdSdk.kt +++ b/packages/core/android/src/oldarch/kotlin/com/datadog/reactnative/DdSdk.kt @@ -21,11 +21,13 @@ class DdSdk( ) : ReactContextBaseJavaModule(reactContext) { private val implementation = DdSdkImplementation(reactContext, datadog = datadogWrapper) + private var lifecycleEventListener: LifecycleEventListener? = null override fun getName(): String = DdSdkImplementation.NAME init { - reactContext.addLifecycleEventListener(object : LifecycleEventListener { + lifecycleEventListener?.let { reactContext.removeLifecycleEventListener(it) } + lifecycleEventListener = object : LifecycleEventListener { override fun onHostResume() { val currentActivity: Activity? = currentActivity if (currentActivity != null) { @@ -34,11 +36,19 @@ class DdSdk( DdSdkSynthetics.testId = extras?.getString("_dd.synthetics.test_id") DdSdkSynthetics.resultId = extras?.getString("_dd.synthetics.result_id") } + + DdSdkSessionStartedListener.getInstance().setReactContext(reactContext) + } + + override fun onHostPause() { + DdSdkSessionStartedListener.invalidate() } - override fun onHostPause() {} - override fun onHostDestroy() {} - }) + override fun onHostDestroy() { + DdSdkSessionStartedListener.invalidate() + } + } + reactContext.addLifecycleEventListener(lifecycleEventListener) } /** diff --git a/packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkSessionStartedListenerTest.kt b/packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkSessionStartedListenerTest.kt index 404518cb7..8aae270c0 100644 --- a/packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkSessionStartedListenerTest.kt +++ b/packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkSessionStartedListenerTest.kt @@ -77,50 +77,6 @@ internal class DdSdkSessionStartedListenerTest { assertThat(instance1).isNotEqualTo(DdSdkSessionStartedListener.getInstance()) } - @Test - fun `𝕄 onSessionStarted calls listener callback when set and bridge is invalid`() { - // GIVEN - val instance = DdSdkSessionStartedListener.getInstance() - instance.setListener(mockListenerCallback) - - // WHEN - instance.onSessionStarted("TEST-SESSION-ID", false) - - // THEN - verify(mockListenerCallback).invoke("TEST-SESSION-ID") - } - - @Test - fun `𝕄 onSessionStarted calls react bridge when bridge is valid`() { - // GIVEN - whenever(mockReactContext.hasActiveReactInstance()).thenReturn(true) - whenever(mockReactContext.catalystInstance).thenReturn(mockCatalystInstance) - whenever(mockCatalystInstance.isDestroyed).thenReturn(false) - whenever(mockReactContext.fabricUIManager).thenReturn(null) - - val instance = DdSdkSessionStartedListener.getInstance() - instance.setReactContext(mockReactContext) - - val passedArgs = mutableListOf() - instance.setConvertToNativeArray { - passedArgs.addAll(it) - // We cannot mock or test NativeArray as it relies on native runtime SO library - return@setConvertToNativeArray null - } - // WHEN - instance.onSessionStarted("TEST-SESSION-ID", false) - - // THEN - verify(mockCatalystInstance).callFunction( - module = "DatadogInternalReactBridge", - method = "__datadogRumSessionStarted", - arguments = null - ) - - assertThat(passedArgs.count()).isEqualTo(1) - assertThat(passedArgs.first()).isEqualTo("TEST-SESSION-ID") - } - @Test fun `𝕄 onSessionStarted internally catches exception if catalyst instance throws`() { // GIVEN @@ -181,24 +137,4 @@ internal class DdSdkSessionStartedListenerTest { // THEN verify(mockConvertToNativeArray).invoke(argWhere { it.first() == "TEST-SESSION-ID" }) } - - @Test - fun `𝕄 session ID event is delayed until context is available W { listener }`() { - // GIVEN - whenever(mockReactContext.hasActiveReactInstance()).thenReturn(true) - whenever(mockReactContext.catalystInstance).thenReturn(mockCatalystInstance) - whenever(mockCatalystInstance.isDestroyed).thenReturn(false) - whenever(mockReactContext.fabricUIManager).thenReturn(null) - whenever(mockCatalystInstance.callFunction(any(), any(), anyOrNull())) - .thenThrow(RuntimeException("TEST")) - - val instance = DdSdkSessionStartedListener.getInstance() - - // WHEN - instance.onSessionStarted("TEST-SESSION-ID", false) - instance.setListener(mockListenerCallback) - - // THEN - verify(mockListenerCallback).invoke("TEST-SESSION-ID") - } } diff --git a/packages/core/ios/Sources/DdSdk.h b/packages/core/ios/Sources/DdSdk.h index 20a3b4f98..57f069848 100644 --- a/packages/core/ios/Sources/DdSdk.h +++ b/packages/core/ios/Sources/DdSdk.h @@ -15,7 +15,7 @@ #ifdef RCT_NEW_ARCH_ENABLED #import -@interface DdSdk : NativeDdSdkSpecBase +@interface DdSdk : RCTEventEmitter #else diff --git a/packages/core/ios/Sources/DdSdk.mm b/packages/core/ios/Sources/DdSdk.mm index e2d6bbcd2..26c14e0f5 100644 --- a/packages/core/ios/Sources/DdSdk.mm +++ b/packages/core/ios/Sources/DdSdk.mm @@ -160,11 +160,25 @@ - (void)clearAllData:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlo } - (void)addListener:(NSString *)eventType { - // No-OP + [DdSdkSessionStartedListener.instance setHasListeners: true]; + [super addListener:eventType]; } - (void)removeListeners:(double)count { - // No-OP + [DdSdkSessionStartedListener.instance setHasListeners: false]; + [super removeListeners:count]; +} + +- (NSArray *)supportedEvents { + return [[NSArray alloc] initWithObjects:@"RUMSessionStarted", nil]; +} + +- (void)startObserving { + [DdSdkSessionStartedListener.instance setHasListeners: true]; +} + +- (void)stopObserving { + [DdSdkSessionStartedListener.instance setHasListeners: false]; } + (BOOL)requiresMainQueueSetup { @@ -193,7 +207,8 @@ - (void)registerSessionIdListener { if (!strongSelf) { return; } - [strongSelf emitOnRUMSessionStarted: sessionId]; + + [strongSelf sendEventWithName:@"RUMSessionStarted" body: sessionId]; }]; } #else diff --git a/packages/core/ios/Sources/DdSdkNativeInitialization.swift b/packages/core/ios/Sources/DdSdkNativeInitialization.swift index 4783f6190..d68d89d06 100644 --- a/packages/core/ios/Sources/DdSdkNativeInitialization.swift +++ b/packages/core/ios/Sources/DdSdkNativeInitialization.swift @@ -36,6 +36,12 @@ public class DdSdkNativeInitialization: NSObject { // Global.sharedTracer to be set to no-op instances consolePrint("Datadog SDK is already initialized, skipping initialization.", .debug) DatadogSDKWrapper.shared.telemetryDebug(id: "datadog_react_native: RN SDK was already initialized in native", message: "RN SDK was already initialized in native") + + RUMMonitor.shared().currentSessionID { sessionId in + guard let id = sessionId else { return } + DdSdkSessionStartedListener.instance.rumSessionListener?(id, false) + } + return } self.setVerbosityLevel(configuration: sdkConfiguration) diff --git a/packages/core/ios/Sources/DdSdkSessionStartedListener.swift b/packages/core/ios/Sources/DdSdkSessionStartedListener.swift index 19dbaeb02..9630c4bd0 100644 --- a/packages/core/ios/Sources/DdSdkSessionStartedListener.swift +++ b/packages/core/ios/Sources/DdSdkSessionStartedListener.swift @@ -25,48 +25,54 @@ public class DdSdkSessionStartedListener: NSObject { @objc public private(set) var listener: ((String) -> Void)? private static let BRIDGE_MODULE_NAME = "DatadogInternalReactBridge" - private static let BRIDGE_MODULE_METHOD = "__datadogRumSessionStarted" + private static let BRIDGE_MODULE_METHOD = "__datadogOnMessageReceived" + private static let BRIDGE_EVENT_NAME = "RUMSessionStarted" private static var _instance: DdSdkSessionStartedListener? private var rctBridge: RCTBridge? + private var rctEventEmitter: RCTEventEmitter? private var lastSessionId: String? + private var hasListeners: Bool = false @objc private override init() { super.init() self.rumSessionListener = { [weak self] sessionId, isDiscarded in self?.lastSessionId = sessionId - self?.sendSessionStartedToJS(sessionId: sessionId) + self?.tryToSendSessionId() } } + + @objc public func setHasListeners(_ hasListeners: Bool) { + self.hasListeners = hasListeners + tryToSendSessionId() + } @objc public func setListenerCallback(_ listener: ((String) -> Void)?) { self.listener = listener - guard let sessionId = lastSessionId else { - return - } - sendToJsWithListener(sessionId: sessionId) + tryToSendSessionId() } - + @objc public func setRCTBridge(_ rctBridge: RCTBridge) { self.rctBridge = rctBridge - guard let sessionId = lastSessionId else { - return - } - sendToJsWithBridge(sessionId: sessionId) + tryToSendSessionId() } func invalidate() { self.rctBridge = nil self.listener = nil + self.hasListeners = false + self.lastSessionId = nil } - private func sendSessionStartedToJS(sessionId: String) { - self.lastSessionId = sessionId + private func tryToSendSessionId() { + guard let sessionId = self.lastSessionId else { + return + } - if self.rctBridge != nil { - sendToJsWithBridge(sessionId: sessionId) - } else { + if isBridgeless() { sendToJsWithListener(sessionId: sessionId) + } else { + sendToJsWithBridge(sessionId: sessionId) } } @@ -81,16 +87,19 @@ public class DdSdkSessionStartedListener: NSObject { rctBridge.enqueueJSCall( DdSdkSessionStartedListener.BRIDGE_MODULE_NAME, method: DdSdkSessionStartedListener.BRIDGE_MODULE_METHOD, - args: [sessionId], + args: [DdSdkSessionStartedListener.BRIDGE_EVENT_NAME, sessionId], completion: {} ) } private func sendToJsWithListener(sessionId: String) { - guard let listener = self.listener else { + guard let listener = self.listener, hasListeners else { return } - listener(sessionId) } + + private func isBridgeless() -> Bool { + return self.rctBridge == nil + } } diff --git a/packages/core/ios/Tests/DdSdkSessionStartedListenerTests.swift b/packages/core/ios/Tests/DdSdkSessionStartedListenerTests.swift index d4e9fe662..73ed90eb0 100644 --- a/packages/core/ios/Tests/DdSdkSessionStartedListenerTests.swift +++ b/packages/core/ios/Tests/DdSdkSessionStartedListenerTests.swift @@ -43,36 +43,6 @@ class DdSdkSessionStartedListenerTests: XCTestCase { XCTAssertNil(instance.listener) } - func testListenerIsCalledWithSessionIdAfterListenerIsSet() { - // GIVEN - let instance = DdSdkSessionStartedListener.instance - instance.rumSessionListener?("test-session-id", false) - - // WHEN - var outSessionId: String? - instance.setListenerCallback { sessionId in - outSessionId = sessionId - } - - // THEN - XCTAssertEqual(outSessionId, "test-session-id") - } - - func testListenerIsCalledWithSessionIdWhenListenerIsAlreadySet() { - // GIVEN - let instance = DdSdkSessionStartedListener.instance - var outSessionId: String? - instance.setListenerCallback { sessionId in - outSessionId = sessionId - } - - // WHEN - instance.rumSessionListener?("test-session-id", false) - - // THEN - XCTAssertEqual(outSessionId, "test-session-id") - } - func testRumSessionListenerIsRegisteredOnInit() { // GIVEN let instance = DdSdkSessionStartedListener.instance diff --git a/packages/core/src/DdSdkReactNative.tsx b/packages/core/src/DdSdkReactNative.tsx index 43719fed1..d1db5f57a 100644 --- a/packages/core/src/DdSdkReactNative.tsx +++ b/packages/core/src/DdSdkReactNative.tsx @@ -35,7 +35,10 @@ import { } from './rum/sessionId/sessionIdHelper'; import { AttributesSingleton } from './sdk/AttributesSingleton/AttributesSingleton'; import type { Attributes } from './sdk/AttributesSingleton/types'; -import { hasNativeBridge } from './sdk/DatadogInternalBridge/DdSdkNativeBridge'; +import { + hasNativeBridge, + registerNativeBridge +} from './sdk/DatadogInternalBridge/DdSdkInternalNativeBridge'; import { BufferSingleton } from './sdk/DatadogProvider/Buffer/BufferSingleton'; import { DdSdk } from './sdk/DdSdk'; import { FileBasedConfiguration } from './sdk/FileBasedConfiguration/FileBasedConfiguration'; @@ -96,6 +99,8 @@ export class DdSdkReactNative { InternalLog.verbosity = configuration.verbosity; + registerNativeBridge(); + await DdSdk.initialize( DdSdkReactNative.buildConfiguration(configuration, params) ); diff --git a/packages/core/src/index.tsx b/packages/core/src/index.tsx index 792dc326e..515cfd1f8 100644 --- a/packages/core/src/index.tsx +++ b/packages/core/src/index.tsx @@ -32,8 +32,6 @@ import { } from './rum/instrumentation/resourceTracking/graphql/graphqlHeaders'; import { RumActionType, ErrorSource, PropagatorType } from './rum/types'; import type { FirstPartyHost } from './rum/types'; -import { DdSdkInternalNativeBridge } from './sdk/DatadogInternalBridge/DdSdkInternalNativeBridge'; -import { registerNativeBridge } from './sdk/DatadogInternalBridge/DdSdkNativeBridge'; import { DatadogProvider } from './sdk/DatadogProvider/DatadogProvider'; import { DdSdk } from './sdk/DdSdk'; import { FileBasedConfiguration } from './sdk/FileBasedConfiguration/FileBasedConfiguration'; @@ -42,8 +40,6 @@ import { DefaultTimeProvider } from './utils/time-provider/DefaultTimeProvider'; import { TimeProvider } from './utils/time-provider/TimeProvider'; import type { Timestamp } from './utils/time-provider/TimeProvider'; -registerNativeBridge(new DdSdkInternalNativeBridge()); - export { DatadogProvider, DatadogProviderConfiguration, diff --git a/packages/core/src/rum/sessionId/sessionIdHelper.ts b/packages/core/src/rum/sessionId/sessionIdHelper.ts index 5c87485fb..a82cf4334 100644 --- a/packages/core/src/rum/sessionId/sessionIdHelper.ts +++ b/packages/core/src/rum/sessionId/sessionIdHelper.ts @@ -4,6 +4,8 @@ * Copyright 2016-Present Datadog, Inc. */ +import { InternalLog } from '../../InternalLog'; +import { SdkVerbosity } from '../../SdkVerbosity'; import { DdRum } from '../DdRum'; const SESSION_ID_POLL_INTERVAL = 500; @@ -29,6 +31,10 @@ export const pollForSessionId = ( const id = await DdRum.getCurrentSessionId(); if (id) { _cachedSessionId = id; + InternalLog.log( + `Retrieved RUM Session ID after ${attempts} attempts: ${id}`, + SdkVerbosity.DEBUG + ); return; } } catch (e) { @@ -37,6 +43,11 @@ export const pollForSessionId = ( if (attempts < maxAttempts) { _pollForSessionIdTimeout = setTimeout(poll, intervalMs); + } else { + InternalLog.log( + `Cannot retrieve RUM Session ID after ${attempts} attempts.`, + SdkVerbosity.DEBUG + ); } }; diff --git a/packages/core/src/sdk/DatadogEventEmitter/DatadogBatchedBridgeEventEmitter.tsx b/packages/core/src/sdk/DatadogEventEmitter/DatadogBatchedBridgeEventEmitter.tsx new file mode 100644 index 000000000..31ac44aad --- /dev/null +++ b/packages/core/src/sdk/DatadogEventEmitter/DatadogBatchedBridgeEventEmitter.tsx @@ -0,0 +1,64 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ + +import type { + DatadogEventEmitterCallback, + DatadogEventEmitter +} from './DatadogEventEmitter'; + +export class DatadogBatchedBridgeEventEmitter implements DatadogEventEmitter { + private listeners: Record; + private errorHandler: (err: any) => void; + + constructor(errorHandler: (err: any) => void) { + this.errorHandler = errorHandler; + this.listeners = {}; + } + + initialize(): boolean { + try { + // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires + const batchedBridge = require('react-native/Libraries/BatchedBridge/BatchedBridge'); + batchedBridge.registerCallableModule( + 'DatadogInternalReactBridge', + this + ); + + return true; + } catch (err) { + this.errorHandler(`ERROR: cannot initialize BatchedBridge: ${err}`); + return false; + } + } + + addListener( + eventName: string, + callback: DatadogEventEmitterCallback + ): void { + this.listeners[eventName] = callback; + } + + removeAllListeners(eventName: string): void { + delete this.listeners[eventName]; + } + + // Called directly from native layer. + __datadogOnMessageReceived(eventName: string, data: any): void { + const callback = this.listeners[eventName]; + if (!callback) { + this.errorHandler( + `ERROR: No listeners registered for received event ${eventName} with data: ${JSON.stringify( + data, + null, + 4 + )}` + ); + return; + } + + callback(data); + } +} diff --git a/packages/core/src/sdk/DatadogEventEmitter/DatadogDefaultEventEmitter.tsx b/packages/core/src/sdk/DatadogEventEmitter/DatadogDefaultEventEmitter.tsx new file mode 100644 index 000000000..f04bf7ba2 --- /dev/null +++ b/packages/core/src/sdk/DatadogEventEmitter/DatadogDefaultEventEmitter.tsx @@ -0,0 +1,46 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +import { NativeModules } from 'react-native'; + +import { DatadogBatchedBridgeEventEmitter } from './DatadogBatchedBridgeEventEmitter'; +import type { DatadogEventEmitter } from './DatadogEventEmitter'; +import { DatadogNativeEventEmitter } from './DatadogNativeEventEmitter'; + +export class DatadogDefaultEventEmitter implements DatadogEventEmitter { + private eventEmitter?: DatadogEventEmitter; + + private get isNewArchitecture(): boolean { + return (global as any).RN$Bridgeless; + } + + constructor(errorHandler: (err: any) => void) { + try { + const ddSdkModule = + NativeModules.DdSdk || + // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires + require('../../specs/NativeDdSdk').default; + this.eventEmitter = this.isNewArchitecture + ? new DatadogNativeEventEmitter(ddSdkModule, errorHandler) + : new DatadogBatchedBridgeEventEmitter(errorHandler); + } catch (err) { + errorHandler( + `ERROR: failed to initialize DatadogDefaultEventEmitter: ${err}` + ); + } + } + + initialize(): boolean { + return this.eventEmitter?.initialize() ?? false; + } + + public addListener(eventName: string, callback: (data: any) => void) { + this.eventEmitter?.addListener(eventName, callback); + } + + public removeAllListeners(eventName: string) { + this.eventEmitter?.removeAllListeners(eventName); + } +} diff --git a/packages/core/src/sdk/DatadogEventEmitter/DatadogEventEmitter.tsx b/packages/core/src/sdk/DatadogEventEmitter/DatadogEventEmitter.tsx new file mode 100644 index 000000000..1554d5e90 --- /dev/null +++ b/packages/core/src/sdk/DatadogEventEmitter/DatadogEventEmitter.tsx @@ -0,0 +1,12 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +export type DatadogEventEmitterCallback = (data: any) => void; + +export interface DatadogEventEmitter { + initialize(): boolean; + addListener(eventName: string, callback: DatadogEventEmitterCallback): void; + removeAllListeners(eventName: string): void; +} diff --git a/packages/core/src/sdk/DatadogEventEmitter/DatadogNativeEventEmitter.tsx b/packages/core/src/sdk/DatadogEventEmitter/DatadogNativeEventEmitter.tsx new file mode 100644 index 000000000..b659f2dc9 --- /dev/null +++ b/packages/core/src/sdk/DatadogEventEmitter/DatadogNativeEventEmitter.tsx @@ -0,0 +1,60 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +import { NativeEventEmitter, Platform } from 'react-native'; +import type { NativeModule } from 'react-native'; + +import type { + DatadogEventEmitterCallback, + DatadogEventEmitter +} from './DatadogEventEmitter'; + +export class DatadogNativeEventEmitter implements DatadogEventEmitter { + private nativeEventEmitter?: NativeEventEmitter; + private nativeModule?: NativeModule; + private errorHandler: (err: any) => void; + + constructor( + nativeModule: NativeModule | undefined, + errorHandler: (err: any) => void + ) { + this.nativeModule = nativeModule; + this.errorHandler = errorHandler; + } + + initialize(): boolean { + try { + if (Platform.OS === 'ios') { + if (!this.nativeModule) { + this.errorHandler( + 'ERROR: Initializing iOS Native Event Emitter with undefined NativeModule.' + ); + } + this.nativeEventEmitter = new NativeEventEmitter( + this.nativeModule + ); + } else { + this.nativeEventEmitter = new NativeEventEmitter(); + } + return true; + } catch (err) { + this.errorHandler( + `ERROR: cannot initialize NativeEventEmitter: ${err}` + ); + return false; + } + } + + addListener( + eventName: string, + callback: DatadogEventEmitterCallback + ): void { + this.nativeEventEmitter?.addListener(eventName, callback); + } + + removeAllListeners(eventName: string): void { + this.nativeEventEmitter?.removeAllListeners(eventName); + } +} diff --git a/packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridge.tsx b/packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridge.tsx index c17f47879..bbae2cd12 100644 --- a/packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridge.tsx +++ b/packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridge.tsx @@ -3,10 +3,81 @@ * This product includes software developed at Datadog (https://www.datadoghq.com/). * Copyright 2016-Present Datadog, Inc. */ +import { InternalLog } from '../../InternalLog'; +import { SdkVerbosity } from '../../SdkVerbosity'; import { setCachedSessionId } from '../../rum/sessionId/sessionIdHelper'; +import { DatadogDefaultEventEmitter } from '../DatadogEventEmitter/DatadogDefaultEventEmitter'; +import type { DatadogEventEmitter } from '../DatadogEventEmitter/DatadogEventEmitter'; -export class DdSdkInternalNativeBridge { - __datadogRumSessionStarted(sessionId: string) { +import { DdSdkInternalNativeBridgeEvent as BridgeEvent } from './DdSdkInternalNativeBridgeEvent'; + +const DEFAULT_EVENTS = [ + new BridgeEvent('RUMSessionStarted', (sessionId: string) => { setCachedSessionId(sessionId); + }) +]; + +const defaultErrorHandler = (err: any) => { + InternalLog.log(err, SdkVerbosity.DEBUG); +}; + +export class DdSdkInternalNativeBridge { + private eventEmitter: DatadogEventEmitter; + private errorHandler: (err: any) => void; + private _isInitialized: boolean = false; + + private static _instance?: DdSdkInternalNativeBridge; + public static get isInitialized(): boolean { + return this._instance?._isInitialized ?? false; + } + + static initialize( + eventEmitter: DatadogEventEmitter, + errorHandler: (err: any) => void = defaultErrorHandler + ): DdSdkInternalNativeBridge { + this._instance = new DdSdkInternalNativeBridge( + eventEmitter, + errorHandler + ); + this._instance._isInitialized = + eventEmitter.initialize() && + this._instance.registerDefaultListeners(); + return this._instance; + } + + private constructor( + eventEmitter: DatadogEventEmitter, + errorHandler: (err: any) => void + ) { + this.eventEmitter = eventEmitter; + this.errorHandler = errorHandler; + } + + private registerDefaultListeners(): boolean { + try { + DEFAULT_EVENTS.forEach(event => { + this.eventEmitter.addListener(event.eventName, event.callback); + }); + return true; + } catch (err) { + this.errorHandler( + `An error occured while registering default listeners for event emitter: ${err}` + ); + return false; + } } } + +export const registerNativeBridge = ( + eventEmitter?: DatadogEventEmitter, + errorHandler: (err: any) => void = defaultErrorHandler +) => { + const nativeEventEmitter = + eventEmitter ?? new DatadogDefaultEventEmitter(errorHandler); + DdSdkInternalNativeBridge.initialize(nativeEventEmitter); + if (!DdSdkInternalNativeBridge.isInitialized) { + errorHandler('ERROR: Native Bridge initialization failed.'); + } +}; + +export const hasNativeBridge = () => DdSdkInternalNativeBridge.isInitialized; diff --git a/packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridgeEvent.tsx b/packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridgeEvent.tsx new file mode 100644 index 000000000..528e02b83 --- /dev/null +++ b/packages/core/src/sdk/DatadogInternalBridge/DdSdkInternalNativeBridgeEvent.tsx @@ -0,0 +1,36 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +import { InternalLog } from '../../InternalLog'; +import { SdkVerbosity } from '../../SdkVerbosity'; + +export class DdSdkInternalNativeBridgeEvent { + public readonly eventName: string; + public readonly callback: (data: DataType) => void; + + constructor(eventName: string, callback: (data: DataType) => void) { + this.eventName = eventName; + this.callback = (data: DataType) => { + if (!data) { + InternalLog.log( + `BridgeEvent undefined data for '${eventName}' event: ${ + data ? JSON.stringify(data) : 'undefined' + }`, + SdkVerbosity.DEBUG + ); + return; + } + + InternalLog.log( + `BridgeEvent received data for '${eventName}' event: ${ + data ? JSON.stringify(data) : 'undefined' + }`, + SdkVerbosity.DEBUG + ); + + callback(data); + }; + } +} diff --git a/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridge.tsx b/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridge.tsx deleted file mode 100644 index 2b2240373..000000000 --- a/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridge.tsx +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. - * This product includes software developed at Datadog (https://www.datadoghq.com/). - * Copyright 2016-Present Datadog, Inc. - */ -import NativeDdSdk from '../../specs/NativeDdSdk'; - -import type { DdSdkNativeBridgeSpec } from './DdSdkNativeBridgeSpec'; - -let _hasNativeBridge = false; - -type ErrorHandler = (err: any) => void; -const noOpErrorHandler: ErrorHandler = (_: any) => { - /* empty */ -}; -export const registerNativeBridge = ( - bridge: DdSdkNativeBridgeSpec, - errorHandler: ErrorHandler = noOpErrorHandler -) => { - try { - const globalThis = global as any; - if (globalThis.RN$Bridgeless) { - registerNewArchitectureBridge(bridge); - } else { - registerOldArchitectureBridge(bridge); - } - - _hasNativeBridge = true; - } catch (err) { - errorHandler(err); - } -}; - -function registerNewArchitectureBridge(bridge: DdSdkNativeBridgeSpec) { - const nativeDdSdk = NativeDdSdk; - if (!nativeDdSdk) { - throw new Error( - 'registerNativeBridge() ERROR: NativeDdSdk is undefined' - ); - } - - // Register Turbo Module Event Listeners here - nativeDdSdk.onRUMSessionStarted(bridge.__datadogRumSessionStarted); -} - -function registerOldArchitectureBridge(internalBridge: DdSdkNativeBridgeSpec) { - // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires - const batchedBridge = require('react-native/Libraries/BatchedBridge/BatchedBridge'); - batchedBridge.registerCallableModule( - 'DatadogInternalReactBridge', - internalBridge - ); -} - -export const hasNativeBridge = () => _hasNativeBridge; diff --git a/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridgeSpec.tsx b/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridgeSpec.tsx deleted file mode 100644 index 531c7dfea..000000000 --- a/packages/core/src/sdk/DatadogInternalBridge/DdSdkNativeBridgeSpec.tsx +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. - * This product includes software developed at Datadog (https://www.datadoghq.com/). - * Copyright 2016-Present Datadog, Inc. - */ - -export interface DdSdkNativeBridgeSpec { - /** - * Internal event used to retrieve the RUM Session ID from 'RUMSessionStarted' native events. - * @param sessionId The current RUM Session ID. - */ - __datadogRumSessionStarted(sessionId: string): void; -} diff --git a/packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx b/packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx index 9fe1364fd..f2c689900 100644 --- a/packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx +++ b/packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx @@ -10,7 +10,6 @@ import { NativeModules } from 'react-native'; import { DdSdkReactNativeConfiguration } from '../../../DdSdkReactNativeConfiguration'; -import type { DdSdkNativeBridgeSpec } from '../DdSdkNativeBridgeSpec'; const mockBatchedBridge = { registerCallableModule: jest.fn() @@ -25,10 +24,24 @@ const mockNativeDdSdkSpec = { onRUMSessionStarted: jest.fn() }; +const mockEventEmitter = { + initialize: jest.fn(), + addListener: jest.fn(), + removeAllListeners: jest.fn() +}; + const mockErrorHandler = jest.fn(); -const mockInternalBridge: DdSdkNativeBridgeSpec = { - __datadogRumSessionStarted: jest.fn() +const mockNativeEventEmitter = { + initialize: jest.fn().mockReturnValue(true), + addListener: jest.fn(), + removeAllListeners: jest.fn() +}; + +const mockBatchedBridgeEventEmitter = { + initialize: jest.fn().mockReturnValue(true), + addListener: jest.fn(), + removeAllListeners: jest.fn() }; describe('DdSdkNativeBridge', () => { @@ -49,6 +62,24 @@ describe('DdSdkNativeBridge', () => { () => mockSessionIdHelper ); + jest.mock( + '../../DatadogEventEmitter/DatadogNativeEventEmitter', + () => ({ + DatadogNativeEventEmitter: jest + .fn() + .mockImplementation(() => mockNativeEventEmitter) + }) + ); + + jest.mock( + '../../DatadogEventEmitter/DatadogBatchedBridgeEventEmitter', + () => ({ + DatadogBatchedBridgeEventEmitter: jest + .fn() + .mockImplementation(() => mockBatchedBridgeEventEmitter) + }) + ); + jest.mock('../../../specs/NativeDdSdk', () => mockNativeDdSdkSpec); }); @@ -64,44 +95,41 @@ describe('DdSdkNativeBridge', () => { }); it('does not try to register the batched bridge when index is imported', () => { - const ddBridge = require('../DdSdkNativeBridge'); - ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + const ddBridge = require('../DdSdkInternalNativeBridge'); + const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); + mockNativeEventEmitter.initialize.mockReturnValueOnce(true); + ddBridge.registerNativeBridge( + new defaultEventEmitter.DatadogDefaultEventEmitter( + mockErrorHandler + ) + ); expect( mockBatchedBridge.registerCallableModule - ).toHaveBeenCalledTimes(0); + ).not.toHaveBeenCalled(); + expect(mockErrorHandler).not.toHaveBeenCalled(); expect(ddBridge.hasNativeBridge()).toBe(true); }); - it('registers onRUMSessionStarted event listener callback', () => { - const ddBridge = require('../DdSdkNativeBridge'); - ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); - expect( - mockNativeDdSdkSpec.onRUMSessionStarted - ).toHaveBeenCalledWith( - mockInternalBridge.__datadogRumSessionStarted - ); - }); - - it('catches errors when native spec import fails', () => { + it('catches errors when native event emitter init fails', () => { jest.mock('../../../specs/NativeDdSdk', () => undefined); - const ddBridge = require('../DdSdkNativeBridge'); - ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + const ddBridge = require('../DdSdkInternalNativeBridge'); + const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); + mockNativeEventEmitter.initialize.mockReturnValueOnce(false); + + ddBridge.registerNativeBridge( + new defaultEventEmitter.DatadogDefaultEventEmitter( + mockErrorHandler + ), + mockErrorHandler + ); expect(mockErrorHandler).toHaveBeenCalledWith( - expect.objectContaining({ - message: - 'registerNativeBridge() ERROR: NativeDdSdk is undefined' - }) + 'ERROR: Native Bridge initialization failed.' ); - expect( - mockNativeDdSdkSpec.onRUMSessionStarted - ).toHaveBeenCalledTimes(0); }); it('session ID is polled when event listener setup failed', async () => { - const ddBridge = require('../DdSdkNativeBridge'); - const ddSdkRn = require('../../../DdSdkReactNative'); jest.mock( 'react-native/Libraries/BatchedBridge/BatchedBridge', () => { @@ -110,7 +138,18 @@ describe('DdSdkNativeBridge', () => { ); jest.mock('../../../specs/NativeDdSdk', () => undefined); - ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + const ddBridge = require('../DdSdkInternalNativeBridge'); + const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); + const ddSdkRn = require('../../../DdSdkReactNative'); + + mockNativeEventEmitter.initialize.mockReturnValueOnce(false); + + ddBridge.registerNativeBridge( + new defaultEventEmitter.DatadogDefaultEventEmitter( + mockErrorHandler + ), + mockErrorHandler + ); // GIVEN const fakeAppId = '1'; @@ -130,16 +169,23 @@ describe('DdSdkNativeBridge', () => { // THEN expect(ddBridge.hasNativeBridge()).toBe(false); expect(mockSessionIdHelper.pollForSessionId).toHaveBeenCalled(); - expect(mockSessionIdHelper.verifySessionId).toHaveBeenCalledTimes( - 0 - ); + expect(mockSessionIdHelper.verifySessionId).not.toHaveBeenCalled(); expect(mockErrorHandler).toHaveBeenCalled(); }); it('session ID is verified when event listener setup succeeds', async () => { - const ddBridge = require('../DdSdkNativeBridge'); + const ddBridge = require('../DdSdkInternalNativeBridge'); + const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); const ddSdkRn = require('../../../DdSdkReactNative'); - ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + + mockNativeEventEmitter.initialize.mockReturnValueOnce(true); + + ddBridge.registerNativeBridge( + new defaultEventEmitter.DatadogDefaultEventEmitter( + mockErrorHandler + ), + mockErrorHandler + ); // GIVEN const fakeAppId = '1'; @@ -159,10 +205,8 @@ describe('DdSdkNativeBridge', () => { // THEN expect(ddBridge.hasNativeBridge()).toBe(true); expect(mockSessionIdHelper.verifySessionId).toHaveBeenCalled(); - expect(mockSessionIdHelper.pollForSessionId).toHaveBeenCalledTimes( - 0 - ); - expect(mockErrorHandler).toHaveBeenCalledTimes(0); + expect(mockSessionIdHelper.pollForSessionId).not.toHaveBeenCalled(); + expect(mockErrorHandler).not.toHaveBeenCalled(); }); }); @@ -172,45 +216,61 @@ describe('DdSdkNativeBridge', () => { }); it('does not try to register the event listener when index is imported', () => { - const ddBridge = require('../DdSdkNativeBridge'); - ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); - expect( - mockNativeDdSdkSpec.onRUMSessionStarted - ).toHaveBeenCalledTimes(0); - expect(ddBridge.hasNativeBridge()).toBe(true); - }); + const ddBridge = require('../DdSdkInternalNativeBridge'); + const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); + mockBatchedBridgeEventEmitter.initialize.mockReturnValueOnce(true); + + ddBridge.registerNativeBridge( + new defaultEventEmitter.DatadogDefaultEventEmitter( + mockErrorHandler + ) + ); - it('registers the bridge when index is imported', () => { - const ddBridge = require('../DdSdkNativeBridge'); - ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); - expect(mockBatchedBridge.registerCallableModule).toHaveBeenCalled(); + expect(mockNativeEventEmitter.initialize).not.toHaveBeenCalled(); + expect(mockBatchedBridgeEventEmitter.initialize).toHaveBeenCalled(); + expect(mockErrorHandler).not.toHaveBeenCalled(); expect(ddBridge.hasNativeBridge()).toBe(true); - expect(mockErrorHandler).toHaveBeenCalledTimes(0); }); - it('hasBatchedBridge is false when batched bridge import fails', () => { - const ddBridge = require('../DdSdkNativeBridge'); - jest.mock( - 'react-native/Libraries/BatchedBridge/BatchedBridge', - () => { - throw new Error('TEST IMPORT FAILED'); - } + it('hasBatchedBridge is false when batched bridge init fails', () => { + const ddBridge = require('../DdSdkInternalNativeBridge'); + const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); + mockBatchedBridgeEventEmitter.initialize.mockReturnValueOnce(false); + + ddBridge.registerNativeBridge( + new defaultEventEmitter.DatadogDefaultEventEmitter( + mockErrorHandler + ), + mockErrorHandler ); - ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + ddBridge.registerNativeBridge(mockEventEmitter); expect(ddBridge.hasNativeBridge()).toBe(false); - expect(mockErrorHandler).toHaveBeenCalled(); + expect(mockErrorHandler).toHaveBeenCalledWith( + 'ERROR: Native Bridge initialization failed.' + ); }); it('session ID is polled when batched bridge setup failed', async () => { - const ddBridge = require('../DdSdkNativeBridge'); - const ddSdkRn = require('../../../DdSdkReactNative'); jest.mock( 'react-native/Libraries/BatchedBridge/BatchedBridge', () => { throw new Error('Import failed'); } ); - ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + jest.mock('../../../specs/NativeDdSdk', () => undefined); + + const ddBridge = require('../DdSdkInternalNativeBridge'); + const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); + const ddSdkRn = require('../../../DdSdkReactNative'); + + mockBatchedBridgeEventEmitter.initialize.mockReturnValueOnce(false); + + ddBridge.registerNativeBridge( + new defaultEventEmitter.DatadogDefaultEventEmitter( + mockErrorHandler + ), + mockErrorHandler + ); // GIVEN const fakeAppId = '1'; @@ -230,16 +290,23 @@ describe('DdSdkNativeBridge', () => { // THEN expect(ddBridge.hasNativeBridge()).toBe(false); expect(mockSessionIdHelper.pollForSessionId).toHaveBeenCalled(); - expect(mockSessionIdHelper.verifySessionId).toHaveBeenCalledTimes( - 0 - ); + expect(mockSessionIdHelper.verifySessionId).not.toHaveBeenCalled(); expect(mockErrorHandler).toHaveBeenCalled(); }); it('session ID is verified when batched bridge setup succeeds', async () => { - const ddBridge = require('../DdSdkNativeBridge'); + const ddBridge = require('../DdSdkInternalNativeBridge'); + const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); const ddSdkRn = require('../../../DdSdkReactNative'); - ddBridge.registerNativeBridge(mockInternalBridge, mockErrorHandler); + + mockBatchedBridgeEventEmitter.initialize.mockReturnValueOnce(true); + + ddBridge.registerNativeBridge( + new defaultEventEmitter.DatadogDefaultEventEmitter( + mockErrorHandler + ), + mockErrorHandler + ); // GIVEN const fakeAppId = '1'; @@ -259,10 +326,8 @@ describe('DdSdkNativeBridge', () => { // THEN expect(ddBridge.hasNativeBridge()).toBe(true); expect(mockSessionIdHelper.verifySessionId).toHaveBeenCalled(); - expect(mockSessionIdHelper.pollForSessionId).toHaveBeenCalledTimes( - 0 - ); - expect(mockErrorHandler).toHaveBeenCalledTimes(0); + expect(mockSessionIdHelper.pollForSessionId).not.toHaveBeenCalled(); + expect(mockErrorHandler).not.toHaveBeenCalled(); }); }); }); diff --git a/packages/core/src/specs/NativeDdSdk.ts b/packages/core/src/specs/NativeDdSdk.ts index b0ab5e357..27ffd14fc 100644 --- a/packages/core/src/specs/NativeDdSdk.ts +++ b/packages/core/src/specs/NativeDdSdk.ts @@ -5,7 +5,6 @@ */ /* eslint-disable @typescript-eslint/ban-types */ -import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes'; import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; @@ -88,11 +87,6 @@ export interface Spec extends TurboModule { */ addListener: (eventType: string) => void; removeListeners: (count: number) => void; - - /** - * Internal method to send the Session ID over to the React Native layer. - */ - readonly onRUMSessionStarted: EventEmitter; } // eslint-disable-next-line import/no-default-export From c9b4ac51f1bc152ff13264c6f052f7f73c05d3cf Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Mon, 26 May 2025 07:59:33 +0200 Subject: [PATCH 12/13] Fix Android lint errors --- .../DdSDKReactNativeSessionReplayPackage.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/react-native-session-replay/android/src/rnpost74/kotlin/com/datadog/reactnative/sessionreplay/DdSDKReactNativeSessionReplayPackage.kt b/packages/react-native-session-replay/android/src/rnpost74/kotlin/com/datadog/reactnative/sessionreplay/DdSDKReactNativeSessionReplayPackage.kt index b975f5fb9..9e94eceb8 100644 --- a/packages/react-native-session-replay/android/src/rnpost74/kotlin/com/datadog/reactnative/sessionreplay/DdSDKReactNativeSessionReplayPackage.kt +++ b/packages/react-native-session-replay/android/src/rnpost74/kotlin/com/datadog/reactnative/sessionreplay/DdSDKReactNativeSessionReplayPackage.kt @@ -18,7 +18,9 @@ import com.facebook.react.uimanager.ViewManager * Package of native dd-sdk-reactnative native modules. */ class DdSDKReactNativeSessionReplayPackage : BaseReactPackage() { - override fun createViewManagers(reactContext: ReactApplicationContext): List> { + override fun createViewManagers( + reactContext: ReactApplicationContext + ): List> { return listOf(DdPrivacyViewManager(reactContext)) } @@ -38,10 +40,10 @@ class DdSDKReactNativeSessionReplayPackage : BaseReactPackage() { ReactModuleInfo( it, it, - false, // canOverrideExistingModule - false, // needsEagerInit - true, // hasConstants - false, // isCxxModule + false, // canOverrideExistingModule + false, // needsEagerInit + true, // hasConstants + false, // isCxxModule isTurboModule // isTurboModule ) } @@ -49,5 +51,4 @@ class DdSDKReactNativeSessionReplayPackage : BaseReactPackage() { moduleInfos } } - } From 330c1eff0d465bc6e4949978e25449d1cab5c8ca Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Mon, 26 May 2025 14:26:08 +0200 Subject: [PATCH 13/13] Removed unused poll logic for RUM Session ID --- .../kotlin/com/datadog/reactnative/DdSdk.kt | 11 -- packages/core/src/DdSdkReactNative.tsx | 15 +- .../core/src/rum/sessionId/sessionIdHelper.ts | 60 ------ .../__tests__/DdSdkNativeBridge.test.tsx | 174 ------------------ 4 files changed, 1 insertion(+), 259 deletions(-) diff --git a/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt b/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt index 15fd17842..f1a9dffe2 100644 --- a/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt +++ b/packages/core/android/src/newarch/kotlin/com/datadog/reactnative/DdSdk.kt @@ -155,15 +155,4 @@ class DdSdk( } }) } - - @MainThread - private fun emitSessionId(reactContext: ReactApplicationContext, sessionId: String) { - try { - reactContext - .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java) - .emit("RUMSessionStarted", sessionId) - } catch(err: Exception) { - return - } - } } diff --git a/packages/core/src/DdSdkReactNative.tsx b/packages/core/src/DdSdkReactNative.tsx index d1db5f57a..fce0e17ef 100644 --- a/packages/core/src/DdSdkReactNative.tsx +++ b/packages/core/src/DdSdkReactNative.tsx @@ -29,16 +29,9 @@ import { DdRum } from './rum/DdRum'; import { DdRumErrorTracking } from './rum/instrumentation/DdRumErrorTracking'; import { DdRumUserInteractionTracking } from './rum/instrumentation/interactionTracking/DdRumUserInteractionTracking'; import { DdRumResourceTracking } from './rum/instrumentation/resourceTracking/DdRumResourceTracking'; -import { - pollForSessionId, - verifySessionId -} from './rum/sessionId/sessionIdHelper'; import { AttributesSingleton } from './sdk/AttributesSingleton/AttributesSingleton'; import type { Attributes } from './sdk/AttributesSingleton/types'; -import { - hasNativeBridge, - registerNativeBridge -} from './sdk/DatadogInternalBridge/DdSdkInternalNativeBridge'; +import { registerNativeBridge } from './sdk/DatadogInternalBridge/DdSdkInternalNativeBridge'; import { BufferSingleton } from './sdk/DatadogProvider/Buffer/BufferSingleton'; import { DdSdk } from './sdk/DdSdk'; import { FileBasedConfiguration } from './sdk/FileBasedConfiguration/FileBasedConfiguration'; @@ -105,12 +98,6 @@ export class DdSdkReactNative { DdSdkReactNative.buildConfiguration(configuration, params) ); - if (!hasNativeBridge()) { - pollForSessionId(); - } else { - verifySessionId(); - } - InternalLog.log('Datadog SDK was initialized', SdkVerbosity.INFO); GlobalState.instance.isInitialized = true; BufferSingleton.onInitialization(); diff --git a/packages/core/src/rum/sessionId/sessionIdHelper.ts b/packages/core/src/rum/sessionId/sessionIdHelper.ts index a82cf4334..64e56fecb 100644 --- a/packages/core/src/rum/sessionId/sessionIdHelper.ts +++ b/packages/core/src/rum/sessionId/sessionIdHelper.ts @@ -3,67 +3,7 @@ * This product includes software developed at Datadog (https://www.datadoghq.com/). * Copyright 2016-Present Datadog, Inc. */ - -import { InternalLog } from '../../InternalLog'; -import { SdkVerbosity } from '../../SdkVerbosity'; -import { DdRum } from '../DdRum'; - -const SESSION_ID_POLL_INTERVAL = 500; -const SESSION_ID_POLL_MAX_ATTEMPTS = 10; -const SESSION_ID_VERIFY_DELAY = 1500; - let _cachedSessionId: string | undefined; -let _pollForSessionIdTimeout: NodeJS.Timeout | undefined; -let _verifySessionIdTimeout: NodeJS.Timeout | undefined; - -export const pollForSessionId = ( - intervalMs = SESSION_ID_POLL_INTERVAL, - maxAttempts = SESSION_ID_POLL_MAX_ATTEMPTS -): void => { - let attempts = 0; - - const poll = async () => { - if (_pollForSessionIdTimeout) { - clearTimeout(_pollForSessionIdTimeout); - } - attempts++; - try { - const id = await DdRum.getCurrentSessionId(); - if (id) { - _cachedSessionId = id; - InternalLog.log( - `Retrieved RUM Session ID after ${attempts} attempts: ${id}`, - SdkVerbosity.DEBUG - ); - return; - } - } catch (e) { - /* empty */ - } - - if (attempts < maxAttempts) { - _pollForSessionIdTimeout = setTimeout(poll, intervalMs); - } else { - InternalLog.log( - `Cannot retrieve RUM Session ID after ${attempts} attempts.`, - SdkVerbosity.DEBUG - ); - } - }; - - poll(); -}; - -export const verifySessionId = () => { - if (_verifySessionIdTimeout) { - clearTimeout(_verifySessionIdTimeout); - } - _verifySessionIdTimeout = setTimeout(() => { - if (!_cachedSessionId) { - pollForSessionId(); - } - }, SESSION_ID_VERIFY_DELAY); -}; export const getCachedSessionId = () => { return _cachedSessionId; diff --git a/packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx b/packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx index f2c689900..9a20162fd 100644 --- a/packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx +++ b/packages/core/src/sdk/DatadogInternalBridge/__tests__/DdSdkNativeBridge.test.tsx @@ -7,19 +7,10 @@ /* eslint-disable @typescript-eslint/no-var-requires */ /* eslint-disable global-require */ -import { NativeModules } from 'react-native'; - -import { DdSdkReactNativeConfiguration } from '../../../DdSdkReactNativeConfiguration'; - const mockBatchedBridge = { registerCallableModule: jest.fn() }; -const mockSessionIdHelper = { - pollForSessionId: jest.fn(), - verifySessionId: jest.fn() -}; - const mockNativeDdSdkSpec = { onRUMSessionStarted: jest.fn() }; @@ -57,11 +48,6 @@ describe('DdSdkNativeBridge', () => { () => mockBatchedBridge ); - jest.mock( - '../../../rum/sessionId/sessionIdHelper.ts', - () => mockSessionIdHelper - ); - jest.mock( '../../DatadogEventEmitter/DatadogNativeEventEmitter', () => ({ @@ -128,86 +114,6 @@ describe('DdSdkNativeBridge', () => { 'ERROR: Native Bridge initialization failed.' ); }); - - it('session ID is polled when event listener setup failed', async () => { - jest.mock( - 'react-native/Libraries/BatchedBridge/BatchedBridge', - () => { - throw new Error('Import failed'); - } - ); - jest.mock('../../../specs/NativeDdSdk', () => undefined); - - const ddBridge = require('../DdSdkInternalNativeBridge'); - const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); - const ddSdkRn = require('../../../DdSdkReactNative'); - - mockNativeEventEmitter.initialize.mockReturnValueOnce(false); - - ddBridge.registerNativeBridge( - new defaultEventEmitter.DatadogDefaultEventEmitter( - mockErrorHandler - ), - mockErrorHandler - ); - - // GIVEN - const fakeAppId = '1'; - const fakeClientToken = '2'; - const fakeEnvName = 'env'; - const configuration = new DdSdkReactNativeConfiguration( - fakeClientToken, - fakeEnvName, - fakeAppId - ); - - NativeModules.DdSdk.initialize.mockResolvedValue(null); - - // WHEN - await ddSdkRn.DdSdkReactNative.initialize(configuration); - - // THEN - expect(ddBridge.hasNativeBridge()).toBe(false); - expect(mockSessionIdHelper.pollForSessionId).toHaveBeenCalled(); - expect(mockSessionIdHelper.verifySessionId).not.toHaveBeenCalled(); - expect(mockErrorHandler).toHaveBeenCalled(); - }); - - it('session ID is verified when event listener setup succeeds', async () => { - const ddBridge = require('../DdSdkInternalNativeBridge'); - const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); - const ddSdkRn = require('../../../DdSdkReactNative'); - - mockNativeEventEmitter.initialize.mockReturnValueOnce(true); - - ddBridge.registerNativeBridge( - new defaultEventEmitter.DatadogDefaultEventEmitter( - mockErrorHandler - ), - mockErrorHandler - ); - - // GIVEN - const fakeAppId = '1'; - const fakeClientToken = '2'; - const fakeEnvName = 'env'; - const configuration = new DdSdkReactNativeConfiguration( - fakeClientToken, - fakeEnvName, - fakeAppId - ); - - NativeModules.DdSdk.initialize.mockResolvedValue(null); - - // WHEN - await ddSdkRn.DdSdkReactNative.initialize(configuration); - - // THEN - expect(ddBridge.hasNativeBridge()).toBe(true); - expect(mockSessionIdHelper.verifySessionId).toHaveBeenCalled(); - expect(mockSessionIdHelper.pollForSessionId).not.toHaveBeenCalled(); - expect(mockErrorHandler).not.toHaveBeenCalled(); - }); }); describe('old architecture implementation', () => { @@ -249,85 +155,5 @@ describe('DdSdkNativeBridge', () => { 'ERROR: Native Bridge initialization failed.' ); }); - - it('session ID is polled when batched bridge setup failed', async () => { - jest.mock( - 'react-native/Libraries/BatchedBridge/BatchedBridge', - () => { - throw new Error('Import failed'); - } - ); - jest.mock('../../../specs/NativeDdSdk', () => undefined); - - const ddBridge = require('../DdSdkInternalNativeBridge'); - const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); - const ddSdkRn = require('../../../DdSdkReactNative'); - - mockBatchedBridgeEventEmitter.initialize.mockReturnValueOnce(false); - - ddBridge.registerNativeBridge( - new defaultEventEmitter.DatadogDefaultEventEmitter( - mockErrorHandler - ), - mockErrorHandler - ); - - // GIVEN - const fakeAppId = '1'; - const fakeClientToken = '2'; - const fakeEnvName = 'env'; - const configuration = new DdSdkReactNativeConfiguration( - fakeClientToken, - fakeEnvName, - fakeAppId - ); - - NativeModules.DdSdk.initialize.mockResolvedValue(null); - - // WHEN - await ddSdkRn.DdSdkReactNative.initialize(configuration); - - // THEN - expect(ddBridge.hasNativeBridge()).toBe(false); - expect(mockSessionIdHelper.pollForSessionId).toHaveBeenCalled(); - expect(mockSessionIdHelper.verifySessionId).not.toHaveBeenCalled(); - expect(mockErrorHandler).toHaveBeenCalled(); - }); - - it('session ID is verified when batched bridge setup succeeds', async () => { - const ddBridge = require('../DdSdkInternalNativeBridge'); - const defaultEventEmitter = require('../../DatadogEventEmitter/DatadogDefaultEventEmitter'); - const ddSdkRn = require('../../../DdSdkReactNative'); - - mockBatchedBridgeEventEmitter.initialize.mockReturnValueOnce(true); - - ddBridge.registerNativeBridge( - new defaultEventEmitter.DatadogDefaultEventEmitter( - mockErrorHandler - ), - mockErrorHandler - ); - - // GIVEN - const fakeAppId = '1'; - const fakeClientToken = '2'; - const fakeEnvName = 'env'; - const configuration = new DdSdkReactNativeConfiguration( - fakeClientToken, - fakeEnvName, - fakeAppId - ); - - NativeModules.DdSdk.initialize.mockResolvedValue(null); - - // WHEN - await ddSdkRn.DdSdkReactNative.initialize(configuration); - - // THEN - expect(ddBridge.hasNativeBridge()).toBe(true); - expect(mockSessionIdHelper.verifySessionId).toHaveBeenCalled(); - expect(mockSessionIdHelper.pollForSessionId).not.toHaveBeenCalled(); - expect(mockErrorHandler).not.toHaveBeenCalled(); - }); }); });