From d48d36598369385c8f0a06a39c28667b845a36c2 Mon Sep 17 00:00:00 2001 From: Jeriel Ng Date: Tue, 13 Aug 2024 11:07:01 -0400 Subject: [PATCH] Release version 12.0.0 --- .github/assets/logo-dark.png | Bin 5947 -> 226759 bytes .github/assets/logo-light.png | Bin 5947 -> 13957 bytes BrazeProject/BrazeProject.tsx | 45 +- BrazeProject/Gemfile | 6 +- BrazeProject/Gemfile.lock | 8 +- BrazeProject/android/app/build.gradle | 1 - .../java/com/brazeproject/MainApplication.kt | 38 +- BrazeProject/android/build.gradle | 6 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../BrazeProject.xcodeproj/project.pbxproj | 24 +- BrazeProject/ios/BrazeProject/AppDelegate.mm | 4 + BrazeProject/ios/BrazeProject/Info.plist | 2 +- .../ios/BrazeProject/PrivacyInfo.xcprivacy | 37 + BrazeProject/ios/Podfile | 23 +- BrazeProject/ios/Podfile.lock | 967 +++++++++-------- BrazeProject/package.json | 10 +- BrazeProject/yarn.lock | 975 ++++++++++-------- CHANGELOG.md | 13 + README.md | 4 +- __tests__/index.test.js | 15 + __tests__/jest.setup.js | 3 + .../braze/reactbridge/BrazeReactBridgeImpl.kt | 57 +- .../com/braze/reactbridge/BrazeReactBridge.kt | 12 + .../com/braze/reactbridge/BrazeReactBridge.kt | 15 + braze-react-native-sdk.podspec | 6 +- .../BrazeReactBridge/BrazeReactBridge.mm | 41 +- package.json | 2 +- src/NativeBrazeReactModule.ts | 3 + src/braze.js | 26 +- src/index.d.ts | 74 +- yarn.lock | 18 +- 31 files changed, 1421 insertions(+), 1016 deletions(-) create mode 100644 BrazeProject/ios/BrazeProject/PrivacyInfo.xcprivacy diff --git a/.github/assets/logo-dark.png b/.github/assets/logo-dark.png index b1aa7416a258fecd667895a041429045b9ca0f8e..912a73f246fe42b1499b6ecfd863890aa68e6ff5 100644 GIT binary patch literal 226759 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Ư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 V50%A;|HauD5U`d~wSran{{YHzi0l9W diff --git a/.github/assets/logo-light.png b/.github/assets/logo-light.png index 14b1b02e8d682423df6e4b1d4dba4c9fad4b6195..f5d7404368afd991e6ada14df09ff1c5964207a8 100644 GIT binary patch literal 13957 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 { label: 'String', value: 'string', }, + { + id: 'timestamp', + label: 'Timestamp', + value: 'timestamp', + }, + { + id: 'json', + label: 'JSON Object', + value: 'json', + }, + { + id: 'image', + label: 'Image', + value: 'image', + }, ], [], ); @@ -228,8 +243,13 @@ export const BrazeProject = (): ReactElement => { const pushEventSubscription = Braze.addListener( Braze.Events.PUSH_NOTIFICATION_EVENT, function (data) { - console.log(`Push Notification event of type ${data.payload_type} seen. - Title ${data.title}\n and deeplink ${data.url}`); + console.log( + `Push notification subscription triggered: + - type: ${data.payload_type} + - title: ${data.title} + - is_silent: ${data.is_silent} + ` + ); console.log(JSON.stringify(data, undefined, 2)); }, ); @@ -751,6 +771,25 @@ export const BrazeProject = (): ReactElement => { featureFlagPropertyKey, ); break; + case 'timestamp': + property = await Braze.getFeatureFlagTimestampProperty( + featureFlagId, + featureFlagPropertyKey, + ); + break; + case 'json': + property = await Braze.getFeatureFlagJSONProperty( + featureFlagId, + featureFlagPropertyKey, + ); + property = JSON.stringify(property); + break; + case 'image': + property = await Braze.getFeatureFlagImageProperty( + featureFlagId, + featureFlagPropertyKey, + ); + break; } console.log( `Got Feature Flag ${featureFlagPropertyType} Property:${property}`, @@ -759,7 +798,7 @@ export const BrazeProject = (): ReactElement => { const setPushTokenPress = async () => { Braze.registerPushToken(pushToken); - } + }; return ( 1.13' -gem 'activesupport', '>= 6.1.7.3', '< 7.1.0' +# Cocoapods 1.15 introduced a bug which break the build. We will remove the upper +# bound in the template on Cocoapods with the next React Native release. +gem 'cocoapods', '>= 1.13', '< 1.15' +gem 'activesupport', '>= 6.1.7.5', '< 7.1.0' diff --git a/BrazeProject/Gemfile.lock b/BrazeProject/Gemfile.lock index fea6112..04d57ab 100644 --- a/BrazeProject/Gemfile.lock +++ b/BrazeProject/Gemfile.lock @@ -71,8 +71,10 @@ GEM nap (1.1.0) netrc (0.11.0) public_suffix (4.0.7) - rexml (3.2.6) + rexml (3.2.8) + strscan (>= 3.0.9) ruby-macho (2.5.1) + strscan (3.1.0) typhoeus (1.4.1) ethon (>= 0.9.0) tzinfo (2.0.6) @@ -89,8 +91,8 @@ PLATFORMS ruby DEPENDENCIES - activesupport (>= 6.1.7.3, < 7.1.0) - cocoapods (~> 1.13) + activesupport (>= 6.1.7.5, < 7.1.0) + cocoapods (>= 1.13, < 1.15) RUBY VERSION ruby 3.0.0p0 diff --git a/BrazeProject/android/app/build.gradle b/BrazeProject/android/app/build.gradle index cc8dd5e..d95551c 100644 --- a/BrazeProject/android/app/build.gradle +++ b/BrazeProject/android/app/build.gradle @@ -130,7 +130,6 @@ dependencies { // The version of react-native is set by the React Native Gradle Plugin implementation("com.facebook.react:react-android") - implementation("com.facebook.react:flipper-integration") implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0") diff --git a/BrazeProject/android/app/src/main/java/com/brazeproject/MainApplication.kt b/BrazeProject/android/app/src/main/java/com/brazeproject/MainApplication.kt index 430bce3..3711ae8 100644 --- a/BrazeProject/android/app/src/main/java/com/brazeproject/MainApplication.kt +++ b/BrazeProject/android/app/src/main/java/com/brazeproject/MainApplication.kt @@ -6,44 +6,42 @@ import com.braze.BrazeActivityLifecycleCallbackListener import com.braze.support.BrazeLogger.logLevel import com.facebook.react.PackageList import com.facebook.react.ReactApplication +import com.facebook.react.ReactHost import com.facebook.react.ReactNativeHost import com.facebook.react.ReactPackage import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load +import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost -import com.facebook.react.flipper.ReactNativeFlipper import com.facebook.soloader.SoLoader class MainApplication : Application(), ReactApplication { - override val reactNativeHost = object: DefaultReactNativeHost(this) { - override fun getUseDeveloperSupport(): Boolean { - return BuildConfig.DEBUG - } + override val reactNativeHost: ReactNativeHost = + object : DefaultReactNativeHost(this) { + override fun getPackages(): List = + PackageList(this).packages.apply { + // Packages that cannot be autolinked yet can be added manually here, for example: + // add(MyReactNativePackage()) + } - override fun getPackages(): List { - // Packages that cannot be autolinked yet can be added manually here, for example: - // packages.add(new MyReactNativePackage()); - return PackageList(this).packages - } + override fun getJSMainModuleName(): String = "index" - override fun getJSMainModuleName(): String { - return "index" - } + override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG - override val isNewArchEnabled: Boolean - get() = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED - override val isHermesEnabled: Boolean - get() = BuildConfig.IS_HERMES_ENABLED - } + override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED + override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED + } + + override val reactHost: ReactHost + get() = getDefaultReactHost(applicationContext, reactNativeHost) override fun onCreate() { super.onCreate() registerActivityLifecycleCallbacks(BrazeActivityLifecycleCallbackListener()) logLevel = Log.VERBOSE - SoLoader.init(this,false) + SoLoader.init(this, false) if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { // If you opted-in for the New Architecture, we load the native entry point for this app. load() } - ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) } } diff --git a/BrazeProject/android/build.gradle b/BrazeProject/android/build.gradle index 42f2329..ab674a4 100644 --- a/BrazeProject/android/build.gradle +++ b/BrazeProject/android/build.gradle @@ -3,11 +3,11 @@ buildscript { ext { buildToolsVersion = "34.0.0" - minSdkVersion = 21 + minSdkVersion = 23 compileSdkVersion = 34 targetSdkVersion = 34 - ndkVersion = "25.1.8937393" - kotlinVersion = "1.8.0" + ndkVersion = "26.1.10909125" + kotlinVersion = "1.9.22" } repositories { google() diff --git a/BrazeProject/android/gradle/wrapper/gradle-wrapper.properties b/BrazeProject/android/gradle/wrapper/gradle-wrapper.properties index d11cdd9..2ea3535 100644 --- a/BrazeProject/android/gradle/wrapper/gradle-wrapper.properties +++ b/BrazeProject/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.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/BrazeProject/ios/BrazeProject.xcodeproj/project.pbxproj b/BrazeProject/ios/BrazeProject.xcodeproj/project.pbxproj index 9e0f13e..8f9ad9a 100644 --- a/BrazeProject/ios/BrazeProject.xcodeproj/project.pbxproj +++ b/BrazeProject/ios/BrazeProject.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ 7FFA3C438F6ECE230980EE95 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; D49243504D0CC62449E7A753 /* libPods-BrazeProject-BrazeProjectTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6966516151504FECB8343E39 /* libPods-BrazeProject-BrazeProjectTests.a */; }; + D971B4B9DCDC97E7B7B30086 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 0850B22E719905EB0709C451 /* PrivacyInfo.xcprivacy */; }; EC9B91F32B1F698600C6BD5D /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC9B91F22B1F698600C6BD5D /* NotificationService.swift */; }; EC9B91F72B1F698600C6BD5D /* BrazeProjectRichPush.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = EC9B91F02B1F698500C6BD5D /* BrazeProjectRichPush.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; EC9B92012B1F6B0C00C6BD5D /* BrazeNotificationService.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = EC9B92002B1F6B0C00C6BD5D /* BrazeNotificationService.xcframework */; }; @@ -72,6 +73,7 @@ 00E356EE1AD99517003FC87E /* BrazeProjectTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BrazeProjectTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* BrazeProjectTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BrazeProjectTests.m; sourceTree = ""; }; + 0850B22E719905EB0709C451 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = BrazeProject/PrivacyInfo.xcprivacy; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* BrazeProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BrazeProject.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = BrazeProject/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = BrazeProject/AppDelegate.mm; sourceTree = ""; }; @@ -179,6 +181,7 @@ 13B07FB61A68108700A75B9A /* Info.plist */, 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 13B07FB71A68108700A75B9A /* main.m */, + 0850B22E719905EB0709C451 /* PrivacyInfo.xcprivacy */, ); name = BrazeProject; sourceTree = ""; @@ -413,6 +416,7 @@ files = ( 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + D971B4B9DCDC97E7B7B30086 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -814,6 +818,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; @@ -841,6 +846,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CXX = ""; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; @@ -860,6 +866,8 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD = ""; + LDPLUSPLUS = ""; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", @@ -882,11 +890,7 @@ "-DFOLLY_USE_LIBCPP=1", "-DRN_FABRIC_ENABLED", ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-Wl", - "-ld_classic", - ); + OTHER_LDFLAGS = "$(inherited)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; USE_HERMES = true; @@ -897,6 +901,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; @@ -924,6 +929,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; + CXX = ""; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; @@ -936,6 +942,8 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD = ""; + LDPLUSPLUS = ""; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", @@ -957,11 +965,7 @@ "-DFOLLY_USE_LIBCPP=1", "-DRN_FABRIC_ENABLED", ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-Wl", - "-ld_classic", - ); + OTHER_LDFLAGS = "$(inherited)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; USE_HERMES = true; diff --git a/BrazeProject/ios/BrazeProject/AppDelegate.mm b/BrazeProject/ios/BrazeProject/AppDelegate.mm index 6eed704..99db2df 100644 --- a/BrazeProject/ios/BrazeProject/AppDelegate.mm +++ b/BrazeProject/ios/BrazeProject/AppDelegate.mm @@ -150,6 +150,10 @@ - (BOOL)concurrentRootEnabled } - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { + return [self bundleURL]; +} + +- (NSURL *)bundleURL { return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; } diff --git a/BrazeProject/ios/BrazeProject/Info.plist b/BrazeProject/ios/BrazeProject/Info.plist index 734bdd9..a044118 100644 --- a/BrazeProject/ios/BrazeProject/Info.plist +++ b/BrazeProject/ios/BrazeProject/Info.plist @@ -65,7 +65,7 @@ LaunchScreen UIRequiredDeviceCapabilities - armv7 + arm64 UISupportedInterfaceOrientations diff --git a/BrazeProject/ios/BrazeProject/PrivacyInfo.xcprivacy b/BrazeProject/ios/BrazeProject/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..bad3276 --- /dev/null +++ b/BrazeProject/ios/BrazeProject/PrivacyInfo.xcprivacy @@ -0,0 +1,37 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + diff --git a/BrazeProject/ios/Podfile b/BrazeProject/ios/Podfile index 31961fe..d725c6a 100644 --- a/BrazeProject/ios/Podfile +++ b/BrazeProject/ios/Podfile @@ -4,17 +4,6 @@ require_relative '../node_modules/@react-native-community/cli-platform-ios/nativ platform :ios, min_ios_version_supported prepare_react_native_project! -# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set. -# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded -# -# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js` -# ```js -# module.exports = { -# dependencies: { -# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}), -# ``` -flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled - linkage = ENV['USE_FRAMEWORKS'] if linkage != nil Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green @@ -26,11 +15,6 @@ target 'BrazeProject' do use_react_native!( :path => config[:reactNativePath], - # Enables Flipper. - # - # Note that if you have use_frameworks! enabled, Flipper will not work and - # you should disable the next line. - :flipper_configuration => flipper_config, # An absolute path to your application root. :app_path => "#{Pod::Config.instance.installation_root}/.." ) @@ -45,7 +29,8 @@ target 'BrazeProject' do installer, # Set `mac_catalyst_enabled` to `true` in order to apply patches # necessary for Mac Catalyst builds - :mac_catalyst_enabled => false + :mac_catalyst_enabled => false, + # :ccache_enabled => true ) # Fix for Xcode 14 / CocoaPods 1.11.X (see: https://github.com/CocoaPods/CocoaPods/issues/11402) @@ -60,9 +45,9 @@ target 'BrazeProject' do end target 'BrazeProjectRichPush' do - pod 'BrazeNotificationService', '~> 9.0.0' + pod 'BrazeNotificationService', '~> 10.0.0' end target 'BrazeProjectPushStory' do - pod 'BrazePushStory', '~> 9.0.0' + pod 'BrazePushStory', '~> 10.0.0' end diff --git a/BrazeProject/ios/Podfile.lock b/BrazeProject/ios/Podfile.lock index 985c982..e2c48da 100644 --- a/BrazeProject/ios/Podfile.lock +++ b/BrazeProject/ios/Podfile.lock @@ -1,18 +1,20 @@ PODS: - boost (1.83.0) - - braze-react-native-sdk (11.0.0): - - BrazeKit (~> 9.0.0) - - BrazeLocation (~> 9.0.0) - - BrazeUI (~> 9.0.0) + - braze-react-native-sdk (12.0.0): + - BrazeKit (~> 10.0.0) + - BrazeLocation (~> 10.0.0) + - BrazeUI (~> 10.0.0) + - DoubleConversion - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Codegen - React-Core - React-debug - React-Fabric + - React-featureflags - React-graphics - React-ImageManager - React-NativeModulesApple @@ -22,121 +24,57 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - BrazeKit (9.0.0) - - BrazeLocation (9.0.0): - - BrazeKit (= 9.0.0) - - BrazeNotificationService (9.0.0) - - BrazePushStory (9.0.0) - - BrazeUI (9.0.0): - - BrazeKit (= 9.0.0) - - CocoaAsyncSocket (7.6.5) + - BrazeKit (10.0.0) + - BrazeLocation (10.0.0): + - BrazeKit (= 10.0.0) + - BrazeNotificationService (10.0.0) + - BrazePushStory (10.0.0) + - BrazeUI (10.0.0): + - BrazeKit (= 10.0.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.73.1) - - Flipper (0.201.0): - - Flipper-Folly (~> 2.6) - - Flipper-Boost-iOSX (1.76.0.1.11) - - Flipper-DoubleConversion (3.2.0.1) - - Flipper-Fmt (7.1.7) - - Flipper-Folly (2.6.10): - - Flipper-Boost-iOSX - - Flipper-DoubleConversion - - Flipper-Fmt (= 7.1.7) - - Flipper-Glog - - libevent (~> 2.1.12) - - OpenSSL-Universal (= 1.1.1100) - - Flipper-Glog (0.5.0.5) - - Flipper-PeerTalk (0.0.4) - - FlipperKit (0.201.0): - - FlipperKit/Core (= 0.201.0) - - FlipperKit/Core (0.201.0): - - Flipper (~> 0.201.0) - - FlipperKit/CppBridge - - FlipperKit/FBCxxFollyDynamicConvert - - FlipperKit/FBDefines - - FlipperKit/FKPortForwarding - - SocketRocket (~> 0.6.0) - - FlipperKit/CppBridge (0.201.0): - - Flipper (~> 0.201.0) - - FlipperKit/FBCxxFollyDynamicConvert (0.201.0): - - Flipper-Folly (~> 2.6) - - FlipperKit/FBDefines (0.201.0) - - FlipperKit/FKPortForwarding (0.201.0): - - CocoaAsyncSocket (~> 7.6) - - Flipper-PeerTalk (~> 0.0.4) - - FlipperKit/FlipperKitHighlightOverlay (0.201.0) - - FlipperKit/FlipperKitLayoutHelpers (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitHighlightOverlay - - FlipperKit/FlipperKitLayoutTextSearchable - - FlipperKit/FlipperKitLayoutIOSDescriptors (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitHighlightOverlay - - FlipperKit/FlipperKitLayoutHelpers - - FlipperKit/FlipperKitLayoutPlugin (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitHighlightOverlay - - FlipperKit/FlipperKitLayoutHelpers - - FlipperKit/FlipperKitLayoutIOSDescriptors - - FlipperKit/FlipperKitLayoutTextSearchable - - FlipperKit/FlipperKitLayoutTextSearchable (0.201.0) - - FlipperKit/FlipperKitNetworkPlugin (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitReactPlugin (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitUserDefaultsPlugin (0.201.0): - - FlipperKit/Core - - FlipperKit/SKIOSNetworkPlugin (0.201.0): - - FlipperKit/Core - - FlipperKit/FlipperKitNetworkPlugin - - fmt (6.2.1) + - FBLazyVector (0.74.1) + - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.73.1): - - hermes-engine/Pre-built (= 0.73.1) - - hermes-engine/Pre-built (0.73.1) - - libevent (2.1.12) - - OpenSSL-Universal (1.1.1100) - - RCT-Folly (2022.05.16.00): + - hermes-engine (0.74.1): + - hermes-engine/Pre-built (= 0.74.1) + - hermes-engine/Pre-built (0.74.1) + - RCT-Folly (2024.01.01.00): - boost - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - - RCT-Folly/Default (= 2022.05.16.00) - - RCT-Folly/Default (2022.05.16.00): + - RCT-Folly/Default (= 2024.01.01.00) + - RCT-Folly/Default (2024.01.01.00): - boost - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - - RCT-Folly/Fabric (2022.05.16.00): + - RCT-Folly/Fabric (2024.01.01.00): - boost - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - - RCT-Folly/Futures (2022.05.16.00): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - libevent - - RCTRequired (0.73.1) - - RCTTypeSafety (0.73.1): - - FBLazyVector (= 0.73.1) - - RCTRequired (= 0.73.1) - - React-Core (= 0.73.1) - - React (0.73.1): - - React-Core (= 0.73.1) - - React-Core/DevSupport (= 0.73.1) - - React-Core/RCTWebSocket (= 0.73.1) - - React-RCTActionSheet (= 0.73.1) - - React-RCTAnimation (= 0.73.1) - - React-RCTBlob (= 0.73.1) - - React-RCTImage (= 0.73.1) - - React-RCTLinking (= 0.73.1) - - React-RCTNetwork (= 0.73.1) - - React-RCTSettings (= 0.73.1) - - React-RCTText (= 0.73.1) - - React-RCTVibration (= 0.73.1) - - React-callinvoker (0.73.1) - - React-Codegen (0.73.1): + - RCTDeprecation (0.74.1) + - RCTRequired (0.74.1) + - RCTTypeSafety (0.74.1): + - FBLazyVector (= 0.74.1) + - RCTRequired (= 0.74.1) + - React-Core (= 0.74.1) + - React (0.74.1): + - React-Core (= 0.74.1) + - React-Core/DevSupport (= 0.74.1) + - React-Core/RCTWebSocket (= 0.74.1) + - React-RCTActionSheet (= 0.74.1) + - React-RCTAnimation (= 0.74.1) + - React-RCTBlob (= 0.74.1) + - React-RCTImage (= 0.74.1) + - React-RCTLinking (= 0.74.1) + - React-RCTNetwork (= 0.74.1) + - React-RCTSettings (= 0.74.1) + - React-RCTText (= 0.74.1) + - React-RCTVibration (= 0.74.1) + - React-callinvoker (0.74.1) + - React-Codegen (0.74.1): - DoubleConversion - glog - hermes-engine @@ -147,6 +85,7 @@ PODS: - React-debug - React-Fabric - React-FabricImage + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -155,254 +94,298 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.1): + - React-Core (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.1) - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.73.1): + - React-Core/CoreModulesHeaders (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.73.1): + - React-Core/Default (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.73.1): + - React-Core/DevSupport (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) - - React-Core/RCTWebSocket (= 0.73.1) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.1) + - React-Core/RCTWebSocket (= 0.74.1) - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.1) + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.1): + - React-Core/RCTActionSheetHeaders (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.73.1): + - React-Core/RCTAnimationHeaders (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.73.1): + - React-Core/RCTBlobHeaders (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.73.1): + - React-Core/RCTImageHeaders (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.73.1): + - React-Core/RCTLinkingHeaders (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.73.1): + - React-Core/RCTNetworkHeaders (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.73.1): + - React-Core/RCTSettingsHeaders (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.73.1): + - React-Core/RCTTextHeaders (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.73.1): + - React-Core/RCTVibrationHeaders (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.73.1): + - React-Core/RCTWebSocket (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.1) - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.73.1): - - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.1) + - React-CoreModules (0.74.1): + - DoubleConversion + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety (= 0.74.1) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.1) - - React-jsi (= 0.73.1) + - React-Core/CoreModulesHeaders (= 0.74.1) + - React-jsi (= 0.74.1) + - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.1) + - React-RCTImage (= 0.74.1) - ReactCommon - - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.1): + - SocketRocket (= 0.7.0) + - React-cxxreact (0.74.1): - boost (= 1.83.0) - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-debug (= 0.73.1) - - React-jsi (= 0.73.1) - - React-jsinspector (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-runtimeexecutor (= 0.73.1) - - React-debug (0.73.1) - - React-Fabric (0.73.1): + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.1) + - React-debug (= 0.74.1) + - React-jsi (= 0.74.1) + - React-jsinspector + - React-logger (= 0.74.1) + - React-perflogger (= 0.74.1) + - React-runtimeexecutor (= 0.74.1) + - React-debug (0.74.1) + - React-Fabric (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.1) - - React-Fabric/attributedstring (= 0.73.1) - - React-Fabric/componentregistry (= 0.73.1) - - React-Fabric/componentregistrynative (= 0.73.1) - - React-Fabric/components (= 0.73.1) - - React-Fabric/core (= 0.73.1) - - React-Fabric/imagemanager (= 0.73.1) - - React-Fabric/leakchecker (= 0.73.1) - - React-Fabric/mounting (= 0.73.1) - - React-Fabric/scheduler (= 0.73.1) - - React-Fabric/telemetry (= 0.73.1) - - React-Fabric/templateprocessor (= 0.73.1) - - React-Fabric/textlayoutmanager (= 0.73.1) - - React-Fabric/uimanager (= 0.73.1) + - React-Fabric/animations (= 0.74.1) + - React-Fabric/attributedstring (= 0.74.1) + - React-Fabric/componentregistry (= 0.74.1) + - React-Fabric/componentregistrynative (= 0.74.1) + - React-Fabric/components (= 0.74.1) + - React-Fabric/core (= 0.74.1) + - React-Fabric/imagemanager (= 0.74.1) + - React-Fabric/leakchecker (= 0.74.1) + - React-Fabric/mounting (= 0.74.1) + - React-Fabric/scheduler (= 0.74.1) + - React-Fabric/telemetry (= 0.74.1) + - React-Fabric/templateprocessor (= 0.74.1) + - React-Fabric/textlayoutmanager (= 0.74.1) + - React-Fabric/uimanager (= 0.74.1) - React-graphics - React-jsi - React-jsiexecutor @@ -411,12 +394,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.1): + - React-Fabric/animations (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -430,12 +413,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.1): + - React-Fabric/attributedstring (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -449,12 +432,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.1): + - React-Fabric/componentregistry (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -468,12 +451,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.1): + - React-Fabric/componentregistrynative (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -487,28 +470,28 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.1): + - React-Fabric/components (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.1) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.1) - - React-Fabric/components/modal (= 0.73.1) - - React-Fabric/components/rncore (= 0.73.1) - - React-Fabric/components/root (= 0.73.1) - - React-Fabric/components/safeareaview (= 0.73.1) - - React-Fabric/components/scrollview (= 0.73.1) - - React-Fabric/components/text (= 0.73.1) - - React-Fabric/components/textinput (= 0.73.1) - - React-Fabric/components/unimplementedview (= 0.73.1) - - React-Fabric/components/view (= 0.73.1) + - React-Fabric/components/inputaccessory (= 0.74.1) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.1) + - React-Fabric/components/modal (= 0.74.1) + - React-Fabric/components/rncore (= 0.74.1) + - React-Fabric/components/root (= 0.74.1) + - React-Fabric/components/safeareaview (= 0.74.1) + - React-Fabric/components/scrollview (= 0.74.1) + - React-Fabric/components/text (= 0.74.1) + - React-Fabric/components/textinput (= 0.74.1) + - React-Fabric/components/unimplementedview (= 0.74.1) + - React-Fabric/components/view (= 0.74.1) - React-graphics - React-jsi - React-jsiexecutor @@ -517,12 +500,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.1): + - React-Fabric/components/inputaccessory (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -536,12 +519,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.1): + - React-Fabric/components/legacyviewmanagerinterop (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -555,12 +538,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.1): + - React-Fabric/components/modal (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -574,12 +557,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.1): + - React-Fabric/components/rncore (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -593,12 +576,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.1): + - React-Fabric/components/root (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -612,12 +595,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.1): + - React-Fabric/components/safeareaview (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -631,12 +614,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.1): + - React-Fabric/components/scrollview (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -650,12 +633,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.1): + - React-Fabric/components/text (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -669,12 +652,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.1): + - React-Fabric/components/textinput (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -688,12 +671,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.1): + - React-Fabric/components/unimplementedview (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -707,12 +690,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.1): + - React-Fabric/components/view (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -727,12 +710,12 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.1): + - React-Fabric/core (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -746,12 +729,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.1): + - React-Fabric/imagemanager (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -765,12 +748,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.1): + - React-Fabric/leakchecker (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -784,12 +767,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.1): + - React-Fabric/mounting (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -803,12 +786,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.1): + - React-Fabric/scheduler (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -822,12 +805,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.1): + - React-Fabric/telemetry (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -841,12 +824,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.1): + - React-Fabric/templateprocessor (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -860,12 +843,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.1): + - React-Fabric/textlayoutmanager (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -880,12 +863,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.1): + - React-Fabric/uimanager (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -899,42 +882,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.1): + - React-FabricImage (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.1) - - RCTTypeSafety (= 0.73.1) + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired (= 0.74.1) + - RCTTypeSafety (= 0.74.1) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.73.1) + - React-jsiexecutor (= 0.74.1) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.1): + - React-featureflags (0.74.1) + - React-graphics (0.74.1): + - DoubleConversion + - fmt (= 9.1.0) - glog - - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.1) + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-Core/Default (= 0.74.1) - React-utils - - React-hermes (0.73.1): + - React-hermes (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - RCT-Folly/Futures (= 2022.05.16.00) - - React-cxxreact (= 0.73.1) + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.74.1) - React-jsi - - React-jsiexecutor (= 0.73.1) - - React-jsinspector (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-ImageManager (0.73.1): + - React-jsiexecutor (= 0.74.1) + - React-jsinspector + - React-perflogger (= 0.74.1) + - React-runtimeexecutor + - React-ImageManager (0.74.1): - glog - RCT-Folly/Fabric - React-Core/Default @@ -943,65 +929,76 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.73.1): - - RCT-Folly/Fabric (= 2022.05.16.00) + - React-jserrorhandler (0.74.1): + - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.1): + - React-jsi (0.74.1): - boost (= 1.83.0) - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-jsiexecutor (0.74.1): + - DoubleConversion + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.1): + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.74.1) + - React-jsi (= 0.74.1) + - React-jsinspector + - React-perflogger (= 0.74.1) + - React-jsinspector (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-perflogger (= 0.73.1) - - React-jsinspector (0.73.1) - - React-jsitracing (0.73.1): + - RCT-Folly (= 2024.01.01.00) + - React-featureflags + - React-jsi + - React-runtimeexecutor (= 0.74.1) + - React-jsitracing (0.74.1): - React-jsi - - React-logger (0.73.1): + - React-logger (0.74.1): - glog - - React-Mapbuffer (0.73.1): + - React-Mapbuffer (0.74.1): - glog - React-debug - - React-nativeconfig (0.73.1) - - React-NativeModulesApple (0.73.1): + - React-nativeconfig (0.74.1) + - React-NativeModulesApple (0.74.1): - glog - hermes-engine - React-callinvoker - React-Core - React-cxxreact - React-jsi + - React-jsinspector - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.1) - - React-RCTActionSheet (0.73.1): - - React-Core/RCTActionSheetHeaders (= 0.73.1) - - React-RCTAnimation (0.73.1): - - RCT-Folly (= 2022.05.16.00) + - React-perflogger (0.74.1) + - React-RCTActionSheet (0.74.1): + - React-Core/RCTActionSheetHeaders (= 0.74.1) + - React-RCTAnimation (0.74.1): + - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen - React-Core/RCTAnimationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.73.1): - - RCT-Folly + - React-RCTAppDelegate (0.74.1): + - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety + - React-Codegen - React-Core - React-CoreModules - React-debug - React-Fabric + - React-featureflags - React-graphics - React-hermes - React-nativeconfig @@ -1016,27 +1013,32 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.73.1): + - React-RCTBlob (0.74.1): + - DoubleConversion + - fmt (= 9.1.0) - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTBlobHeaders - React-Core/RCTWebSocket - React-jsi + - React-jsinspector - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.73.1): + - React-RCTFabric (0.74.1): - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - React-Core - React-debug - React-Fabric - React-FabricImage + - React-featureflags - React-graphics - React-ImageManager - React-jsi + - React-jsinspector - React-nativeconfig - React-RCTImage - React-RCTText @@ -1044,8 +1046,8 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.73.1): - - RCT-Folly (= 2022.05.16.00) + - React-RCTImage (0.74.1): + - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen - React-Core/RCTImageHeaders @@ -1053,48 +1055,48 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.73.1): + - React-RCTLinking (0.74.1): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.1) - - React-jsi (= 0.73.1) + - React-Core/RCTLinkingHeaders (= 0.74.1) + - React-jsi (= 0.74.1) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.1) - - React-RCTNetwork (0.73.1): - - RCT-Folly (= 2022.05.16.00) + - ReactCommon/turbomodule/core (= 0.74.1) + - React-RCTNetwork (0.74.1): + - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen - React-Core/RCTNetworkHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.73.1): - - RCT-Folly (= 2022.05.16.00) + - React-RCTSettings (0.74.1): + - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen - React-Core/RCTSettingsHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTText (0.73.1): - - React-Core/RCTTextHeaders (= 0.73.1) + - React-RCTText (0.74.1): + - React-Core/RCTTextHeaders (= 0.74.1) - Yoga - - React-RCTVibration (0.73.1): - - RCT-Folly (= 2022.05.16.00) + - React-RCTVibration (0.74.1): + - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.73.1): + - React-rendererdebug (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) - - RCT-Folly (= 2022.05.16.00) + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.73.1) - - React-RuntimeApple (0.73.1): + - React-rncore (0.74.1) + - React-RuntimeApple (0.74.1): - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker - React-Core/Default - React-CoreModules @@ -1102,6 +1104,7 @@ PODS: - React-jserrorhandler - React-jsi - React-jsiexecutor + - React-jsinspector - React-Mapbuffer - React-NativeModulesApple - React-RCTFabric @@ -1109,127 +1112,118 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.73.1): + - React-RuntimeCore (0.74.1): - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - React-cxxreact + - React-featureflags - React-jserrorhandler - React-jsi - React-jsiexecutor + - React-jsinspector - React-runtimeexecutor - React-runtimescheduler - - React-runtimeexecutor (0.73.1): - - React-jsi (= 0.73.1) - - React-RuntimeHermes (0.73.1): + - React-utils + - React-runtimeexecutor (0.74.1): + - React-jsi (= 0.74.1) + - React-RuntimeHermes (0.74.1): - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-featureflags + - React-hermes - React-jsi + - React-jsinspector - React-jsitracing - React-nativeconfig + - React-RuntimeCore - React-utils - - React-runtimescheduler (0.73.1): + - React-runtimescheduler (0.74.1): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) - React-callinvoker - React-cxxreact - React-debug + - React-featureflags - React-jsi - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.73.1): + - React-utils (0.74.1): - glog - - RCT-Folly (= 2022.05.16.00) + - hermes-engine + - RCT-Folly (= 2024.01.01.00) - React-debug - - ReactCommon (0.73.1): - - React-logger (= 0.73.1) - - ReactCommon/turbomodule (= 0.73.1) - - ReactCommon/turbomodule (0.73.1): + - React-jsi (= 0.74.1) + - ReactCommon (0.74.1): + - ReactCommon/turbomodule (= 0.74.1) + - ReactCommon/turbomodule (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - ReactCommon/turbomodule/bridging (= 0.73.1) - - ReactCommon/turbomodule/core (= 0.73.1) - - ReactCommon/turbomodule/bridging (0.73.1): + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.1) + - React-cxxreact (= 0.74.1) + - React-jsi (= 0.74.1) + - React-logger (= 0.74.1) + - React-perflogger (= 0.74.1) + - ReactCommon/turbomodule/bridging (= 0.74.1) + - ReactCommon/turbomodule/core (= 0.74.1) + - ReactCommon/turbomodule/bridging (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - ReactCommon/turbomodule/core (0.73.1): + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.1) + - React-cxxreact (= 0.74.1) + - React-jsi (= 0.74.1) + - React-logger (= 0.74.1) + - React-perflogger (= 0.74.1) + - ReactCommon/turbomodule/core (0.74.1): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.1) - - React-cxxreact (= 0.73.1) - - React-jsi (= 0.73.1) - - React-logger (= 0.73.1) - - React-perflogger (= 0.73.1) - - SocketRocket (0.6.1) - - Yoga (1.14.0) + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.1) + - React-cxxreact (= 0.74.1) + - React-debug (= 0.74.1) + - React-jsi (= 0.74.1) + - React-logger (= 0.74.1) + - React-perflogger (= 0.74.1) + - React-utils (= 0.74.1) + - SocketRocket (0.7.0) + - Yoga (0.0.0) DEPENDENCIES: - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - "braze-react-native-sdk (from `../node_modules/@braze/react-native-sdk`)" - - BrazeNotificationService (~> 9.0.0) - - BrazePushStory (~> 9.0.0) + - BrazeNotificationService (~> 10.0.0) + - BrazePushStory (~> 10.0.0) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - Flipper (= 0.201.0) - - Flipper-Boost-iOSX (= 1.76.0.1.11) - - Flipper-DoubleConversion (= 3.2.0.1) - - Flipper-Fmt (= 7.1.7) - - Flipper-Folly (= 2.6.10) - - Flipper-Glog (= 0.5.0.5) - - Flipper-PeerTalk (= 0.0.4) - - FlipperKit (= 0.201.0) - - FlipperKit/Core (= 0.201.0) - - FlipperKit/CppBridge (= 0.201.0) - - FlipperKit/FBCxxFollyDynamicConvert (= 0.201.0) - - FlipperKit/FBDefines (= 0.201.0) - - FlipperKit/FKPortForwarding (= 0.201.0) - - FlipperKit/FlipperKitHighlightOverlay (= 0.201.0) - - FlipperKit/FlipperKitLayoutPlugin (= 0.201.0) - - FlipperKit/FlipperKitLayoutTextSearchable (= 0.201.0) - - FlipperKit/FlipperKitNetworkPlugin (= 0.201.0) - - FlipperKit/FlipperKitReactPlugin (= 0.201.0) - - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.201.0) - - FlipperKit/SKIOSNetworkPlugin (= 0.201.0) + - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - - libevent (~> 2.1.12) - - OpenSSL-Universal (= 1.1.1100) - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) + - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) + - RCTRequired (from `../node_modules/react-native/Libraries/Required`) - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - React (from `../node_modules/react-native/`) - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) - React-Codegen (from `build/generated/ios`) - React-Core (from `../node_modules/react-native/`) - - React-Core/DevSupport (from `../node_modules/react-native/`) - React-Core/RCTWebSocket (from `../node_modules/react-native/`) - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) - React-Fabric (from `../node_modules/react-native/ReactCommon`) - React-FabricImage (from `../node_modules/react-native/ReactCommon`) + - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) @@ -1272,18 +1266,6 @@ SPEC REPOS: - BrazeNotificationService - BrazePushStory - BrazeUI - - CocoaAsyncSocket - - Flipper - - Flipper-Boost-iOSX - - Flipper-DoubleConversion - - Flipper-Fmt - - Flipper-Folly - - Flipper-Glog - - Flipper-PeerTalk - - FlipperKit - - fmt - - libevent - - OpenSSL-Universal - SocketRocket EXTERNAL SOURCES: @@ -1295,15 +1277,19 @@ EXTERNAL SOURCES: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" + fmt: + :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" glog: :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-2023-11-17-RNv0.73.0-21043a3fc062be445e56a2c10ecd8be028dd9cc5 + :tag: hermes-2024-04-25-RNv0.74.1-b54a3a01c531f4f5f1904cb0770033e8b7153dff RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" + RCTDeprecation: + :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" RCTRequired: - :path: "../node_modules/react-native/Libraries/RCTRequired" + :path: "../node_modules/react-native/Libraries/Required" RCTTypeSafety: :path: "../node_modules/react-native/Libraries/TypeSafety" React: @@ -1324,6 +1310,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon" React-FabricImage: :path: "../node_modules/react-native/ReactCommon" + React-featureflags: + :path: "../node_modules/react-native/ReactCommon/react/featureflags" React-graphics: :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" React-hermes: @@ -1394,77 +1382,68 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost: 26fad476bfa736552bbfa698a06cc530475c1505 - braze-react-native-sdk: f36e240e025608023805557b6ba5d158399c8702 - BrazeKit: 7406e77825c624d8e7a162d858a4bffdf79270f5 - BrazeLocation: 43405bf92037c9840f5f5467a7b8418583bc7850 - BrazeNotificationService: ac70f36d3af705108ab42a7437118811a0a2173e - BrazePushStory: abaf4c99a0ea15543d6372d6d2e028c61760bde3 - BrazeUI: 9e86bd30ca84f66444a5f6d95e438057000f4d0f - CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 - DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 - FBLazyVector: 2296bacb2fa157a43991048b0a9d71c1c8b65083 - Flipper: c7a0093234c4bdd456e363f2f19b2e4b27652d44 - Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c - Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 - Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b - Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3 - Flipper-Glog: 70c50ce58ddaf67dc35180db05f191692570f446 - Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 - FlipperKit: 37525a5d056ef9b93d1578e04bc3ea1de940094f - fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 + boost: d3f49c53809116a5d38da093a8aa78bf551aed09 + braze-react-native-sdk: f38c750aae3abd6d5879845e883b0e9a5500ad63 + BrazeKit: e4b29ecd51a0eed8f30e9a365a867f16ffe28378 + BrazeLocation: f79747d5c09219fcdf64505f1e7f85a924783415 + BrazeNotificationService: 6ad3b778978f42f183eef19380bdaa22b1a229ad + BrazePushStory: 9be7623b1d30b0eeb3e58687aafca7f80d98ac97 + BrazeUI: 9d1aabd20f08f16592e131543de9eaf836d0d33e + DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 + FBLazyVector: 898d14d17bf19e2435cafd9ea2a1033efe445709 + fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 34df9d5034e90bd9bf1505e1ca198760373935af - libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 - OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c - RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 - RCTRequired: 6dda55e483f75d2b43781d8ad5bd7df276a50981 - RCTTypeSafety: df0f2632f4e89938b9b9f6152b5e6c66fc6e969e - React: 5373769b4a544945831d9c5d455212186d68f763 - React-callinvoker: 2c54fb73b27fdf9bd7772f36dcda23d76e0e7d14 - React-Codegen: 58e432fa3bfc14727140209266f89173a3e128b6 - React-Core: f0e1e99728ebdb785286b0c4c55f0f923a9d826f - React-CoreModules: 1ee65dbd93429c1c6ec3de069d75f5fde05db5d5 - React-cxxreact: dc0f1968914a6c7da62b1287c1eb84dd3ab0a7bb - React-debug: 52cced4b9e280d03825d687925898cf65bd8712d - React-Fabric: 1805f148aedab4bf31c48c8c3bae6045aeb75275 - React-FabricImage: ee5ee9abe4ab05043fdce515e46f396b025a5028 - React-graphics: a1652cbea6f779a1cf2692987d9c94efcd6e4497 - React-hermes: 12499684a1005213e7ed71a94467ef72cf24320c - React-ImageManager: 5e50ba59059ca7547c8968f936e4ae7a50ff7384 - React-jserrorhandler: 27154e650959506a4455384f3aea134eba62335b - React-jsi: b03ac7f7af1371e3e81e8ac894af4e46454dee79 - React-jsiexecutor: ae30693413a40b7c72f25da2e794997754a780bf - React-jsinspector: 369048694e39942063c5d08e9580b43e2edd379a - React-jsitracing: 1c3d70eba0f634910d41c1c411fa24f3b9e1ee72 - React-logger: e0c1e918d9588a9f39c9bc62d9d6bfe9ca238d9d - React-Mapbuffer: 9731a0a63ebaf8976014623c4d637744d7353a7c - React-nativeconfig: 37aecd26d64b79327c3f10e43b2e9a6c425e0a60 - React-NativeModulesApple: 9ca6d2eaa1dd5606588262195b46d0774bdec83a - React-perflogger: 5ffc4d6ccb74eaac7b8b2867e58a447232483d6d - React-RCTActionSheet: eca2174431ff2cc14b7fb847f92b89e081d27541 - React-RCTAnimation: a039b2416aa0a55e6fa7c8cd0a2e870bfffc4caa - React-RCTAppDelegate: db52d0b28825225b6513e8ae0000e81c9097831f - React-RCTBlob: 0d4892d25e57fbbce13e221fff7e4c9567a2ace3 - React-RCTFabric: d11187cac1f4e0141738805f7011145c7786a369 - React-RCTImage: 5b70891cb2adb75bbdc5ad8e6cc56c48e95d90e5 - React-RCTLinking: 5fe4756ab016e9f200e93e771bd6e43ea05f8f50 - React-RCTNetwork: 877b4a85f71c63cf719574f187e3333c1e15a425 - React-RCTSettings: ae477a33a04389f5d42486004b09b04eeba64fd5 - React-RCTText: 08dd5d7173ed279d3468b333217afb22bb7948c3 - React-RCTVibration: 2f906cd58dfd44ff5e4ca4fc0edd8740dceda6be - React-rendererdebug: e3db5db14234d9ee46d2e58fff3b8652ee7da6bc - React-rncore: 47f199474d2f295e72f9b73315b1b741068f2adf - React-RuntimeApple: 1953da441e3a07866fdaf708c091927a62c93bea - React-RuntimeCore: fa31b1ecef03d19bf8a84b37df9799f52613d348 - React-runtimeexecutor: d87e84455640dc5685e87563c2eaef90e5df8752 - React-RuntimeHermes: 28da5d7ec6c7a19d2cc3de9859e011831a95ff01 - React-runtimescheduler: 93a4c84e46a85c3fc9678abd4f6923b785226ea7 - React-utils: debda2c206770ee2785bdebb7f16d8db9f18838a - ReactCommon: ddb128564dcbfa0287d3d1a2d10f8c7457c971f6 - SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 - Yoga: 4f53dc50008d626fa679c7a1cb4bed898f8c0bde + hermes-engine: 16b8530de1b383cdada1476cf52d1b52f0692cbc + RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47 + RCTDeprecation: efb313d8126259e9294dc4ee0002f44a6f676aba + RCTRequired: f49ea29cece52aee20db633ae7edc4b271435562 + RCTTypeSafety: a11979ff0570d230d74de9f604f7d19692157bc4 + React: 88794fad7f460349dbc9df8a274d95f37a009f5d + React-callinvoker: 7a7023e34a55c89ea2aa62486bb3c1164ab0be0c + React-Codegen: af31a9323ce23988c255c9afd0ae9415ff894939 + React-Core: 60075333bc22b5a793d3f62e207368b79bff2e64 + React-CoreModules: 147c314d6b3b1e069c9ad64cbbbeba604854ff86 + React-cxxreact: 5de27fd8bff4764acb2eac3ee66001e0e2b910e7 + React-debug: 6397f0baf751b40511d01e984b01467d7e6d8127 + React-Fabric: 6fa475e16e0a37b38d462cec32b70fd5cf886305 + React-FabricImage: 7e09b3704e3fa084b4d44b5b5ef6e2e3d3334ec0 + React-featureflags: 2eb79dd9df4095bff519379f2a4c915069e330bb + React-graphics: 82a482a3aa5d9659b74cdf2c8b57faf67eaa10fb + React-hermes: d93936b02de2fd7e67c11e92c16d4278a14d0134 + React-ImageManager: ebb3c4812e2c5acba5a89728c2d77729471329ad + React-jserrorhandler: a08e0adcf1612900dde82b8bf8e93e7d2ad953b3 + React-jsi: f46d09ee5079a4f3b637d30d0e59b8ea6470632c + React-jsiexecutor: e73579560957aa3ca9dc02ab90e163454279d48c + React-jsinspector: e8ba20dde269c7c1d45784b858fa1cf4383f0bbb + React-jsitracing: 233d1a798fe0ff33b8e630b8f00f62c4a8115fbc + React-logger: 7e7403a2b14c97f847d90763af76b84b152b6fce + React-Mapbuffer: 11029dcd47c5c9e057a4092ab9c2a8d10a496a33 + React-nativeconfig: b0073a590774e8b35192fead188a36d1dca23dec + React-NativeModulesApple: df46ff3e3de5b842b30b4ca8a6caae6d7c8ab09f + React-perflogger: 3d31e0d1e8ad891e43a09ac70b7b17a79773003a + React-RCTActionSheet: c4a3a134f3434c9d7b0c1054f1a8cfed30c7a093 + React-RCTAnimation: 0e5d15320eeece667fcceb6c785acf9a184e9da1 + React-RCTAppDelegate: 3ab57e497300ec1c54b798ba2d0834ee048229f4 + React-RCTBlob: c46aaaee693d371a1c7cae2a8c8ee2aa7fbc1adb + React-RCTFabric: 82f15dc5a981288bfa806545f943cbd18e794ad7 + React-RCTImage: a04dba5fcc823244f5822192c130ecf09623a57f + React-RCTLinking: 533bf13c745fcb2a0c14e0e49fd149586a7f0d14 + React-RCTNetwork: a29e371e0d363d7b4c10ab907bc4d6ae610541e9 + React-RCTSettings: 127813224780861d0d30ecda17a40d1dfebe7d73 + React-RCTText: 8a823f245ecf82edb7569646e3c4d8041deb800a + React-RCTVibration: 46b5fae74e63f240f22f39de16ad6433da3b65d9 + React-rendererdebug: 4653f8da6ab1d7b01af796bdf8ca47a927539e39 + React-rncore: 4f1e645acb5107bd4b4cf29eff17b04a7cd422f3 + React-RuntimeApple: 013b606e743efb5ee14ef03c32379b78bfe74354 + React-RuntimeCore: 7205be45a25713b5418bbf2db91ddfcca0761d8b + React-runtimeexecutor: a278d4249921853d4a3f24e4d6e0ff30688f3c16 + React-RuntimeHermes: 44c628568ce8feedc3acfbd48fc07b7f0f6d2731 + React-runtimescheduler: e2152ed146b6a35c07386fc2ac4827b27e6aad12 + React-utils: 3285151c9d1e3a28a9586571fc81d521678c196d + ReactCommon: f42444e384d82ab89184aed5d6f3142748b54768 + SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d + Yoga: 348f8b538c3ed4423eb58a8e5730feec50bce372 -PODFILE CHECKSUM: 2894d17c80a474038a113a7ee94b435730c59969 +PODFILE CHECKSUM: 5334401a024772f852231af4f3b511c680ec8868 COCOAPODS: 1.15.2 diff --git a/BrazeProject/package.json b/BrazeProject/package.json index 07b1391..5f2e808 100644 --- a/BrazeProject/package.json +++ b/BrazeProject/package.json @@ -12,7 +12,7 @@ "dependencies": { "@braze/react-native-sdk": "../", "react": "18.2.0", - "react-native": "0.73.1", + "react-native": "^0.74.1", "react-native-codegen": "^0.71.5", "react-native-radio-buttons-group": "^3.0.1" }, @@ -20,10 +20,10 @@ "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "^0.73.18", - "@react-native/eslint-config": "^0.73.1", - "@react-native/metro-config": "^0.73.2", - "@react-native/typescript-config": "^0.73.1", + "@react-native/babel-preset": "^0.74.1", + "@react-native/eslint-config": "^0.74.1", + "@react-native/metro-config": "^0.74.1", + "@react-native/typescript-config": "^0.74.1", "@types/jest": "^29.2.1", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", diff --git a/BrazeProject/yarn.lock b/BrazeProject/yarn.lock index bc24ec3..79f8986 100644 --- a/BrazeProject/yarn.lock +++ b/BrazeProject/yarn.lock @@ -393,6 +393,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-default-from" "^7.22.5" +"@babel/plugin-proposal-logical-assignment-operators@^7.18.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" @@ -464,7 +472,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -499,7 +507,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.22.5": +"@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== @@ -534,7 +542,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.7.2": +"@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.7.2": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== @@ -562,7 +570,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -638,7 +646,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.22.5": +"@babel/plugin-transform-block-scoped-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== @@ -746,7 +754,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-flow" "^7.22.5" -"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.22.5": +"@babel/plugin-transform-for-of@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== @@ -785,7 +793,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.22.5": +"@babel/plugin-transform-member-expression-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== @@ -869,7 +877,7 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.22.5" -"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.22.5": +"@babel/plugin-transform-object-super@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== @@ -929,7 +937,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.22.5": +"@babel/plugin-transform-property-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== @@ -1270,9 +1278,9 @@ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@braze/react-native-sdk@../": - version "8.3.0" + version "11.1.0" -"@eslint-community/eslint-utils@^4.2.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== @@ -1284,6 +1292,11 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== +"@eslint-community/regexpp@^4.5.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + "@eslint/eslintrc@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" @@ -1685,50 +1698,51 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@react-native-community/cli-clean@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.0.tgz#667b32daa58b4d11d5b5ab9eb0a2e216d500c90b" - integrity sha512-iAgLCOWYRGh9ukr+eVQnhkV/OqN3V2EGd/in33Ggn/Mj4uO6+oUncXFwB+yjlyaUNz6FfjudhIz09yYGSF+9sg== +"@react-native-community/cli-clean@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.6.tgz#87c7ad8746c38dab0fe7b3c6ff89d44351d5d943" + integrity sha512-cBwJTwl0NyeA4nyMxbhkWZhxtILYkbU3TW3k8AXLg+iGphe0zikYMGB3T+haTvTc6alTyEFwPbimk9bGIqkjAQ== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" execa "^5.0.0" + fast-glob "^3.3.2" -"@react-native-community/cli-config@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-12.3.0.tgz#255b4e5391878937a25888f452f50a968d053e3e" - integrity sha512-BrTn5ndFD9uOxO8kxBQ32EpbtOvAsQExGPI7SokdI4Zlve70FziLtTq91LTlTUgMq1InVZn/jJb3VIDk6BTInQ== +"@react-native-community/cli-config@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.6.tgz#69f590694b3a079c74f781baab3b762db74f5dbd" + integrity sha512-mbG425zCKr8JZhv/j11382arezwS/70juWMsn8j2lmrGTrP1cUdW0MF15CCIFtJsqyK3Qs+FTmqttRpq81QfSg== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" - glob "^7.1.3" + fast-glob "^3.3.2" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.0.tgz#75bbb2082a369b3559e0dffa8bfeebf2a9107e3e" - integrity sha512-w3b0iwjQlk47GhZWHaeTG8kKH09NCMUJO729xSdMBXE8rlbm4kHpKbxQY9qKb6NlfWSJN4noGY+FkNZS2rRwnQ== +"@react-native-community/cli-debugger-ui@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.6.tgz#ac021ebd795b0fd66fb52a8987d1d41c5a4b8cb3" + integrity sha512-Vv9u6eS4vKSDAvdhA0OiQHoA7y39fiPIgJ6biT32tN4avHDtxlc6TWZGiqv7g98SBvDWvoVAmdPLcRf3kU+c8g== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-12.3.0.tgz#420eb4e80d482f16d431c4df33fbc203862508af" - integrity sha512-BPCwNNesoQMkKsxB08Ayy6URgGQ8Kndv6mMhIvJSNdST3J1+x3ehBHXzG9B9Vfi+DrTKRb8lmEl/b/7VkDlPkA== +"@react-native-community/cli-doctor@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.6.tgz#ac0febff05601d9b86af3e03460e1a6b0a1d33a5" + integrity sha512-TWZb5g6EmQe2Ua2TEWNmyaEayvlWH4GmdD9ZC+p8EpKFpB1NpDGMK6sXbpb42TDvwZg5s4TDRplK0PBEA/SVDg== dependencies: - "@react-native-community/cli-config" "12.3.0" - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-platform-ios" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-config" "13.6.6" + "@react-native-community/cli-platform-android" "13.6.6" + "@react-native-community/cli-platform-apple" "13.6.6" + "@react-native-community/cli-platform-ios" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" 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" - ip "^1.1.5" node-stream-zip "^1.9.1" ora "^5.4.1" semver "^7.5.2" @@ -1736,68 +1750,70 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-hermes@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-12.3.0.tgz#c302acbfb07e1f4e73e76e3150c32f0e4f54e9ed" - integrity sha512-G6FxpeZBO4AimKZwtWR3dpXRqTvsmEqlIkkxgwthdzn3LbVjDVIXKpVYU9PkR5cnT+KuAUxO0WwthrJ6Nmrrlg== +"@react-native-community/cli-hermes@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.6.tgz#590f55f151fec23b55498228f92d100a0e71d474" + integrity sha512-La5Ie+NGaRl3klei6WxKoOxmCUSGGxpOk6vU5pEGf0/O7ky+Ay0io+zXYUZqlNMi/cGpO7ZUijakBYOB/uyuFg== dependencies: - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-platform-android" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" - ip "^1.1.5" -"@react-native-community/cli-platform-android@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.0.tgz#eafa5fb12ebc25f716aea18cd55039c19fbedca6" - integrity sha512-VU1NZw63+GLU2TnyQ919bEMThpHQ/oMFju9MCfrd3pyPJz4Sn+vc3NfnTDUVA5Z5yfLijFOkHIHr4vo/C9bjnw== +"@react-native-community/cli-platform-android@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.6.tgz#9e3863cb092709021f11848890bff0fc16fc1609" + integrity sha512-/tMwkBeNxh84syiSwNlYtmUz/Ppc+HfKtdopL/5RB+fd3SV1/5/NPNjMlyLNgFKnpxvKCInQ7dnl6jGHJjeHjg== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" execa "^5.0.0" + fast-glob "^3.3.2" fast-xml-parser "^4.2.4" - glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-ios@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.0.tgz#42a9185bb51f35a7eb9c5818b2f0072846945ef5" - integrity sha512-H95Sgt3wT7L8V75V0syFJDtv4YgqK5zbu69ko4yrXGv8dv2EBi6qZP0VMmkqXDamoPm9/U7tDTdbcf26ctnLfg== +"@react-native-community/cli-platform-apple@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.6.tgz#d445fd6ed02c5ae2f43f9c45501e04fee53a2790" + integrity sha512-bOmSSwoqNNT3AmCRZXEMYKz1Jf1l2F86Nhs7qBcXdY/sGiJ+Flng564LOqvdAlVLTbkgz47KjNKCS2pP4Jg0Mg== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" execa "^5.0.0" + fast-glob "^3.3.2" fast-xml-parser "^4.0.12" - glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.0.tgz#b4ea8da691d294aee98ccfcd1162bcd958cae834" - integrity sha512-tYNHIYnNmxrBcsqbE2dAnLMzlKI3Cp1p1xUgTrNaOMsGPDN1epzNfa34n6Nps3iwKElSL7Js91CzYNqgTalucA== +"@react-native-community/cli-platform-ios@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.6.tgz#0cd700f36483ca37dda7ec044377f8a926b1df1f" + integrity sha512-vjDnRwhlSN5ryqKTas6/DPkxuouuyFBAqAROH4FR1cspTbn6v78JTZKDmtQy9JMMo7N5vZj1kASU5vbFep9IOQ== + dependencies: + "@react-native-community/cli-platform-apple" "13.6.6" -"@react-native-community/cli-server-api@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-12.3.0.tgz#0460472d44c121d1db8a98ad1df811200c074fb3" - integrity sha512-Rode8NrdyByC+lBKHHn+/W8Zu0c+DajJvLmOWbe2WY/ECvnwcd9MHHbu92hlT2EQaJ9LbLhGrSbQE3cQy9EOCw== +"@react-native-community/cli-server-api@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.6.tgz#467993006ef82361cdf7a9817999d5a09e85ca6a" + integrity sha512-ZtCXxoFlM7oDv3iZ3wsrT3SamhtUJuIkX2WePLPlN5bcbq7zimbPm2lHyicNJtpcGQ5ymsgpUWPCNZsWQhXBqQ== dependencies: - "@react-native-community/cli-debugger-ui" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-debugger-ui" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" 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" + ws "^6.2.2" -"@react-native-community/cli-tools@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-12.3.0.tgz#d459a116e1a95034d3c9a6385069c9e2049fb2a6" - integrity sha512-2GafnCr8D88VdClwnm9KZfkEb+lzVoFdr/7ybqhdeYM0Vnt/tr2N+fM1EQzwI1DpzXiBzTYemw8GjRq+Utcz2Q== +"@react-native-community/cli-tools@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.6.tgz#55c40cbabafbfc56cfb95a4d5fbf73ef60ec3cbc" + integrity sha512-ptOnn4AJczY5njvbdK91k4hcYazDnGtEPrqIwEI+k/CTBHNdb27Rsm2OZ7ye6f7otLBqF8gj/hK6QzJs8CEMgw== 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" @@ -1807,27 +1823,26 @@ shell-quote "^1.7.3" sudo-prompt "^9.0.0" -"@react-native-community/cli-types@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-12.3.0.tgz#2d21a1f93aefbdb34a04311d68097aef0388704f" - integrity sha512-MgOkmrXH4zsGxhte4YqKL7d+N8ZNEd3w1wo56MZlhu5WabwCJh87wYpU5T8vyfujFLYOFuFK5jjlcbs8F4/WDw== +"@react-native-community/cli-types@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.6.tgz#b45af119d61888fea1074a7c32ddb093e3f119a9" + integrity sha512-733iaYzlmvNK7XYbnWlMjdE+2k0hlTBJW071af/xb6Bs+hbJqBP9c03FZuYH2hFFwDDntwj05bkri/P7VgSxug== dependencies: joi "^17.2.1" -"@react-native-community/cli@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-12.3.0.tgz#c89aacc3973943bf24002255d7d0859b511d88a1" - integrity sha512-XeQohi2E+S2+MMSz97QcEZ/bWpi8sfKiQg35XuYeJkc32Til2g0b97jRpn0/+fV0BInHoG1CQYWwHA7opMsrHg== - dependencies: - "@react-native-community/cli-clean" "12.3.0" - "@react-native-community/cli-config" "12.3.0" - "@react-native-community/cli-debugger-ui" "12.3.0" - "@react-native-community/cli-doctor" "12.3.0" - "@react-native-community/cli-hermes" "12.3.0" - "@react-native-community/cli-plugin-metro" "12.3.0" - "@react-native-community/cli-server-api" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" - "@react-native-community/cli-types" "12.3.0" +"@react-native-community/cli@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.6.tgz#b929c8668e88344c03a46a3e635cb382dba16773" + integrity sha512-IqclB7VQ84ye8Fcs89HOpOscY4284VZg2pojHNl8H0Lzd4DadXJWQoxC7zWm8v2f8eyeX2kdhxp2ETD5tceIgA== + dependencies: + "@react-native-community/cli-clean" "13.6.6" + "@react-native-community/cli-config" "13.6.6" + "@react-native-community/cli-debugger-ui" "13.6.6" + "@react-native-community/cli-doctor" "13.6.6" + "@react-native-community/cli-hermes" "13.6.6" + "@react-native-community/cli-server-api" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" + "@react-native-community/cli-types" "13.6.6" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" @@ -1838,27 +1853,35 @@ prompts "^2.4.2" semver "^7.5.2" -"@react-native/assets-registry@^0.73.1": - version "0.73.1" - resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.73.1.tgz#e2a6b73b16c183a270f338dc69c36039b3946e85" - integrity sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg== +"@react-native/assets-registry@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.74.83.tgz#c1815dc10f9e1075e0d03b4c8a9619145969522e" + integrity sha512-2vkLMVnp+YTZYTNSDIBZojSsjz8sl5PscP3j4GcV6idD8V978SZfwFlk8K0ti0BzRs11mzL0Pj17km597S/eTQ== -"@react-native/babel-plugin-codegen@*": - version "0.74.0" - resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.0.tgz#01ba90840e23c6d1fbf739f75cce1d0f5be97bfa" - integrity sha512-xAM/eVSb5LBkKue3bDZgt76bdsGGzKeF/iEzUNbDTwRQrB3Q5GoceGNM/zVlF+z1xGAkr3jhL+ZyITZGSoIlgw== +"@react-native/babel-plugin-codegen@0.74.1": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.1.tgz#b8dfd2aac48241a2bb1db4a4fb6921eaabb2d2f8" + integrity sha512-v8T79fEn49cuDVCyUNXsgXZ/ydN8s6ydAruasVCh0VyMzaPVJvuOQhaLW6JL+ysDTN/CnjraTv0oqYnaKoZgvQ== dependencies: - "@react-native/codegen" "*" + "@react-native/codegen" "0.74.1" -"@react-native/babel-preset@*": - version "0.74.0" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.74.0.tgz#1d933f7737549a6c54f8c808c3ccb452be5f7cbb" - integrity sha512-k+1aaYQeLn+GBmGA5Qs3NKI8uzhLvRRMML+pB/+43ZL6DvCklbuJ5KO5oqRRpF3KZ2t/VKUqqSichpXfFrXGjg== +"@react-native/babel-plugin-codegen@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.83.tgz#971f9cfec980dd05598d81964c05a26c6166f9fb" + integrity sha512-+S0st3t4Ro00bi9gjT1jnK8qTFOU+CwmziA7U9odKyWrCoRJrgmrvogq/Dr1YXlpFxexiGIupGut1VHxr+fxJA== + dependencies: + "@react-native/codegen" "0.74.83" + +"@react-native/babel-preset@0.74.1", "@react-native/babel-preset@^0.74.1": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.74.1.tgz#96813549cac768b5ff59c9b74f51acf80909e707" + integrity sha512-c7xbLs0/fjDmORYs86xz3syTFiJhtRb6JzXpGes04ZNdY7NWdz7aqEfeleyBJbmCfDOr16WZJRy4JcPLvNKjZg== 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-logical-assignment-operators" "^7.18.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" @@ -1894,19 +1917,20 @@ "@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" "*" + "@react-native/babel-plugin-codegen" "0.74.1" babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" -"@react-native/babel-preset@^0.73.18": - version "0.73.18" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.18.tgz#0ff24ba35102d9ac071de8ab10706ccaee5e3e6f" - integrity sha512-FzPasmazoX9WZnmwotk6SK9ydiExdqS4Xt5VaukPoY9u8u3AUUODzqjTsWSOxjFD9eRF3Knyg5H8JMDe6pj5wQ== +"@react-native/babel-preset@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.74.83.tgz#9828457779b4ce0219078652327ce3203115cdf9" + integrity sha512-KJuu3XyVh3qgyUer+rEqh9a/JoUxsDOzkJNfRpDyXiAyjDRoVch60X/Xa/NcEQ93iCVHAWs0yQ+XGNGIBCYE6g== 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-logical-assignment-operators" "^7.18.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" @@ -1942,71 +1966,88 @@ "@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" "*" + "@react-native/babel-plugin-codegen" "0.74.83" babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" -"@react-native/codegen@*", "@react-native/codegen@^0.73.2": - version "0.73.2" - resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.73.2.tgz#58af4e4c3098f0e6338e88ec64412c014dd51519" - integrity sha512-lfy8S7umhE3QLQG5ViC4wg5N1Z+E6RnaeIw8w1voroQsXXGPB72IBozh8dAHR3+ceTxIU0KX3A8OpJI8e1+HpQ== +"@react-native/codegen@0.74.1": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.74.1.tgz#d20d0a8cd612fd927604fd1bfc8d18f2a231c270" + integrity sha512-Wup76wd01GnHvnyW8DGTOQDbbw6W4xBkqfzdTyCSue6cGpCasqNQAf4okuDJKwcSbgpVkNcJdbGuGtz4RTA65Q== dependencies: "@babel/parser" "^7.20.0" - flow-parser "^0.206.0" glob "^7.1.1" + hermes-parser "0.19.1" invariant "^2.2.4" jscodeshift "^0.14.0" mkdirp "^0.5.1" nullthrows "^1.1.1" -"@react-native/community-cli-plugin@0.73.11": - version "0.73.11" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.11.tgz#8826cb81bb794408202e1ce7d87e45710eff1a9f" - integrity sha512-s0bprwljKS1Al8wOKathDDmRyF+70CcNE2G/aqZ7+L0NoOE0Uxxx/5P2BxlM2Mfht7O33B4SeMNiPdE/FqIubQ== +"@react-native/codegen@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.74.83.tgz#7c56a82fe7603f0867f0d80ff29db3757b71be55" + integrity sha512-GgvgHS3Aa2J8/mp1uC/zU8HuTh8ZT5jz7a4mVMWPw7+rGyv70Ba8uOVBq6UH2Q08o617IATYc+0HfyzAfm4n0w== dependencies: - "@react-native-community/cli-server-api" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" - "@react-native/dev-middleware" "^0.73.6" - "@react-native/metro-babel-transformer" "^0.73.12" + "@babel/parser" "^7.20.0" + glob "^7.1.1" + hermes-parser "0.19.1" + invariant "^2.2.4" + jscodeshift "^0.14.0" + mkdirp "^0.5.1" + nullthrows "^1.1.1" + +"@react-native/community-cli-plugin@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.83.tgz#58808a58a5288895627548338731e72ebb5b507c" + integrity sha512-7GAFjFOg1mFSj8bnFNQS4u8u7+QtrEeflUIDVZGEfBZQ3wMNI5ycBzbBGycsZYiq00Xvoc6eKFC7kvIaqeJpUQ== + dependencies: + "@react-native-community/cli-server-api" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" + "@react-native/dev-middleware" "0.74.83" + "@react-native/metro-babel-transformer" "0.74.83" chalk "^4.0.0" execa "^5.1.1" - metro "^0.80.0" - metro-config "^0.80.0" - metro-core "^0.80.0" + metro "^0.80.3" + metro-config "^0.80.3" + metro-core "^0.80.3" node-fetch "^2.2.0" + querystring "^0.2.1" readline "^1.3.0" -"@react-native/debugger-frontend@^0.73.3": - version "0.73.3" - resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz#033757614d2ada994c68a1deae78c1dd2ad33c2b" - integrity sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw== +"@react-native/debugger-frontend@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.74.83.tgz#48050afa4e086438073b95f041c0cc84fe3f20de" + integrity sha512-RGQlVUegBRxAUF9c1ss1ssaHZh6CO+7awgtI9sDeU0PzDZY/40ImoPD5m0o0SI6nXoVzbPtcMGzU+VO590pRfA== -"@react-native/dev-middleware@^0.73.6": - version "0.73.6" - resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.73.6.tgz#19ee210fddc3abb8eeb3da5f98711719ad032323" - integrity sha512-9SD7gIso+hO1Jy1Y/Glbd+JWQwyH7Xjnwebtkxdm5TMB51LQPjaGtMcwEigbIZyAtvoaDGmhWmudwbKpDlS+gA== +"@react-native/dev-middleware@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.74.83.tgz#9d09cfdb763e8ef81c003b0f99ae4ed1a3539639" + integrity sha512-UH8iriqnf7N4Hpi20D7M2FdvSANwTVStwFCSD7VMU9agJX88Yk0D1T6Meh2RMhUu4kY2bv8sTkNRm7LmxvZqgA== dependencies: "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "^0.73.3" + "@react-native/debugger-frontend" "0.74.83" + "@rnx-kit/chromium-edge-launcher" "^1.0.0" chrome-launcher "^0.15.2" - chromium-edge-launcher "^1.0.0" connect "^3.6.5" debug "^2.2.0" node-fetch "^2.2.0" + nullthrows "^1.1.1" open "^7.0.3" + selfsigned "^2.4.1" serve-static "^1.13.1" temp-dir "^2.0.0" + ws "^6.2.2" -"@react-native/eslint-config@^0.73.1": - version "0.73.1" - resolved "https://registry.yarnpkg.com/@react-native/eslint-config/-/eslint-config-0.73.1.tgz#2e75669260f324794a12e12e7064dd7fe613009b" - integrity sha512-Dgxk5JTfZqHvKL63iyMZanWqH/+P+GI3m7r7PtUEJgQbm+2XYbJnbAgJwebmDE7BzBFEcmxavjemHBkgs/eH3Q== +"@react-native/eslint-config@^0.74.1": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/eslint-config/-/eslint-config-0.74.1.tgz#4b2c2ba933b1a007f0359e807a85ccf7eae649de" + integrity sha512-l3+nodpdPh6JdilxZa0fje6+wOeI3eCbWoZ/gduJk2+FYNT93GbG39s66ui8YHhA43NbCYxp0+Xd+HVDB9HmVQ== 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" + "@react-native/eslint-plugin" "0.74.1" + "@typescript-eslint/eslint-plugin" "^6.7.4" + "@typescript-eslint/parser" "^6.7.4" eslint-config-prettier "^8.5.0" eslint-plugin-eslint-comments "^3.2.0" eslint-plugin-ft-flow "^2.0.1" @@ -2016,60 +2057,86 @@ eslint-plugin-react-hooks "^4.6.0" eslint-plugin-react-native "^4.0.0" -"@react-native/eslint-plugin@^0.73.1": - version "0.73.1" - resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.73.1.tgz#79d2c4d90c80bfad8900db335bfbaf1ca599abdc" - integrity sha512-8BNMFE8CAI7JLWLOs3u33wcwcJ821LYs5g53Xyx9GhSg0h8AygTwDrwmYb/pp04FkCNCPjKPBoaYRthQZmxgwA== +"@react-native/eslint-plugin@0.74.1": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.74.1.tgz#b7f419d42999641e681924cb1c03164433675ec3" + integrity sha512-+9RWKyyVmDY4neXx6Z5OtxxYco4OGXpkzNDayAJtYi7A0zcKjb1VZC25+SVRkRt+/39lYMT7WtWA4dsHEPsdng== -"@react-native/gradle-plugin@^0.73.4": - version "0.73.4" - resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz#aa55784a8c2b471aa89934db38c090d331baf23b" - integrity sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg== +"@react-native/gradle-plugin@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.74.83.tgz#4ac60a6d6295d5b920173cbf184ee32e53690810" + integrity sha512-Pw2BWVyOHoBuJVKxGVYF6/GSZRf6+v1Ygc+ULGz5t20N8qzRWPa2fRZWqoxsN7TkNLPsECYY8gooOl7okOcPAQ== -"@react-native/js-polyfills@^0.73.1": - version "0.73.1" - resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz#730b0a7aaab947ae6f8e5aa9d995e788977191ed" - integrity sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g== +"@react-native/js-polyfills@0.74.0": + version "0.74.0" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.74.0.tgz#54f7d728b6c8ea52d29993d86d2a9d4be08072d2" + integrity sha512-DMpn5l1TVkIBFe9kE54pwOI2fQYbQNZ6cto0IuCUxQVUFJBcFMJ6Gbk8jhz8tvcWuDW3xVK9AWq9DJTkuchWsQ== + +"@react-native/js-polyfills@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.74.83.tgz#0e189ce3ab0efecd00223f3bfc53663ce08ba013" + integrity sha512-/t74n8r6wFhw4JEoOj3bN71N1NDLqaawB75uKAsSjeCwIR9AfCxlzZG0etsXtOexkY9KMeZIQ7YwRPqUdNXuqw== -"@react-native/metro-babel-transformer@^0.73.12": - version "0.73.12" - resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.12.tgz#6b9c391285a4e376ea4c7bc42667bed015fdeb7c" - integrity sha512-VmxN5aaoOprzDzUR+8c3XYhG0FoMOO6n0ToylCW6EeZCuf5RTY7HWVOhacabGoB1mHrWzJ0wWEsqX+eD4iFxoA== +"@react-native/metro-babel-transformer@0.74.1": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.1.tgz#e82dc53a028a9ba999f569f9fc418f8c7269986c" + integrity sha512-pyx/WS1ljxNK4704BUKI9Zmcp8Mq2qg4oO7+AGVECbLj3k5/Xtuiyf2d3sX46XMfHEWxlzVtsgByz+5lAK1T2g== dependencies: "@babel/core" "^7.20.0" - "@react-native/babel-preset" "*" - babel-preset-fbjs "^3.4.0" - hermes-parser "0.15.0" + "@react-native/babel-preset" "0.74.1" + hermes-parser "0.19.1" nullthrows "^1.1.1" -"@react-native/metro-config@^0.73.2": - version "0.73.2" - resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.73.2.tgz#89693abfc683d17245a857bd5255d623368bd0b2" - integrity sha512-sYBtFigV3L5Kc/D0xjgxAS3dVUg9UlCIT9D7qHhk6SMCh73YS5W9ZBmJAhXW9I8I4NPvCkol2iIvrfVszqEu7w== +"@react-native/metro-babel-transformer@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.83.tgz#ba87c3cf041f4c0d2b991231af1a6b4a216e9b5d" + integrity sha512-hGdx5N8diu8y+GW/ED39vTZa9Jx1di2ZZ0aapbhH4egN1agIAusj5jXTccfNBwwWF93aJ5oVbRzfteZgjbutKg== dependencies: - "@react-native/js-polyfills" "^0.73.1" - "@react-native/metro-babel-transformer" "^0.73.12" - metro-config "^0.80.0" - metro-runtime "^0.80.0" + "@babel/core" "^7.20.0" + "@react-native/babel-preset" "0.74.83" + hermes-parser "0.19.1" + nullthrows "^1.1.1" -"@react-native/normalize-colors@^0.73.0", "@react-native/normalize-colors@^0.73.2": - version "0.73.2" - resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz#cc8e48fbae2bbfff53e12f209369e8d2e4cf34ec" - integrity sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w== +"@react-native/metro-config@^0.74.1": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.74.1.tgz#fd2006aca37e2f51e280ec25686a08217360fef5" + integrity sha512-56bbAlo20R5Z5L7lEI07sXKQYC2Xf01j3IF+56RTYlLslItLKhsciPVkbXw1dS/otuZXrCabeeJP2Bqiy0/5uQ== + dependencies: + "@react-native/js-polyfills" "0.74.0" + "@react-native/metro-babel-transformer" "0.74.1" + metro-config "^0.80.3" + metro-runtime "^0.80.3" -"@react-native/typescript-config@^0.73.1": - version "0.73.1" - resolved "https://registry.yarnpkg.com/@react-native/typescript-config/-/typescript-config-0.73.1.tgz#c97a42f5cd264069bfe86b737c531ed2f042ae6d" - integrity sha512-7Wrmdp972ZO7xvDid+xRGtvX6xz47cpGj7Y7VKlUhSVFFqbOGfB5WCpY1vMr6R/fjl+Og2fRw+TETN2+JnJi0w== +"@react-native/normalize-colors@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.74.83.tgz#86ef925bacf219d74df115bcfb615f62d8142e85" + integrity sha512-jhCY95gRDE44qYawWVvhTjTplW1g+JtKTKM3f8xYT1dJtJ8QWv+gqEtKcfmOHfDkSDaMKG0AGBaDTSK8GXLH8Q== -"@react-native/virtualized-lists@^0.73.4": - version "0.73.4" - resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.73.4.tgz#640e594775806f63685435b5d9c3d05c378ccd8c" - integrity sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog== +"@react-native/typescript-config@^0.74.1": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/typescript-config/-/typescript-config-0.74.1.tgz#bf7c0c31743dc24ed4dbedf0d3b7c4664aa80cfb" + integrity sha512-CMHWXa7363T78MiKsszhbovctFy2SzSrSuG0Ejol8QcGbSpt7WWR/FzK43036wK2eOagzCGHNNqyhzOml/ZutA== + +"@react-native/virtualized-lists@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.74.83.tgz#5595d6aefd9679d1295c56a1d1653b1fb261bd62" + integrity sha512-rmaLeE34rj7py4FxTod7iMTC7BAsm+HrGA8WxYmEJeyTV7WSaxAkosKoYBz8038mOiwnG9VwA/7FrB6bEQvn1A== dependencies: invariant "^2.2.4" nullthrows "^1.1.1" +"@rnx-kit/chromium-edge-launcher@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz#c0df8ea00a902c7a417cd9655aab06de398b939c" + integrity sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg== + dependencies: + "@types/node" "^18.0.0" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + mkdirp "^1.0.4" + rimraf "^3.0.2" + "@sideway/address@^4.1.3": version "4.1.4" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" @@ -2173,16 +2240,35 @@ expect "^29.0.0" pretty-format "^29.0.0" +"@types/json-schema@^7.0.12": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + "@types/json-schema@^7.0.9": version "7.0.12" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + "@types/node@*": version "20.4.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.2.tgz#129cc9ae69f93824f92fac653eebfb4812ab4af9" integrity sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw== +"@types/node@^18.0.0": + version "18.19.20" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.20.tgz#716e9fca5012e597748de256f1399a7f8376433e" + integrity sha512-SKXZvI375jkpvAj8o+5U2518XQv76mAsixqfXiVyWyXZbVWQK25RurFovYpVIxVzul0rZoH58V/3SkEnm7s3qA== + dependencies: + undici-types "~5.26.4" + "@types/prettier@^2.1.5": version "2.7.3" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" @@ -2228,6 +2314,11 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== +"@types/semver@^7.5.0": + version "7.5.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== + "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -2252,30 +2343,32 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.57.1": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" - integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== +"@typescript-eslint/eslint-plugin@^6.7.4": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" + integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== 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" + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/type-utils" "6.21.0" + "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.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" - -"@typescript-eslint/parser@^5.57.1": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" - integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== - dependencies: - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^6.7.4": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== + dependencies: + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" debug "^4.3.4" "@typescript-eslint/scope-manager@5.62.0": @@ -2286,21 +2379,34 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/type-utils@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" - integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== +"@typescript-eslint/scope-manager@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== dependencies: - "@typescript-eslint/typescript-estree" "5.62.0" - "@typescript-eslint/utils" "5.62.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + +"@typescript-eslint/type-utils@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" + integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== + dependencies: + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/utils" "6.21.0" debug "^4.3.4" - tsutils "^3.21.0" + ts-api-utils "^1.0.1" "@typescript-eslint/types@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== +"@typescript-eslint/types@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== + "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" @@ -2314,7 +2420,34 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.10.0": +"@typescript-eslint/typescript-estree@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" + integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + semver "^7.5.4" + +"@typescript-eslint/utils@^5.10.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== @@ -2336,6 +2469,14 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== + dependencies: + "@typescript-eslint/types" "6.21.0" + eslint-visitor-keys "^3.4.1" + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -2628,11 +2769,6 @@ babel-plugin-polyfill-regenerator@^0.5.1: dependencies: "@babel/helper-define-polyfill-provider" "^0.4.1" -babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: - version "7.0.0-beta.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" - integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== - babel-plugin-transform-flow-enums@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz#d1d0cc9bdc799c850ca110d0ddc9f21b9ec3ef25" @@ -2658,39 +2794,6 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-fbjs@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" - integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.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.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.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-member-expression-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-property-literals" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" - babel-preset-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" @@ -2739,6 +2842,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -2891,18 +3001,6 @@ chrome-launcher@^0.15.2: is-wsl "^2.2.0" lighthouse-logger "^1.0.0" -chromium-edge-launcher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz#0443083074715a13c669530b35df7bfea33b1509" - integrity sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA== - 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" - ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -3221,15 +3319,6 @@ depd@2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -deprecated-react-native-prop-types@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-5.0.0.tgz#02a12f090da7bd9e8c3ac53c31cf786a1315d302" - integrity sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ== - dependencies: - "@react-native/normalize-colors" "^0.73.0" - invariant "^2.2.4" - prop-types "^15.8.1" - destroy@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" @@ -3702,6 +3791,17 @@ fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -3712,17 +3812,10 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-xml-parser@^4.0.12: - version "4.2.5" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" - integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== - dependencies: - strnum "^1.0.5" - -fast-xml-parser@^4.2.4: - version "4.3.2" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz#761e641260706d6e13251c4ef8e3f5694d4b0d79" - integrity sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg== +fast-xml-parser@^4.0.12, fast-xml-parser@^4.2.4: + version "4.4.1" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz#86dbf3f18edf8739326447bcaac31b4ae7f6514f" + integrity sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw== dependencies: strnum "^1.0.5" @@ -3837,11 +3930,6 @@ flow-parser@^0.185.0: resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.185.2.tgz#cb7ee57f77377d6c5d69a469e980f6332a15e492" integrity sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ== -flow-parser@^0.206.0: - version "0.206.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.206.0.tgz#f4f794f8026535278393308e01ea72f31000bfef" - integrity sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w== - for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -4099,29 +4187,17 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hermes-estree@0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.15.0.tgz#e32f6210ab18c7b705bdcb375f7700f2db15d6ba" - integrity sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ== +hermes-estree@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.19.1.tgz#d5924f5fac2bf0532547ae9f506d6db8f3c96392" + integrity sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g== -hermes-estree@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.17.1.tgz#902806a900c185720424ffcf958027821d23c051" - integrity sha512-EdUJms+eRE40OQxysFlPr1mPpvUbbMi7uDAKlScBw8o3tQY22BZ5yx56OYyp1bVaBm+7Cjc3NQz24sJEFXkPxg== - -hermes-parser@0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.15.0.tgz#f611a297c2a2dbbfbce8af8543242254f604c382" - integrity sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q== +hermes-parser@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.19.1.tgz#1044348097165b7c93dc198a80b04ed5130d6b1a" + integrity sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A== dependencies: - hermes-estree "0.15.0" - -hermes-parser@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.17.1.tgz#8b5cbaff235fed28487812ad718f9c7182d0db0f" - integrity sha512-yErtFLMEL6490fFJPurNn23OI2ciGAtaUfKUg9VPdcde9CmItCjOVQkJt1Xzawv5kuRzeIx0RE2E2Q9TbIgdzA== - dependencies: - hermes-estree "0.17.1" + hermes-estree "0.19.1" hermes-profile-transformer@^0.0.6: version "0.0.6" @@ -4161,6 +4237,11 @@ ignore@^5.0.5, ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + image-size@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" @@ -4226,11 +4307,6 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -ip@^1.1.5: - version "1.1.9" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" - integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== - is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -5324,53 +5400,53 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -metro-babel-transformer@0.80.1: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.80.1.tgz#4c0bf77c312313c88fa677aab33e20e93fb383db" - integrity sha512-8mFluLGyOKzhedSAFANCe1cyT2fBlt1+tl0dqlcJI6OCP/V0I22bNFlyogWzseOjVTd3c0iEAbRXioZOUGOMzQ== +metro-babel-transformer@0.80.6: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.80.6.tgz#49df74af71ecc9871636cf469726debcb5a1c858" + integrity sha512-ssuoVC4OzqaOt3LpwfUbDfBlFGRu9v1Yf2JJnKPz0ROYHNjSBws4aUesqQQ/Ea8DbiH7TK4j4cJmm+XjdHmgqA== dependencies: "@babel/core" "^7.20.0" - hermes-parser "0.17.1" + hermes-parser "0.19.1" nullthrows "^1.1.1" -metro-cache-key@0.80.1: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.80.1.tgz#66cf08fb5f19e26fdd7564635b12cdfb8df199b5" - integrity sha512-Hj2CWFVy11dEa7iNoy2fI14kD6DiFUD7houGTnFy9esCAm3y/hedciMXg4+1eihz+vtfhPWUIu+ZW/sXeIQkFQ== +metro-cache-key@0.80.6: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.80.6.tgz#48fe84477f6408478a33c363a8f5eaceea5cf853" + integrity sha512-DFmjQacC8m/S3HpELklLMWkPGP/fZPX3BSgjd0xQvwIvWyFwk8Nn/lfp/uWdEVDtDSIr64/anXU5uWohGwlWXw== -metro-cache@0.80.1: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.80.1.tgz#3edf8dcda2b4782dfaf82edd67c56d4e6bc36cbd" - integrity sha512-pAYrlPCnomv7EQi08YSeoeF7YL3/4S3JzNn+nVp8e7AIOekO6Hf9j/GPRKfIQwll+os5bE9qFa++NPPmD59IeQ== +metro-cache@0.80.6: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.80.6.tgz#05fdd83482f4132243b27713716c289532bd41c3" + integrity sha512-NP81pHSPkzs+iNlpVkJqijrpcd6lfuDAunYH9/Rn8oLNz0yLfkl8lt+xOdUU4IkFt3oVcTBEFCnzAzv4B8YhyA== dependencies: - metro-core "0.80.1" + metro-core "0.80.6" rimraf "^3.0.2" -metro-config@0.80.1, metro-config@^0.80.0: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.80.1.tgz#9a0e3359e77e93e781ca22e3be3667d6f00d5090" - integrity sha512-ADbPLfMAe68CJGwu6vM0cXImfME0bauLK8P98mQbiAP6xLYVehCdeXEWSe9plVWhzpPLNemSr1AlTvPTMdl3Bw== +metro-config@0.80.6, metro-config@^0.80.3: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.80.6.tgz#b404e2f24b22c9c683abcf8da3efa8c87e382ad7" + integrity sha512-vHYYvJpRTWYbmvqlR7i04xQpZCHJ6yfZ/xIcPdz2ssbdJGGJbiT1Aar9wr8RAhsccSxdJgfE5B1DB8Mo+DnhIg== dependencies: connect "^3.6.5" cosmiconfig "^5.0.5" jest-validate "^29.6.3" - metro "0.80.1" - metro-cache "0.80.1" - metro-core "0.80.1" - metro-runtime "0.80.1" + metro "0.80.6" + metro-cache "0.80.6" + metro-core "0.80.6" + metro-runtime "0.80.6" -metro-core@0.80.1, metro-core@^0.80.0: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.80.1.tgz#3bed22dd2f18e9524c2a45405406873d4f6749c0" - integrity sha512-f2Kav0/467YBG0DGAEX6+EQoYcUK+8vXIrEHQSkxCPXTjFcyppXUt2O6SDHMlL/Z5CGpd4uK1c/byXEfImJJdA== +metro-core@0.80.6, metro-core@^0.80.3: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.80.6.tgz#b13fa98417e70203d2533c5d0f5c4d541f3d9fbe" + integrity sha512-fn4rryTUAwzFJWj7VIPDH4CcW/q7MV4oGobqR6NsuxZoIGYrVpK7pBasumu5YbCqifuErMs5s23BhmrDNeZURw== dependencies: lodash.throttle "^4.1.1" - metro-resolver "0.80.1" + metro-resolver "0.80.6" -metro-file-map@0.80.1: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.80.1.tgz#67d187fc522cba7ce033564fac0c8f12c6fc866f" - integrity sha512-Z00OaxlVx1Ynr3r3bZwgI9RXaimh1evTgofuk5TeYC5LEKWcAVr7QU0cGbjfhXa/kzD8iFFYPbDBENOXc398XQ== +metro-file-map@0.80.6: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.80.6.tgz#9d96e54bd3bde6747b6860702a098a333599bba2" + integrity sha512-S3CUqvpXpc+q3q+hCEWvFKhVqgq0VmXdZQDF6u7ue86E2elq1XLnfLOt9JSpwyhpMQRyysjSCnd/Yh6GZMNHoQ== dependencies: anymatch "^3.0.3" debug "^2.2.0" @@ -5385,10 +5461,10 @@ metro-file-map@0.80.1: optionalDependencies: fsevents "^2.3.2" -metro-minify-terser@0.80.1: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.80.1.tgz#b7f156edf11ab29a0f09ab09f1703036e678fb44" - integrity sha512-LfX3n895J6MsyiQkLz2SYcKVmZA1ag0NfYDyQapdnOd/oZmkdSu5jUWt0IjiohRLqKSnvyDp00OdQDRfhD3S8g== +metro-minify-terser@0.80.6: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.80.6.tgz#27193867ec177c5a9b636725ff1c94c65ce701cc" + integrity sha512-83eZaH2+B+jP92KuodPqXknzwmiboKAuZY4doRfTEEXAG57pNVNN6cqSRJlwDnmaTBKRffxoncBXbYqHQgulgg== dependencies: terser "^5.15.0" @@ -5436,48 +5512,48 @@ metro-react-native-babel-preset@0.73.7: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-resolver@0.80.1: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.1.tgz#770da0d0b37354cd53b3ae73c14002f01c60d8e7" - integrity sha512-NuVTx+eplveM8mNybsCQ9BrATGw7lXhfEIvCa7gz6eMcKOQ6RBzwUXWMYKehw8KL4eIkNOHzdczAiGTRuhzrQg== +metro-resolver@0.80.6: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.6.tgz#b648b8c661bc4cf091efd11affa010dd11f58bec" + integrity sha512-R7trfglG4zY4X9XyM9cvuffAhQ9W1reWoahr1jdEWa6rOI8PyM0qXjcsb8l+fsOQhdSiVlkKcYAmkyrs1S/zrA== -metro-runtime@0.80.1, metro-runtime@^0.80.0: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.80.1.tgz#39835e38a0d283d5753af5b89aee1980dbe9d89c" - integrity sha512-RQ+crdwbC4oUYzWom8USCvJWEfFyIuQAeV0bVcNvbpaaz3Q4imXSINJkjDth37DHnxUlhNhEeAcRG6JQIO1QeA== +metro-runtime@0.80.6, metro-runtime@^0.80.3: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.80.6.tgz#efd566a02e63e6f2bd08b5e2a8fe57333f1a2c4e" + integrity sha512-21GQVd0pp2nACoK0C2PL8mBsEhIFUFFntYrWRlYNHtPQoqDzddrPEIgkyaABGXGued+dZoBlFQl+LASlmmfkvw== dependencies: "@babel/runtime" "^7.0.0" -metro-source-map@0.80.1, metro-source-map@^0.80.0: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.80.1.tgz#979ed445ea716a78ea9b183254d5a66b7e9d6949" - integrity sha512-RoVaBdS44H68WY3vaO+s9/wshypPy8gKgcbND+A4FRxVsKM3+PI2pRoaAk4lTshgbmmXUuBZADzXdCz4F2JmnQ== +metro-source-map@0.80.6, metro-source-map@^0.80.3: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.80.6.tgz#f129a36bb5b74e3ae0d4cbbcdc62904fa0161fb1" + integrity sha512-lqDuSLctWy9Qccu4Zl0YB1PzItpsqcKGb1nK0aDY+lzJ26X65OCib2VzHlj+xj7e4PiIKOfsvDCczCBz4cnxdg== dependencies: "@babel/traverse" "^7.20.0" "@babel/types" "^7.20.0" invariant "^2.2.4" - metro-symbolicate "0.80.1" + metro-symbolicate "0.80.6" nullthrows "^1.1.1" - ob1 "0.80.1" + ob1 "0.80.6" source-map "^0.5.6" vlq "^1.0.0" -metro-symbolicate@0.80.1: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.80.1.tgz#028cdf32eecf9067ce6a6b9c133d1e911823b466" - integrity sha512-HxIHH/wLPyO9pZTmIfvCG/63n8UDTLjHzcWPMRUiLOc0cHa/NI2ewtik1VK2Lzm3swvU8EfD9XXJ//jEnIlhIg== +metro-symbolicate@0.80.6: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.80.6.tgz#8690af051f33c98c0e8efcd779aebbfdea9fabef" + integrity sha512-SGwKeBi+lK7NmM5+EcW6DyRRa9HmGSvH0LJtlT4XoRMbpxzsLYs0qUEA+olD96pOIP+ta7I8S30nQr2ttqgO8A== dependencies: invariant "^2.2.4" - metro-source-map "0.80.1" + metro-source-map "0.80.6" nullthrows "^1.1.1" source-map "^0.5.6" through2 "^2.0.1" vlq "^1.0.0" -metro-transform-plugins@0.80.1: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.80.1.tgz#38729aab5d37e2d108aae1fab7e4bf94ef299a9b" - integrity sha512-sJkzY9WJ9p7t3TrvNuIxW/6z4nQZC1pN3nJl4eQmE2lmHBqEMeZr/83DyTnf9Up86abQAXHVZmG5JzXrq7Kb5g== +metro-transform-plugins@0.80.6: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.80.6.tgz#f9039384692fc8cd51a67d1cd7c35964e7d374e8" + integrity sha512-e04tdTC5Fy1vOQrTTXb5biao0t7nR/h+b1IaBTlM5UaHaAJZr658uVOoZhkRxKjbhF2mIwJ/8DdorD2CA15BCg== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" @@ -5485,27 +5561,28 @@ metro-transform-plugins@0.80.1: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-worker@0.80.1: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.80.1.tgz#68b58e6a39cbfa8c8dde66acfe5f63c3f930f53d" - integrity sha512-SkX9JBQGbNkzJ2oF7sAi8Nbc0KRLj8Rus9Z4kPh++JCTNqEwsZV5z27ksr9I9EGbqL2/qfUrDZJo1OwozX6dhw== +metro-transform-worker@0.80.6: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.80.6.tgz#fc09822ce360eaa929b14408e4af97a2fa8feba6" + integrity sha512-jV+VgCLiCj5jQadW/h09qJaqDreL6XcBRY52STCoz2xWn6WWLLMB5nXzQtvFNPmnIOps+Xu8+d5hiPcBNOhYmA== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" "@babel/parser" "^7.20.0" "@babel/types" "^7.20.0" - metro "0.80.1" - metro-babel-transformer "0.80.1" - metro-cache "0.80.1" - metro-cache-key "0.80.1" - metro-source-map "0.80.1" - metro-transform-plugins "0.80.1" + metro "0.80.6" + metro-babel-transformer "0.80.6" + metro-cache "0.80.6" + metro-cache-key "0.80.6" + metro-minify-terser "0.80.6" + metro-source-map "0.80.6" + metro-transform-plugins "0.80.6" nullthrows "^1.1.1" -metro@0.80.1, metro@^0.80.0: - version "0.80.1" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.80.1.tgz#a4ac5975f5dcdde34a07d3a7d8ce9baca29ae319" - integrity sha512-yp0eLYFY+5seXr7KR1fe61eDL4Qf5dvLS6dl1eKn4DPKgROC9A4nTsulHdMy2ntXWgjnAZRJBDPHuh3tAi4/nQ== +metro@0.80.6, metro@^0.80.3: + version "0.80.6" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.80.6.tgz#11cf77700b8be767f6663c1d6f6ed287dd686535" + integrity sha512-f6Nhnht9TxVRP6zdBq9J2jNdeDBxRmJFnjxhQS1GeCpokBvI6fTXq+wHTLz5jZA+75fwbkPSzBxBJzQa6xi0AQ== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.20.0" @@ -5522,25 +5599,24 @@ metro@0.80.1, metro@^0.80.0: denodeify "^1.2.1" error-stack-parser "^2.0.6" graceful-fs "^4.2.4" - hermes-parser "0.17.1" + hermes-parser "0.19.1" image-size "^1.0.2" invariant "^2.2.4" jest-worker "^29.6.3" jsc-safe-url "^0.2.2" lodash.throttle "^4.1.1" - metro-babel-transformer "0.80.1" - metro-cache "0.80.1" - metro-cache-key "0.80.1" - metro-config "0.80.1" - metro-core "0.80.1" - metro-file-map "0.80.1" - metro-minify-terser "0.80.1" - metro-resolver "0.80.1" - metro-runtime "0.80.1" - metro-source-map "0.80.1" - metro-symbolicate "0.80.1" - metro-transform-plugins "0.80.1" - metro-transform-worker "0.80.1" + metro-babel-transformer "0.80.6" + metro-cache "0.80.6" + metro-cache-key "0.80.6" + metro-config "0.80.6" + metro-core "0.80.6" + metro-file-map "0.80.6" + metro-resolver "0.80.6" + metro-runtime "0.80.6" + metro-source-map "0.80.6" + metro-symbolicate "0.80.6" + metro-transform-plugins "0.80.6" + metro-transform-worker "0.80.6" mime-types "^2.1.27" node-fetch "^2.2.0" nullthrows "^1.1.1" @@ -5606,6 +5682,13 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -5670,11 +5753,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -5714,6 +5792,11 @@ node-fetch@^2.2.0, node-fetch@^2.6.0: dependencies: whatwg-url "^5.0.0" +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -5746,10 +5829,10 @@ nullthrows@^1.1.1: resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== -ob1@0.80.1: - version "0.80.1" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.80.1.tgz#6507f8c95ff30a9ddb07f96fccbd8f3d4ccafc04" - integrity sha512-o9eYflOo+QnbC/k9GYQuAy90zOGQ/OBgrjlIeW6VrKhevSxth83JSdEvKuKaV7SMGJVQhSY3Zp8eGa3g0rLP0A== +ob1@0.80.6: + version "0.80.6" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.80.6.tgz#61d7881f458333ed2a73b90cea4aa62f8ca9e045" + integrity sha512-nlLGZPMQ/kbmkdIb5yvVzep1jKUII2x6ehNsHpgy71jpnJMW7V+KsB3AjYI2Ajb7UqMAMNjlssg6FUodrEMYzg== object-assign@^4.1.1: version "4.1.1" @@ -6137,6 +6220,11 @@ pure-rand@^6.0.0: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306" integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ== +querystring@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -6154,10 +6242,10 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -react-devtools-core@^4.27.7: - version "4.28.5" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.28.5.tgz#c8442b91f068cdf0c899c543907f7f27d79c2508" - integrity sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA== +react-devtools-core@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-5.0.0.tgz#50b04a4dbfa62badbe4d86529e9478c396988b31" + integrity sha512-SAAMLacNDfFjMJjmbXURNWtrTyARi9xTqGkY48Btw5cIWlr1wgxfWYZKxoUZav1qqmhbpgTzSmmF+cpMHGHY3A== dependencies: shell-quote "^1.6.1" ws "^7" @@ -6192,40 +6280,40 @@ react-native-radio-buttons-group@^3.0.1: resolved "https://registry.yarnpkg.com/react-native-radio-buttons-group/-/react-native-radio-buttons-group-3.0.2.tgz#9016a739819030cbf58a563b2487fac46a711f02" integrity sha512-5Nszk4WJGO4MeL+/4TSQRGoQErZlAaj5zAb4tis5f2J+O1tGzCMRtIARqr0WlIKwsjzH6zmcgyr9Q2Vv5xMiPw== -react-native@0.73.1: - version "0.73.1" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.1.tgz#5eafaa7e54feeab8b55e8b8e4efc4d21052a4fff" - integrity sha512-nLl9O2yKRh1nMXwsk4SUiD0ddd19RqlKgNU9AU8bTK/zD2xwnVOG56YK1/22SN67niWyoeG83vVg1eTk+S6ReA== +react-native@^0.74.1: + version "0.74.1" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.74.1.tgz#8f5f59636242eb1b90ff675d9fcc7f5b8b1c9913" + integrity sha512-0H2XpmghwOtfPpM2LKqHIN7gxy+7G/r1hwJHKLV6uoyXGC/gCojRtoo5NqyKrWpFC8cqyT6wTYCLuG7CxEKilg== dependencies: "@jest/create-cache-key-function" "^29.6.3" - "@react-native-community/cli" "12.3.0" - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-platform-ios" "12.3.0" - "@react-native/assets-registry" "^0.73.1" - "@react-native/codegen" "^0.73.2" - "@react-native/community-cli-plugin" "0.73.11" - "@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" + "@react-native-community/cli" "13.6.6" + "@react-native-community/cli-platform-android" "13.6.6" + "@react-native-community/cli-platform-ios" "13.6.6" + "@react-native/assets-registry" "0.74.83" + "@react-native/codegen" "0.74.83" + "@react-native/community-cli-plugin" "0.74.83" + "@react-native/gradle-plugin" "0.74.83" + "@react-native/js-polyfills" "0.74.83" + "@react-native/normalize-colors" "0.74.83" + "@react-native/virtualized-lists" "0.74.83" abort-controller "^3.0.0" anser "^1.4.9" ansi-regex "^5.0.0" base64-js "^1.5.1" - deprecated-react-native-prop-types "^5.0.0" + chalk "^4.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.0" - metro-source-map "^0.80.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-devtools-core "^5.0.0" react-refresh "^0.14.0" react-shallow-renderer "^16.15.0" regenerator-runtime "^0.13.2" @@ -6525,6 +6613,14 @@ scheduler@^0.23.0: dependencies: loose-envify "^1.1.0" +selfsigned@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" @@ -6542,6 +6638,13 @@ semver@^7.3.7, semver@^7.5.2, semver@^7.5.3: dependencies: lru-cache "^6.0.0" +semver@^7.5.4: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -7022,6 +7125,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +ts-api-utils@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz#f716c7e027494629485b21c0df6180f4d08f5e8b" + integrity sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA== + tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -7101,6 +7209,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -7314,16 +7427,16 @@ write-file-atomic@^4.0.2: signal-exit "^3.0.7" ws@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + version "6.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.3.tgz#ccc96e4add5fd6fedbc491903075c85c5a11d9ee" + integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== dependencies: async-limiter "~1.0.0" ws@^7, ws@^7.5.1: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== xtend@~4.0.1: version "4.0.2" diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d5322b..4d2390a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ ⚠️ In version 2.0.0, we changed the iOS bridge from AppboyKit, which is written in Objective-C, to the new [Swift SDK](https://github.com/braze-inc/braze-swift-sdk). If you are upgrading from a version below 2.0.0 to a version above 2.0.0, please read [the instructions](https://github.com/braze-inc/braze-react-native-sdk/blob/master/CHANGELOG.md#200) to ensure a smooth transition and backward compatibility. +## 12.0.0 + +##### Breaking +- Updates the native iOS version bindings [from Braze Swift SDK 9.0.0 to 10.0.0](https://github.com/braze-inc/braze-swift-sdk/compare/9.0.0...10.0.0#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4ed). + - When subscribing to push notification events, the subscription will be triggered on iOS for both `"push_received"` and `"push_opened"`, instead of only for `"push_opened"` events. + +##### Added +- Updates the Braze sample app to use React Native version 0.74.1. +- Adds support for 3 new Feature Flag property types and various APIs for accessing them: + - `getFeatureFlagTimestampProperty(id, key)` for accessing Int Unix UTC millisecond timestamps as `number`s. + - `getFeatureFlagImageProperty(id, key)` for accessing image URLs as `string`s. + - `getFeatureFlagJSONProperty(id, key)` for accessing JSON objects as `object` types. + ## 11.0.0 ##### Breaking diff --git a/README.md b/README.md index 2b8edf8..ed80699 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

- - + Braze Logo + Braze Logo

# Braze React SDK diff --git a/__tests__/index.test.js b/__tests__/index.test.js index 8ebcb4a..f394f51 100644 --- a/__tests__/index.test.js +++ b/__tests__/index.test.js @@ -692,6 +692,21 @@ test('it calls BrazeReactBridge.getFeatureFlagNumberProperty', () => { expect(NativeBrazeReactModule.getFeatureFlagNumberProperty).toBeCalled(); }); +test('it calls BrazeReactBridge.getFeatureFlagTimestampProperty', () => { + Braze.getFeatureFlagTimestampProperty('id', 'key'); + expect(NativeBrazeReactModule.getFeatureFlagTimestampProperty).toBeCalled(); +}); + +test('it calls BrazeReactBridge.getFeatureFlagJSONProperty', () => { + Braze.getFeatureFlagJSONProperty('id', 'key'); + expect(NativeBrazeReactModule.getFeatureFlagJSONProperty).toBeCalled(); +}); + +test('it calls BrazeReactBridge.getFeatureFlagImageProperty', () => { + Braze.getFeatureFlagImageProperty('id', 'key'); + expect(NativeBrazeReactModule.getFeatureFlagImageProperty).toBeCalled(); +}); + test('it calls BrazeReactBridge.updateTrackingPropertyAllowList', () => { const allowList = { adding: [Braze.TrackingProperty.ALL_CUSTOM_ATTRIBUTES], diff --git a/__tests__/jest.setup.js b/__tests__/jest.setup.js index 8bd6c85..6ccf73e 100644 --- a/__tests__/jest.setup.js +++ b/__tests__/jest.setup.js @@ -90,6 +90,9 @@ jest.mock('react-native/Libraries/TurboModule/TurboModuleRegistry', () => { getFeatureFlagBooleanProperty: jest.fn(), getFeatureFlagNumberProperty: jest.fn(), getFeatureFlagStringProperty: jest.fn(), + getFeatureFlagTimestampProperty: jest.fn(), + getFeatureFlagJSONProperty: jest.fn(), + getFeatureFlagImageProperty: jest.fn(), setAdTrackingEnabled: jest.fn(), updateTrackingPropertyAllowList: jest.fn() }; diff --git a/android/src/main/java/com/braze/reactbridge/BrazeReactBridgeImpl.kt b/android/src/main/java/com/braze/reactbridge/BrazeReactBridgeImpl.kt index 46b81a4..2c82813 100644 --- a/android/src/main/java/com/braze/reactbridge/BrazeReactBridgeImpl.kt +++ b/android/src/main/java/com/braze/reactbridge/BrazeReactBridgeImpl.kt @@ -43,7 +43,6 @@ import java.util.* import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.locks.ReentrantLock import kotlin.concurrent.withLock -import com.braze.support.BrazeLogger import com.braze.ui.BrazeDeeplinkHandler import com.braze.enums.inappmessage.ClickAction import com.braze.ui.actions.NewsfeedAction @@ -866,6 +865,21 @@ class BrazeReactBridgeImpl( promise.resolve(braze.getFeatureFlag(id)?.getNumberProperty(key)) } + fun getFeatureFlagTimestampProperty(id: String, key: String, promise: Promise) { + // Convert timestamp to double because the React Native translation layer doesn't support `long` + val convertedTimestamp = braze.getFeatureFlag(id)?.getTimestampProperty(key)?.toDouble() + promise.resolve(convertedTimestamp) + } + + fun getFeatureFlagJSONProperty(id: String, key: String, promise: Promise) { + val jsonMap = braze.getFeatureFlag(id)?.getJSONProperty(key)?.let { jsonToNativeMap(it) } + promise.resolve(jsonMap) + } + + fun getFeatureFlagImageProperty(id: String, key: String, promise: Promise) { + promise.resolve(braze.getFeatureFlag(id)?.getImageProperty(key)) + } + fun setAdTrackingEnabled(adTrackingEnabled: Boolean, googleAdvertisingId: String) { braze.setGoogleAdvertisingId(googleAdvertisingId, adTrackingEnabled) } @@ -923,6 +937,47 @@ class BrazeReactBridgeImpl( } } + /** + * Parses a `JSONObject` to a React Native map object. + * The cases for each type follows all supported types of the `ReadableMap` class. + */ + private fun jsonToNativeMap(jsonObject: JSONObject): ReadableMap { + val nativeMap = WritableNativeMap() + jsonObject.keys().forEach { key -> + when (val value = jsonObject.get(key)) { + is JSONObject -> nativeMap.putMap(key, jsonToNativeMap(value)) + is JSONArray -> nativeMap.putArray(key, jsonToNativeArray(value)) + is Boolean -> nativeMap.putBoolean(key, value) + is Int -> nativeMap.putInt(key, value) + is Double -> nativeMap.putDouble(key, value) + is String -> nativeMap.putString(key, value) + JSONObject.NULL -> nativeMap.putNull(key) + } + } + return nativeMap + } + + /** + * Parses a `JSONArray` to a React Native array object. + * The cases for each type follows all supported types of the `ReadableArray` class. + */ + private fun jsonToNativeArray(jsonArray: JSONArray): ReadableArray { + val nativeArray = WritableNativeArray() + for (i in 0 until jsonArray.length()) { + when (val value = jsonArray.opt(i)) { + is JSONObject -> nativeArray.pushMap(jsonToNativeMap(value)) + is JSONArray -> nativeArray.pushArray(jsonToNativeArray(value)) + is Boolean -> nativeArray.pushBoolean(value) + is Int -> nativeArray.pushInt(value) + is Double -> nativeArray.pushDouble(value) + is String -> nativeArray.pushString(value) + JSONObject.NULL -> nativeArray.pushNull() + else -> nativeArray.pushString(value.toString()) + } + } + return nativeArray + } + private fun populateEventPropertiesFromReadableMap(eventProperties: ReadableMap?): BrazeProperties? { return when (eventProperties) { null -> null diff --git a/android/src/newarch/com/braze/reactbridge/BrazeReactBridge.kt b/android/src/newarch/com/braze/reactbridge/BrazeReactBridge.kt index edb70ad..2b1c85c 100644 --- a/android/src/newarch/com/braze/reactbridge/BrazeReactBridge.kt +++ b/android/src/newarch/com/braze/reactbridge/BrazeReactBridge.kt @@ -329,6 +329,18 @@ class BrazeReactBridge(reactContext: ReactApplicationContext): NativeBrazeReactM brazeImpl.getFeatureFlagNumberProperty(flagId, key, promise) } + override fun getFeatureFlagTimestampProperty(flagId: String, key: String, promise: Promise) { + brazeImpl.getFeatureFlagTimestampProperty(flagId, key, promise) + } + + override fun getFeatureFlagJSONProperty(flagId: String, key: String, promise: Promise) { + brazeImpl.getFeatureFlagJSONProperty(flagId, key, promise) + } + + override fun getFeatureFlagImageProperty(flagId: String, key: String, promise: Promise) { + brazeImpl.getFeatureFlagImageProperty(flagId, key, promise) + } + override fun refreshFeatureFlags() { brazeImpl.refreshFeatureFlags() } diff --git a/android/src/oldarch/com/braze/reactbridge/BrazeReactBridge.kt b/android/src/oldarch/com/braze/reactbridge/BrazeReactBridge.kt index 9b6cffd..8af5f5f 100644 --- a/android/src/oldarch/com/braze/reactbridge/BrazeReactBridge.kt +++ b/android/src/oldarch/com/braze/reactbridge/BrazeReactBridge.kt @@ -398,6 +398,21 @@ class BrazeReactBridge(reactContext: ReactApplicationContext?) : ReactContextBas brazeImpl.getFeatureFlagNumberProperty(flagId, key, promise) } + @ReactMethod + fun getFeatureFlagTimestampProperty(flagId: String, key: String, promise: Promise) { + brazeImpl.getFeatureFlagTimestampProperty(flagId, key, promise) + } + + @ReactMethod + fun getFeatureFlagJSONProperty(flagId: String, key: String, promise: Promise) { + brazeImpl.getFeatureFlagJSONProperty(flagId, key, promise) + } + + @ReactMethod + fun getFeatureFlagImageProperty(flagId: String, key: String, promise: Promise) { + brazeImpl.getFeatureFlagImageProperty(flagId, key, promise) + } + @ReactMethod fun refreshFeatureFlags() { brazeImpl.refreshFeatureFlags() diff --git a/braze-react-native-sdk.podspec b/braze-react-native-sdk.podspec index 2ffcc49..4729f85 100644 --- a/braze-react-native-sdk.podspec +++ b/braze-react-native-sdk.podspec @@ -20,9 +20,9 @@ Pod::Spec.new do |s| install_modules_dependencies(s) - s.dependency 'BrazeKit', '~> 9.0.0' - s.dependency 'BrazeLocation', '~> 9.0.0' - s.dependency 'BrazeUI', '~> 9.0.0' + s.dependency 'BrazeKit', '~> 10.0.0' + s.dependency 'BrazeLocation', '~> 10.0.0' + s.dependency 'BrazeUI', '~> 10.0.0' # Swift/Objective-C compatibility s.pod_target_xcconfig = { diff --git a/iOS/BrazeReactBridge/BrazeReactBridge/BrazeReactBridge.mm b/iOS/BrazeReactBridge/BrazeReactBridge/BrazeReactBridge.mm index b9b9a6d..793b43b 100644 --- a/iOS/BrazeReactBridge/BrazeReactBridge/BrazeReactBridge.mm +++ b/iOS/BrazeReactBridge/BrazeReactBridge/BrazeReactBridge.mm @@ -634,8 +634,15 @@ - (nullable BRZNewsFeedCard *)getNewsFeedCardById:(NSString *)idString { static NSDictionary *RCTFormatPushPayload(BRZNotificationsPayload *payload) { NSMutableDictionary *eventData = [NSMutableDictionary dictionary]; - // Uses the `"push_` prefix for consistency with Android. The Swift SDK internally uses `"opened"`. - eventData[@"payload_type"] = @"push_opened"; + // Uses the `"push_` prefix for consistency with Android. + switch (payload.type) { + case BRZNotificationsPayloadTypeOpened: + eventData[@"payload_type"] = @"push_opened"; + break; + case BRZNotificationsPayloadTypeReceived: + eventData[@"payload_type"] = @"push_received"; + break; + } eventData[@"url"] = [payload.urlContext.url absoluteString]; eventData[@"use_webview"] = [NSNumber numberWithBool:payload.urlContext.useWebView]; @@ -1064,6 +1071,36 @@ - (BRZInAppMessageRaw *)getInAppMessageFromString:(NSString *)inAppMessageJSONSt resolve(numberProperty ? numberProperty : [NSNull null]); } +RCT_EXPORT_METHOD(getFeatureFlagJSONProperty:(NSString *)flagId + key:(NSString *)key + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + RCTLogInfo(@"getFeatureFlagJSONProperty called for key %@", key); + BRZFeatureFlag *featureFlag = [braze.featureFlags featureFlagWithId:flagId]; + NSDictionary *jsonProperty = RCTJSONClean([featureFlag jsonPropertyForKey:key]); + resolve(jsonProperty ? jsonProperty : [NSNull null]); +} + +RCT_EXPORT_METHOD(getFeatureFlagTimestampProperty:(NSString *)flagId + key:(NSString *)key + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + RCTLogInfo(@"getFeatureFlagTimestampProperty called for key %@", key); + BRZFeatureFlag *featureFlag = [braze.featureFlags featureFlagWithId:flagId]; + NSNumber *timestampProperty = [featureFlag timestampPropertyForKey:key]; + resolve(timestampProperty ? timestampProperty : [NSNull null]); +} + +RCT_EXPORT_METHOD(getFeatureFlagImageProperty:(NSString *)flagId + key:(NSString *)key + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) { + RCTLogInfo(@"getFeatureFlagImageProperty called for key %@", key); + BRZFeatureFlag *featureFlag = [braze.featureFlags featureFlagWithId:flagId]; + NSString *imageProperty = [featureFlag imagePropertyForKey:key]; + resolve(imageProperty ? imageProperty : [NSNull null]); +} + static NSArray *RCTFormatFeatureFlags(NSArray *featureFlags) { NSMutableArray *mappedFeatureFlags = [NSMutableArray arrayWithCapacity:[featureFlags count]]; [featureFlags enumerateObjectsUsingBlock:^(BRZFeatureFlag *flag, NSUInteger idx, BOOL *stop) { diff --git a/package.json b/package.json index 81ce035..a896769 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@braze/react-native-sdk", - "version": "11.0.0", + "version": "12.0.0", "description": "Braze SDK for React Native.", "main": "src/index.js", "types": "src/index.d.ts", diff --git a/src/NativeBrazeReactModule.ts b/src/NativeBrazeReactModule.ts index 8a4f1f3..02bb6c8 100644 --- a/src/NativeBrazeReactModule.ts +++ b/src/NativeBrazeReactModule.ts @@ -191,6 +191,9 @@ export interface Spec extends TurboModule { getFeatureFlagBooleanProperty(flagId: string, key: string): Promise; getFeatureFlagStringProperty(flagId: string, key: string): Promise; getFeatureFlagNumberProperty(flagId: string, key: string): Promise; + getFeatureFlagTimestampProperty(flagId: string, key: string): Promise; + getFeatureFlagJSONProperty(flagId: string, key: string): Promise; + getFeatureFlagImageProperty(flagId: string, key: string): Promise; refreshFeatureFlags(): void; logFeatureFlagImpression(flagId: string): void; setAdTrackingEnabled(adTrackingEnabled: boolean, googleAdvertisingId: string): void; diff --git a/src/braze.js b/src/braze.js index 1079030..964d06a 100644 --- a/src/braze.js +++ b/src/braze.js @@ -709,7 +709,6 @@ export class Braze { /** * Enables the Braze SDK after a previous call to disableSDK(). - * On iOS, the SDK will be enabled only after a subsequent call to startWithApiKey(). */ static enableSDK() { this.bridge.enableSDK(); @@ -776,7 +775,6 @@ export class Braze { this.bridge.setLastKnownLocation(latitude, longitude, altitude, horizontalAccuracy, verticalAccuracy); } - // Refresh Content Cards /** * Requests a refresh of the content cards from Braze's servers. */ @@ -933,6 +931,30 @@ export class Braze { return this.bridge.getFeatureFlagNumberProperty(id, key); } + /** + * Returns the timestamp property for the given feature flag ID. + * @returns {Promise} + */ + static getFeatureFlagTimestampProperty(id, key) { + return this.bridge.getFeatureFlagTimestampProperty(id, key); + } + + /** + * Returns the JSON property for the given feature flag ID. + * @returns {Promise} + */ + static getFeatureFlagJSONProperty(id, key) { + return this.bridge.getFeatureFlagJSONProperty(id, key); + } + + /** + * Returns the image property for the given feature flag ID. + * @returns {Promise} + */ + static getFeatureFlagImageProperty(id, key) { + return this.bridge.getFeatureFlagImageProperty(id, key); + } + /** * This method informs Braze whether ad-tracking has been enabled for this device. Note that the SDK does not * automatically collect this data. diff --git a/src/index.d.ts b/src/index.d.ts index d6bbb91..9db99ee 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -705,7 +705,6 @@ export function disableSDK(): void; /** * Enables the Braze SDK after a previous call to disableSDK(). - * On iOS, the SDK will be enabled only after a subsequent call to startWithApiKey(). */ export function enableSDK(): void; @@ -873,6 +872,39 @@ export interface FeatureFlagBooleanProperty { value: boolean; } +/** + * A Feature Flag timestamp property of type Number. + */ +export interface FeatureFlagTimestampProperty { + /** The type of Feature Flag property. */ + type: "timestamp"; + + /** The value of the property. */ + value: number; +} + +/** + * A Feature Flag JSON property of type Object. + */ +export interface FeatureFlagJSONProperty { + /** The type of Feature Flag property. */ + type: "jsonobject"; + + /** The value of the property. */ + value: object; +} + +/** + * A Feature Flag image property of type String. + */ +export interface FeatureFlagImageProperty { + /** The type of Feature Flag property. */ + type: "image"; + + /** The value of the property. */ + value: string; +} + /** * [Braze Feature Flags](https://www.braze.com/docs/developer_guide/platform_wide/feature_flags) */ @@ -881,7 +913,7 @@ export class FeatureFlag { enabled: boolean; /** Properties of this feature flag, listed as key-value pairs. */ - properties: Partial>; + properties: Partial>; /** The ID for this feature flag. */ id: string; @@ -938,6 +970,42 @@ export function getFeatureFlagStringProperty(id: string, key: string): Promise; +/** + * Get value of a feature flag timestamp property of type number. + * + * @param id - The ID of the feature flag. + * @param key - The key of the property. + * + * @returns A promise containing the value of the property if the key is found and is of type number. + * If the key is not found, if there is a type mismatch, or if there is no feature flag for that ID, + * this method will return a null. + */ +export function getFeatureFlagTimestampProperty(id: string, key: string): Promise; + +/** + * Get value of a feature flag JSON object property of type string. + * + * @param id - The ID of the feature flag. + * @param key - The key of the property. + * + * @returns A promise containing the value of the property if the key is found and is of type number. + * If the key is not found, if there is a type mismatch, or if there is no feature flag for that ID, + * this method will return a null. + */ +export function getFeatureFlagJSONProperty(id: string, key: string): Promise; + +/** + * Get value of a feature flag image property of type string. + * + * @param id - The ID of the feature flag. + * @param key - The key of the property. + * + * @returns A promise containing the value of the property if the key is found and is of type number. + * If the key is not found, if there is a type mismatch, or if there is no feature flag for that ID, + * this method will return a null. + */ +export function getFeatureFlagImageProperty(id: string, key: string): Promise; + /** * Requests a refresh of Feature Flags from the Braze server. */ @@ -1257,7 +1325,7 @@ export interface SDKAuthenticationErrorType { } export interface PushNotificationEvent { - /* Notification payload type. Only `push_opened` events are supported on iOS. */ + /* Notification payload type. */ payload_type: string; /* URL opened by the notification. */ diff --git a/yarn.lock b/yarn.lock index 703d28a..d635483 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2854,9 +2854,9 @@ fast-levenshtein@^2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-xml-parser@^4.0.12: - version "4.3.2" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz#761e641260706d6e13251c4ef8e3f5694d4b0d79" - integrity sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg== + version "4.4.1" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz#86dbf3f18edf8739326447bcaac31b4ae7f6514f" + integrity sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw== dependencies: strnum "^1.0.5" @@ -5899,16 +5899,16 @@ write-file-atomic@^4.0.2: signal-exit "^3.0.7" ws@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + version "6.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.3.tgz#ccc96e4add5fd6fedbc491903075c85c5a11d9ee" + integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== dependencies: async-limiter "~1.0.0" ws@^7, ws@^7.5.1: - version "7.5.9" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== xtend@~4.0.1: version "4.0.2"