From fb9c015ebcc98384de9f462dfba22912dac9ed6b Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Mon, 24 Mar 2025 16:34:44 +0000 Subject: [PATCH 1/6] Introduced Datadog Metro Config for Debug ID injection in RUM Errors --- example/android/app/build.gradle | 2 +- example/ios/Podfile.lock | 343 +-- example/metro.config.js | 3 +- example/src/screens/MainScreen.tsx | 3 +- package.json | 1 + packages/core/package.json | 15 +- packages/core/src/metro.ts | 8 + .../__tests__/__utils__/serializerUtils.ts | 100 + .../core/src/metro/__tests__/metro.test.ts | 355 +++ packages/core/src/metro/debugIdResolver.ts | 36 + packages/core/src/metro/metro.d.ts | 73 + .../core/src/metro/plugin/debugIdHelper.ts | 270 +++ packages/core/src/metro/plugin/metroConfig.ts | 65 + .../core/src/metro/plugin/metroSerializer.ts | 157 ++ packages/core/src/metro/plugin/metroTypes.ts | 94 + packages/core/src/metro/plugin/utils.ts | 143 ++ .../instrumentation/DdRumErrorTracking.tsx | 21 +- yarn.lock | 2110 ++++++++++------- 18 files changed, 2592 insertions(+), 1207 deletions(-) create mode 100644 packages/core/src/metro.ts create mode 100644 packages/core/src/metro/__tests__/__utils__/serializerUtils.ts create mode 100644 packages/core/src/metro/__tests__/metro.test.ts create mode 100644 packages/core/src/metro/debugIdResolver.ts create mode 100644 packages/core/src/metro/metro.d.ts create mode 100644 packages/core/src/metro/plugin/debugIdHelper.ts create mode 100644 packages/core/src/metro/plugin/metroConfig.ts create mode 100644 packages/core/src/metro/plugin/metroSerializer.ts create mode 100644 packages/core/src/metro/plugin/metroTypes.ts create mode 100644 packages/core/src/metro/plugin/utils.ts diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index b809bb09b..aef22ad73 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -38,7 +38,7 @@ react { // bundleAssetName = "MyApplication.android.bundle" // // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' - // entryFile = file("../js/MyApplication.android.js") + entryFile = file("../../index.tsx") // // A list of extra flags to pass to the 'bundle' commands. // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index b7dbb5668..77aa12171 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -17,26 +17,7 @@ PODS: - DatadogRUM (~> 2.27.0) - DatadogTrace (~> 2.27.0) - DatadogWebViewTracking (~> 2.27.0) - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.10.14.00) - - RCTRequired - - RCTTypeSafety - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - DatadogSDKReactNative/Tests (2.8.2): - DatadogCore (~> 2.27.0) - DatadogCrashReporting (~> 2.27.0) @@ -44,26 +25,7 @@ PODS: - DatadogRUM (~> 2.27.0) - DatadogTrace (~> 2.27.0) - DatadogWebViewTracking (~> 2.27.0) - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.10.14.00) - - RCTRequired - - RCTTypeSafety - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - DatadogSDKReactNativeSessionReplay (2.8.2): - DatadogSDKReactNative - DatadogSessionReplay (~> 2.27.0) @@ -115,52 +77,14 @@ PODS: - DatadogInternal (~> 2.27.0) - DatadogSDKReactNative - DatadogWebViewTracking (~> 2.27.0) - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.10.14.00) - - RCTRequired - - RCTTypeSafety - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - DatadogSDKReactNativeWebView/Tests (2.8.2): - DatadogInternal (~> 2.27.0) - DatadogSDKReactNative - DatadogWebViewTracking (~> 2.27.0) - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.10.14.00) - - RCTRequired - - RCTTypeSafety - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - react-native-webview - - React-NativeModulesApple - - React-RCTFabric - React-RCTText - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - DatadogSessionReplay (2.27.0): - DatadogInternal (= 2.27.0) - DatadogTrace (2.27.0): @@ -218,7 +142,6 @@ PODS: - React-RCTText (= 0.76.9) - React-RCTVibration (= 0.76.9) - React-callinvoker (0.76.9) - - React-Codegen (0.1.0) - React-Core (0.76.9): - glog - hermes-engine @@ -1461,71 +1384,7 @@ PODS: - react-native-crash-tester (0.2.3): - React-Core - react-native-safe-area-context (5.1.0): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.10.14.00) - - RCTRequired - - RCTTypeSafety - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - react-native-safe-area-context/common (= 5.1.0) - - react-native-safe-area-context/fabric (= 5.1.0) - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - - react-native-safe-area-context/common (5.1.0): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.10.14.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - - react-native-safe-area-context/fabric (5.1.0): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.10.14.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - react-native-safe-area-context/common - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - react-native-webview (13.14.2): - DoubleConversion - glog @@ -1820,88 +1679,21 @@ PODS: - React-perflogger - React-utils (= 0.76.9) - ReactNativeNavigation (8.0.0-snapshot.1658): - - DoubleConversion - - glog - - hermes-engine - HMSegmentedControl - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React - - React-Codegen - React-Core - React-CoreModules - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - React-RCTImage - React-RCTText - - React-rendererdebug - - React-rncore - - React-runtimeexecutor - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - ReactNativeNavigation/Core (= 8.0.0-snapshot.1658) - - Yoga - ReactNativeNavigation/Core (8.0.0-snapshot.1658): - - DoubleConversion - - glog - - hermes-engine - HMSegmentedControl - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React - - React-Codegen - React-Core - React-CoreModules - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - React-RCTImage - React-RCTText - - React-rendererdebug - - React-rncore - - React-runtimeexecutor - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - - RNCAsyncStorage (2.1.2): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.10.14.00) - - RCTRequired - - RCTTypeSafety + - RNCAsyncStorage (2.2.0): - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - - RNGestureHandler (2.25.0): + - RNGestureHandler (2.26.0): - DoubleConversion - glog - hermes-engine @@ -1923,29 +1715,6 @@ PODS: - ReactCommon/turbomodule/core - Yoga - RNScreens (4.5.0): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.10.14.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-RCTImage - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - RNScreens/common (= 4.5.0) - - Yoga - - RNScreens/common (4.5.0): - DoubleConversion - glog - hermes-engine @@ -2064,7 +1833,6 @@ SPEC REPOS: - HMSegmentedControl - OpenTelemetrySwiftApi - PLCrashReporter - - React-Codegen - SocketRocket EXTERNAL SOURCES: @@ -2225,9 +1993,9 @@ SPEC CHECKSUMS: DatadogInternal: 3c5cae6772295fd175a9de11e4747a9322aaa4e7 DatadogLogs: 09d6358dc7682f9d3eaea85dd418f82d2db3560c DatadogRUM: 0f267df8c9c8579a291870c2bce4549587391a07 - DatadogSDKReactNative: 1c754be7af8f4f23b7761b1f7f2d1119fb384233 - DatadogSDKReactNativeSessionReplay: 1d27df3478f5ecb7c00414a1d9bcd201f728670a - DatadogSDKReactNativeWebView: 039e9bdfd91add6d4c5592647eb3cc00cba94354 + DatadogSDKReactNative: 55c5868f9321a483bb6f592c1b2948345137a394 + DatadogSDKReactNativeSessionReplay: 5872833c5ef4d6c6bea2c10a7467c73e2fd3730c + DatadogSDKReactNativeWebView: 39ba21160714177c77d4b5fa36985c3a5a5703d7 DatadogSessionReplay: c23310d576ccfaaca9ecac6afafb0f12e5c480d4 DatadogTrace: f46c8220c73463d09741013f385a6e27cd39185b DatadogWebViewTracking: dc8376420c8686efd09d00752bc1034b639d180b @@ -2240,70 +2008,69 @@ SPEC CHECKSUMS: HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352 OpenTelemetrySwiftApi: aaee576ed961e0c348af78df58b61300e95bd104 PLCrashReporter: db59ef96fa3d25f3650040d02ec2798cffee75f2 - RCT-Folly: ea9d9256ba7f9322ef911169a9f696e5857b9e17 + RCT-Folly: 7b4f73a92ad9571b9dbdb05bb30fad927fa971e1 RCTDeprecation: ebe712bb05077934b16c6bf25228bdec34b64f83 RCTRequired: ca91e5dd26b64f577b528044c962baf171c6b716 RCTTypeSafety: e7678bd60850ca5a41df9b8dc7154638cb66871f React: 4641770499c39f45d4e7cde1eba30e081f9d8a3d React-callinvoker: 4bef67b5c7f3f68db5929ab6a4d44b8a002998ea - React-Codegen: 4b8b4817cea7a54b83851d4c1f91f79aa73de30a - React-Core: a68cea3e762814e60ecc3fa521c7f14c36c99245 - React-CoreModules: d81b1eaf8066add66299bab9d23c9f00c9484c7c - React-cxxreact: 984f8b1feeca37181d4e95301fcd6f5f6501c6ab + React-Core: 0a06707a0b34982efc4a556aff5dae4b22863455 + React-CoreModules: 907334e94314189c2e5eed4877f3efe7b26d85b0 + React-cxxreact: 3a1d5e8f4faa5e09be26614e9c8bbcae8d11b73d React-debug: 817160c07dc8d24d020fbd1eac7b3558ffc08964 - React-defaultsnativemodule: 18a684542f82ce1897552a1c4b847be414c9566e - React-domnativemodule: 90bdd4ec3ab38c47cfc3461c1e9283a8507d613f - React-Fabric: f6dade7007533daeb785ba5925039d83f343be4b - React-FabricComponents: b0655cc3e1b5ae12a4a1119aa7d8308f0ad33520 - React-FabricImage: 9b157c4c01ac2bf433f834f0e1e5fe234113a576 + React-defaultsnativemodule: a965cb39fb0a79276ab611793d39f52e59a9a851 + React-domnativemodule: d647f94e503c62c44f54291334b1aa22a30fa08b + React-Fabric: 64586dc191fc1c170372a638b8e722e4f1d0a09b + React-FabricComponents: b0ebd032387468ea700574c581b139f57a7497fb + React-FabricImage: 81f0e0794caf25ad1224fa406d288fbc1986607f React-featureflags: f2792b067a351d86fdc7bec23db3b9a2f2c8d26c - React-featureflagsnativemodule: 742a8325b3c821d2a1ca13a6d2a0fc72d04555e0 - React-graphics: 68969e4e49d73f89da7abef4116c9b5f466aa121 - React-hermes: ac0bcba26a5d288ebc99b500e1097da2d0297ddf - React-idlecallbacksnativemodule: d61d9c9816131bf70d3d80cd04889fc625ee523f - React-ImageManager: e906eec93a9eb6102a06576b89d48d80a4683020 - React-jserrorhandler: ac5dde01104ff444e043cad8f574ca02756e20d6 - React-jsi: 496fa2b9d63b726aeb07d0ac800064617d71211d - React-jsiexecutor: dd22ab48371b80f37a0a30d0e8915b6d0f43a893 - React-jsinspector: 4629ac376f5765e684d19064f2093e55c97fd086 - React-jsitracing: 7a1c9cd484248870cf660733cd3b8114d54c035f - React-logger: c4052eb941cca9a097ef01b59543a656dc088559 - React-Mapbuffer: 33546a3ebefbccb8770c33a1f8a5554fa96a54de - React-microtasksnativemodule: d80ff86c8902872d397d9622f1a97aadcc12cead - react-native-crash-tester: 48bde9d6f5256c61ef2e0c52dfc74256b26e55eb - react-native-safe-area-context: 60695fadbcee6ab51b28b835abb10ea983dbe181 - react-native-webview: c22f2daa3134c9e5b26ab4b47bde9f0df9093086 + React-featureflagsnativemodule: 95a02d895475de8ace78fedd76143866838bb720 + React-graphics: cbebe910e4a15b65b0bff94a4d3ed278894d6386 + React-hermes: ec18c10f5a69d49fb9b5e17ae95494e9ea13d4d3 + React-idlecallbacksnativemodule: 0c1ae840cc5587197cd926a3cb76828ad059d116 + React-ImageManager: f2a4c01c2ccb2193e60a20c135da74c7ca4d36f2 + React-jserrorhandler: 61d205b5a7cbc57fed3371dd7eed48c97f49fc64 + React-jsi: 95f7676103137861b79b0f319467627bcfa629ee + React-jsiexecutor: 41e0fe87cda9ea3970ffb872ef10f1ff8dbd1932 + React-jsinspector: 15578208796723e5c6f39069b6e8bf36863ef6e2 + React-jsitracing: 3758cdb155ea7711f0e77952572ea62d90c69f0b + React-logger: dbca7bdfd4aa5ef69431362bde6b36d49403cb20 + React-Mapbuffer: 6efad4a606c1fae7e4a93385ee096681ef0300dc + React-microtasksnativemodule: 8732b71aa66045da4bb341ddee1bb539f71e5f38 + react-native-crash-tester: 3ffaa64141427ca362079cb53559fe9a532487ae + react-native-safe-area-context: 04803a01f39f31cc6605a5531280b477b48f8a88 + react-native-webview: 1e12de2fad74c17b4f8b1b53ebd1e3baa0148d71 React-nativeconfig: 8efdb1ef1e9158c77098a93085438f7e7b463678 - React-NativeModulesApple: cebca2e5320a3d66e123cade23bd90a167ffce5e - React-perflogger: 72e653eb3aba9122f9e57cf012d22d2486f33358 - React-performancetimeline: cd6a9374a72001165995d2ab632f672df04076dc + React-NativeModulesApple: 958d4f6c5c2ace4c0f427cf7ef82e28ae6538a22 + React-perflogger: 9b4f13c0afe56bc7b4a0e93ec74b1150421ee22d + React-performancetimeline: 359db1cb889aa0282fafc5838331b0987c4915a9 React-RCTActionSheet: aacf2375084dea6e7c221f4a727e579f732ff342 - React-RCTAnimation: 395ab53fd064dff81507c15efb781c8684d9a585 - React-RCTAppDelegate: 345a6f1b82abc578437df0ce7e9c48740eca827c - React-RCTBlob: 13311e554c1a367de063c10ee7c5e6573b2dd1d6 - React-RCTFabric: 007b1a98201cc49b5bc6e1417d7fe3f6fc6e2b78 - React-RCTImage: 1b1f914bcc12187c49ba5d949dac38c2eb9f5cc8 - React-RCTLinking: 4ac7c42beb65e36fba0376f3498f3cd8dd0be7fa - React-RCTNetwork: 938902773add4381e84426a7aa17a2414f5f94f7 - React-RCTSettings: e848f1ba17a7a18479cf5a31d28145f567da8223 - React-RCTText: 7e98fafdde7d29e888b80f0b35544e0cb07913cf - React-RCTVibration: cd7d80affd97dc7afa62f9acd491419558b64b78 + React-RCTAnimation: d8c82deebebe3aaf7a843affac1b57cb2dc073d4 + React-RCTAppDelegate: 6c0377d9c4058773ea7073bb34bb9ebd6ddf5a84 + React-RCTBlob: 70a58c11a6a3500d1a12f2e51ca4f6c99babcff8 + React-RCTFabric: 7eb6dd2c8fda98cb860a572e3f4e4eb60d62c89e + React-RCTImage: 5e9d655ba6a790c31e3176016f9b47fd0978fbf0 + React-RCTLinking: 2a48338252805091f7521eaf92687206401bdf2a + React-RCTNetwork: 0c1282b377257f6b1c81934f72d8a1d0c010e4c3 + React-RCTSettings: f757b679a74e5962be64ea08d7865a7debd67b40 + React-RCTText: e7d20c490b407d3b4a2daa48db4bcd8ec1032af2 + React-RCTVibration: 8228e37144ca3122a91f1de16ba8e0707159cfec React-rendererconsistency: b4917053ecbaa91469c67a4319701c9dc0d40be6 - React-rendererdebug: aa181c36dd6cf5b35511d1ed875d6638fd38f0ec + React-rendererdebug: 81becbc8852b38d9b1b68672aa504556481330d5 React-rncore: 120d21715c9b4ba8f798bffe986cb769b988dd74 - React-RuntimeApple: d033becbbd1eba6f9f6e3af6f1893030ce203edd - React-RuntimeCore: 38af280bb678e66ba000a3c3d42920b2a138eebb + React-RuntimeApple: 52ed0e9e84a7c2607a901149fb13599a3c057655 + React-RuntimeCore: ca6189d2e53d86db826e2673fe8af6571b8be157 React-runtimeexecutor: 877596f82f5632d073e121cba2d2084b76a76899 - React-RuntimeHermes: 37aad735ff21ca6de2d8450a96de1afe9f86c385 - React-runtimescheduler: 8ec34cc885281a34696ea16c4fd86892d631f38d + React-RuntimeHermes: 3b752dc5d8a1661c9d1687391d6d96acfa385549 + React-runtimescheduler: 8321bb09175ace2a4f0b3e3834637eb85bf42ebe React-timing: 331cbf9f2668c67faddfd2e46bb7f41cbd9320b9 - React-utils: ed818f19ab445000d6b5c4efa9d462449326cc9f - ReactCodegen: f853a20cc9125c5521c8766b4b49375fec20648b - ReactCommon: 300d8d9c5cb1a6cd79a67cf5d8f91e4d477195f9 - ReactNativeNavigation: 3cba7b34997204db62b2a48d528a915ea29330c4 - RNCAsyncStorage: ab0ad9a78ead8b9f143f0238a5aa535777b12e65 - RNGestureHandler: 9c8bf98209e658e1ceb13026f176e4ede1f24491 - RNScreens: c7c659490e59cb0887cb098a9c9e9431392c05b2 + React-utils: 54df9ada708578c8ad40d92895d6fed03e0e8a9e + ReactCodegen: 21a52ccddc6479448fc91903a437dd23ddc7366c + ReactCommon: bfd3600989d79bc3acbe7704161b171a1480b9fd + ReactNativeNavigation: 50c1eef68b821e7265eff3a391d27ed18fdce459 + RNCAsyncStorage: 23e56519cc41d3bade3c8d4479f7760cb1c11996 + RNGestureHandler: 5889beefea1c9e0ea25f0c40ec94c5b3baed2cec + RNScreens: 606ab1cf68162f7ba0d049a31f2a84089a6fffb4 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 Yoga: feb4910aba9742cfedc059e2b2902e22ffe9954a diff --git a/example/metro.config.js b/example/metro.config.js index cea1cd7f5..95d294e90 100644 --- a/example/metro.config.js +++ b/example/metro.config.js @@ -3,6 +3,7 @@ const exclusionList = require('metro-config/src/defaults/exclusionList'); const escape = require('escape-string-regexp'); const pakCore = require('../packages/core/package.json'); const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); +const { withDatadogMetroConfig } = require('@datadog/mobile-react-native/metro'); const root = path.resolve(__dirname, '..'); @@ -42,4 +43,4 @@ const config = { } }; -module.exports = mergeConfig(getDefaultConfig(__dirname), config); +module.exports = withDatadogMetroConfig(mergeConfig(getDefaultConfig(__dirname), config)); \ No newline at end of file diff --git a/example/src/screens/MainScreen.tsx b/example/src/screens/MainScreen.tsx index 7e2bafe55..7f0fbdec2 100644 --- a/example/src/screens/MainScreen.tsx +++ b/example/src/screens/MainScreen.tsx @@ -11,7 +11,7 @@ import { } from 'react-native'; import styles from './styles'; import { APPLICATION_KEY, API_KEY } from '../../src/ddCredentials'; -import { DdSdkReactNative, TrackingConsent } from '@datadog/mobile-react-native'; +import { DdLogs, DdSdkReactNative, TrackingConsent } from '@datadog/mobile-react-native'; import { getTrackingConsent, saveTrackingConsent } from '../utils'; import { ConsentModal } from '../components/consent'; import { DdRum } from '../../../packages/core/src/rum/DdRum'; @@ -94,6 +94,7 @@ export default class MainScreen extends Component { componentDidMount() { this.updateTrackingConsent() + DdLogs.debug("[DATADOG SDK] Test React Native Debug Log"); } updateTrackingConsent() { diff --git a/package.json b/package.json index 97c91fe44..af366ba15 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "genversion": "3.0.2", "jest": "^29.7.0", "lerna": "8.1.6", + "metro": "^0.82.0", "pod-install": "0.1.14", "prettier": "2.2.0", "react": "18.3.1", diff --git a/packages/core/package.json b/packages/core/package.json index 1f6398086..7b9373b09 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -38,6 +38,18 @@ "react-native": "src/index", "source": "src", "module": "lib/module/index", + "exports": { + ".": { + "import": "./lib/module/index.js", + "require": "./lib/commonjs/index.js", + "types": "./lib/typescript/index.d.ts" + }, + "./metro": { + "import": "./lib/module/metro.js", + "require": "./lib/commonjs/metro.js", + "types": "./lib/typescript/metro.d.ts" + } + }, "publishConfig": { "access": "public" }, @@ -58,7 +70,8 @@ "jest": { "preset": "react-native", "moduleNameMapper": { - "@datadog/mobile-react-native": "../core/src" + "@datadog/mobile-react-native": "../core/src", + "@datadog/mobile-react-native/metro": "../core/src/metro" }, "modulePathIgnorePatterns": [ "/lib/" diff --git a/packages/core/src/metro.ts b/packages/core/src/metro.ts new file mode 100644 index 000000000..cbf2901f6 --- /dev/null +++ b/packages/core/src/metro.ts @@ -0,0 +1,8 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +import { withDatadogMetroConfig } from './metro/plugin/metroConfig'; + +export { withDatadogMetroConfig }; diff --git a/packages/core/src/metro/__tests__/__utils__/serializerUtils.ts b/packages/core/src/metro/__tests__/__utils__/serializerUtils.ts new file mode 100644 index 000000000..816893da7 --- /dev/null +++ b/packages/core/src/metro/__tests__/__utils__/serializerUtils.ts @@ -0,0 +1,100 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ + +// eslint-disable-next-line import/no-extraneous-dependencies +import countLines from 'metro/src/lib/countLines'; + +import type { + MetroSerializer, + MixedOutput, + Module, + MetroVirtualModuleOutput +} from '../../plugin/metroTypes'; +import { createCountingSet } from '../../plugin/utils'; + +export const mockSerializerArgsForEmptyModule = (): Parameters => { + return [ + 'index.js', + [], + { + entryPoints: new Set(), + dependencies: new Map(), + transformOptions: { + hot: false, + dev: false, + minify: false, + type: 'script', + unstable_transformProfile: 'hermes-stable' + } + }, + { + asyncRequireModulePath: 'asyncRequire', + createModuleId: (_filePath: string): number => 0, + dev: false, + getRunModuleStatement: (_moduleId: string | number): string => '', + includeAsyncPaths: false, + modulesOnly: false, + processModuleFilter: (_module: Module) => true, + projectRoot: '/project/root', + runBeforeMainModule: [], + runModule: false, + serverRoot: '/server/root', + shouldAddToIgnoreList: (_module: Module) => false + } + ]; +}; + +export const mockSerializerArgsForSourceMappingURLModule = (): Parameters => { + const mockedCode = '//# sourceMappingURL=index.android.bundle.map'; + return [ + 'index.js', + [ + >{ + dependencies: new Map(), + inverseDependencies: createCountingSet(), + output: [ + { + type: 'js/script/virtual', + data: { + code: mockedCode, + lineCount: countLines(mockedCode), + map: [] + } + } + ], + path: 'index.js', + getSource: () => { + return Buffer.from(mockedCode, 'utf-8'); + } + } + ], + { + entryPoints: new Set(), + dependencies: new Map(), + transformOptions: { + hot: false, + dev: false, + minify: false, + type: 'script', + unstable_transformProfile: 'hermes-stable' + } + }, + { + asyncRequireModulePath: 'asyncRequire', + createModuleId: (_filePath: string): number => 0, + dev: false, + getRunModuleStatement: (_moduleId: string | number): string => '', + includeAsyncPaths: false, + modulesOnly: false, + processModuleFilter: (_module: Module) => true, + projectRoot: '/project/root', + runBeforeMainModule: [], + runModule: false, + serverRoot: '/server/root', + shouldAddToIgnoreList: (_module: Module) => false + } + ]; +}; diff --git a/packages/core/src/metro/__tests__/metro.test.ts b/packages/core/src/metro/__tests__/metro.test.ts new file mode 100644 index 000000000..09f694482 --- /dev/null +++ b/packages/core/src/metro/__tests__/metro.test.ts @@ -0,0 +1,355 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +import { createHash } from 'crypto'; + +import { + createDebugIdFromString, + _replaceDebugIdInBundle, + _insertDebugIdCommentInBundle, + _isDebugIdInBundle +} from '../plugin/debugIdHelper'; +import { createDatadogMetroSerializer } from '../plugin/metroSerializer'; +import type { MetroSerializerOutput } from '../plugin/metroTypes'; +import { convertSerializerOutput } from '../plugin/utils'; + +import { + mockSerializerArgsForEmptyModule, + mockSerializerArgsForSourceMappingURLModule +} from './__utils__/serializerUtils'; + +const DEBUG_ID_CODE_SNIPPET = + 'var _datadogDebugIds,_datadogDebugIdMeta;void 0===_datadogDebugIds&&(_datadogDebugIds={});try{var stack=(new Error).stack;stack&&(_datadogDebugIds[stack]="__datadog_debug_id_placeholder__",_datadogDebugIdMeta="datadog-debug-id-__datadog_debug_id_placeholder__")}catch(e){}'; + +describe('Datadog Metro Plugin', () => { + describe('Datadog Metro Serializer', () => { + test('generates bundle and source map with UUID v5 Debug ID', async () => { + const codeSnippetHash = createHash('md5'); + codeSnippetHash.update(DEBUG_ID_CODE_SNIPPET); + const expectedDebugId = createDebugIdFromString( + codeSnippetHash.digest('hex') + ); + const serializer = createDatadogMetroSerializer(); + + const bundle = await serializer( + ...mockSerializerArgsForEmptyModule() + ); + if (typeof bundle === 'string') { + fail('Expected bundle to be an object with a "code" property'); + } + + const expectedCode = DEBUG_ID_CODE_SNIPPET.replaceAll( + '__datadog_debug_id_placeholder__', + expectedDebugId + ); + + expect(bundle.code).toEqual( + `${expectedCode}\n//# debugId=${expectedDebugId}` + ); + + const expectedMap = `{"version":3,"sources":["__datadog_debugid__"],"sourcesContent":["var _datadogDebugIds,_datadogDebugIdMeta;void 0===_datadogDebugIds&&(_datadogDebugIds={});try{var stack=(new Error).stack;stack&&(_datadogDebugIds[stack]=\\"${expectedDebugId}\\",_datadogDebugIdMeta=\\"datadog-debug-id-${expectedDebugId}\\")}catch(e){}"],"names":[],"mappings":"","debug_id":"${expectedDebugId}","debugId":"${expectedDebugId}"}`; + expect(bundle.map).toEqual(expectedMap); + }); + + test('debug ID comment is placed before sourceMappingURL in bundle', async () => { + const sourceMappingComment = + '//# sourceMappingURL=index.android.bundle.map'; + const codeSnippetHash = createHash('md5'); + codeSnippetHash.update( + `${DEBUG_ID_CODE_SNIPPET}\n${sourceMappingComment}` + ); + const expectedDebugId = createDebugIdFromString( + codeSnippetHash.digest('hex') + ); + const serializer = createDatadogMetroSerializer(); + + const bundle = await serializer( + ...mockSerializerArgsForSourceMappingURLModule() + ); + if (typeof bundle === 'string') { + fail('Expected bundle to be an object with a "code" property'); + } + + const expectedCode = [ + DEBUG_ID_CODE_SNIPPET.replaceAll( + '__datadog_debug_id_placeholder__', + expectedDebugId + ), + `//# debugId=${expectedDebugId}`, + sourceMappingComment + ].join('\n'); + + expect(bundle.code).toEqual(expectedCode); + + const expectedMap = `{"version":3,"sources":["__datadog_debugid__","index.js"],"sourcesContent":["var _datadogDebugIds,_datadogDebugIdMeta;void 0===_datadogDebugIds&&(_datadogDebugIds={});try{var stack=(new Error).stack;stack&&(_datadogDebugIds[stack]=\\"${expectedDebugId}\\",_datadogDebugIdMeta=\\"datadog-debug-id-${expectedDebugId}\\")}catch(e){}","//# sourceMappingURL=index.android.bundle.map"],"names":[],"mappings":"","debug_id":"${expectedDebugId}","debugId":"${expectedDebugId}"}`; + expect(bundle.map).toEqual(expectedMap); + }); + }); + + describe('Debug ID Helper', () => { + test('M createDebugIdFromString generates same UUID v5 Debug ID for same string', async () => { + for (let i = 0; i < 100; i++) { + const randomStr = `test-${Math.random() + .toString(36) + .substring(2, 15)}`; + const debugId1 = createDebugIdFromString(randomStr); + const debugId2 = createDebugIdFromString(randomStr); + expect(debugId1).toMatch(debugId2); + } + }); + + test('M createDebugIdFromString generates a valid UUID v5 Debug ID', async () => { + // https://www.rfc-editor.org/rfc/rfc9562.html#name-uuid-version-5 + const uuidV5Regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; + + for (let i = 0; i < 100; i++) { + const randomStr = `test-${Math.random() + .toString(36) + .substring(2, 15)}`; + const debugId = createDebugIdFromString(randomStr); + expect(debugId).toMatch(uuidV5Regex); + } + }); + + test('M _replaceDebugIdInBundle replaces existing Debug ID in bundle W { symbol = #, 1 space }', () => { + // GIVEN + const mockCode = [ + '"use strict"', + 'console.log("Test");', + '// # debugId=81094632-176f-2bd3-a143-768f1e98cb20' + ].join('\n'); + + // WHEN + const code = _replaceDebugIdInBundle('correct-debug-id', mockCode); + + // THEN + expect(code).toBe( + [ + '"use strict"', + 'console.log("Test");', + '//# debugId=correct-debug-id' + ].join('\n') + ); + }); + + test('M _replaceDebugIdInBundle replaces existing Debug ID in bundle W { symbol = @, no spaces }', () => { + // GIVEN + const mockCode = [ + '"use strict"', + 'console.log("Test");', + '//@debugId=81094632-176f-2bd3-a143-768f1e98cb20' + ].join('\n'); + + // WHEN + const code = _replaceDebugIdInBundle('correct-debug-id', mockCode); + + // THEN + expect(code).toBe( + [ + '"use strict"', + 'console.log("Test");', + '//# debugId=correct-debug-id' + ].join('\n') + ); + }); + + test('M _insertDebugIdCommentInBundle adds Debug ID comment at the end of bundle W { no sourcemap comment } ', () => { + // GIVEN + const mockCode = ['"use strict"', 'console.log("Test");'].join( + '\n' + ); + + // WHEN + const code = _insertDebugIdCommentInBundle( + 'test-debug-id', + mockCode + ); + + // THEN + expect(code).toBe( + [ + '"use strict"', + 'console.log("Test");', + '//# debugId=test-debug-id' + ].join('\n') + ); + }); + + test('M _insertDebugIdCommentInBundle adds Debug ID comment before sourcemap comment', () => { + // GIVEN + const mockCode = [ + '"use strict"', + 'console.log("Test");', + '//# sourceMappingURL=index.android.bundle' + ].join('\n'); + + // WHEN + const code = _insertDebugIdCommentInBundle( + 'test-debug-id', + mockCode + ); + + // THEN + expect(code).toBe( + [ + '"use strict"', + 'console.log("Test");', + '//# debugId=test-debug-id', + '//# sourceMappingURL=index.android.bundle' + ].join('\n') + ); + }); + + test('M _isDebugIdInBundle returns true if a debug ID is in bundle', () => { + // GIVEN + const mocks: string[] = [ + // Case #0 + [ + '"use strict"', + 'console.log("Test");', + '//#debugId=81094632-176f-2bd3-a143-768f1e98cb20' + ].join('\n'), + + // Case #1 + [ + '"use strict"', + 'console.log("Test");', + '// #debugId=81094632-176f-2bd3-a143-768f1e98cb20' + ].join('\n'), + + // Case #2 + [ + '"use strict"', + 'console.log("Test");', + '//# debugId=81094632-176f-2bd3-a143-768f1e98cb20' + ].join('\n'), + + // Case #3 + [ + '"use strict"', + 'console.log("Test");', + '// # debugId=81094632-176f-2bd3-a143-768f1e98cb20' + ].join('\n'), + + // Case #4 + [ + '"use strict"', + 'console.log("Test");', + '// @ debugId=81094632-176f-2bd3-a143-768f1e98cb20' + ].join('\n') + ]; + + // WHEN + const checks = mocks.map(mockCode => + _isDebugIdInBundle( + '81094632-176f-2bd3-a143-768f1e98cb20', + mockCode + ) + ); + + // THEN + expect(checks[0]).toBe(true); + expect(checks[1]).toBe(true); + expect(checks[2]).toBe(true); + expect(checks[3]).toBe(true); + expect(checks[4]).toBe(true); + }); + + test('M _isDebugIdInBundle returns true if the debug ID is different from provided and prints warning', () => { + const warnSpy = jest + .spyOn(console, 'warn') + .mockImplementation(() => {}); + + // GIVEN + const mockCode = [ + '"use strict"', + 'console.log("Test");', + '//#debugId=81094632-176f-2bd3-a143-768f1e98cb20' + ].join('\n'); + + // WHEN + const check = _isDebugIdInBundle('different-debug-id', mockCode); + + // THEN + expect(check).toBe(true); + expect(warnSpy).toHaveBeenCalledWith( + '[DATADOG METRO PLUGIN] The debug ID found in the file does not match the calculated debug ID.' + ); + }); + + test('M _isDebugIdInBundle returns false if the debug ID is not found', () => { + // GIVEN + const mockCode = ['"use strict"', 'console.log("Test");'].join( + '\n' + ); + + // WHEN + const check = _isDebugIdInBundle('different-debug-id', mockCode); + + // THEN + expect(check).toBe(false); + }); + }); + + describe('Debug ID Utils', () => { + test('M convertSerializerOutput returns bundle with map W { input type = string }', async () => { + // GIVEN + const output: MetroSerializerOutput = 'test-code'; + + // WHEN + const result = await convertSerializerOutput(output); + + // THEN + expect(result.code).toBe('test-code'); + expect(result.map).toBe('{}'); + }); + + test('M convertSerializerOutput returns bundle with map W { input type = { code, map } }', async () => { + // GIVEN + const output: MetroSerializerOutput = { + code: 'test-code', + map: '{"testMap":"test"}' + }; + + // WHEN + const result = await convertSerializerOutput(output); + + // THEN + expect(result.code).toBe('test-code'); + expect(result.map).toBe('{"testMap":"test"}'); + }); + + test('M convertSerializerOutput returns bundle with map W { input type = Promise }', async () => { + // GIVEN + const output: MetroSerializerOutput = new Promise(resolve => { + resolve('test-code-from-promise'); + }); + + // WHEN + const result = await convertSerializerOutput(output); + + // THEN + expect(result.code).toBe('test-code-from-promise'); + expect(result.map).toBe('{}'); + }); + + test('M convertSerializerOutput returns bundle with map W { input type = Promise<{ code, map }> }', async () => { + // GIVEN + const output: MetroSerializerOutput = new Promise(resolve => { + resolve({ + code: 'test-code-from-promise', + map: '{"testMap":"test"}' + }); + }); + + // WHEN + const result = await convertSerializerOutput(output); + + // THEN + expect(result.code).toBe('test-code-from-promise'); + expect(result.map).toBe('{"testMap":"test"}'); + }); + }); +}); diff --git a/packages/core/src/metro/debugIdResolver.ts b/packages/core/src/metro/debugIdResolver.ts new file mode 100644 index 000000000..939a25886 --- /dev/null +++ b/packages/core/src/metro/debugIdResolver.ts @@ -0,0 +1,36 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ + +// eslint-disable-next-line import/no-mutable-exports +let debugId: any | null = null; + +/** + * Loads the Datadog Debug ID dynamically + */ +function loadDebugId() { + if (typeof globalThis === 'undefined') { + return; + } + try { + const debugIds = (globalThis as any)._datadogDebugIds; + if (!debugIds || Object.keys(debugIds).length === 0) { + console.warn( + '[Datadog SDK] Debug ID not found. Are you using @datadog/mobile-react-native/metro config?' + ); + return; + } + + debugId = debugIds[Object.keys(debugIds)[0]]; + } catch (error) { + console.warn( + '[Datadog SDK] Error while retrieving Debug ID. Are you using @datadog/mobile-react-native/metro config?' + ); + } +} + +loadDebugId(); + +export { debugId }; diff --git a/packages/core/src/metro/metro.d.ts b/packages/core/src/metro/metro.d.ts new file mode 100644 index 000000000..b087f4cfe --- /dev/null +++ b/packages/core/src/metro/metro.d.ts @@ -0,0 +1,73 @@ +// MIT License + +// Copyright (c) Meta Platforms, Inc. and affiliates. + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +// https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro-runtime/src/modules/types.flow.js#L16 +declare type Bundle = { + modules: [number, string][]; + post: string; + pre: string; +}; + +// https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro/src/DeltaBundler/Serializers/baseJSBundle.js#L25 +declare module 'metro/src/DeltaBundler/Serializers/baseJSBundle' { + const baseJSBundle: ( + entryPoint: string, + preModules: ReadonlyArray, + graph: ReadOnlyGraph, + options: SerializerOptions + ) => Bundle; + export = baseJSBundle; +} + +// https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro/src/lib/bundleToString.js#L22 +declare module 'metro/src/lib/bundleToString' { + const bundleToString: ( + bundle: Bundle + ) => { + code: string; + metadata: BundleMetadata; + }; + + export = bundleToString; +} + +// https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro/src/DeltaBundler/Serializers/sourceMapString.js#L22 +declare module 'metro/src/DeltaBundler/Serializers/sourceMapString' { + import type { MixedOutput, Module } from 'metro'; + + const sourceMapString: ( + modules: Module[], + options: { + excludeSource?: boolean; + processModuleFilter?: (module: Module) => boolean; + shouldAddToIgnoreList?: (module: Module) => boolean; + getSourceUrl?: (module: Module) => string; + } + ) => string; + export = sourceMapString; +} + +// https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro/src/lib/countLines.js#L16 +declare module 'metro/src/lib/countLines' { + const countLines: (code: string) => number; + export = countLines; +} diff --git a/packages/core/src/metro/plugin/debugIdHelper.ts b/packages/core/src/metro/plugin/debugIdHelper.ts new file mode 100644 index 000000000..3c7a4f7f1 --- /dev/null +++ b/packages/core/src/metro/plugin/debugIdHelper.ts @@ -0,0 +1,270 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + * + * Aligned with the architecture of Sentry’s Metro config: + * https://github.com/getsentry/sentry-react-native/blob/17c0c2e8913030e4826d055284a735efad637312/packages/core/src/js/tools/sentryMetroSerializer.ts + */ + +import { createHash } from 'crypto'; +// eslint-disable-next-line import/no-extraneous-dependencies +import countLines from 'metro/src/lib/countLines'; + +import type { + Bundle, + MixedOutput, + Module, + MetroBundleWithMap, + DatadogDebugIdModule +} from './metroTypes'; +import { createCountingSet } from './utils'; + +/** + * Regex to match the Debug ID comment in the bundle. + */ +const DEBUG_ID_BUNDLE_REGEX = /\/\/\s?([#@])\s?debugId=([\d\-a-zA-Z]*$)/m; + +/** + * Path name for the Debug ID Metro Virtual Module. + */ +export const DEBUG_ID_MODULE_PATH = '__datadog_debugid__'; + +/** + * The initial placeholder for the injected Debug ID in the virtual module, replaced + * later by the actual Debug ID. + */ +export const DEBUG_ID_PLACEHOLDER = '__datadog_debug_id_placeholder__'; + +/** + * A comment that can be found at the end of the JS bundle, to specify the URL of the sourcemap. + * Ref: https://tc39.es/ecma426/#sec-linking-inline + */ +export const SOURCE_MAP_COMMENT = '//# sourceMappingURL='; + +/** + * The comment that will be appended at the end of the JS bundle, to specify the Debug ID. + * Ref: https://github.com/tc39/ecma426/blob/main/proposals/debug-id.md + */ +export const DEBUG_ID_COMMENT = '//# debugId='; + +/** + * The Debug ID is injected in the virtual module as a plain string, using this prefix. + * It is later retrieved by searching it in the bundle, using the same prefix. + */ +const DEBUG_ID_METADATA_PREFIX = 'datadog-debug-id-'; + +/** + * Creates a virtual module to embed a debug ID into the bundle. + * @param debugId - the debug ID to inject into the bundle, or a placeholder. + * @returns The Debug ID virtual module. + */ +export const createDebugIdModule = (debugId: string): DatadogDebugIdModule => { + let debugIdCode = createDebugIdSnippet(debugId); + + return { + setSource: (code: string) => { + debugIdCode = code; + }, + dependencies: new Map(), + getSource: () => Buffer.from(debugIdCode), + inverseDependencies: createCountingSet(), + path: DEBUG_ID_MODULE_PATH, + output: [ + { + type: 'js/script/virtual', + data: { + code: debugIdCode, + lineCount: countLines(debugIdCode), + map: [] + } + } + ] + }; +}; + +/** + * Injects the debug ID module into the list of pre-modules, + * ensuring that the prelude module (if present) stays at the top + * to correctly measure bundle startup time. + */ +export const addDebugIdModule = ( + preModules: readonly Module[], + debugIdModule: DatadogDebugIdModule +): Module[] => { + const result = [...preModules]; + const hasPrelude = result.length > 0 && result[0]?.path === '__prelude__'; + + if (hasPrelude) { + result.splice(1, 0, debugIdModule); + } else { + result.unshift(debugIdModule); + } + + return result; +}; + +/** + * Creates a minified JavaScript snippet that exposes the provided Debug ID + * on the global scope at runtime. + * + * @param debugId - The Debug ID to be injected into the global scope. + * @returns A minified JavaScript string that performs the injection. + */ +export const createDebugIdSnippet = (debugId: string) => { + return `var _datadogDebugIds,_datadogDebugIdMeta;void 0===_datadogDebugIds&&(_datadogDebugIds={});try{var stack=(new Error).stack;stack&&(_datadogDebugIds[stack]="${debugId}",_datadogDebugIdMeta="${DEBUG_ID_METADATA_PREFIX}${debugId}")}catch(e){}`; +}; + +/** + * Extracts the Debug ID from a bundle source string by locating the pattern + * "{@link DEBUG_ID_METADATA_PREFIX}`[DEBUG-ID]`" + * + * @param code - The source code of the bundle to search within. + * @returns The extracted Debug ID, or `undefined` if not found. + */ +export const getDebugIdFromBundleSource = ( + code: string +): string | undefined => { + const match = code.match( + new RegExp( + `${DEBUG_ID_METADATA_PREFIX}([0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12})` + ) + ); + + return match ? match[1] : undefined; +}; + +/** + * Creates a unique Debug ID from the given bundle, by using the content of its modules. + * @param bundle The bundle to create the Debug ID from. + * @returns The computed Debug ID. + */ +export const createDebugIdFromBundle = (bundle: Bundle): string => { + const hash = createHash('md5'); + hash.update(bundle.pre); + for (const [, code] of bundle.modules) { + hash.update(code); + } + + hash.update(bundle.post); + + return createDebugIdFromString(hash.digest('hex')); +}; + +/** + * Creates a unique Debug ID from the given string. + * Ref: https://github.com/expo/expo/blob/94a124894a355ad6e24f4bac5144986380686157/packages/%40expo/metro-config/src/serializer/debugId.ts#L15 + * @param str The string to create the Debug ID from. + * @returns The computed Debug ID. + */ +export const createDebugIdFromString = (str: string): string => { + const md5sum = createHash('md5'); + md5sum.update(str); + const md5Hash = md5sum.digest('hex'); + + // Position 16 is fixed to either 8, 9, a, or b in the uuid v4 spec (10xx in binary) + // RFC 4122 section 4.4 + const v4variant = ['8', '9', 'a', 'b'][ + md5Hash.substring(16, 17).charCodeAt(0) % 4 + ] as string; + + return `${md5Hash.substring(0, 8)}-${md5Hash.substring( + 8, + 12 + )}-4${md5Hash.substring(13, 16)}-${v4variant}${md5Hash.substring( + 17, + 20 + )}-${md5Hash.substring(20)}`.toLowerCase(); +}; + +/** + * Injects the given debug ID in the given code, and returns the modified code. + * + * It looks for a specific placeholder defined in {@link DEBUG_ID_PLACEHOLDER}, and replaces + * all its occurences with the given Debug ID. + * @param code The code to inject the Debug ID into. + * @param debugId The Debug ID to inject. + * @returns The modified code with the injected Debug ID. + */ +export const injectDebugIdInCode = (code: string, debugId: string): string => { + return code.replace(new RegExp(DEBUG_ID_PLACEHOLDER, 'g'), debugId); +}; + +/** + * Injects the given Debug ID in the given code (as a comment at the end of the file), and in the + * given sourcemap (as a top-level JSON property). + * @param debugId The Debug ID to inject. + * @param code The code to inject the Debug ID in. + * @param sourcemap The sourcemap to inject the Debug ID in. + * @returns The modified {@link MetroBundleWithMap} with the Debug ID + */ +export const injectDebugIdInCodeAndSourceMap = ( + debugId: string, + code: string, + sourcemap: string +): MetroBundleWithMap => { + let codeWithDebugId = code; + + if (_isDebugIdInBundle(debugId, code)) { + codeWithDebugId = _replaceDebugIdInBundle(debugId, code); + } else { + codeWithDebugId = _insertDebugIdCommentInBundle(debugId, code); + } + + // Insert the Debug ID as a top-level property of the sourcemap + const bundleMap: Record = JSON.parse(sourcemap); + bundleMap['debug_id'] = debugId; + bundleMap['debugId'] = debugId; + return { code: codeWithDebugId, map: JSON.stringify(bundleMap) }; +}; + +/** + * [INTERNAL] Checks if the debug ID is in the bundle, and prints a warning if it does not match the given one. + */ +export const _isDebugIdInBundle = ( + debugId: string, + bundleCode: string +): boolean => { + const match = bundleCode.match(DEBUG_ID_BUNDLE_REGEX); + if (!match || match.length < 2) { + return false; + } + + if (match[2] !== debugId) { + console.warn( + '[DATADOG METRO PLUGIN] The debug ID found in the file does not match the calculated debug ID.' + ); + } + + return true; +}; + +/** + * [INTERNAL] Replaces the existing Debug ID comment in the bundle with a new one, containing the given Debug ID. + */ +export const _replaceDebugIdInBundle = ( + debugId: string, + bundleCode: string +): string => { + return bundleCode.replace( + DEBUG_ID_BUNDLE_REGEX, + `${DEBUG_ID_COMMENT}${debugId}` + ); +}; + +/** + * [INTERNAL] Inserts the Debug ID comment in the bundle in the correct position. + */ +export const _insertDebugIdCommentInBundle = ( + debugId: string, + bundleCode: string +): string => { + const debugIdComment = `${DEBUG_ID_COMMENT}${debugId}`; + const indexOfSourceMapComment = bundleCode.lastIndexOf(SOURCE_MAP_COMMENT); + if (indexOfSourceMapComment === -1) { + return `${bundleCode}\n${debugIdComment}`; + } + const before = bundleCode.substring(0, indexOfSourceMapComment); + const after = bundleCode.substring(indexOfSourceMapComment); + return `${before}${debugIdComment}\n${after}`; +}; diff --git a/packages/core/src/metro/plugin/metroConfig.ts b/packages/core/src/metro/plugin/metroConfig.ts new file mode 100644 index 000000000..3630ee2be --- /dev/null +++ b/packages/core/src/metro/plugin/metroConfig.ts @@ -0,0 +1,65 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +import type { MetroConfig } from 'metro'; + +import { createDatadogMetroSerializer } from './metroSerializer'; +import type { DatadogMetroSerializer } from './metroTypes'; + +/** + * Custom Datadog Metro Configuration. + */ +export type DatadogMetroConfigOptions = { + /** + * Determines whether a Debug ID should be injected into bundles and sourcemaps. + * + * The Debug ID establishes a unique connection between a bundle and its corresponding sourcemap. + * It is highly recommended to keep this enabled unless you have a specific reason to disable it. + * + * Default: `true` + */ + useDebugId?: boolean; +}; + +/** + * Extends the Metro bundler configuration to integrate with Datadog. + * + * *Note: If a custom serializer is used and `config.useDebugId` is set to `true` (as it is by default), + * you must manually invoke `options.datadogBundleCallback` within the serializer.* + */ +export function withDatadogMetroConfig( + config: MetroConfig & DatadogMetroConfigOptions +): MetroConfig { + let newConfig = config; + + if (config.useDebugId ?? true) { + newConfig = withDatadogDebugId(config); + } + + return { + ...newConfig, + transformer: { + ...newConfig.transformer + } + }; +} + +/** + * Extends the Metro bundler configuration by enabling Debug ID injection. + * Ref: https://github.com/tc39/ecma426/blob/main/proposals/debug-id.md + */ +export function withDatadogDebugId(config: MetroConfig): MetroConfig { + const customSerializer = createDatadogMetroSerializer( + config.serializer?.customSerializer || undefined + ) as DatadogMetroSerializer; + + return { + ...config, + serializer: { + ...config.serializer, + customSerializer + } + }; +} diff --git a/packages/core/src/metro/plugin/metroSerializer.ts b/packages/core/src/metro/plugin/metroSerializer.ts new file mode 100644 index 000000000..12d75faa8 --- /dev/null +++ b/packages/core/src/metro/plugin/metroSerializer.ts @@ -0,0 +1,157 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + * + * Aligned with the architecture of Sentry’s Metro config: + * https://github.com/getsentry/sentry-react-native/blob/17c0c2e8913030e4826d055284a735efad637312/packages/core/src/js/tools/sentryMetroSerializer.ts + */ + +// eslint-disable-next-line import/no-extraneous-dependencies +import baseJSBundle from 'metro/src/DeltaBundler/Serializers/baseJSBundle'; +// eslint-disable-next-line import/no-extraneous-dependencies +import bundleToString from 'metro/src/lib/bundleToString'; + +import { + DEBUG_ID_MODULE_PATH, + DEBUG_ID_PLACEHOLDER, + addDebugIdModule, + createDebugIdFromBundle, + createDebugIdModule, + getDebugIdFromBundleSource, + injectDebugIdInCode, + injectDebugIdInCodeAndSourceMap +} from './debugIdHelper'; +import type { + Bundle, + DatadogDebugIdModule, + DatadogMetroSerializer, + MetroSerializer +} from './metroTypes'; +import { + convertSerializerOutput as getMetroBundleWithMap, + getSortedModules, + metroSourceMapString +} from './utils'; + +/** + * Creates a Metro serializer that adds a Debug ID module to the bundle. + * This module injects the Debug ID at runtime, making it globally accessible. + * + * @param customSerializer - Optional custom {@link MetroSerializer}. If provided, you are responsible + * for invoking `options.datadogBundleCallback` within it. + */ +export const createDatadogMetroSerializer = ( + customSerializer?: MetroSerializer +): DatadogMetroSerializer => { + const serializer = customSerializer || createDefaultMetroSerializer(); + return async (entryPoint, preModules, graph, options) => { + // Skip for hot reload mode + if (graph.transformOptions.hot) { + return serializer(entryPoint, preModules, graph, options); + } + + // Make sure we don't add the Debug ID module twice + const debugIdModuleExists = + preModules.findIndex( + module => module.path === DEBUG_ID_MODULE_PATH + ) !== -1; + if (debugIdModuleExists) { + return serializer(entryPoint, preModules, graph, options); + } + + // Create a virtual module to inject the Debug ID in a globally accessible property + const debugIdModule = createDebugIdModule(DEBUG_ID_PLACEHOLDER); + + // Set the datadogBundleCallback in the options, to be used later by the serializer + options.datadogBundleCallback = createDatadogBundleCallback( + debugIdModule + ); + + // Add the Debug ID virtual module to the pre-modules + const preModulesWithDebugId = addDebugIdModule( + preModules, + debugIdModule + ); + + // Run serializer + const serializerOutput = serializer( + entryPoint, + preModulesWithDebugId, + graph, + options + ); + + // Get serialized code and sourcemap + const { code, map } = await getMetroBundleWithMap(serializerOutput); + + // Retrieve the Debug ID, previously injected as a snippet of code in a virtual module by `datadogBundleCallback`. + const debugId = getDebugIdFromBundleSource(code); + if (!debugId) { + throw new Error( + '[DATADOG METRO PLUGIN] Debug ID was not found in the bundle. Call `options.datadogBundleCallback` if you are using a custom serializer.' + ); + } + + // Inject the Debug ID as a comment in the bundle, and as a top-level property in the sourcemap. + const result = injectDebugIdInCodeAndSourceMap(debugId, code, map); + + return result; + }; +}; + +/** + * Creates a Metro Bundle Serializer like metro does by default, while also calling the datadogBundleCallback. + * https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro/src/Server.js#L272-L307 + */ +export const createDefaultMetroSerializer = (): MetroSerializer => { + return (entryPoint, preModules, graph, options) => { + // Default metro bundle + // https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro/src/DeltaBundler/Serializers/baseJSBundle.js#L25 + let bundle = baseJSBundle(entryPoint, preModules, graph, options); + + // Modify the bundle through the datadogBundleCallback, if we are not in hot-reload mode + if ( + (options as any).datadogBundleCallback && + !graph.transformOptions.hot + ) { + bundle = (options as any).datadogBundleCallback(bundle); + } + + // Retrieves the processed code from the bundle + const { code } = bundleToString(bundle); + + // If we are in hot-reload mode, we skip sourcemaps generation, and only return the code. + if (graph.transformOptions.hot) { + return code; + } + + // Force generation of sourcemaps + const map = metroSourceMapString( + [...preModules, ...getSortedModules(graph, options)], + { + processModuleFilter: options.processModuleFilter, + shouldAddToIgnoreList: options.shouldAddToIgnoreList + } + ); + + return { code, map }; + }; +}; + +/** + * Creates a callback used to transform the given bundle by injecting the Debug ID snippet. + * @param debugIdModule - The virtual Debug ID module + * @returns The bundle callback + */ +export const createDatadogBundleCallback = ( + debugIdModule: DatadogDebugIdModule +) => { + return (bundle: Bundle) => { + const debugId = createDebugIdFromBundle(bundle); + const code = debugIdModule.getSource().toString(); + debugIdModule.setSource(injectDebugIdInCode(code, debugId)); + bundle.pre = injectDebugIdInCode(bundle.pre, debugId); + return bundle; + }; +}; diff --git a/packages/core/src/metro/plugin/metroTypes.ts b/packages/core/src/metro/plugin/metroTypes.ts new file mode 100644 index 000000000..112dcaab4 --- /dev/null +++ b/packages/core/src/metro/plugin/metroTypes.ts @@ -0,0 +1,94 @@ +// MIT License + +// Copyright (c) Meta Platforms, Inc. and affiliates. + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +// eslint-disable-next-line import/no-extraneous-dependencies +import type { + Module, + ReadOnlyGraph, + SerializerOptions, + MixedOutput, + MetroConfig +} from 'metro'; + +// https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro-config/types/configTypes.d.ts#L128 +export type MetroSerializerOutput = + | string + | MetroBundleWithMap + | Promise; + +// https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro-config/types/configTypes.d.ts#L122 +export type MetroSerializer = ( + entryPoint: string, + preModules: ReadonlyArray, + graph: ReadOnlyGraph, + options: SerializerOptions +) => MetroSerializerOutput; + +// https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro/src/lib/getAppendScripts.js#L61 +// https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro/src/lib/getPrependedScripts.js#L107 +export type MetroVirtualModuleOutput = { + type: 'js/script/virtual'; + data: { + code: string; + lineCount: number; + map: []; + }; +}; + +// https://github.com/facebook/metro/blob/v0.80.10/packages/metro/src/DeltaBundler/Serializers/sourceMapString.js#L22 +export type SourceMapString = ( + modules: Module[], + options: { + excludeSource?: boolean; + processModuleFilter?: (module: Module) => boolean; + shouldAddToIgnoreList?: (module: Module) => boolean; + } +) => string; + +// https://github.com/facebook/metro/blob/a3d021a0d021b5706372059f472715c63019e044/packages/metro-runtime/src/modules/types.flow.js#L16 +export type Bundle = { + modules: Array<[id: number, code: string]>; + post: string; + pre: string; +}; + +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +export type MetroBundleWithMap = { code: string; map: string }; + +export type DatadogMetroSerializer = ( + entryPoint: string, + preModules: ReadonlyArray, + graph: ReadOnlyGraph, + options: SerializerOptions & { + datadogBundleCallback?: (bundle: Bundle) => Bundle; + } +) => Promise; + +export type DatadogDebugIdModule = Module & { + setSource: (code: string) => void; +}; + +export type { MixedOutput, MetroConfig, Module }; diff --git a/packages/core/src/metro/plugin/utils.ts b/packages/core/src/metro/plugin/utils.ts new file mode 100644 index 000000000..721abd326 --- /dev/null +++ b/packages/core/src/metro/plugin/utils.ts @@ -0,0 +1,143 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ + +// eslint-disable-next-line import/no-extraneous-dependencies +import sourceMapString from 'metro/src/DeltaBundler/Serializers/sourceMapString'; +// eslint-disable-next-line import/no-extraneous-dependencies +import type CountingSet from 'metro/src/lib/CountingSet'; +import type { ReadOnlyGraph, Module, MixedOutput } from 'metro'; + +import type { + MetroSerializerOutput, + MetroBundleWithMap, + SourceMapString +} from './metroTypes'; + +/** + * Lazy-init reference for {@link createCountingSet} resolved function. + */ +let createCountingSetFunc: (() => CountingSet) | undefined; + +/** + * Lazy-init reference for {@link metroSourceMapString} resolved function. + */ +let sourceMapStringFunc: SourceMapString | undefined; + +/** + * This function ensures that modules in source maps are sorted in the same + * order as in a plain JS bundle. + * + * https://github.com/facebook/metro/blob/76413561abb3757285e0cb0305f1f9f616fa2b6c/packages/metro/src/Server.js#L1086C1-L1095C7 + */ +export function getSortedModules( + graph: ReadOnlyGraph, + { createModuleId }: { createModuleId: (file: string) => number } +): readonly Module[] { + const modules = [...graph.dependencies.values()]; + + // Assign IDs to modules in a consistent order + for (const module of modules) { + createModuleId(module.path); + } + // Sort by IDs + return modules.sort( + (a: Module, b: Module) => + createModuleId(a.path) - createModuleId(b.path) + ); +} + +/** + * CountingSet was added in Metro 0.71.2 - a modified `Set` that only deletes items when the + * number of `delete(item)` calls matches the number of `add(item)` calls. + * + * https://github.com/facebook/metro/commit/fc29a1177f883144674cf85a813b58567f69d545 + */ +export const createCountingSet = () => { + if (createCountingSetFunc) { + return createCountingSetFunc(); + } + + try { + createCountingSetFunc = () => { + const { + default: MetroCountingSet + // eslint-disable-next-line global-require, import/no-extraneous-dependencies, @typescript-eslint/no-var-requires + } = require('metro/src/lib/CountingSet'); + return new MetroCountingSet(); + }; + } catch (_) { + createCountingSetFunc = () => + (new Set() as unknown) as CountingSet; + } + + return createCountingSetFunc(); +}; +/** + * In Metro versions prior to v0.80.10, `sourceMapString` was exported as a default export. + * Starting with v0.80.10, it became a named export. + * + * @returns The resolved `sourceMapString` function, of type {@link SourceMapString} + */ +export const metroSourceMapString: SourceMapString = ( + modules: Module[], + options: { + excludeSource?: boolean; + processModuleFilter?: (module: Module) => boolean; + shouldAddToIgnoreList?: (module: Module) => boolean; + } +): string => { + if (sourceMapStringFunc) { + return sourceMapStringFunc(modules, options); + } + + if (typeof sourceMapString === 'function') { + sourceMapStringFunc = sourceMapString; + } else if ( + sourceMapString && + typeof sourceMapString === 'object' && + typeof sourceMapString['sourceMapString'] === 'function' + ) { + sourceMapStringFunc = (sourceMapString as { + sourceMapString: SourceMapString; + }).sourceMapString; + } + + if (!sourceMapStringFunc) { + throw new Error( + "[DATADOG METRO PLUGIN] Cannot find sourceMapString function in 'metro/src/DeltaBundler/Serializers/sourceMapString'" + ); + } + + return sourceMapStringFunc(modules, options); +}; + +/** + * Converts the serializer result of type {@link MetroSerializerOutput} to {@link MetroBundleWithMap}. + */ +export const convertSerializerOutput = async ( + output: MetroSerializerOutput +): Promise => { + const parse = (obj: MetroSerializerOutput) => { + // Plain String + if (typeof obj === 'string') { + return { code: obj, map: '{}' }; + } + + // Dictionary + if ('map' in obj) { + return { code: obj.code, map: obj.map }; + } + + return undefined; + }; + + const value = parse(output); + if (!value) { + return parse(await output) ?? { code: '', map: '{}' }; + } else { + return value; + } +}; diff --git a/packages/core/src/rum/instrumentation/DdRumErrorTracking.tsx b/packages/core/src/rum/instrumentation/DdRumErrorTracking.tsx index ecdc99228..d719305b3 100644 --- a/packages/core/src/rum/instrumentation/DdRumErrorTracking.tsx +++ b/packages/core/src/rum/instrumentation/DdRumErrorTracking.tsx @@ -9,6 +9,7 @@ import type { ErrorHandlerCallback } from 'react-native'; import { InternalLog } from '../../InternalLog'; import { SdkVerbosity } from '../../SdkVerbosity'; import { DdLogs } from '../../logs/DdLogs'; +import { debugId } from '../../metro/debugIdResolver'; import { getErrorMessage, getErrorStackTrace, @@ -145,7 +146,12 @@ export class DdRumErrorTracking { context: object = {} ): Promise<[void, void]> => { return Promise.all([ - DdRum.addError(message, source, stacktrace, context), + DdRum.addError( + message, + source, + stacktrace, + DdRumErrorTracking.getErrorContext(context) + ), DdLogs.error( message, errorName, @@ -160,4 +166,17 @@ export class DdRumErrorTracking { ) ]); }; + + private static getErrorContext = ( + originalContext: any + ): Record => { + const _debugId = debugId; + if (!_debugId) { + return originalContext; + } + return { + ...originalContext, + '_dd.debug_id': _debugId + }; + }; } diff --git a/yarn.lock b/yarn.lock index 1980dfe87..49e1d060b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -109,618 +109,622 @@ __metadata: linkType: hard "@aws-sdk/client-cloudwatch-logs@npm:^3.624.0": - version: 3.817.0 - resolution: "@aws-sdk/client-cloudwatch-logs@npm:3.817.0" + version: 3.830.0 + resolution: "@aws-sdk/client-cloudwatch-logs@npm:3.830.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.816.0 - "@aws-sdk/credential-provider-node": 3.817.0 - "@aws-sdk/middleware-host-header": 3.804.0 - "@aws-sdk/middleware-logger": 3.804.0 - "@aws-sdk/middleware-recursion-detection": 3.804.0 - "@aws-sdk/middleware-user-agent": 3.816.0 - "@aws-sdk/region-config-resolver": 3.808.0 - "@aws-sdk/types": 3.804.0 - "@aws-sdk/util-endpoints": 3.808.0 - "@aws-sdk/util-user-agent-browser": 3.804.0 - "@aws-sdk/util-user-agent-node": 3.816.0 - "@smithy/config-resolver": ^4.1.2 - "@smithy/core": ^3.3.3 - "@smithy/eventstream-serde-browser": ^4.0.2 - "@smithy/eventstream-serde-config-resolver": ^4.1.0 - "@smithy/eventstream-serde-node": ^4.0.2 - "@smithy/fetch-http-handler": ^5.0.2 - "@smithy/hash-node": ^4.0.2 - "@smithy/invalid-dependency": ^4.0.2 - "@smithy/middleware-content-length": ^4.0.2 - "@smithy/middleware-endpoint": ^4.1.6 - "@smithy/middleware-retry": ^4.1.7 - "@smithy/middleware-serde": ^4.0.5 - "@smithy/middleware-stack": ^4.0.2 - "@smithy/node-config-provider": ^4.1.1 - "@smithy/node-http-handler": ^4.0.4 - "@smithy/protocol-http": ^5.1.0 - "@smithy/smithy-client": ^4.2.6 - "@smithy/types": ^4.2.0 - "@smithy/url-parser": ^4.0.2 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/credential-provider-node": 3.830.0 + "@aws-sdk/middleware-host-header": 3.821.0 + "@aws-sdk/middleware-logger": 3.821.0 + "@aws-sdk/middleware-recursion-detection": 3.821.0 + "@aws-sdk/middleware-user-agent": 3.828.0 + "@aws-sdk/region-config-resolver": 3.821.0 + "@aws-sdk/types": 3.821.0 + "@aws-sdk/util-endpoints": 3.828.0 + "@aws-sdk/util-user-agent-browser": 3.821.0 + "@aws-sdk/util-user-agent-node": 3.828.0 + "@smithy/config-resolver": ^4.1.4 + "@smithy/core": ^3.5.3 + "@smithy/eventstream-serde-browser": ^4.0.4 + "@smithy/eventstream-serde-config-resolver": ^4.1.2 + "@smithy/eventstream-serde-node": ^4.0.4 + "@smithy/fetch-http-handler": ^5.0.4 + "@smithy/hash-node": ^4.0.4 + "@smithy/invalid-dependency": ^4.0.4 + "@smithy/middleware-content-length": ^4.0.4 + "@smithy/middleware-endpoint": ^4.1.11 + "@smithy/middleware-retry": ^4.1.12 + "@smithy/middleware-serde": ^4.0.8 + "@smithy/middleware-stack": ^4.0.4 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/node-http-handler": ^4.0.6 + "@smithy/protocol-http": ^5.1.2 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 + "@smithy/url-parser": ^4.0.4 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.14 - "@smithy/util-defaults-mode-node": ^4.0.14 - "@smithy/util-endpoints": ^3.0.4 - "@smithy/util-middleware": ^4.0.2 - "@smithy/util-retry": ^4.0.3 + "@smithy/util-defaults-mode-browser": ^4.0.19 + "@smithy/util-defaults-mode-node": ^4.0.19 + "@smithy/util-endpoints": ^3.0.6 + "@smithy/util-middleware": ^4.0.4 + "@smithy/util-retry": ^4.0.5 "@smithy/util-utf8": ^4.0.0 "@types/uuid": ^9.0.1 tslib: ^2.6.2 uuid: ^9.0.1 - checksum: 24490161138c52fc76adac990dd332c5956367d0b21e752ae583435c096378ca0a317b922825e8ed6ceabfc3200eae23e227785ed268d604d0ea5266a400d9d8 + checksum: fb777d191e6728b8fffddeb1e5c5214933f56f7691b298eb3087687aa7652ecfdc1e940a09c06b6f088c67e27aed375b0e555ec8121542cce6c1d6f821da1dc4 languageName: node linkType: hard -"@aws-sdk/client-cognito-identity@npm:3.817.0": - version: 3.817.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.817.0" +"@aws-sdk/client-cognito-identity@npm:3.830.0": + version: 3.830.0 + resolution: "@aws-sdk/client-cognito-identity@npm:3.830.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.816.0 - "@aws-sdk/credential-provider-node": 3.817.0 - "@aws-sdk/middleware-host-header": 3.804.0 - "@aws-sdk/middleware-logger": 3.804.0 - "@aws-sdk/middleware-recursion-detection": 3.804.0 - "@aws-sdk/middleware-user-agent": 3.816.0 - "@aws-sdk/region-config-resolver": 3.808.0 - "@aws-sdk/types": 3.804.0 - "@aws-sdk/util-endpoints": 3.808.0 - "@aws-sdk/util-user-agent-browser": 3.804.0 - "@aws-sdk/util-user-agent-node": 3.816.0 - "@smithy/config-resolver": ^4.1.2 - "@smithy/core": ^3.3.3 - "@smithy/fetch-http-handler": ^5.0.2 - "@smithy/hash-node": ^4.0.2 - "@smithy/invalid-dependency": ^4.0.2 - "@smithy/middleware-content-length": ^4.0.2 - "@smithy/middleware-endpoint": ^4.1.6 - "@smithy/middleware-retry": ^4.1.7 - "@smithy/middleware-serde": ^4.0.5 - "@smithy/middleware-stack": ^4.0.2 - "@smithy/node-config-provider": ^4.1.1 - "@smithy/node-http-handler": ^4.0.4 - "@smithy/protocol-http": ^5.1.0 - "@smithy/smithy-client": ^4.2.6 - "@smithy/types": ^4.2.0 - "@smithy/url-parser": ^4.0.2 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/credential-provider-node": 3.830.0 + "@aws-sdk/middleware-host-header": 3.821.0 + "@aws-sdk/middleware-logger": 3.821.0 + "@aws-sdk/middleware-recursion-detection": 3.821.0 + "@aws-sdk/middleware-user-agent": 3.828.0 + "@aws-sdk/region-config-resolver": 3.821.0 + "@aws-sdk/types": 3.821.0 + "@aws-sdk/util-endpoints": 3.828.0 + "@aws-sdk/util-user-agent-browser": 3.821.0 + "@aws-sdk/util-user-agent-node": 3.828.0 + "@smithy/config-resolver": ^4.1.4 + "@smithy/core": ^3.5.3 + "@smithy/fetch-http-handler": ^5.0.4 + "@smithy/hash-node": ^4.0.4 + "@smithy/invalid-dependency": ^4.0.4 + "@smithy/middleware-content-length": ^4.0.4 + "@smithy/middleware-endpoint": ^4.1.11 + "@smithy/middleware-retry": ^4.1.12 + "@smithy/middleware-serde": ^4.0.8 + "@smithy/middleware-stack": ^4.0.4 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/node-http-handler": ^4.0.6 + "@smithy/protocol-http": ^5.1.2 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 + "@smithy/url-parser": ^4.0.4 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.14 - "@smithy/util-defaults-mode-node": ^4.0.14 - "@smithy/util-endpoints": ^3.0.4 - "@smithy/util-middleware": ^4.0.2 - "@smithy/util-retry": ^4.0.3 + "@smithy/util-defaults-mode-browser": ^4.0.19 + "@smithy/util-defaults-mode-node": ^4.0.19 + "@smithy/util-endpoints": ^3.0.6 + "@smithy/util-middleware": ^4.0.4 + "@smithy/util-retry": ^4.0.5 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: 8c416d80b23a3d22a0dd657531b245058cb58b44d8ff66e7bc1fffc94cd8492923323852b15707cfc3beb1ae9ffd043841d2bd079418002989913d89653692ad + checksum: 8b4360286b40ff2f21df0cf1ee666d6cfa0a961d2fe21c37d5050a2a0aa50d66efdd42b92087b26689bde28de3a0b2d24f1aecffe4528da4a7a757a61cf8cd38 languageName: node linkType: hard "@aws-sdk/client-iam@npm:^3.624.0": - version: 3.817.0 - resolution: "@aws-sdk/client-iam@npm:3.817.0" + version: 3.830.0 + resolution: "@aws-sdk/client-iam@npm:3.830.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.816.0 - "@aws-sdk/credential-provider-node": 3.817.0 - "@aws-sdk/middleware-host-header": 3.804.0 - "@aws-sdk/middleware-logger": 3.804.0 - "@aws-sdk/middleware-recursion-detection": 3.804.0 - "@aws-sdk/middleware-user-agent": 3.816.0 - "@aws-sdk/region-config-resolver": 3.808.0 - "@aws-sdk/types": 3.804.0 - "@aws-sdk/util-endpoints": 3.808.0 - "@aws-sdk/util-user-agent-browser": 3.804.0 - "@aws-sdk/util-user-agent-node": 3.816.0 - "@smithy/config-resolver": ^4.1.2 - "@smithy/core": ^3.3.3 - "@smithy/fetch-http-handler": ^5.0.2 - "@smithy/hash-node": ^4.0.2 - "@smithy/invalid-dependency": ^4.0.2 - "@smithy/middleware-content-length": ^4.0.2 - "@smithy/middleware-endpoint": ^4.1.6 - "@smithy/middleware-retry": ^4.1.7 - "@smithy/middleware-serde": ^4.0.5 - "@smithy/middleware-stack": ^4.0.2 - "@smithy/node-config-provider": ^4.1.1 - "@smithy/node-http-handler": ^4.0.4 - "@smithy/protocol-http": ^5.1.0 - "@smithy/smithy-client": ^4.2.6 - "@smithy/types": ^4.2.0 - "@smithy/url-parser": ^4.0.2 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/credential-provider-node": 3.830.0 + "@aws-sdk/middleware-host-header": 3.821.0 + "@aws-sdk/middleware-logger": 3.821.0 + "@aws-sdk/middleware-recursion-detection": 3.821.0 + "@aws-sdk/middleware-user-agent": 3.828.0 + "@aws-sdk/region-config-resolver": 3.821.0 + "@aws-sdk/types": 3.821.0 + "@aws-sdk/util-endpoints": 3.828.0 + "@aws-sdk/util-user-agent-browser": 3.821.0 + "@aws-sdk/util-user-agent-node": 3.828.0 + "@smithy/config-resolver": ^4.1.4 + "@smithy/core": ^3.5.3 + "@smithy/fetch-http-handler": ^5.0.4 + "@smithy/hash-node": ^4.0.4 + "@smithy/invalid-dependency": ^4.0.4 + "@smithy/middleware-content-length": ^4.0.4 + "@smithy/middleware-endpoint": ^4.1.11 + "@smithy/middleware-retry": ^4.1.12 + "@smithy/middleware-serde": ^4.0.8 + "@smithy/middleware-stack": ^4.0.4 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/node-http-handler": ^4.0.6 + "@smithy/protocol-http": ^5.1.2 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 + "@smithy/url-parser": ^4.0.4 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.14 - "@smithy/util-defaults-mode-node": ^4.0.14 - "@smithy/util-endpoints": ^3.0.4 - "@smithy/util-middleware": ^4.0.2 - "@smithy/util-retry": ^4.0.3 + "@smithy/util-defaults-mode-browser": ^4.0.19 + "@smithy/util-defaults-mode-node": ^4.0.19 + "@smithy/util-endpoints": ^3.0.6 + "@smithy/util-middleware": ^4.0.4 + "@smithy/util-retry": ^4.0.5 "@smithy/util-utf8": ^4.0.0 - "@smithy/util-waiter": ^4.0.3 + "@smithy/util-waiter": ^4.0.5 tslib: ^2.6.2 - checksum: 7b603eef30a910bae8c8d295374169684d472292c04508d5cd09132ac3a2cd337f2fc6c45aa78551fd46f4000cfc71ef7f4d9cd02c37aa83f4f9916ef3d74ea8 + checksum: 3a4f7f2e2e47990446f1d76ab1858332d47a0bd073f8252a17c55b9ac60810f99583bd233a7b37bab151d8b7b897feea9c144837aa102ca5c948082dde8633f5 languageName: node linkType: hard "@aws-sdk/client-lambda@npm:^3.624.0": - version: 3.817.0 - resolution: "@aws-sdk/client-lambda@npm:3.817.0" + version: 3.830.0 + resolution: "@aws-sdk/client-lambda@npm:3.830.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.816.0 - "@aws-sdk/credential-provider-node": 3.817.0 - "@aws-sdk/middleware-host-header": 3.804.0 - "@aws-sdk/middleware-logger": 3.804.0 - "@aws-sdk/middleware-recursion-detection": 3.804.0 - "@aws-sdk/middleware-user-agent": 3.816.0 - "@aws-sdk/region-config-resolver": 3.808.0 - "@aws-sdk/types": 3.804.0 - "@aws-sdk/util-endpoints": 3.808.0 - "@aws-sdk/util-user-agent-browser": 3.804.0 - "@aws-sdk/util-user-agent-node": 3.816.0 - "@smithy/config-resolver": ^4.1.2 - "@smithy/core": ^3.3.3 - "@smithy/eventstream-serde-browser": ^4.0.2 - "@smithy/eventstream-serde-config-resolver": ^4.1.0 - "@smithy/eventstream-serde-node": ^4.0.2 - "@smithy/fetch-http-handler": ^5.0.2 - "@smithy/hash-node": ^4.0.2 - "@smithy/invalid-dependency": ^4.0.2 - "@smithy/middleware-content-length": ^4.0.2 - "@smithy/middleware-endpoint": ^4.1.6 - "@smithy/middleware-retry": ^4.1.7 - "@smithy/middleware-serde": ^4.0.5 - "@smithy/middleware-stack": ^4.0.2 - "@smithy/node-config-provider": ^4.1.1 - "@smithy/node-http-handler": ^4.0.4 - "@smithy/protocol-http": ^5.1.0 - "@smithy/smithy-client": ^4.2.6 - "@smithy/types": ^4.2.0 - "@smithy/url-parser": ^4.0.2 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/credential-provider-node": 3.830.0 + "@aws-sdk/middleware-host-header": 3.821.0 + "@aws-sdk/middleware-logger": 3.821.0 + "@aws-sdk/middleware-recursion-detection": 3.821.0 + "@aws-sdk/middleware-user-agent": 3.828.0 + "@aws-sdk/region-config-resolver": 3.821.0 + "@aws-sdk/types": 3.821.0 + "@aws-sdk/util-endpoints": 3.828.0 + "@aws-sdk/util-user-agent-browser": 3.821.0 + "@aws-sdk/util-user-agent-node": 3.828.0 + "@smithy/config-resolver": ^4.1.4 + "@smithy/core": ^3.5.3 + "@smithy/eventstream-serde-browser": ^4.0.4 + "@smithy/eventstream-serde-config-resolver": ^4.1.2 + "@smithy/eventstream-serde-node": ^4.0.4 + "@smithy/fetch-http-handler": ^5.0.4 + "@smithy/hash-node": ^4.0.4 + "@smithy/invalid-dependency": ^4.0.4 + "@smithy/middleware-content-length": ^4.0.4 + "@smithy/middleware-endpoint": ^4.1.11 + "@smithy/middleware-retry": ^4.1.12 + "@smithy/middleware-serde": ^4.0.8 + "@smithy/middleware-stack": ^4.0.4 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/node-http-handler": ^4.0.6 + "@smithy/protocol-http": ^5.1.2 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 + "@smithy/url-parser": ^4.0.4 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.14 - "@smithy/util-defaults-mode-node": ^4.0.14 - "@smithy/util-endpoints": ^3.0.4 - "@smithy/util-middleware": ^4.0.2 - "@smithy/util-retry": ^4.0.3 - "@smithy/util-stream": ^4.2.0 + "@smithy/util-defaults-mode-browser": ^4.0.19 + "@smithy/util-defaults-mode-node": ^4.0.19 + "@smithy/util-endpoints": ^3.0.6 + "@smithy/util-middleware": ^4.0.4 + "@smithy/util-retry": ^4.0.5 + "@smithy/util-stream": ^4.2.2 "@smithy/util-utf8": ^4.0.0 - "@smithy/util-waiter": ^4.0.3 + "@smithy/util-waiter": ^4.0.5 tslib: ^2.6.2 - checksum: 4d3ce7dbcae6da13eed4fba847716420be630471aacbc12a256581f512031ecc7bac1d6b4962d0f3e3155e45c7730ad6037e49e0e76e36277118e700271e6912 + checksum: 21c6c4a1667431297167546f4f34ee46f4b4eafb62b7d7e53b23235e27f8d22cc2fafafc10b332bf3ad68297915701f6776985b0c297c9b98087a41a25c70ba1 languageName: node linkType: hard "@aws-sdk/client-sfn@npm:^3.624.0": - version: 3.817.0 - resolution: "@aws-sdk/client-sfn@npm:3.817.0" + version: 3.830.0 + resolution: "@aws-sdk/client-sfn@npm:3.830.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.816.0 - "@aws-sdk/credential-provider-node": 3.817.0 - "@aws-sdk/middleware-host-header": 3.804.0 - "@aws-sdk/middleware-logger": 3.804.0 - "@aws-sdk/middleware-recursion-detection": 3.804.0 - "@aws-sdk/middleware-user-agent": 3.816.0 - "@aws-sdk/region-config-resolver": 3.808.0 - "@aws-sdk/types": 3.804.0 - "@aws-sdk/util-endpoints": 3.808.0 - "@aws-sdk/util-user-agent-browser": 3.804.0 - "@aws-sdk/util-user-agent-node": 3.816.0 - "@smithy/config-resolver": ^4.1.2 - "@smithy/core": ^3.3.3 - "@smithy/fetch-http-handler": ^5.0.2 - "@smithy/hash-node": ^4.0.2 - "@smithy/invalid-dependency": ^4.0.2 - "@smithy/middleware-content-length": ^4.0.2 - "@smithy/middleware-endpoint": ^4.1.6 - "@smithy/middleware-retry": ^4.1.7 - "@smithy/middleware-serde": ^4.0.5 - "@smithy/middleware-stack": ^4.0.2 - "@smithy/node-config-provider": ^4.1.1 - "@smithy/node-http-handler": ^4.0.4 - "@smithy/protocol-http": ^5.1.0 - "@smithy/smithy-client": ^4.2.6 - "@smithy/types": ^4.2.0 - "@smithy/url-parser": ^4.0.2 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/credential-provider-node": 3.830.0 + "@aws-sdk/middleware-host-header": 3.821.0 + "@aws-sdk/middleware-logger": 3.821.0 + "@aws-sdk/middleware-recursion-detection": 3.821.0 + "@aws-sdk/middleware-user-agent": 3.828.0 + "@aws-sdk/region-config-resolver": 3.821.0 + "@aws-sdk/types": 3.821.0 + "@aws-sdk/util-endpoints": 3.828.0 + "@aws-sdk/util-user-agent-browser": 3.821.0 + "@aws-sdk/util-user-agent-node": 3.828.0 + "@smithy/config-resolver": ^4.1.4 + "@smithy/core": ^3.5.3 + "@smithy/fetch-http-handler": ^5.0.4 + "@smithy/hash-node": ^4.0.4 + "@smithy/invalid-dependency": ^4.0.4 + "@smithy/middleware-content-length": ^4.0.4 + "@smithy/middleware-endpoint": ^4.1.11 + "@smithy/middleware-retry": ^4.1.12 + "@smithy/middleware-serde": ^4.0.8 + "@smithy/middleware-stack": ^4.0.4 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/node-http-handler": ^4.0.6 + "@smithy/protocol-http": ^5.1.2 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 + "@smithy/url-parser": ^4.0.4 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.14 - "@smithy/util-defaults-mode-node": ^4.0.14 - "@smithy/util-endpoints": ^3.0.4 - "@smithy/util-middleware": ^4.0.2 - "@smithy/util-retry": ^4.0.3 + "@smithy/util-defaults-mode-browser": ^4.0.19 + "@smithy/util-defaults-mode-node": ^4.0.19 + "@smithy/util-endpoints": ^3.0.6 + "@smithy/util-middleware": ^4.0.4 + "@smithy/util-retry": ^4.0.5 "@smithy/util-utf8": ^4.0.0 "@types/uuid": ^9.0.1 tslib: ^2.6.2 uuid: ^9.0.1 - checksum: 7ea73c208957dd0f363de63ab87f1731726d4d9010ce44803443f3020a764d39f78f31d470a89aa1189f5e9dfa4f3535f5852d56f25cd11b07e6e8a4e8d97b88 + checksum: 7726870268b1e6d7a5e3d2a4cd1147b7ba0e4ff37d612c40207c6a61c690e79366d136b7fb0792d631aeec2a5f54e79d868019dba016ebe4899ea3cc6376f82a languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.817.0": - version: 3.817.0 - resolution: "@aws-sdk/client-sso@npm:3.817.0" +"@aws-sdk/client-sso@npm:3.830.0": + version: 3.830.0 + resolution: "@aws-sdk/client-sso@npm:3.830.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.816.0 - "@aws-sdk/middleware-host-header": 3.804.0 - "@aws-sdk/middleware-logger": 3.804.0 - "@aws-sdk/middleware-recursion-detection": 3.804.0 - "@aws-sdk/middleware-user-agent": 3.816.0 - "@aws-sdk/region-config-resolver": 3.808.0 - "@aws-sdk/types": 3.804.0 - "@aws-sdk/util-endpoints": 3.808.0 - "@aws-sdk/util-user-agent-browser": 3.804.0 - "@aws-sdk/util-user-agent-node": 3.816.0 - "@smithy/config-resolver": ^4.1.2 - "@smithy/core": ^3.3.3 - "@smithy/fetch-http-handler": ^5.0.2 - "@smithy/hash-node": ^4.0.2 - "@smithy/invalid-dependency": ^4.0.2 - "@smithy/middleware-content-length": ^4.0.2 - "@smithy/middleware-endpoint": ^4.1.6 - "@smithy/middleware-retry": ^4.1.7 - "@smithy/middleware-serde": ^4.0.5 - "@smithy/middleware-stack": ^4.0.2 - "@smithy/node-config-provider": ^4.1.1 - "@smithy/node-http-handler": ^4.0.4 - "@smithy/protocol-http": ^5.1.0 - "@smithy/smithy-client": ^4.2.6 - "@smithy/types": ^4.2.0 - "@smithy/url-parser": ^4.0.2 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/middleware-host-header": 3.821.0 + "@aws-sdk/middleware-logger": 3.821.0 + "@aws-sdk/middleware-recursion-detection": 3.821.0 + "@aws-sdk/middleware-user-agent": 3.828.0 + "@aws-sdk/region-config-resolver": 3.821.0 + "@aws-sdk/types": 3.821.0 + "@aws-sdk/util-endpoints": 3.828.0 + "@aws-sdk/util-user-agent-browser": 3.821.0 + "@aws-sdk/util-user-agent-node": 3.828.0 + "@smithy/config-resolver": ^4.1.4 + "@smithy/core": ^3.5.3 + "@smithy/fetch-http-handler": ^5.0.4 + "@smithy/hash-node": ^4.0.4 + "@smithy/invalid-dependency": ^4.0.4 + "@smithy/middleware-content-length": ^4.0.4 + "@smithy/middleware-endpoint": ^4.1.11 + "@smithy/middleware-retry": ^4.1.12 + "@smithy/middleware-serde": ^4.0.8 + "@smithy/middleware-stack": ^4.0.4 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/node-http-handler": ^4.0.6 + "@smithy/protocol-http": ^5.1.2 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 + "@smithy/url-parser": ^4.0.4 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.14 - "@smithy/util-defaults-mode-node": ^4.0.14 - "@smithy/util-endpoints": ^3.0.4 - "@smithy/util-middleware": ^4.0.2 - "@smithy/util-retry": ^4.0.3 + "@smithy/util-defaults-mode-browser": ^4.0.19 + "@smithy/util-defaults-mode-node": ^4.0.19 + "@smithy/util-endpoints": ^3.0.6 + "@smithy/util-middleware": ^4.0.4 + "@smithy/util-retry": ^4.0.5 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: 56a132825ca3e90d226dcb6af41418896bb0e792f36a175132032dd21bd463bf927b5919dae7bbaacde96077020204ec94bdb78c785fcee31d4025e8adca41d9 + checksum: 7171831e47374963d0cc1af33319fcc5f0a2ad3c71bd3602422e13bba0c84dcbf55e032bc5907cab996e21f76fcc45e8865bffa7acf6c7e72503e4a0df297d3f languageName: node linkType: hard -"@aws-sdk/core@npm:3.816.0, @aws-sdk/core@npm:^3.624.0": - version: 3.816.0 - resolution: "@aws-sdk/core@npm:3.816.0" +"@aws-sdk/core@npm:3.826.0, @aws-sdk/core@npm:^3.624.0": + version: 3.826.0 + resolution: "@aws-sdk/core@npm:3.826.0" dependencies: - "@aws-sdk/types": 3.804.0 - "@smithy/core": ^3.3.3 - "@smithy/node-config-provider": ^4.1.1 - "@smithy/property-provider": ^4.0.2 - "@smithy/protocol-http": ^5.1.0 - "@smithy/signature-v4": ^5.1.0 - "@smithy/smithy-client": ^4.2.6 - "@smithy/types": ^4.2.0 - "@smithy/util-middleware": ^4.0.2 + "@aws-sdk/types": 3.821.0 + "@aws-sdk/xml-builder": 3.821.0 + "@smithy/core": ^3.5.3 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/property-provider": ^4.0.4 + "@smithy/protocol-http": ^5.1.2 + "@smithy/signature-v4": ^5.1.2 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 + "@smithy/util-base64": ^4.0.0 + "@smithy/util-body-length-browser": ^4.0.0 + "@smithy/util-middleware": ^4.0.4 + "@smithy/util-utf8": ^4.0.0 fast-xml-parser: 4.4.1 tslib: ^2.6.2 - checksum: 30952ac6eb15dd6f9a606a7dd2bb4386431c6c9f8d479266ecb09d8b5449078bf547882f73b52aa7390c8b2541093123ad4103af140785b7e2f427b2da6ec0e8 + checksum: 9e46a3c904ae8f690008e4cc71409fba676914ede6dede3924cc9381daaf4a3c6ba1b98514ec37b2d2e387411a3e94dba4e0e5b4a0dcb2369fbca803e9465fdd languageName: node linkType: hard -"@aws-sdk/credential-provider-cognito-identity@npm:3.817.0": - version: 3.817.0 - resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.817.0" +"@aws-sdk/credential-provider-cognito-identity@npm:3.830.0": + version: 3.830.0 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.830.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.817.0 - "@aws-sdk/types": 3.804.0 - "@smithy/property-provider": ^4.0.2 - "@smithy/types": ^4.2.0 + "@aws-sdk/client-cognito-identity": 3.830.0 + "@aws-sdk/types": 3.821.0 + "@smithy/property-provider": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 43f2790b67000df458cf088a29d360a9314ed270118959681a1997463e68ee90ebc8b38f60217e0ff529b742ce69eff2dd7fe25295846c2ad9417361558bd509 + checksum: d13fcb94b82a40a498967d9552c3214c40adbe820fed43312c320717655b75b0719c0541222c068918ef5482cc7fc42c219f60ee41661216107c27bf092070fb languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.816.0": - version: 3.816.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.816.0" +"@aws-sdk/credential-provider-env@npm:3.826.0": + version: 3.826.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.826.0" dependencies: - "@aws-sdk/core": 3.816.0 - "@aws-sdk/types": 3.804.0 - "@smithy/property-provider": ^4.0.2 - "@smithy/types": ^4.2.0 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/types": 3.821.0 + "@smithy/property-provider": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: f1d3df36ee21db5632e028f5eb5609df70d8181aeceadc1ef020b3a809893fb7a9901593944cd0ee95f8825b9310ac30b34acc5fb21446efeeb483527b24c3bb + checksum: ee336310c20cdf60dcce01f9073787286cda52800d102b323b41d9eedc701aa22cdd9aef1c4fb467d765fcb6cf957c87a835a8c431ac98ce8954e8df7f433305 languageName: node linkType: hard -"@aws-sdk/credential-provider-http@npm:3.816.0": - version: 3.816.0 - resolution: "@aws-sdk/credential-provider-http@npm:3.816.0" +"@aws-sdk/credential-provider-http@npm:3.826.0": + version: 3.826.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.826.0" dependencies: - "@aws-sdk/core": 3.816.0 - "@aws-sdk/types": 3.804.0 - "@smithy/fetch-http-handler": ^5.0.2 - "@smithy/node-http-handler": ^4.0.4 - "@smithy/property-provider": ^4.0.2 - "@smithy/protocol-http": ^5.1.0 - "@smithy/smithy-client": ^4.2.6 - "@smithy/types": ^4.2.0 - "@smithy/util-stream": ^4.2.0 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/types": 3.821.0 + "@smithy/fetch-http-handler": ^5.0.4 + "@smithy/node-http-handler": ^4.0.6 + "@smithy/property-provider": ^4.0.4 + "@smithy/protocol-http": ^5.1.2 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 + "@smithy/util-stream": ^4.2.2 tslib: ^2.6.2 - checksum: 17637ac8c8113aa679e011b7adb58a3c1774d99495f0bcfd352ea133fe0da77a2390231a4a1ff5102cb6cddcdb26b423bc8f80fa0f2b83de840b6e42d598f7a1 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-ini@npm:3.817.0, @aws-sdk/credential-provider-ini@npm:^3.624.0": - version: 3.817.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.817.0" - dependencies: - "@aws-sdk/core": 3.816.0 - "@aws-sdk/credential-provider-env": 3.816.0 - "@aws-sdk/credential-provider-http": 3.816.0 - "@aws-sdk/credential-provider-process": 3.816.0 - "@aws-sdk/credential-provider-sso": 3.817.0 - "@aws-sdk/credential-provider-web-identity": 3.817.0 - "@aws-sdk/nested-clients": 3.817.0 - "@aws-sdk/types": 3.804.0 - "@smithy/credential-provider-imds": ^4.0.4 - "@smithy/property-provider": ^4.0.2 - "@smithy/shared-ini-file-loader": ^4.0.2 - "@smithy/types": ^4.2.0 + checksum: 3fa44637b42b33d35ad03bdd690bd3e6d86999547d3a9862e580a3ead1e997d85283845d9c5e878d5df830e01eab7a12b6e9facd10bff1fe00757447e43b4eaf + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-ini@npm:3.830.0, @aws-sdk/credential-provider-ini@npm:^3.624.0": + version: 3.830.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.830.0" + dependencies: + "@aws-sdk/core": 3.826.0 + "@aws-sdk/credential-provider-env": 3.826.0 + "@aws-sdk/credential-provider-http": 3.826.0 + "@aws-sdk/credential-provider-process": 3.826.0 + "@aws-sdk/credential-provider-sso": 3.830.0 + "@aws-sdk/credential-provider-web-identity": 3.830.0 + "@aws-sdk/nested-clients": 3.830.0 + "@aws-sdk/types": 3.821.0 + "@smithy/credential-provider-imds": ^4.0.6 + "@smithy/property-provider": ^4.0.4 + "@smithy/shared-ini-file-loader": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 7242af5dc8b6d03c9dabe19cdf46f2a9d2b56325b219741073361fbf6095ffdaef9e3664e2e1d91e7207fcfad0c3449823f434bf4b9206b9069bee850230ff28 + checksum: 517859540491263c424e7620f31b326fb125c27d30045d75c84fa1ccd515ac4a7a46e5e05e215470296d62352ce01a875ece7b36e1cefb08d6f648f75c882750 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.817.0": - version: 3.817.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.817.0" +"@aws-sdk/credential-provider-node@npm:3.830.0": + version: 3.830.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.830.0" dependencies: - "@aws-sdk/credential-provider-env": 3.816.0 - "@aws-sdk/credential-provider-http": 3.816.0 - "@aws-sdk/credential-provider-ini": 3.817.0 - "@aws-sdk/credential-provider-process": 3.816.0 - "@aws-sdk/credential-provider-sso": 3.817.0 - "@aws-sdk/credential-provider-web-identity": 3.817.0 - "@aws-sdk/types": 3.804.0 - "@smithy/credential-provider-imds": ^4.0.4 - "@smithy/property-provider": ^4.0.2 - "@smithy/shared-ini-file-loader": ^4.0.2 - "@smithy/types": ^4.2.0 + "@aws-sdk/credential-provider-env": 3.826.0 + "@aws-sdk/credential-provider-http": 3.826.0 + "@aws-sdk/credential-provider-ini": 3.830.0 + "@aws-sdk/credential-provider-process": 3.826.0 + "@aws-sdk/credential-provider-sso": 3.830.0 + "@aws-sdk/credential-provider-web-identity": 3.830.0 + "@aws-sdk/types": 3.821.0 + "@smithy/credential-provider-imds": ^4.0.6 + "@smithy/property-provider": ^4.0.4 + "@smithy/shared-ini-file-loader": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 43122aaa81f4de06399bda8be5f459c14bb23ca3b80710d62cffa86f3f6687e69c517643c33f365bf305384cc23ad4ad2ef30631e4e5301462c037856821c112 + checksum: 78671b0a2517c76e638ce366ac20bc3d5abc9f9a1073eb555f0cb028b3f0fe436a5cf5c908d2ee7e49b38bc61ed957b3c86b4d862edf92af003fdf9875282a9d languageName: node linkType: hard -"@aws-sdk/credential-provider-process@npm:3.816.0": - version: 3.816.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.816.0" +"@aws-sdk/credential-provider-process@npm:3.826.0": + version: 3.826.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.826.0" dependencies: - "@aws-sdk/core": 3.816.0 - "@aws-sdk/types": 3.804.0 - "@smithy/property-provider": ^4.0.2 - "@smithy/shared-ini-file-loader": ^4.0.2 - "@smithy/types": ^4.2.0 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/types": 3.821.0 + "@smithy/property-provider": ^4.0.4 + "@smithy/shared-ini-file-loader": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 5b347be49f87c4a8b2dba997e0f13f588d44b6343a4117c435ae233c50676e426b24a39517f3c1b05df3e890566fde1cc2ef6731827633cf90d356be2e471bd0 + checksum: a063c0c7e62232afe5c756797b7b6254c18aaba546a342107985e61d459c41f5d4666f225c2e57efd8eb15dfd41a00957826b09ad3d7467c502b315884cd7715 languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.817.0": - version: 3.817.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.817.0" +"@aws-sdk/credential-provider-sso@npm:3.830.0": + version: 3.830.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.830.0" dependencies: - "@aws-sdk/client-sso": 3.817.0 - "@aws-sdk/core": 3.816.0 - "@aws-sdk/token-providers": 3.817.0 - "@aws-sdk/types": 3.804.0 - "@smithy/property-provider": ^4.0.2 - "@smithy/shared-ini-file-loader": ^4.0.2 - "@smithy/types": ^4.2.0 + "@aws-sdk/client-sso": 3.830.0 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/token-providers": 3.830.0 + "@aws-sdk/types": 3.821.0 + "@smithy/property-provider": ^4.0.4 + "@smithy/shared-ini-file-loader": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 2cf9c2a42d1896d64c8718ec4d51da5e2c53fd2cfe8197f0d6ce299bd790ca54390ced894a4eaca9f51d091d5d47ec9cd81ac0ea138dbc55881c02efcf0d61e8 + checksum: a06c80d268d4543d2c2d36b90d6a378df761a16ec96e3a1e59b6d4e91108267ef4561cc754408d644ee34391dff66f9129bad10b08a850635dc2fac6a78a82d3 languageName: node linkType: hard -"@aws-sdk/credential-provider-web-identity@npm:3.817.0": - version: 3.817.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.817.0" +"@aws-sdk/credential-provider-web-identity@npm:3.830.0": + version: 3.830.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.830.0" dependencies: - "@aws-sdk/core": 3.816.0 - "@aws-sdk/nested-clients": 3.817.0 - "@aws-sdk/types": 3.804.0 - "@smithy/property-provider": ^4.0.2 - "@smithy/types": ^4.2.0 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/nested-clients": 3.830.0 + "@aws-sdk/types": 3.821.0 + "@smithy/property-provider": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: bba9ed07845cc7d4a0a3e63166592f356f261c0d15679031e8a0c0658b9abaa1c38e0a16bf91e77c3704a74865e3adc2ea095a6bdb090e4b262daf2a9acf9a6c + checksum: a1291869c3eb8e7ba7ed8c4865846b220b7f12c5809045ce863d838e1ee085d868122bd9e8dae707630caafab02b2dd5c805bf37a8ce65f945aef889ec09b479 languageName: node linkType: hard "@aws-sdk/credential-providers@npm:^3.624.0": - version: 3.817.0 - resolution: "@aws-sdk/credential-providers@npm:3.817.0" - dependencies: - "@aws-sdk/client-cognito-identity": 3.817.0 - "@aws-sdk/core": 3.816.0 - "@aws-sdk/credential-provider-cognito-identity": 3.817.0 - "@aws-sdk/credential-provider-env": 3.816.0 - "@aws-sdk/credential-provider-http": 3.816.0 - "@aws-sdk/credential-provider-ini": 3.817.0 - "@aws-sdk/credential-provider-node": 3.817.0 - "@aws-sdk/credential-provider-process": 3.816.0 - "@aws-sdk/credential-provider-sso": 3.817.0 - "@aws-sdk/credential-provider-web-identity": 3.817.0 - "@aws-sdk/nested-clients": 3.817.0 - "@aws-sdk/types": 3.804.0 - "@smithy/config-resolver": ^4.1.2 - "@smithy/core": ^3.3.3 - "@smithy/credential-provider-imds": ^4.0.4 - "@smithy/node-config-provider": ^4.1.1 - "@smithy/property-provider": ^4.0.2 - "@smithy/types": ^4.2.0 + version: 3.830.0 + resolution: "@aws-sdk/credential-providers@npm:3.830.0" + dependencies: + "@aws-sdk/client-cognito-identity": 3.830.0 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/credential-provider-cognito-identity": 3.830.0 + "@aws-sdk/credential-provider-env": 3.826.0 + "@aws-sdk/credential-provider-http": 3.826.0 + "@aws-sdk/credential-provider-ini": 3.830.0 + "@aws-sdk/credential-provider-node": 3.830.0 + "@aws-sdk/credential-provider-process": 3.826.0 + "@aws-sdk/credential-provider-sso": 3.830.0 + "@aws-sdk/credential-provider-web-identity": 3.830.0 + "@aws-sdk/nested-clients": 3.830.0 + "@aws-sdk/types": 3.821.0 + "@smithy/config-resolver": ^4.1.4 + "@smithy/core": ^3.5.3 + "@smithy/credential-provider-imds": ^4.0.6 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/property-provider": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 5621eb81eabc6e24373130a6dead8299237fe3179f8afd708c6e8425cc22ef819fc71d32e53503251b09f696677e1cb332db9001db4496ec583c839fdb85c9b0 + checksum: 11135dd16f4a0da7f621bad59a15a70b6b49f6515e5347b534e1d9267ca11db5d0114c750c22eabb84196dbc0f7c6a9e85bba6f76c7588bf5d4f539de00a3a4d languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.804.0": - version: 3.804.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.804.0" +"@aws-sdk/middleware-host-header@npm:3.821.0": + version: 3.821.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.821.0" dependencies: - "@aws-sdk/types": 3.804.0 - "@smithy/protocol-http": ^5.1.0 - "@smithy/types": ^4.2.0 + "@aws-sdk/types": 3.821.0 + "@smithy/protocol-http": ^5.1.2 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 3310bf3c88b2db2d179ec8c7feff5e6429b3f4ef2535ffcfb492fdfce265362f132a502a06a8743b4ff6118083a5da4bd4219d2f3743863da75e594d39a50f6e + checksum: b626412b0ccb169542311230d0c16e62c21179802e2d6041b5305b3da02de7c3ea352c892162d416ab0fc92e6cc5fbfbf14671b0dd0c54a36cf33efa91a7fd1e languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.804.0": - version: 3.804.0 - resolution: "@aws-sdk/middleware-logger@npm:3.804.0" +"@aws-sdk/middleware-logger@npm:3.821.0": + version: 3.821.0 + resolution: "@aws-sdk/middleware-logger@npm:3.821.0" dependencies: - "@aws-sdk/types": 3.804.0 - "@smithy/types": ^4.2.0 + "@aws-sdk/types": 3.821.0 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 11c62cf5670eeb035f87ea95ce6e8b8205bd407b0a5d8c7a73a5b0e30ccfa6e11d4595d9aba6d61ef628377555447ca25704afdd8e916d6a6ba67b7a7fd0f078 + checksum: 1f287c7a9a1cff4413070ff84459c41102dcf063b8cbc90efb67e8ab23beebd9c3814c7e2d59166027520d8f91aaaee39ab66aa53bae129327e509b95ab24085 languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.804.0": - version: 3.804.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.804.0" +"@aws-sdk/middleware-recursion-detection@npm:3.821.0": + version: 3.821.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.821.0" dependencies: - "@aws-sdk/types": 3.804.0 - "@smithy/protocol-http": ^5.1.0 - "@smithy/types": ^4.2.0 + "@aws-sdk/types": 3.821.0 + "@smithy/protocol-http": ^5.1.2 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: e762ca615372584ec4fea95b50f4476457edd36c8b433238df8c6c7143ae91da17fe1d3209eca425e89e799a73879e76510121d9235975c46d644e37a17e5350 + checksum: 8abb4c2df2c30507b12d6e002f7d99cac09309b350f07094e4b540b3036dd1d2b073b79882fc6819b15f50837e40e5f05a3bd8547964a7a146a210355d39a85f languageName: node linkType: hard -"@aws-sdk/middleware-user-agent@npm:3.816.0": - version: 3.816.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.816.0" +"@aws-sdk/middleware-user-agent@npm:3.828.0": + version: 3.828.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.828.0" dependencies: - "@aws-sdk/core": 3.816.0 - "@aws-sdk/types": 3.804.0 - "@aws-sdk/util-endpoints": 3.808.0 - "@smithy/core": ^3.3.3 - "@smithy/protocol-http": ^5.1.0 - "@smithy/types": ^4.2.0 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/types": 3.821.0 + "@aws-sdk/util-endpoints": 3.828.0 + "@smithy/core": ^3.5.3 + "@smithy/protocol-http": ^5.1.2 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 69ae2102098f7827d892e04e6bbb24cfc4eb5947d352e8a3d5126c2e12b65a78612360b9d49bec5a4bfe4e951267e779fe70739eab8de91b6f902eca077947a0 + checksum: 7856fed617d28f1ba6004d378cce0a68d878d26719873778d6c5f1895c33269ce091e980b60267b4a256ca4d6612b58c796b198d28e3c7181d8f281bd1ee12f9 languageName: node linkType: hard -"@aws-sdk/nested-clients@npm:3.817.0": - version: 3.817.0 - resolution: "@aws-sdk/nested-clients@npm:3.817.0" +"@aws-sdk/nested-clients@npm:3.830.0": + version: 3.830.0 + resolution: "@aws-sdk/nested-clients@npm:3.830.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.816.0 - "@aws-sdk/middleware-host-header": 3.804.0 - "@aws-sdk/middleware-logger": 3.804.0 - "@aws-sdk/middleware-recursion-detection": 3.804.0 - "@aws-sdk/middleware-user-agent": 3.816.0 - "@aws-sdk/region-config-resolver": 3.808.0 - "@aws-sdk/types": 3.804.0 - "@aws-sdk/util-endpoints": 3.808.0 - "@aws-sdk/util-user-agent-browser": 3.804.0 - "@aws-sdk/util-user-agent-node": 3.816.0 - "@smithy/config-resolver": ^4.1.2 - "@smithy/core": ^3.3.3 - "@smithy/fetch-http-handler": ^5.0.2 - "@smithy/hash-node": ^4.0.2 - "@smithy/invalid-dependency": ^4.0.2 - "@smithy/middleware-content-length": ^4.0.2 - "@smithy/middleware-endpoint": ^4.1.6 - "@smithy/middleware-retry": ^4.1.7 - "@smithy/middleware-serde": ^4.0.5 - "@smithy/middleware-stack": ^4.0.2 - "@smithy/node-config-provider": ^4.1.1 - "@smithy/node-http-handler": ^4.0.4 - "@smithy/protocol-http": ^5.1.0 - "@smithy/smithy-client": ^4.2.6 - "@smithy/types": ^4.2.0 - "@smithy/url-parser": ^4.0.2 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/middleware-host-header": 3.821.0 + "@aws-sdk/middleware-logger": 3.821.0 + "@aws-sdk/middleware-recursion-detection": 3.821.0 + "@aws-sdk/middleware-user-agent": 3.828.0 + "@aws-sdk/region-config-resolver": 3.821.0 + "@aws-sdk/types": 3.821.0 + "@aws-sdk/util-endpoints": 3.828.0 + "@aws-sdk/util-user-agent-browser": 3.821.0 + "@aws-sdk/util-user-agent-node": 3.828.0 + "@smithy/config-resolver": ^4.1.4 + "@smithy/core": ^3.5.3 + "@smithy/fetch-http-handler": ^5.0.4 + "@smithy/hash-node": ^4.0.4 + "@smithy/invalid-dependency": ^4.0.4 + "@smithy/middleware-content-length": ^4.0.4 + "@smithy/middleware-endpoint": ^4.1.11 + "@smithy/middleware-retry": ^4.1.12 + "@smithy/middleware-serde": ^4.0.8 + "@smithy/middleware-stack": ^4.0.4 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/node-http-handler": ^4.0.6 + "@smithy/protocol-http": ^5.1.2 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 + "@smithy/url-parser": ^4.0.4 "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 "@smithy/util-body-length-node": ^4.0.0 - "@smithy/util-defaults-mode-browser": ^4.0.14 - "@smithy/util-defaults-mode-node": ^4.0.14 - "@smithy/util-endpoints": ^3.0.4 - "@smithy/util-middleware": ^4.0.2 - "@smithy/util-retry": ^4.0.3 + "@smithy/util-defaults-mode-browser": ^4.0.19 + "@smithy/util-defaults-mode-node": ^4.0.19 + "@smithy/util-endpoints": ^3.0.6 + "@smithy/util-middleware": ^4.0.4 + "@smithy/util-retry": ^4.0.5 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: 5cbb955cd45c5ed8a41a4b9d0ed05080245f819c68220ecc17545a2a77fdbd4b1c91807aab3f8b9a72198bcba6b40f840d478e8a59468efdc5293a47f3359583 + checksum: d9ce3b965905eaebf69fd9e2186acd263da063c05cb6dd72379fe3f72ff955dc35fd23a3ab2719da06f32dc2b7fbaf476c58ae26a538afcc28ebcff425bc3e53 languageName: node linkType: hard -"@aws-sdk/region-config-resolver@npm:3.808.0": - version: 3.808.0 - resolution: "@aws-sdk/region-config-resolver@npm:3.808.0" +"@aws-sdk/region-config-resolver@npm:3.821.0": + version: 3.821.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.821.0" dependencies: - "@aws-sdk/types": 3.804.0 - "@smithy/node-config-provider": ^4.1.1 - "@smithy/types": ^4.2.0 + "@aws-sdk/types": 3.821.0 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/types": ^4.3.1 "@smithy/util-config-provider": ^4.0.0 - "@smithy/util-middleware": ^4.0.2 + "@smithy/util-middleware": ^4.0.4 tslib: ^2.6.2 - checksum: 0a873b5566d2f9c65ba4da25c49b8f421ace391bba5de6d2f41cc49e33e024d2b90e6c3f570d1d182da8a7fc7f639644b5a5d4ea2354fedcca7c8727b075f1cd + checksum: e3688c64180308ef3db8347b13402f5d261d9d033c9c7e912746630c519d30f123e8a89cac87fc0314e798aa2edacf0a01d6fb901a14ca0e3d179058959dcc2f languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.817.0": - version: 3.817.0 - resolution: "@aws-sdk/token-providers@npm:3.817.0" +"@aws-sdk/token-providers@npm:3.830.0": + version: 3.830.0 + resolution: "@aws-sdk/token-providers@npm:3.830.0" dependencies: - "@aws-sdk/core": 3.816.0 - "@aws-sdk/nested-clients": 3.817.0 - "@aws-sdk/types": 3.804.0 - "@smithy/property-provider": ^4.0.2 - "@smithy/shared-ini-file-loader": ^4.0.2 - "@smithy/types": ^4.2.0 + "@aws-sdk/core": 3.826.0 + "@aws-sdk/nested-clients": 3.830.0 + "@aws-sdk/types": 3.821.0 + "@smithy/property-provider": ^4.0.4 + "@smithy/shared-ini-file-loader": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 6d1b489323240950f3a52e340e2cc78c44f2b84107bb727ca221449e3423d30cd4956e7c331c20e4cfbe7075734aa47c4699a9dcea491e398f051ba7a8dbeee8 + checksum: fe8681e65621f5d422ba63dfd4f76fc351314e29e1e31fa0a72a2b7e1133d78a3f7e194c4b319b3636e8200914c3c05c75ebcee8674a54f9ef73b3af4baad800 languageName: node linkType: hard -"@aws-sdk/types@npm:3.804.0, @aws-sdk/types@npm:^3.222.0": - version: 3.804.0 - resolution: "@aws-sdk/types@npm:3.804.0" +"@aws-sdk/types@npm:3.821.0, @aws-sdk/types@npm:^3.222.0": + version: 3.821.0 + resolution: "@aws-sdk/types@npm:3.821.0" dependencies: - "@smithy/types": ^4.2.0 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 6e15b214b96e3f1a158ad5144093cd6cbc765984b8ddc00492e2274218b00d43921aaf1340c8a75dd1878c981528257663c053c28d7a47146620122af4f45cca + checksum: 999e0344b0eea74b5d423b9cc562ae6b00c5c1e3fb7d1f6f86e81cbdb0dfa948cc574cc5ab4e9e875043d559904128807f3e95119b97123a8cc37dd5471f6c35 languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.808.0": - version: 3.808.0 - resolution: "@aws-sdk/util-endpoints@npm:3.808.0" +"@aws-sdk/util-endpoints@npm:3.828.0": + version: 3.828.0 + resolution: "@aws-sdk/util-endpoints@npm:3.828.0" dependencies: - "@aws-sdk/types": 3.804.0 - "@smithy/types": ^4.2.0 - "@smithy/util-endpoints": ^3.0.4 + "@aws-sdk/types": 3.821.0 + "@smithy/types": ^4.3.1 + "@smithy/util-endpoints": ^3.0.6 tslib: ^2.6.2 - checksum: 3d91c917fe51a5af1fbf6aa739fef26dcd06f945a23f7fe4126567c2ac91d47f832502c208848fd62a312cb37ea4adbab05af83f9a2310a1b9437ca53e9a25c2 + checksum: 0d914554b517f9ad4828ea09abece8fbf99c0c10f833b9973b373b89d2d7f21c50f01315512f56d71bf6e23a11993a6c02eef90af8e3dfb66d28cbf4039446b0 languageName: node linkType: hard @@ -733,33 +737,43 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.804.0": - version: 3.804.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.804.0" +"@aws-sdk/util-user-agent-browser@npm:3.821.0": + version: 3.821.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.821.0" dependencies: - "@aws-sdk/types": 3.804.0 - "@smithy/types": ^4.2.0 + "@aws-sdk/types": 3.821.0 + "@smithy/types": ^4.3.1 bowser: ^2.11.0 tslib: ^2.6.2 - checksum: 6216ac4936631696c596a57a762683575b173efca7af5a8bb805402c6527e8caa0b5f75b3da3f73e354581f04dd19a5e5d09bca7c2f55c7c2b8fba61086f4e86 + checksum: 8817cc00dcc032af0a7e270dd9954b7b5f598448d8804a430456276ef560a6b4781aea4ad84377fddff3684417ac4e5925de5574d9a8b0f08832002948c4a508 languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.816.0": - version: 3.816.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.816.0" +"@aws-sdk/util-user-agent-node@npm:3.828.0": + version: 3.828.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.828.0" dependencies: - "@aws-sdk/middleware-user-agent": 3.816.0 - "@aws-sdk/types": 3.804.0 - "@smithy/node-config-provider": ^4.1.1 - "@smithy/types": ^4.2.0 + "@aws-sdk/middleware-user-agent": 3.828.0 + "@aws-sdk/types": 3.821.0 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: c705904423d2ae2db73a29ec4a24649ef8c7a13b02aa71bea5c2188acfade8f34294b4cb91812df6e7f57ce9a62127ab9dae55407e326de7c2bb0dc3d78691aa + checksum: 370c64d532a0a2c5bdac7dd7cc45070542a116c5e2061a59e60f8a14df849be25d1cfedd2d4561d57f239b7beb3190a239cb3d774fca6536a27247e535ddbae8 + languageName: node + linkType: hard + +"@aws-sdk/xml-builder@npm:3.821.0": + version: 3.821.0 + resolution: "@aws-sdk/xml-builder@npm:3.821.0" + dependencies: + "@smithy/types": ^4.3.1 + tslib: ^2.6.2 + checksum: f6ee1e5f5336afeb72e2b5e712593d1dcaa626729d0a12941c32e14136308b8729b225d4c75e7b6606bc17eeb79ea28076212aced93cc6460fefb9b712b07e28 languageName: node linkType: hard @@ -775,38 +789,38 @@ __metadata: linkType: hard "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.27.2": - version: 7.27.2 - resolution: "@babel/compat-data@npm:7.27.2" - checksum: 8d4066324e5f1275adc43f2e22110cac29ee09fe926260c43f0eaa432c148859367df4152574a28ee02dbb3e3d11dd57145eed345d49cc07f9b6e11fee06535f + version: 7.27.5 + resolution: "@babel/compat-data@npm:7.27.5" + checksum: 8706be55f1c6e1cf85bfb3f2b3afdabba82142b339a11b62c694d07907b082d5715dfbe77fbbad891979809bdd013a0c9e2e5c3419dc8099b9fb7a45215f0f73 languageName: node linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.18.5, @babel/core@npm:^7.23.9, @babel/core@npm:^7.25.2": - version: 7.27.1 - resolution: "@babel/core@npm:7.27.1" + version: 7.27.4 + resolution: "@babel/core@npm:7.27.4" dependencies: "@ampproject/remapping": ^2.2.0 "@babel/code-frame": ^7.27.1 - "@babel/generator": ^7.27.1 - "@babel/helper-compilation-targets": ^7.27.1 - "@babel/helper-module-transforms": ^7.27.1 - "@babel/helpers": ^7.27.1 - "@babel/parser": ^7.27.1 - "@babel/template": ^7.27.1 - "@babel/traverse": ^7.27.1 - "@babel/types": ^7.27.1 + "@babel/generator": ^7.27.3 + "@babel/helper-compilation-targets": ^7.27.2 + "@babel/helper-module-transforms": ^7.27.3 + "@babel/helpers": ^7.27.4 + "@babel/parser": ^7.27.4 + "@babel/template": ^7.27.2 + "@babel/traverse": ^7.27.4 + "@babel/types": ^7.27.3 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: fce205f9eea387ed8a9c6de64e5a8f50256359bfc8f1352c576c843b4c148a6c2ef187cfe8d729453e520fdcc997f65920aca6cb8911fb25dfd2286966b9b914 + checksum: e7f961274f2cfc14c81e32dc0f10b06123a847e9fe73ec7b4df90411c3ebdad8ffecd7086f06aa46c2b24d8d27f2f8bef4b7c7319228c768256fc0e13819d395 languageName: node linkType: hard "@babel/eslint-parser@npm:^7.25.1": - version: 7.27.1 - resolution: "@babel/eslint-parser@npm:7.27.1" + version: 7.27.5 + resolution: "@babel/eslint-parser@npm:7.27.5" dependencies: "@nicolo-ribaudo/eslint-scope-5-internals": 5.1.1-v1 eslint-visitor-keys: ^2.1.0 @@ -814,29 +828,29 @@ __metadata: peerDependencies: "@babel/core": ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - checksum: 0e8aa37fe03e5e5f2db35e1e628c02012a9ea9aa14429495eacdb0418e8ebeaf7b6308f9f8931ee3fe64a61fd6ac7637c8ffcc2c0d85eee246b6115198418bc2 + checksum: 133191a3ea312dea92abb0f2cae87bc8d36b4a02ce7dce9367473940d91a1102d0dbb53418ba4b1e955d430741c1a1ed622ad3e5973e727e0a6d8d094a65aa5c languageName: node linkType: hard -"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.27.1, @babel/generator@npm:^7.7.2": - version: 7.27.1 - resolution: "@babel/generator@npm:7.27.1" +"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.27.3, @babel/generator@npm:^7.7.2": + version: 7.27.5 + resolution: "@babel/generator@npm:7.27.5" dependencies: - "@babel/parser": ^7.27.1 - "@babel/types": ^7.27.1 + "@babel/parser": ^7.27.5 + "@babel/types": ^7.27.3 "@jridgewell/gen-mapping": ^0.3.5 "@jridgewell/trace-mapping": ^0.3.25 jsesc: ^3.0.2 - checksum: d5e220eb20aca1d93aef85c4c716237f84c5aab7d3ed8dfeb7060dcd73d20c593a687fe74cfb6d3dc1604ef9faff2ca24e6cfdb1af18e03e3a5f9f63a04c0bdc + checksum: f6d3bf70f6bfbc5df263a023200728c53161d7f3ee3607bd8b2222c8568b6dd604ee490e305f0492a8225dac059ad75b4cc772b5cfd7d967e70360499d4d3701 languageName: node linkType: hard "@babel/helper-annotate-as-pure@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-annotate-as-pure@npm:7.27.1" + version: 7.27.3 + resolution: "@babel/helper-annotate-as-pure@npm:7.27.3" dependencies: - "@babel/types": ^7.27.1 - checksum: 3f8e4d591458d6c0621a3d670f8798b8895580214287390126e3e621ddf3df0bd07cbcc9500c2671b9ec10162c2f9feb1194da5cf039d40df8cb69d181fc0cd8 + "@babel/types": ^7.27.3 + checksum: 63863a5c936ef82b546ca289c9d1b18fabfc24da5c4ee382830b124e2e79b68d626207febc8d4bffc720f50b2ee65691d7d12cc0308679dee2cd6bdc926b7190 languageName: node linkType: hard @@ -918,16 +932,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-module-transforms@npm:7.27.1" +"@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/helper-module-transforms@npm:7.27.3" dependencies: "@babel/helper-module-imports": ^7.27.1 "@babel/helper-validator-identifier": ^7.27.1 - "@babel/traverse": ^7.27.1 + "@babel/traverse": ^7.27.3 peerDependencies: "@babel/core": ^7.0.0 - checksum: 816dd166f0a850616d01ca198715d78fef052a834dc155dd57e4405d702f288071077be3ed58e13c86ac9e63ca560e876cc6d70cf5ef0f1f62bd9321084d4c06 + checksum: c611d42d3cb7ba23b1a864fcf8d6cde0dc99e876ca1c9a67e4d7919a70706ded4aaa45420de2bf7f7ea171e078e59f0edcfa15a56d74b9485e151b95b93b946e languageName: node linkType: hard @@ -1015,24 +1029,24 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helpers@npm:7.27.1" +"@babel/helpers@npm:^7.27.4": + version: 7.27.6 + resolution: "@babel/helpers@npm:7.27.6" dependencies: - "@babel/template": ^7.27.1 - "@babel/types": ^7.27.1 - checksum: 19ede1e996cbd295fb3a881ff70bc0f91c5133ebac256441e9ecd69dfba89456e75cf7ecf06cd276c638a4de7bd6eff21151961c78038d0b23d94b4d23415ee4 + "@babel/template": ^7.27.2 + "@babel/types": ^7.27.6 + checksum: 12f96a5800ff677481dbc0a022c617303e945210cac4821ad5377a31201ffd8d9c4d00f039ed1487cf2a3d15868fb2d6cabecdb1aba334bd40a846f1938053a2 languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.27.1, @babel/parser@npm:^7.27.2": - version: 7.27.2 - resolution: "@babel/parser@npm:7.27.2" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.27.4, @babel/parser@npm:^7.27.5": + version: 7.27.5 + resolution: "@babel/parser@npm:7.27.5" dependencies: - "@babel/types": ^7.27.1 + "@babel/types": ^7.27.3 bin: parser: ./bin/babel-parser.js - checksum: 1ac70a75028f1cc10eefb10ed2d83cf700ca3e1ddb4cf556a003fc5c4ca53ae83350bbb8065020fcc70d476fcf7bf1c17191b72384f719614ae18397142289cf + checksum: 16f00a12895522c1682f1f047332010e129ba517add3a2db347a658e02f60434fc38f9105a9d6ec3fd6bfb5d1b0b70d88585c1f10e06e2b58fba29004a42d648 languageName: node linkType: hard @@ -1444,13 +1458,13 @@ __metadata: linkType: hard "@babel/plugin-transform-block-scoping@npm:^7.25.0, @babel/plugin-transform-block-scoping@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-block-scoping@npm:7.27.1" + version: 7.27.5 + resolution: "@babel/plugin-transform-block-scoping@npm:7.27.5" dependencies: "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 490773ee111fd298d74bd0ba454c941ae23a39db5cd08bf4258997f44f7584399fc4214a7c3816ee70f0273c263fe2ea4e11bb07939e57845702ba05258a9cb0 + checksum: bd710674bebe2e90b1daee960523d06c958f060f439ce2eef6b157c780c0654168131d0312a06dd71c5b186ecc2a818334d16f8368bd273ab549d6230f074135 languageName: node linkType: hard @@ -1506,14 +1520,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.8, @babel/plugin-transform-destructuring@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-destructuring@npm:7.27.1" +"@babel/plugin-transform-destructuring@npm:^7.24.8, @babel/plugin-transform-destructuring@npm:^7.27.1, @babel/plugin-transform-destructuring@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/plugin-transform-destructuring@npm:7.27.3" dependencies: "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 492013fc4befd5f3554853f983b82cfa748dd2004a525f1f16a37f841ac402a51e891cac2084b03e2b89553f0e1e685cf5bf8bf9df8fed82114c580b3c567bb6 + checksum: 1b00a609e6292a1e48104d63dd479a688e773dcf42c715f7b342ba1725ae9335d75c8569aa0518388ed359f98f0b7155fd7bb0453fbc36445e986b17e5ccaa98 languageName: node linkType: hard @@ -1762,16 +1776,16 @@ __metadata: linkType: hard "@babel/plugin-transform-object-rest-spread@npm:^7.24.7, @babel/plugin-transform-object-rest-spread@npm:^7.27.2": - version: 7.27.2 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.27.2" + version: 7.27.3 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.27.3" dependencies: "@babel/helper-compilation-targets": ^7.27.2 "@babel/helper-plugin-utils": ^7.27.1 - "@babel/plugin-transform-destructuring": ^7.27.1 + "@babel/plugin-transform-destructuring": ^7.27.3 "@babel/plugin-transform-parameters": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6d518c21cddfa436029d72409aac8f680d3ba3a10eb94477112869132226498474a61218893ac9958f8bc079109af0f684d1347d5036fee8e9b477daecf2d8f3 + checksum: 624db8badc844d3256ce9b5d062f1716f01c15ab3ed023dc971eb8083bba55e83be8dc25971b4570d2cd8979eb2c61a3b08d332bd0ec1816ee8afbf1659472bf languageName: node linkType: hard @@ -1929,13 +1943,13 @@ __metadata: linkType: hard "@babel/plugin-transform-regenerator@npm:^7.24.7, @babel/plugin-transform-regenerator@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-regenerator@npm:7.27.1" + version: 7.27.5 + resolution: "@babel/plugin-transform-regenerator@npm:7.27.5" dependencies: "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e1e28e08abf1c8fcdeaa8af5ab44cfda83bebc0ba6ebc155afdae243c51a2e941dd8ff6c51affb0447deb07a6bc66424fbf04482b050c061e272bc75c15853bf + checksum: d343dbe491f2b2ef953ce990761006b8f1f9231044b3c244529d34335ba8337829e6d55cae0e4e9ec6d4952bc4875097c8776eee01119cd45529bc49e90c085f languageName: node linkType: hard @@ -1963,8 +1977,8 @@ __metadata: linkType: hard "@babel/plugin-transform-runtime@npm:^7.24.7, @babel/plugin-transform-runtime@npm:^7.25.0": - version: 7.27.1 - resolution: "@babel/plugin-transform-runtime@npm:7.27.1" + version: 7.27.4 + resolution: "@babel/plugin-transform-runtime@npm:7.27.4" dependencies: "@babel/helper-module-imports": ^7.27.1 "@babel/helper-plugin-utils": ^7.27.1 @@ -1974,7 +1988,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9328060b54e430732883cac672cfd4c952c2bf2d9fb5268c675ae01f74ccb224ecdf105f5ad52b6277ad8b34b6df1e7cec6d1c02a0d17be54414265414e8ac88 + checksum: 786d68e23eed9f8f0b1602f052b1ca81f97d4757ac1e3d089d60f6fd7a307185932c725e4fce35b4532773957a6748c620aef155ed1654b7badc196f830f73c0 languageName: node linkType: hard @@ -2248,13 +2262,13 @@ __metadata: linkType: hard "@babel/runtime@npm:^7.25.0": - version: 7.27.1 - resolution: "@babel/runtime@npm:7.27.1" - checksum: 11339838a54783e5b14e04d94d7a4d032e9965c5823f3f687e41556fa40344ae7aeb57c535720b7a74ab3e8217def7834a6f1a665ee55bbb3befede141419913 + version: 7.27.6 + resolution: "@babel/runtime@npm:7.27.6" + checksum: 3f7b879df1823c0926bd5dbc941c62f5d60faa790c1aab9758c04799e1f04ee8d93553be9ec059d4e5882f19fe03cbe8933ee4f46212dced0f6d8205992c9c9a languageName: node linkType: hard -"@babel/template@npm:^7.25.0, @babel/template@npm:^7.27.1, @babel/template@npm:^7.3.3": +"@babel/template@npm:^7.25.0, @babel/template@npm:^7.27.1, @babel/template@npm:^7.27.2, @babel/template@npm:^7.3.3": version: 7.27.2 resolution: "@babel/template@npm:7.27.2" dependencies: @@ -2265,28 +2279,28 @@ __metadata: languageName: node linkType: hard -"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.7.4": - version: 7.27.1 - resolution: "@babel/traverse@npm:7.27.1" +"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3, @babel/traverse@npm:^7.27.4, @babel/traverse@npm:^7.7.4": + version: 7.27.4 + resolution: "@babel/traverse@npm:7.27.4" dependencies: "@babel/code-frame": ^7.27.1 - "@babel/generator": ^7.27.1 - "@babel/parser": ^7.27.1 - "@babel/template": ^7.27.1 - "@babel/types": ^7.27.1 + "@babel/generator": ^7.27.3 + "@babel/parser": ^7.27.4 + "@babel/template": ^7.27.2 + "@babel/types": ^7.27.3 debug: ^4.3.1 globals: ^11.1.0 - checksum: 7ea3ec36a65e734f2921f5dba6f417f5dd0c90eb44a60f6addbacbbedb44e8c82eba415a74feb7d6df58e351519b81b11b6ca3c0c7c41a3f73ebeaf6895a826c + checksum: ae0047fe786e200ffb048929347b074988e8b68decdb9fc0e2b36ca3e137d72462f349fa0e6193e44fb3cb99f9c639654515028995b44d7040707cef48ddb5c1 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.27.1, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": - version: 7.27.1 - resolution: "@babel/types@npm:7.27.1" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.27.6, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.27.6 + resolution: "@babel/types@npm:7.27.6" dependencies: "@babel/helper-string-parser": ^7.27.1 "@babel/helper-validator-identifier": ^7.27.1 - checksum: 357c13f37aaa2f2e2cfcdb63f986d5f7abc9f38df20182b620ace34387d2460620415770fe5856eb54d70c9f0ba2f71230d29465e789188635a948476b830ae4 + checksum: c3bd0984d892b0edec38fd12cf63f620bb52fba8187ec7cbe2d1aff5bee5e185e0fd86a3fb90b4d8f18b072113d07901476d0e39f58d5c988db14b231a6ea735 languageName: node linkType: hard @@ -2354,10 +2368,10 @@ __metadata: languageName: node linkType: hard -"@datadog/libdatadog@npm:^0.5.1": - version: 0.5.1 - resolution: "@datadog/libdatadog@npm:0.5.1" - checksum: a6eb278b5e0e381f59ac4c1b9c540b8c170c39cba42c18fb20b507e4c78dda18237d3296c66a4930517cec3dfbb769644b9aa901728f152291e63d889224177c +"@datadog/libdatadog@npm:^0.6.0": + version: 0.6.0 + resolution: "@datadog/libdatadog@npm:0.6.0" + checksum: 634bd4e10ce76bed00c8096ac5a9cb2bed5b33547ce5e27b020deeb7dba5a3e13cdd26d505e8bbd6252cc00f4ec9b2c7b62e3b24db31a1a95afcfd83a6e532a6 languageName: node linkType: hard @@ -2502,9 +2516,9 @@ __metadata: languageName: node linkType: hard -"@datadog/pprof@npm:5.8.0": - version: 5.8.0 - resolution: "@datadog/pprof@npm:5.8.0" +"@datadog/pprof@npm:5.8.2": + version: 5.8.2 + resolution: "@datadog/pprof@npm:5.8.2" dependencies: delay: ^5.0.0 node-gyp: latest @@ -2512,7 +2526,7 @@ __metadata: p-limit: ^3.1.0 pprof-format: ^2.1.0 source-map: ^0.7.4 - checksum: 72e8c193d68190e62fb8e1e561daa1f319e61523e294c7dad8aba8ef0430739e8918725a2965e41425309fd7827392a6e1cad6465970198a85e56428deba61ad + checksum: 8cd6ef1f04b0f966f3e133b9d04eb7d487c29a16f5a258e4653f2308af931f0c9adffa3160166d636bb98d9931ebd02b11322ef9ca0f94a81f21e1e2eac30da8 languageName: node linkType: hard @@ -2531,7 +2545,7 @@ __metadata: languageName: unknown linkType: soft -"@datadog/sketches-js@npm:^2.1.0": +"@datadog/sketches-js@npm:^2.1.1": version: 2.1.1 resolution: "@datadog/sketches-js@npm:2.1.1" checksum: 795170bb227af48fb54490fb5c252ae7a40aa088dc2cb7cf87c86fadc616b41fd3e35fd7e8418983396d72a9da6bf6259137e2a33c3d97e534eeb300185fd0c2 @@ -3910,13 +3924,13 @@ __metadata: linkType: hard "@react-native-async-storage/async-storage@npm:^2.1.2": - version: 2.1.2 - resolution: "@react-native-async-storage/async-storage@npm:2.1.2" + version: 2.2.0 + resolution: "@react-native-async-storage/async-storage@npm:2.2.0" dependencies: merge-options: ^3.0.4 peerDependencies: react-native: ^0.0.0-0 || >=0.65 <1.0 - checksum: a5c4d486e7e64067ab523b980b76cc2de5bf4b86ed410de09f2a95c3410e0c5b5be46c638a74cf5b7ed6dce10031ebac54350b498a2cb17f1a1c59347e671a73 + checksum: efbb9c801fb7eecfad1568d6a5e9d247db420b8ba8f1789d5b783e679432567a53cf54c7e7b5e6f315276f33d1df297253549e0cefef2e683539df346d2a1f2d languageName: node linkType: hard @@ -4718,145 +4732,146 @@ __metadata: languageName: node linkType: hard -"@smithy/abort-controller@npm:^4.0.3": - version: 4.0.3 - resolution: "@smithy/abort-controller@npm:4.0.3" +"@smithy/abort-controller@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/abort-controller@npm:4.0.4" dependencies: - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: d708b70ab5b00cfe43a07d2e95d3f5f35f2a722f9429f2c65b7899869c84979b2a670f71f521932dcd5f605e720901755158c98d40f057e765a0b77950e5fedb + checksum: 50e646633160f16d4d131c4a5612a352bca8ee652acfefc811389307756b791d0e0cee1459eeba4662e09b57e9f78681bb6c24d180d76e605126281fa52c20fb languageName: node linkType: hard -"@smithy/config-resolver@npm:^4.1.2, @smithy/config-resolver@npm:^4.1.3": - version: 4.1.3 - resolution: "@smithy/config-resolver@npm:4.1.3" +"@smithy/config-resolver@npm:^4.1.4": + version: 4.1.4 + resolution: "@smithy/config-resolver@npm:4.1.4" dependencies: - "@smithy/node-config-provider": ^4.1.2 - "@smithy/types": ^4.3.0 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/types": ^4.3.1 "@smithy/util-config-provider": ^4.0.0 - "@smithy/util-middleware": ^4.0.3 + "@smithy/util-middleware": ^4.0.4 tslib: ^2.6.2 - checksum: b9a0b5ef0e9358e77049cb9a1cddcd26cdad84b2164399408f5fb7f69100b0bbd89e061750f9ea1a1805dcaa09221d42bbfee797ed453a3a8201d762d31fec2e + checksum: d3c3b7017377ae30839d3bc684fca7ff58c41c2ca71dd067931aff61f0c570b09cf35e47fde660488c7e1ecc8e1abf720bd41f380b9a91ea302fbd7c7f1b85fb languageName: node linkType: hard -"@smithy/core@npm:^3.3.3, @smithy/core@npm:^3.4.0": - version: 3.4.0 - resolution: "@smithy/core@npm:3.4.0" +"@smithy/core@npm:^3.5.3": + version: 3.5.3 + resolution: "@smithy/core@npm:3.5.3" dependencies: - "@smithy/middleware-serde": ^4.0.6 - "@smithy/protocol-http": ^5.1.1 - "@smithy/types": ^4.3.0 + "@smithy/middleware-serde": ^4.0.8 + "@smithy/protocol-http": ^5.1.2 + "@smithy/types": ^4.3.1 + "@smithy/util-base64": ^4.0.0 "@smithy/util-body-length-browser": ^4.0.0 - "@smithy/util-middleware": ^4.0.3 - "@smithy/util-stream": ^4.2.1 + "@smithy/util-middleware": ^4.0.4 + "@smithy/util-stream": ^4.2.2 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: 0186f1fab718a8ec0f1d84eeb0570bf4ab3304775f0c0e07e983465c3515c2f88494c74c1e225015db8d3d190c8c5f585998c982481ffd46f4016f96833717dd + checksum: ae1d9393683e07ccff7ff1dcb7bfdaced42d71e4030094f4e43aaed8dba424e2389e60229805f34443cf60a6a05976c17d09f1b995464a87cf2e5774ead55474 languageName: node linkType: hard -"@smithy/credential-provider-imds@npm:^4.0.4, @smithy/credential-provider-imds@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/credential-provider-imds@npm:4.0.5" +"@smithy/credential-provider-imds@npm:^4.0.6": + version: 4.0.6 + resolution: "@smithy/credential-provider-imds@npm:4.0.6" dependencies: - "@smithy/node-config-provider": ^4.1.2 - "@smithy/property-provider": ^4.0.3 - "@smithy/types": ^4.3.0 - "@smithy/url-parser": ^4.0.3 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/property-provider": ^4.0.4 + "@smithy/types": ^4.3.1 + "@smithy/url-parser": ^4.0.4 tslib: ^2.6.2 - checksum: d395622f4a7123ebaaa518d5dd3c35a8b695c67470c2403ddb40712e59da24387cf99bca480cb73f6ef362bc9a4dbef53280d01e7128e21429c9f2b668e18e44 + checksum: 380ada77c7cc7f6e11ee4246a335799cd855b43df07469164ca7ccaeecd1eb8e037adf0b870e57578de7f82bb1f77e5d534c55ed3aa44491fcef55809b5d1d5c languageName: node linkType: hard -"@smithy/eventstream-codec@npm:^4.0.3": - version: 4.0.3 - resolution: "@smithy/eventstream-codec@npm:4.0.3" +"@smithy/eventstream-codec@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/eventstream-codec@npm:4.0.4" dependencies: "@aws-crypto/crc32": 5.2.0 - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 "@smithy/util-hex-encoding": ^4.0.0 tslib: ^2.6.2 - checksum: 6a2792a7e5352d86aceabc79d545a743b3ac19387f10ce1f20b4d40ef3abcb2e732f3c37dbfc59929f2fb56a196a702583723754cfc42b58e49d9acc3dbce410 + checksum: b5ff1a2c9f8ea48406f181c0104daf56e1f52bf251cfc531f497abce86f02a148d381ee1648bcd34a4c2293b8e0e052c02043755ffeb864421957fa320c74435 languageName: node linkType: hard -"@smithy/eventstream-serde-browser@npm:^4.0.2": - version: 4.0.3 - resolution: "@smithy/eventstream-serde-browser@npm:4.0.3" +"@smithy/eventstream-serde-browser@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/eventstream-serde-browser@npm:4.0.4" dependencies: - "@smithy/eventstream-serde-universal": ^4.0.3 - "@smithy/types": ^4.3.0 + "@smithy/eventstream-serde-universal": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 5a1b917c64f394f88f63416fd0a50487d652ec3fed11cb3fb10be329d6a4b084b29a63cd6d4aa57467aa2c5150bbe78c84c441f70ad984336a5d4cf9d957acab + checksum: 1d39b5da8fe1fd060d47f41f25b70ea4291c8ae2e4f5ea79bf1849a72af88ab0d819618e5b02606b1758084ce43964a92ffc36688817409dcabacd36a8a2266a languageName: node linkType: hard -"@smithy/eventstream-serde-config-resolver@npm:^4.1.0": - version: 4.1.1 - resolution: "@smithy/eventstream-serde-config-resolver@npm:4.1.1" +"@smithy/eventstream-serde-config-resolver@npm:^4.1.2": + version: 4.1.2 + resolution: "@smithy/eventstream-serde-config-resolver@npm:4.1.2" dependencies: - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: c00d99cadf74ca1082d0816bb79a64997123ed25f4277298b76a6079e2703d6f8d48183d762a5391f4640e9f4d60a77335e1c1fb9fc5ccb2d0f0e4c4b45e8d5e + checksum: 42b81e6c92029966f373be7eb589e1292a201e191965b62f1ff71a4e6b5dabf874850a8b65441fa9cec735aad018365a3e841f95af7443288130603be00a7996 languageName: node linkType: hard -"@smithy/eventstream-serde-node@npm:^4.0.2": - version: 4.0.3 - resolution: "@smithy/eventstream-serde-node@npm:4.0.3" +"@smithy/eventstream-serde-node@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/eventstream-serde-node@npm:4.0.4" dependencies: - "@smithy/eventstream-serde-universal": ^4.0.3 - "@smithy/types": ^4.3.0 + "@smithy/eventstream-serde-universal": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 902d4486682288d06120c98488676aa689a543e06222ea946d0555c04221728f27fdcf2502460efcfabecdf991e9a4af986ba4c24e774d2a242885f23f233fb2 + checksum: 179dd707b0f730c36ab68b1cfdbd0c6f29012a25bf3fec564076217a929627e119ccae8e5df34c267c1df8512c6294c10aa74e0511ab82b767f4a7ef39209519 languageName: node linkType: hard -"@smithy/eventstream-serde-universal@npm:^4.0.3": - version: 4.0.3 - resolution: "@smithy/eventstream-serde-universal@npm:4.0.3" +"@smithy/eventstream-serde-universal@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/eventstream-serde-universal@npm:4.0.4" dependencies: - "@smithy/eventstream-codec": ^4.0.3 - "@smithy/types": ^4.3.0 + "@smithy/eventstream-codec": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 2e7d50689ed33490e339c96f664c639be3dd78ef77a1bba1bcbf17493b8c5b8849b6f4989e85c6e1c3d760ae31d17c9a410e4fd74755e49f8f9651fff32cd864 + checksum: 53cf083f742f2fa381a0d0457e3fbfe3b36b65efec216f52d21f840382466b59c64e685a65412925b60a3def11e24e4bd6bcd3bb5afad336f3fafab2bb2cbd48 languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^5.0.2, @smithy/fetch-http-handler@npm:^5.0.3": - version: 5.0.3 - resolution: "@smithy/fetch-http-handler@npm:5.0.3" +"@smithy/fetch-http-handler@npm:^5.0.4": + version: 5.0.4 + resolution: "@smithy/fetch-http-handler@npm:5.0.4" dependencies: - "@smithy/protocol-http": ^5.1.1 - "@smithy/querystring-builder": ^4.0.3 - "@smithy/types": ^4.3.0 + "@smithy/protocol-http": ^5.1.2 + "@smithy/querystring-builder": ^4.0.4 + "@smithy/types": ^4.3.1 "@smithy/util-base64": ^4.0.0 tslib: ^2.6.2 - checksum: 9c1e7bfa1c9a338acf1bf1179c69e8ff0dde2b4ee2a37948573ccaa2a2590affb4da26386858fb7c2ec8ff235fd8a6ce9c10e5760187825abeb0713d352b073b + checksum: 3afb020d42e50d6bb446ceb8efe0cb33a05b449a15156459eea5717860e785f56a9166eb08455b7c1fd3af277bbca4b708e4d8cccda37519f44aa4990e3f50d4 languageName: node linkType: hard -"@smithy/hash-node@npm:^4.0.2": - version: 4.0.3 - resolution: "@smithy/hash-node@npm:4.0.3" +"@smithy/hash-node@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/hash-node@npm:4.0.4" dependencies: - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 "@smithy/util-buffer-from": ^4.0.0 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: 750de0862e4e743ca4cc755fbfa086413c5ae249f93e294a649b978167ad97f827b88e33a8584ce4a78606a18b1df973b3dd923feb637dcbc6ba51a3087e43cb + checksum: 2fd8a1036b9d6d2948249ad41a97b5801b918948ab1f8041b2b2482848570e8b417eeea7810f959376325e9ab33890775025b34a58305355b84ca8bff1417481 languageName: node linkType: hard -"@smithy/invalid-dependency@npm:^4.0.2": - version: 4.0.3 - resolution: "@smithy/invalid-dependency@npm:4.0.3" +"@smithy/invalid-dependency@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/invalid-dependency@npm:4.0.4" dependencies: - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 62321aa8cfbb124a3c4da71f8644e50863fee4bae358eb1eec30faf9eea581bb86ace04bb76018a9b5ed7ce264660f688e5d3bc9e6de11023091377ef2217670 + checksum: 6d6f53558cb252e2070e4830a18c0c72ad486308378d6eab2a185d63f5a0492ffbdff27dbea59f79e2d48477af2295e80d6314becf9ea3215827be8bb6690b07 languageName: node linkType: hard @@ -4878,93 +4893,93 @@ __metadata: languageName: node linkType: hard -"@smithy/middleware-content-length@npm:^4.0.2": - version: 4.0.3 - resolution: "@smithy/middleware-content-length@npm:4.0.3" +"@smithy/middleware-content-length@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/middleware-content-length@npm:4.0.4" dependencies: - "@smithy/protocol-http": ^5.1.1 - "@smithy/types": ^4.3.0 + "@smithy/protocol-http": ^5.1.2 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 97b6d575d58a0e4b9ec0f25d4f5c89d8bd8db3b552fd7455e48f03678480f8906bd97f705943ad2fc36eb929e14aae793684968e93dd936dd6ad17ab4ed00811 + checksum: 251e47fbb7df19a8c39719f96dfd9e00252fc33733d2585898b7e5a37e85056052de1559d3c62b9daf493e2293b574ac2e92e17806777cadc9b733f1aab42294 languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^4.1.6, @smithy/middleware-endpoint@npm:^4.1.7": - version: 4.1.7 - resolution: "@smithy/middleware-endpoint@npm:4.1.7" - dependencies: - "@smithy/core": ^3.4.0 - "@smithy/middleware-serde": ^4.0.6 - "@smithy/node-config-provider": ^4.1.2 - "@smithy/shared-ini-file-loader": ^4.0.3 - "@smithy/types": ^4.3.0 - "@smithy/url-parser": ^4.0.3 - "@smithy/util-middleware": ^4.0.3 +"@smithy/middleware-endpoint@npm:^4.1.11": + version: 4.1.11 + resolution: "@smithy/middleware-endpoint@npm:4.1.11" + dependencies: + "@smithy/core": ^3.5.3 + "@smithy/middleware-serde": ^4.0.8 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/shared-ini-file-loader": ^4.0.4 + "@smithy/types": ^4.3.1 + "@smithy/url-parser": ^4.0.4 + "@smithy/util-middleware": ^4.0.4 tslib: ^2.6.2 - checksum: 1c87555ed7465ee33771845332b80c8243a1dbe35b393a97fb570d8faad8a3df4a5dc4492c15b164cb124ff12f38824a8f02ced97dc3b64d288a64598eb985d6 + checksum: dea73669a74afcf74a0fcb8d6a12b940d41c1cafed005244e228eb30c2c60af3b9b69bdd11943078d98eb1de15052fd7335099cb073d84f67f61ce97fbe8688a languageName: node linkType: hard -"@smithy/middleware-retry@npm:^4.1.7": - version: 4.1.8 - resolution: "@smithy/middleware-retry@npm:4.1.8" - dependencies: - "@smithy/node-config-provider": ^4.1.2 - "@smithy/protocol-http": ^5.1.1 - "@smithy/service-error-classification": ^4.0.4 - "@smithy/smithy-client": ^4.3.0 - "@smithy/types": ^4.3.0 - "@smithy/util-middleware": ^4.0.3 - "@smithy/util-retry": ^4.0.4 +"@smithy/middleware-retry@npm:^4.1.12": + version: 4.1.12 + resolution: "@smithy/middleware-retry@npm:4.1.12" + dependencies: + "@smithy/node-config-provider": ^4.1.3 + "@smithy/protocol-http": ^5.1.2 + "@smithy/service-error-classification": ^4.0.5 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 + "@smithy/util-middleware": ^4.0.4 + "@smithy/util-retry": ^4.0.5 tslib: ^2.6.2 uuid: ^9.0.1 - checksum: 8186bc70fdf2fcd807b43259fcc76b917b75e1cb1357fae58c1adbb53459cb3a128717555d08ef37e7930b9c483ad38e509f87698eb923cb798d5718ee0ce4a9 + checksum: 401d97e2b9e2d62220215ec98f9b7299b9a8aed909b3ae9a5e0c29993087fdfe22464a17bb980eb72c027c1a056d365159102ddd9c06c8045a1a6f0be441f1dd languageName: node linkType: hard -"@smithy/middleware-serde@npm:^4.0.5, @smithy/middleware-serde@npm:^4.0.6": - version: 4.0.6 - resolution: "@smithy/middleware-serde@npm:4.0.6" +"@smithy/middleware-serde@npm:^4.0.8": + version: 4.0.8 + resolution: "@smithy/middleware-serde@npm:4.0.8" dependencies: - "@smithy/protocol-http": ^5.1.1 - "@smithy/types": ^4.3.0 + "@smithy/protocol-http": ^5.1.2 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: c710829646f6f47574212ec8e34dd5c39a159f36cf43a24d1e1ce993d5033a0064a1e8321b939bbdf6f9e9446613fb97f16892e63aea9e248eddffbc087a3d4f + checksum: 1c78cf584bf82c2ed80d55694945d63b5d3bdaf0c4dea1a35ff33b201d939e9ee5afbfb01c6725c9cbc0d9efb3ee50703970d177a9d20dba545e7e7ba3c0a3f5 languageName: node linkType: hard -"@smithy/middleware-stack@npm:^4.0.2, @smithy/middleware-stack@npm:^4.0.3": - version: 4.0.3 - resolution: "@smithy/middleware-stack@npm:4.0.3" +"@smithy/middleware-stack@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/middleware-stack@npm:4.0.4" dependencies: - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: c4db64a738848e95781dcaed3b4c22fd112eb3bff8168c841edc59deea5844e3819a7e50fc5fa3332dbac727c6180eef16e09e3f95cc75ebf8ef127ee49c64f0 + checksum: c0b4e057d438fbc900435a4bcae68308bc17361968ebe828d43b4f78d826711e5d196ea2fc3ef86525169508d885979e459db0d46918ae00a2bb5dc8a5bd6796 languageName: node linkType: hard -"@smithy/node-config-provider@npm:^4.1.1, @smithy/node-config-provider@npm:^4.1.2": - version: 4.1.2 - resolution: "@smithy/node-config-provider@npm:4.1.2" +"@smithy/node-config-provider@npm:^4.1.3": + version: 4.1.3 + resolution: "@smithy/node-config-provider@npm:4.1.3" dependencies: - "@smithy/property-provider": ^4.0.3 - "@smithy/shared-ini-file-loader": ^4.0.3 - "@smithy/types": ^4.3.0 + "@smithy/property-provider": ^4.0.4 + "@smithy/shared-ini-file-loader": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 2796c79606df5824b45cbb5aafcf4a455c81ce3b5ece69257079f6e82a57adea911f7f014394e6aea84be46469f05fa96647e5b5b88309c746ba86329a7a490b + checksum: c1260719f567b64e979e54698356ffd49f26d82e5eaafc60741588257df6016bbf7d2e26cba902ff900058e5e47e985287fdcb7ab1acdf6534b7cd50252e3856 languageName: node linkType: hard -"@smithy/node-http-handler@npm:^4.0.4, @smithy/node-http-handler@npm:^4.0.5": - version: 4.0.5 - resolution: "@smithy/node-http-handler@npm:4.0.5" +"@smithy/node-http-handler@npm:^4.0.6": + version: 4.0.6 + resolution: "@smithy/node-http-handler@npm:4.0.6" dependencies: - "@smithy/abort-controller": ^4.0.3 - "@smithy/protocol-http": ^5.1.1 - "@smithy/querystring-builder": ^4.0.3 - "@smithy/types": ^4.3.0 + "@smithy/abort-controller": ^4.0.4 + "@smithy/protocol-http": ^5.1.2 + "@smithy/querystring-builder": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 413bbc73dd745629b2cd9e7017c0ddedc6d45721583799dd2851e7115f49cb4509f764d008310294a635a14a62b2982f3feddc8a5c70c061f683e5edfad6e0dc + checksum: b0505a812182f29e4ff254f4710a476e0dd9a869248b5c9972ddaaf0c1bef9dc980682947826d5a24c3b54c635ad6a1d7ac6460e61ac99da8becc4ecda55e768 languageName: node linkType: hard @@ -4978,44 +4993,44 @@ __metadata: languageName: node linkType: hard -"@smithy/property-provider@npm:^4.0.2, @smithy/property-provider@npm:^4.0.3": - version: 4.0.3 - resolution: "@smithy/property-provider@npm:4.0.3" +"@smithy/property-provider@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/property-provider@npm:4.0.4" dependencies: - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: a1d602c696fdebb51b472a53fa88bc5940f2389513a86f30c5632f3ae3bb63b06340c313aed7ffe45dac14f9d46af5513d4303053effd282cd173a796d657b05 + checksum: 1cd552792897e43c1d4cf91edac0956a8a8d6a7ba588e46532644ae5aca535ec0fb33e3aa71c73f325632b72cd1b8f26732525a6723f74c54238026432b0118e languageName: node linkType: hard -"@smithy/protocol-http@npm:^5.1.0, @smithy/protocol-http@npm:^5.1.1": - version: 5.1.1 - resolution: "@smithy/protocol-http@npm:5.1.1" +"@smithy/protocol-http@npm:^5.1.2": + version: 5.1.2 + resolution: "@smithy/protocol-http@npm:5.1.2" dependencies: - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: cb54259c10242627c2df279d1860b659c433955ee8bb8c7629e9e0a953fcd68ceb72a1d66172fb5fdf8ba7a4a49ec812dabac28d4165ad0b929f7f999a8541fc + checksum: 48dbb715956f7089f3422c6c875fd5c6c901bb55363091905f749bba4bac03c40bf11e63dcc92c9b5de058305c60513e987e1fd7550e585c9e2a98e7355676c8 languageName: node linkType: hard -"@smithy/querystring-builder@npm:^4.0.3": - version: 4.0.3 - resolution: "@smithy/querystring-builder@npm:4.0.3" +"@smithy/querystring-builder@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/querystring-builder@npm:4.0.4" dependencies: - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 "@smithy/util-uri-escape": ^4.0.0 tslib: ^2.6.2 - checksum: 1e1490a2ce5f99cf918eea3da1808e42f486e16aa2a206830e2e12d0d348807570764777bfc04dfab6974ae39ba37424421ff6fabef9f206a1e0fcb6be5ea84d + checksum: e521cd60294aebabb11386f4db7925095ca7dcdd1eda1904ad3443aa65c992a74e7d57b24018c3e141320bcc8b8928a24b8a14c4328bc7176bdb1eac15f6655b languageName: node linkType: hard -"@smithy/querystring-parser@npm:^4.0.3": - version: 4.0.3 - resolution: "@smithy/querystring-parser@npm:4.0.3" +"@smithy/querystring-parser@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/querystring-parser@npm:4.0.4" dependencies: - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 3a9fa7f8275ddcad1c59be39eeefc1c245454a3ba7d7e77b2a08c2b5af9bb04d723a5323ab85532a7880a2ea46efb922de605e8d5fdb0265099555c78655df54 + checksum: ebe874dfec44ec3d6ff63f9570cac7c18f5b1b2fb3d6a72722adb9d24bb891970fbbabb18d15b8ce46902cc5f21f1751218794f3ff2e110865804d822f4b83a0 languageName: node linkType: hard @@ -5028,53 +5043,53 @@ __metadata: languageName: node linkType: hard -"@smithy/service-error-classification@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/service-error-classification@npm:4.0.4" +"@smithy/service-error-classification@npm:^4.0.5": + version: 4.0.5 + resolution: "@smithy/service-error-classification@npm:4.0.5" dependencies: - "@smithy/types": ^4.3.0 - checksum: 52033f44f7d8793487fdc3ae49a76fae682663b582923fb048c094aed57a7216d2a6e228142ba0daec958b0bcf5dafab35cdb61699dee06bc94a5dc00db7bc4a + "@smithy/types": ^4.3.1 + checksum: c93c0fbcd7f094a8652ecfa0b1281621bb49b93eae36b94330c4990436666e53e9a3a9dc57915b79e79f731f801e18873256c06f7fb091b3b7e64d23fdb33960 languageName: node linkType: hard -"@smithy/shared-ini-file-loader@npm:^4.0.2, @smithy/shared-ini-file-loader@npm:^4.0.3": - version: 4.0.3 - resolution: "@smithy/shared-ini-file-loader@npm:4.0.3" +"@smithy/shared-ini-file-loader@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/shared-ini-file-loader@npm:4.0.4" dependencies: - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: fb80886cc59470d06c13e0ca022e0edd07f0f57161a2fc6ddb18989541e5aa97572b0154fd629389b6eb8ddc88c8fd48aa0b2224177261d164663c88b5a121c9 + checksum: b9405d3fea03cb7d1b031a41d7a91581eaaf47a5e6322c7bf2c57e27bcf8af403eea68c46a9c878a31af8a1f08fa803fce3d253c55b3318548fc93d61b0e56e8 languageName: node linkType: hard -"@smithy/signature-v4@npm:^5.1.0": - version: 5.1.1 - resolution: "@smithy/signature-v4@npm:5.1.1" +"@smithy/signature-v4@npm:^5.1.2": + version: 5.1.2 + resolution: "@smithy/signature-v4@npm:5.1.2" dependencies: "@smithy/is-array-buffer": ^4.0.0 - "@smithy/protocol-http": ^5.1.1 - "@smithy/types": ^4.3.0 + "@smithy/protocol-http": ^5.1.2 + "@smithy/types": ^4.3.1 "@smithy/util-hex-encoding": ^4.0.0 - "@smithy/util-middleware": ^4.0.3 + "@smithy/util-middleware": ^4.0.4 "@smithy/util-uri-escape": ^4.0.0 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: dcf352e20d8f0342cb18b6f745ba1a1d655fc7987b4d742cfd312b70739fbc765ddff1419a1739057559417e75ee71f70f2ca0f2e44c6a9d50294c10c29696b7 + checksum: b8acbdd600279be860650b8c99ea443b653f0a980a9aceb7cdf8bf0f017d0376a4aac9bef738c24aa0c2f12b3ae1984bf1ed5d99235f64a9ff41a7fcd851b531 languageName: node linkType: hard -"@smithy/smithy-client@npm:^4.2.6, @smithy/smithy-client@npm:^4.3.0": - version: 4.3.0 - resolution: "@smithy/smithy-client@npm:4.3.0" - dependencies: - "@smithy/core": ^3.4.0 - "@smithy/middleware-endpoint": ^4.1.7 - "@smithy/middleware-stack": ^4.0.3 - "@smithy/protocol-http": ^5.1.1 - "@smithy/types": ^4.3.0 - "@smithy/util-stream": ^4.2.1 +"@smithy/smithy-client@npm:^4.4.3": + version: 4.4.3 + resolution: "@smithy/smithy-client@npm:4.4.3" + dependencies: + "@smithy/core": ^3.5.3 + "@smithy/middleware-endpoint": ^4.1.11 + "@smithy/middleware-stack": ^4.0.4 + "@smithy/protocol-http": ^5.1.2 + "@smithy/types": ^4.3.1 + "@smithy/util-stream": ^4.2.2 tslib: ^2.6.2 - checksum: c7be9b88519cc2d3253087009f446d97925c228e9538c886725f779651b85d8b3b1415da6234d80eaa3dbaeaed86d9849f84de69be34b1d0ec8c336131b662ce + checksum: 72ceab6f5cd4d908d0e11c8d1437699b9d83aa398704bf9ccd5536305d8d990023484b5b0129027654aaf6d9ebdb89c4fc536c4349e0bdc4b10463c774a21f6a languageName: node linkType: hard @@ -5087,23 +5102,23 @@ __metadata: languageName: node linkType: hard -"@smithy/types@npm:^4.2.0, @smithy/types@npm:^4.3.0": - version: 4.3.0 - resolution: "@smithy/types@npm:4.3.0" +"@smithy/types@npm:^4.3.1": + version: 4.3.1 + resolution: "@smithy/types@npm:4.3.1" dependencies: tslib: ^2.6.2 - checksum: 30bb2985033307c6a25fbc9fa5852d6f4765a4cf53bf9fcddccba002729618a99b006a7eb038177525182ee2dbf96b95a3816209554405a7925977d8e6e0642a + checksum: 45f2e15cec06eefb6a2470346c65ec927e56ab1757eee5ab1c431f703a9b350b331679e1f60105a1529ecb9cdb953104883942e655701fb4710bbaf566ec0bc6 languageName: node linkType: hard -"@smithy/url-parser@npm:^4.0.2, @smithy/url-parser@npm:^4.0.3": - version: 4.0.3 - resolution: "@smithy/url-parser@npm:4.0.3" +"@smithy/url-parser@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/url-parser@npm:4.0.4" dependencies: - "@smithy/querystring-parser": ^4.0.3 - "@smithy/types": ^4.3.0 + "@smithy/querystring-parser": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 22ff8c5cf81d1f8b7d29cbe629243ec5d1fbe060ea9c2f5b3fe39bc120641e8f5ea97687904bc8f7c1f3864037a63f863e2ae900ad8047b6aafaeabc53cbb683 + checksum: 1d3df1c58809f424af00396f987607ec9ebb0840625e4353af6dcd6baf480db8dd080b2f01ed41598ff18681ab2fcecab37f18f4c253fcbdd71eab2fab049400 languageName: node linkType: hard @@ -5165,42 +5180,42 @@ __metadata: languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^4.0.14": - version: 4.0.15 - resolution: "@smithy/util-defaults-mode-browser@npm:4.0.15" +"@smithy/util-defaults-mode-browser@npm:^4.0.19": + version: 4.0.19 + resolution: "@smithy/util-defaults-mode-browser@npm:4.0.19" dependencies: - "@smithy/property-provider": ^4.0.3 - "@smithy/smithy-client": ^4.3.0 - "@smithy/types": ^4.3.0 + "@smithy/property-provider": ^4.0.4 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 bowser: ^2.11.0 tslib: ^2.6.2 - checksum: 219c8bb80bf75b0e375026352782af7f5110fd6a1b43f4d8fd1cc80bf86955d602c5c6b777aacd9fd677f8aa5c856686814cda22cac2121edff2ab9638899231 + checksum: 2e523365df792b6e8615a5f6030dde5b6aeda84f149d694bbc6b2a3f9a44d29e6ac447ee50d5e69349e6c9f318b0559874790c20c5b300253f7dea41ac1bd5b0 languageName: node linkType: hard -"@smithy/util-defaults-mode-node@npm:^4.0.14": - version: 4.0.15 - resolution: "@smithy/util-defaults-mode-node@npm:4.0.15" +"@smithy/util-defaults-mode-node@npm:^4.0.19": + version: 4.0.19 + resolution: "@smithy/util-defaults-mode-node@npm:4.0.19" dependencies: - "@smithy/config-resolver": ^4.1.3 - "@smithy/credential-provider-imds": ^4.0.5 - "@smithy/node-config-provider": ^4.1.2 - "@smithy/property-provider": ^4.0.3 - "@smithy/smithy-client": ^4.3.0 - "@smithy/types": ^4.3.0 + "@smithy/config-resolver": ^4.1.4 + "@smithy/credential-provider-imds": ^4.0.6 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/property-provider": ^4.0.4 + "@smithy/smithy-client": ^4.4.3 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 8c15d3d92e322dc4c323b9faa2a7e357381da4cec9205e07fcd63a0de3160373aecfd9ccc733c39cc94e38834f2465d4fcc248678acae99fd2fedf60804b9403 + checksum: 7e76598b9af449bc412d8184c1539c4dfe1997090ccc16fb95a9c66ddf362a6e31feb8eb3e7ad7252d9d4361b5a8e34bff1e203f774818c581fbf526f4833015 languageName: node linkType: hard -"@smithy/util-endpoints@npm:^3.0.4": - version: 3.0.5 - resolution: "@smithy/util-endpoints@npm:3.0.5" +"@smithy/util-endpoints@npm:^3.0.6": + version: 3.0.6 + resolution: "@smithy/util-endpoints@npm:3.0.6" dependencies: - "@smithy/node-config-provider": ^4.1.2 - "@smithy/types": ^4.3.0 + "@smithy/node-config-provider": ^4.1.3 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 577113e836d469f44ab7c6afee9ef589ea29842c840adf603526576ee7482310ef1d7a8f7e5605260d12aac5d718b86d3aae257d625bd2d6483d6d529e07c8ad + checksum: 185c096db895f5bfabc05f1500d3428761fc4d450e998d6bf269879f7fc3f6fd770c1ed5a2de395a6b5300197bd40748a5b06c74b91ff01c9c499a25f2ba827e languageName: node linkType: hard @@ -5213,13 +5228,13 @@ __metadata: languageName: node linkType: hard -"@smithy/util-middleware@npm:^4.0.2, @smithy/util-middleware@npm:^4.0.3": - version: 4.0.3 - resolution: "@smithy/util-middleware@npm:4.0.3" +"@smithy/util-middleware@npm:^4.0.4": + version: 4.0.4 + resolution: "@smithy/util-middleware@npm:4.0.4" dependencies: - "@smithy/types": ^4.3.0 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 8c564d69f27e0166de14c85df062af14f45b652bc3246f64adb03fae01fcffa913b808410f55a4d5d00f9f086bb96d4f59b23fa430d4aa35d4a7da629d867971 + checksum: 6cfdec16f03cc963e78d888a0ef349c0d80645775e9933a88c4615fbd5a683a8230997f89372e2597bd956bc05df5adc41de6524fa8c0cc93fb7150d6530a03b languageName: node linkType: hard @@ -5234,30 +5249,30 @@ __metadata: languageName: node linkType: hard -"@smithy/util-retry@npm:^4.0.3, @smithy/util-retry@npm:^4.0.4": - version: 4.0.4 - resolution: "@smithy/util-retry@npm:4.0.4" +"@smithy/util-retry@npm:^4.0.5": + version: 4.0.5 + resolution: "@smithy/util-retry@npm:4.0.5" dependencies: - "@smithy/service-error-classification": ^4.0.4 - "@smithy/types": ^4.3.0 + "@smithy/service-error-classification": ^4.0.5 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: 8d29f2c75d1b3a19dd0257cb2dddc700dab7bbd76bb47677f5f0134ca20850be727f2e038672b500729e91e57d1f8dd96f95b51184f4e804be5fde07b23f4168 + checksum: 2027f792a76591f2c761fa322ed50a95d40c6ef457f6d044f6b64694e037fcf549bf56e750a4f36a1460a0a6b05c6690f911733d66b40b4c84f8fcfe69bd931d languageName: node linkType: hard -"@smithy/util-stream@npm:^4.2.0, @smithy/util-stream@npm:^4.2.1": - version: 4.2.1 - resolution: "@smithy/util-stream@npm:4.2.1" +"@smithy/util-stream@npm:^4.2.2": + version: 4.2.2 + resolution: "@smithy/util-stream@npm:4.2.2" dependencies: - "@smithy/fetch-http-handler": ^5.0.3 - "@smithy/node-http-handler": ^4.0.5 - "@smithy/types": ^4.3.0 + "@smithy/fetch-http-handler": ^5.0.4 + "@smithy/node-http-handler": ^4.0.6 + "@smithy/types": ^4.3.1 "@smithy/util-base64": ^4.0.0 "@smithy/util-buffer-from": ^4.0.0 "@smithy/util-hex-encoding": ^4.0.0 "@smithy/util-utf8": ^4.0.0 tslib: ^2.6.2 - checksum: d2f3a12a74d2edd71a95457ce2be6585e460743bccb9a1ab966c91f04978e12d8a426d4e3da0626a5259b08cd655e469a5858a465ce975b395d8fa962786918b + checksum: 52b7c38ccf397536c882fd15453ca4c214618e045fcd96b049e79829f9c5be06a526f3672e88f1f578fa730debead264ce53e6fc3b18f43d8e6079a24ba7bbb0 languageName: node linkType: hard @@ -5290,14 +5305,14 @@ __metadata: languageName: node linkType: hard -"@smithy/util-waiter@npm:^4.0.3": - version: 4.0.4 - resolution: "@smithy/util-waiter@npm:4.0.4" +"@smithy/util-waiter@npm:^4.0.5": + version: 4.0.5 + resolution: "@smithy/util-waiter@npm:4.0.5" dependencies: - "@smithy/abort-controller": ^4.0.3 - "@smithy/types": ^4.3.0 + "@smithy/abort-controller": ^4.0.4 + "@smithy/types": ^4.3.1 tslib: ^2.6.2 - checksum: fd5278f88cc50010003240893ae24f1c4678675e347e0a0fc854520889b035aa844c3064d947d1d3288cca15cab1316e075fe7b9d3e6df050d259e244bbfacd0 + checksum: 6fa635c78093d4512aa569338af4d36bfb7c2982ac53a0bfb83f3c90cc483df05bc05450cabab57e0e1a1348efd2a469ce711b0e90d9f7a9c8b19f51dfa3d880 languageName: node linkType: hard @@ -5520,11 +5535,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=13.7.0": - version: 22.15.21 - resolution: "@types/node@npm:22.15.21" + version: 24.0.3 + resolution: "@types/node@npm:24.0.3" dependencies: - undici-types: ~6.21.0 - checksum: 989f1ce3a99916a7298ae885210385fbcb339b07f8ef420b015d69dd68863aca68aeae07833736b300720d9394b8e1875600ce74166c24957d9907d29de0b788 + undici-types: ~7.8.0 + checksum: 84ab3ee3b752ea06efa1d3da8391d47ebac4551559c8fb5e48fc06fc6f79971540dcee0ee9864b4b399c213d2c93873e14cda7b0b251c95440863c6d777d8f74 languageName: node linkType: hard @@ -5536,9 +5551,9 @@ __metadata: linkType: hard "@types/prop-types@npm:*": - version: 15.7.14 - resolution: "@types/prop-types@npm:15.7.14" - checksum: d0c5407b9ccc3dd5fae0ccf9b1007e7622ba5e6f1c18399b4f24dff33619d469da4b9fa918a374f19dc0d9fe6a013362aab0b844b606cfc10676efba3f5f736d + version: 15.7.15 + resolution: "@types/prop-types@npm:15.7.15" + checksum: 31aa2f59b28f24da6fb4f1d70807dae2aedfce090ec63eaf9ea01727a9533ef6eaf017de5bff99fbccad7d1c9e644f52c6c2ba30869465dd22b1a7221c29f356 languageName: node linkType: hard @@ -5570,21 +5585,21 @@ __metadata: linkType: hard "@types/react@npm:*": - version: 19.1.5 - resolution: "@types/react@npm:19.1.5" + version: 19.1.8 + resolution: "@types/react@npm:19.1.8" dependencies: csstype: ^3.0.2 - checksum: 49c01b9d1874e11c02c26f08623474d86093ae02c76cf2b9c952093d855fab505ab8d8aaa162200270bd7b1fc03033859db24f6599affa1d05c5fe46374ecafc + checksum: 17e0c74d9c01214938fa805aaa8b97925bf3c5514e88fdf94bec42c0a6d4abbc63d4e30255db176f46fd7f0aa89f8085b9b2b2fa5abaffbbf7e5009386ada892 languageName: node linkType: hard "@types/react@npm:^18, @types/react@npm:^18.2.6": - version: 18.3.22 - resolution: "@types/react@npm:18.3.22" + version: 18.3.23 + resolution: "@types/react@npm:18.3.23" dependencies: "@types/prop-types": "*" csstype: ^3.0.2 - checksum: e69bdec2df18397e0ecc48e0e858ba331e56130b0b2cd1561098dcdddf04a8aa1ae0b51a294d60d0ade13bfabe5670131a3bd82bedca3b323d51de2b9cd0debd + checksum: d781257d42bf3c66f4bcd21e76a86cd9b6e21fbaf377fe0f840f1ff35049efa59491aa6a4dcf2b3db42af4ab085acebe185f0ae28b7c36d60be5e9094c707bdd languageName: node linkType: hard @@ -6125,11 +6140,11 @@ __metadata: linkType: hard "acorn@npm:^8.14.0, acorn@npm:^8.9.0": - version: 8.14.1 - resolution: "acorn@npm:8.14.1" + version: 8.15.0 + resolution: "acorn@npm:8.15.0" bin: acorn: bin/acorn - checksum: 260d9bb6017a1b6e42d31364687f0258f78eb20210b36ef2baad38fd619d78d4e95ff7dde9b3dbe0d81f137f79a8d651a845363a26e6985997f7b71145dc5e94 + checksum: 309c6b49aedf1a2e34aaf266de06de04aab6eb097c02375c66fdeb0f64556a6a823540409914fb364d9a11bc30d79d485a2eba29af47992d3490e9886c4391c3 languageName: node linkType: hard @@ -6367,16 +6382,18 @@ __metadata: linkType: hard "array-includes@npm:^3.1.1, array-includes@npm:^3.1.6, array-includes@npm:^3.1.7, array-includes@npm:^3.1.8": - version: 3.1.8 - resolution: "array-includes@npm:3.1.8" + version: 3.1.9 + resolution: "array-includes@npm:3.1.9" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.4 define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-object-atoms: ^1.0.0 - get-intrinsic: ^1.2.4 - is-string: ^1.0.7 - checksum: eb39ba5530f64e4d8acab39297c11c1c5be2a4ea188ab2b34aba5fb7224d918f77717a9d57a3e2900caaa8440e59431bdaf5c974d5212ef65d97f132e38e2d91 + es-abstract: ^1.24.0 + es-object-atoms: ^1.1.1 + get-intrinsic: ^1.3.0 + is-string: ^1.1.1 + math-intrinsics: ^1.1.0 + checksum: b58dc526fe415252e50319eaf88336e06e75aa673e3b58d252414739a4612dbe56e7b613fdcc7c90561dc9cf9202bbe5ca029ccd8c08362746459475ae5a8f3e languageName: node linkType: hard @@ -6865,21 +6882,21 @@ __metadata: linkType: hard "brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" + version: 1.1.12 + resolution: "brace-expansion@npm:1.1.12" dependencies: balanced-match: ^1.0.0 concat-map: 0.0.1 - checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + checksum: 12cb6d6310629e3048cadb003e1aca4d8c9bb5c67c3c321bafdd7e7a50155de081f78ea3e0ed92ecc75a9015e784f301efc8132383132f4f7904ad1ac529c562 languageName: node linkType: hard "brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" + version: 2.0.2 + resolution: "brace-expansion@npm:2.0.2" dependencies: balanced-match: ^1.0.0 - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + checksum: 01dff195e3646bc4b0d27b63d9bab84d2ebc06121ff5013ad6e5356daa5a9d6b60fa26cf73c74797f2dc3fbec112af13578d51f75228c1112b26c790a87b0488 languageName: node linkType: hard @@ -6892,17 +6909,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.20.4, browserslist@npm:^4.24.0, browserslist@npm:^4.24.4": - version: 4.24.5 - resolution: "browserslist@npm:4.24.5" +"browserslist@npm:^4.20.4, browserslist@npm:^4.24.0, browserslist@npm:^4.25.0": + version: 4.25.0 + resolution: "browserslist@npm:4.25.0" dependencies: - caniuse-lite: ^1.0.30001716 - electron-to-chromium: ^1.5.149 + caniuse-lite: ^1.0.30001718 + electron-to-chromium: ^1.5.160 node-releases: ^2.0.19 update-browserslist-db: ^1.1.3 bin: browserslist: cli.js - checksum: 69310ade58b0cb2b2871022fdaba8388902f9a2d17a6fa05f383d046d6da87fd9f83018a66fe1c6296648ca7d52e3208c3fc68c82f17a0fd4bf12a452c036247 + checksum: 0d34fa0c6e23e962598ba68ee9f4566a4b575ec550ff7e9e7287c5e94a6e0f208f75f4f7d578ccd060f843167e0e495bde8f6d278f353f0da783cd50f758e5c7 languageName: node linkType: hard @@ -7096,10 +7113,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001716": - version: 1.0.30001718 - resolution: "caniuse-lite@npm:1.0.30001718" - checksum: c6598b6eb2c4358fc9f8ead8982bf5f9efdc1f29bb74948b9481d314ced10675bd0beb99771094ac52d56c2cec121049d1f18e9405cab7d81807816d1836b38a +"caniuse-lite@npm:^1.0.30001718": + version: 1.0.30001723 + resolution: "caniuse-lite@npm:1.0.30001723" + checksum: 0acd7f33f15cfc6cf81a5155bb288afb34ce63cddd90bbf1740243b3c6c1de813ad10b393650f1c15e47f13ff4da61a8d14b02fac8e47e7367aede3ef162a1c6 languageName: node linkType: hard @@ -7684,11 +7701,11 @@ __metadata: linkType: hard "core-js-compat@npm:^3.40.0": - version: 3.42.0 - resolution: "core-js-compat@npm:3.42.0" + version: 3.43.0 + resolution: "core-js-compat@npm:3.43.0" dependencies: - browserslist: ^4.24.4 - checksum: 4f0a7db9ed9a95c4edae0749fe9a4d4d4f8f51a53c7c3e06049887500e98763732e8afef9628d2145f875b6e262567e951a77e4d06273f9eac273f5241259fd3 + browserslist: ^4.25.0 + checksum: 32d1383c3d6bf84b8bb41b5a1e0a45bf8144ea3f7b913a7e83dd51f1252e9db9c187c4e34877b39ac5661be51a03655694c3a01e03637b895c39f7908f440c77 languageName: node linkType: hard @@ -7896,10 +7913,10 @@ __metadata: languageName: node linkType: hard -"dc-polyfill@npm:0.1.8": - version: 0.1.8 - resolution: "dc-polyfill@npm:0.1.8" - checksum: 8605da3baaf191788c66d62287702789adfb8b5159cd78267623e6c8d8f0002d36a1e90d76b457f5f60ce36e9f909262cd8b3042fde506b82aa66205afe94bdd +"dc-polyfill@npm:0.1.9": + version: 0.1.9 + resolution: "dc-polyfill@npm:0.1.9" + checksum: f716794cb4289945ee3297b80d1f0568099ee99653a6c439f6141960d38debac21dbaadcd37ce95f127411b7e3bf1d45986f7e36fcc0abc01745a2a1cbe63713 languageName: node linkType: hard @@ -7977,6 +7994,7 @@ __metadata: genversion: 3.0.2 jest: ^29.7.0 lerna: 8.1.6 + metro: ^0.82.0 pod-install: 0.1.14 prettier: 2.2.0 react: 18.3.1 @@ -7993,43 +8011,43 @@ __metadata: linkType: soft "dd-trace@npm:^5.28.0": - version: 5.53.0 - resolution: "dd-trace@npm:5.53.0" + version: 5.56.0 + resolution: "dd-trace@npm:5.56.0" dependencies: - "@datadog/libdatadog": ^0.5.1 + "@datadog/libdatadog": ^0.6.0 "@datadog/native-appsec": 8.5.2 "@datadog/native-iast-taint-tracking": 4.0.0 "@datadog/native-metrics": ^3.1.1 - "@datadog/pprof": 5.8.0 - "@datadog/sketches-js": ^2.1.0 + "@datadog/pprof": 5.8.2 + "@datadog/sketches-js": ^2.1.1 "@datadog/wasm-js-rewriter": 4.0.1 "@isaacs/ttlcache": ^1.4.1 "@opentelemetry/api": ">=1.0.0 <1.9.0" "@opentelemetry/core": ^1.14.0 crypto-randomuuid: ^1.0.0 - dc-polyfill: 0.1.8 + dc-polyfill: 0.1.9 ignore: ^5.2.4 - import-in-the-middle: 1.13.1 - istanbul-lib-coverage: 3.2.0 + import-in-the-middle: 1.14.0 + istanbul-lib-coverage: 3.2.2 jest-docblock: ^29.7.0 koalas: ^1.0.2 limiter: 1.1.5 lodash.sortby: ^4.7.0 - lru-cache: ^7.14.0 - module-details-from-path: ^1.0.3 + lru-cache: ^7.18.3 + module-details-from-path: ^1.0.4 mutexify: ^1.4.0 opentracing: ">=0.12.1" path-to-regexp: ^0.1.12 pprof-format: ^2.1.0 - protobufjs: ^7.2.5 + protobufjs: ^7.5.3 retry: ^0.13.1 - rfdc: ^1.3.1 + rfdc: ^1.4.1 semifies: ^1.0.0 - shell-quote: ^1.8.1 + shell-quote: ^1.8.2 source-map: ^0.7.4 tlhunter-sorted-set: ^0.1.0 ttl-set: ^1.0.0 - checksum: 843af82d30547a0a08d11ed3a3c2afa59b729096f6f23602e43d217a84348689601d9a5a680c3707bd07bf59651c01676c65797e9da3d9d0afb0e664620f7d70 + checksum: a135967528d9e6c7a8bd1887af13c7631f5d72a67f6e886c06fe2def1751670b6bb70ed660a98b70b8ff1d97790079a42bcf59f9c457a4ecff246f5526449e88 languageName: node linkType: hard @@ -8051,7 +8069,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0": version: 4.4.1 resolution: "debug@npm:4.4.1" dependencies: @@ -8450,10 +8468,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.149": - version: 1.5.157 - resolution: "electron-to-chromium@npm:1.5.157" - checksum: 479d1bb9458f0e19d0853a7f423b8a2468ca0f4a36772bfe115460183bc94662d63d4a4cde98c4aaf3c06e1840646e85dd48ef854ddf634fd169c6504540ea44 +"electron-to-chromium@npm:^1.5.160": + version: 1.5.169 + resolution: "electron-to-chromium@npm:1.5.169" + checksum: 299a0dc36ce00460aafb5cbc4029b70c12c6842d3c81c5bf0ec070f8fda80bea54b545a8ddebfdead8969127aa04c93d440f8255db2a4723ef2e275d1cf89016 languageName: node linkType: hard @@ -8495,11 +8513,11 @@ __metadata: linkType: hard "end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": - version: 1.4.4 - resolution: "end-of-stream@npm:1.4.4" + version: 1.4.5 + resolution: "end-of-stream@npm:1.4.5" dependencies: once: ^1.4.0 - checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b + checksum: 1e0cfa6e7f49887544e03314f9dfc56a8cb6dde910cbb445983ecc2ff426fc05946df9d75d8a21a3a64f2cecfe1bf88f773952029f46756b2ed64a24e95b1fb8 languageName: node linkType: hard @@ -8582,9 +8600,9 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": - version: 1.23.10 - resolution: "es-abstract@npm:1.23.10" +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0": + version: 1.24.0 + resolution: "es-abstract@npm:1.24.0" dependencies: array-buffer-byte-length: ^1.0.2 arraybuffer.prototype.slice: ^1.0.4 @@ -8613,7 +8631,9 @@ __metadata: is-array-buffer: ^3.0.5 is-callable: ^1.2.7 is-data-view: ^1.0.2 + is-negative-zero: ^2.0.3 is-regex: ^1.2.1 + is-set: ^2.0.3 is-shared-array-buffer: ^1.0.4 is-string: ^1.1.1 is-typed-array: ^1.1.15 @@ -8628,6 +8648,7 @@ __metadata: safe-push-apply: ^1.0.0 safe-regex-test: ^1.1.0 set-proto: ^1.0.0 + stop-iteration-iterator: ^1.1.0 string.prototype.trim: ^1.2.10 string.prototype.trimend: ^1.0.9 string.prototype.trimstart: ^1.0.8 @@ -8637,7 +8658,7 @@ __metadata: typed-array-length: ^1.0.7 unbox-primitive: ^1.1.0 which-typed-array: ^1.1.19 - checksum: 0b1baf903096c4f19030ab3334062deb6df577441266223b44cb431d8733f21852e9ac8be1c73c28dddc8f0c214c668969195cee0a14d21967ca91628f5f4366 + checksum: 06b3d605e56e3da9d16d4db2629a42dac1ca31f2961a41d15c860422a266115e865b43e82d6b9da81a0fabbbb65ebc12fb68b0b755bc9dbddacb6bf7450e96df languageName: node linkType: hard @@ -9425,14 +9446,14 @@ __metadata: linkType: hard "fdir@npm:^6.4.4": - version: 6.4.4 - resolution: "fdir@npm:6.4.4" + version: 6.4.6 + resolution: "fdir@npm:6.4.6" peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true - checksum: 79043610236579ffbd0647c508b43bd030a2d034a17c43cf96813a00e8e92e51acdb115c6ddecef3b5812cc2692b976155b4f6413e51e3761f1e772fa019a321 + checksum: fe9f3014901d023cf631831dcb9eae5447f4d7f69218001dd01ecf007eccc40f6c129a04411b5cc273a5f93c14e02e971e17270afc9022041c80be924091eb6f languageName: node linkType: hard @@ -9606,9 +9627,9 @@ __metadata: linkType: hard "flow-parser@npm:0.*": - version: 0.272.1 - resolution: "flow-parser@npm:0.272.1" - checksum: ebd9fee5ee662f1bef52715cb284f6ac8ba3fcaed4e5e97e3474cf888da4f8d8133ca63921ff467ab6f229ef9128e01436d0c22cb5039a68955d8b3e68ee9beb + version: 0.273.1 + resolution: "flow-parser@npm:0.273.1" + checksum: 0f83ed38fffe1e337aa4373702f3c28207065ddcac4252c590e923617a2847669c102e88d5c055a924ed12f68f3e131f2999a3871b610b91b29e7cea29a134ae languageName: node linkType: hard @@ -9666,14 +9687,15 @@ __metadata: linkType: hard "form-data@npm:^4.0.0": - version: 4.0.2 - resolution: "form-data@npm:4.0.2" + version: 4.0.3 + resolution: "form-data@npm:4.0.3" dependencies: asynckit: ^0.4.0 combined-stream: ^1.0.8 es-set-tostringtag: ^2.1.0 + hasown: ^2.0.2 mime-types: ^2.1.12 - checksum: e887298b22c13c7c9c5a8ba3716f295a479a13ca78bfd855ef11cbce1bcf22bc0ae2062e94808e21d46e5c667664a1a1a8a7f57d7040193c1fefbfb11af58aab + checksum: b8e2568c0853ce167b2b9c9c4b81fe563f9ade647178baf6b6381cf8a11e3c01dd2b78a63ba367e6f5eab59afab8284a9438bb5ae768133f9d9fce6567fbc26a languageName: node linkType: hard @@ -10392,6 +10414,13 @@ __metadata: languageName: node linkType: hard +"hermes-estree@npm:0.28.1": + version: 0.28.1 + resolution: "hermes-estree@npm:0.28.1" + checksum: 4f7b4e0491352012a6cb799315a0aae16abdcc894335e901552ee6c64732d0cf06f0913c579036f9f452b7c4ad9bb0b6ab14e510c13bd7e5997385f77633ab00 + languageName: node + linkType: hard + "hermes-parser@npm:0.23.1": version: 0.23.1 resolution: "hermes-parser@npm:0.23.1" @@ -10410,6 +10439,15 @@ __metadata: languageName: node linkType: hard +"hermes-parser@npm:0.28.1": + version: 0.28.1 + resolution: "hermes-parser@npm:0.28.1" + dependencies: + hermes-estree: 0.28.1 + checksum: 0d95280d527e1ad46e8caacd56b24d07e4aec39704de86cf164600f2c4fb00f406dd74a37b2103433ef7ec388a549072da20438e224bd47def21f973c36aab7d + languageName: node + linkType: hard + "hoist-non-react-statics@npm:3.x.x, hoist-non-react-statics@npm:^3.0.0, hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.2": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" @@ -10516,7 +10554,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.6": +"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.5, https-proxy-agent@npm:^7.0.6": version: 7.0.6 resolution: "https-proxy-agent@npm:7.0.6" dependencies: @@ -10619,15 +10657,15 @@ __metadata: languageName: node linkType: hard -"import-in-the-middle@npm:1.13.1": - version: 1.13.1 - resolution: "import-in-the-middle@npm:1.13.1" +"import-in-the-middle@npm:1.14.0": + version: 1.14.0 + resolution: "import-in-the-middle@npm:1.14.0" dependencies: acorn: ^8.14.0 acorn-import-attributes: ^1.9.5 cjs-module-lexer: ^1.2.2 module-details-from-path: ^1.0.3 - checksum: 9cff1da9fc6ec6e2224ac9f60f7818baa7b238ba3350da7f4f213220e40893f254f3674a2b517fc663de1672215aff5c6cce1ef6c8cff91281772393fb50b0fa + checksum: f413fdc7c7796365f3d2bc356f37dce4d354bcc5fe5f6410d4b443a0b4a31d8ce9b29192e60b932798e1f48f5d921d50ab6fef46b3005801e18d87413deb1f0c languageName: node linkType: hard @@ -11013,6 +11051,13 @@ __metadata: languageName: node linkType: hard +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: c1e6b23d2070c0539d7b36022d5a94407132411d01aba39ec549af824231f3804b1aea90b5e4e58e807a65d23ceb538ed6e355ce76b267bdd86edb757ffcbdcd + languageName: node + linkType: hard + "is-number-object@npm:^1.1.1": version: 1.1.1 resolution: "is-number-object@npm:1.1.1" @@ -11141,7 +11186,7 @@ __metadata: languageName: node linkType: hard -"is-string@npm:^1.0.7, is-string@npm:^1.1.1": +"is-string@npm:^1.1.1": version: 1.1.1 resolution: "is-string@npm:1.1.1" dependencies: @@ -11280,14 +11325,7 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-coverage@npm:3.2.0": - version: 3.2.0 - resolution: "istanbul-lib-coverage@npm:3.2.0" - checksum: a2a545033b9d56da04a8571ed05c8120bf10e9bce01cf8633a3a2b0d1d83dff4ac4fe78d6d5673c27fc29b7f21a41d75f83a36be09f82a61c367b56aa73c1ff9 - languageName: node - linkType: hard - -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": +"istanbul-lib-coverage@npm:3.2.2, istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": version: 3.2.2 resolution: "istanbul-lib-coverage@npm:3.2.2" checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831 @@ -12609,7 +12647,7 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.14.0, lru-cache@npm:^7.14.1": +"lru-cache@npm:^7.14.0, lru-cache@npm:^7.14.1, lru-cache@npm:^7.18.3": version: 7.18.3 resolution: "lru-cache@npm:7.18.3" checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 @@ -12788,6 +12826,18 @@ __metadata: languageName: node linkType: hard +"metro-babel-transformer@npm:0.82.4": + version: 0.82.4 + resolution: "metro-babel-transformer@npm:0.82.4" + dependencies: + "@babel/core": ^7.25.2 + flow-enums-runtime: ^0.0.6 + hermes-parser: 0.28.1 + nullthrows: ^1.1.1 + checksum: 03587a3f3e84180eb560b5652ffa62b08e89a0ff9a3bd8292e39c4ccae7836ce5e2d156f9cb33b56b3a0e9ed51453b458db626df7eee1515c02cf9dfd1cb6457 + languageName: node + linkType: hard + "metro-cache-key@npm:0.81.5": version: 0.81.5 resolution: "metro-cache-key@npm:0.81.5" @@ -12797,6 +12847,15 @@ __metadata: languageName: node linkType: hard +"metro-cache-key@npm:0.82.4": + version: 0.82.4 + resolution: "metro-cache-key@npm:0.82.4" + dependencies: + flow-enums-runtime: ^0.0.6 + checksum: a6ab3908295b5ba346d4d991595cc8baf1d22be39fbd4bdf794b617868a003a4f9925d2d01fdbc4c616ff74196783cb4ea5f98dcb6a7c1b510e72e075d9f6b24 + languageName: node + linkType: hard + "metro-cache@npm:0.81.5": version: 0.81.5 resolution: "metro-cache@npm:0.81.5" @@ -12808,6 +12867,18 @@ __metadata: languageName: node linkType: hard +"metro-cache@npm:0.82.4": + version: 0.82.4 + resolution: "metro-cache@npm:0.82.4" + dependencies: + exponential-backoff: ^3.1.1 + flow-enums-runtime: ^0.0.6 + https-proxy-agent: ^7.0.5 + metro-core: 0.82.4 + checksum: 8c6d9126872fc42de66bc8ebd8e827f7ed9da6c4f421db57e3efd7f43f1b44d664bcaea97c7d5b364e1391d5e0e4fc16581681f0b1c7f94db07c19569e2f80a5 + languageName: node + linkType: hard + "metro-config@npm:0.81.5, metro-config@npm:^0.81.0": version: 0.81.5 resolution: "metro-config@npm:0.81.5" @@ -12824,6 +12895,22 @@ __metadata: languageName: node linkType: hard +"metro-config@npm:0.82.4": + version: 0.82.4 + resolution: "metro-config@npm:0.82.4" + dependencies: + connect: ^3.6.5 + cosmiconfig: ^5.0.5 + flow-enums-runtime: ^0.0.6 + jest-validate: ^29.7.0 + metro: 0.82.4 + metro-cache: 0.82.4 + metro-core: 0.82.4 + metro-runtime: 0.82.4 + checksum: 05daf4477e5db1dfda26ce5631de23510f5d893f3486bb259e00a576ab4f16b613b3e1b97eee160cf64ef75aaf4b2560cb3cc840e6149b04aa00409b27f6cbfe + languageName: node + linkType: hard + "metro-core@npm:0.81.5, metro-core@npm:^0.81.0": version: 0.81.5 resolution: "metro-core@npm:0.81.5" @@ -12835,6 +12922,17 @@ __metadata: languageName: node linkType: hard +"metro-core@npm:0.82.4": + version: 0.82.4 + resolution: "metro-core@npm:0.82.4" + dependencies: + flow-enums-runtime: ^0.0.6 + lodash.throttle: ^4.1.1 + metro-resolver: 0.82.4 + checksum: bb17d2f1adcd32e6402000a0a27b3a1682b2cc1835cc29f1bae0136fd31b97b37c79f1def55bd60f3a2a85028d073c671c82e72a9b1eef1465f1dae5ce02d3c8 + languageName: node + linkType: hard + "metro-file-map@npm:0.81.5": version: 0.81.5 resolution: "metro-file-map@npm:0.81.5" @@ -12852,6 +12950,23 @@ __metadata: languageName: node linkType: hard +"metro-file-map@npm:0.82.4": + version: 0.82.4 + resolution: "metro-file-map@npm:0.82.4" + dependencies: + debug: ^4.4.0 + fb-watchman: ^2.0.0 + flow-enums-runtime: ^0.0.6 + graceful-fs: ^4.2.4 + invariant: ^2.2.4 + jest-worker: ^29.7.0 + micromatch: ^4.0.4 + nullthrows: ^1.1.1 + walker: ^1.0.7 + checksum: f5f24c5bcae7acbfbd2606707df35e1178e196c3e00d2a69bb8a4443942851989918e9f07e8301a7f8fb83d3fb17e9fd2320b9de322a2acfeb6f03f565c6bbf6 + languageName: node + linkType: hard + "metro-minify-terser@npm:0.81.5": version: 0.81.5 resolution: "metro-minify-terser@npm:0.81.5" @@ -12862,6 +12977,16 @@ __metadata: languageName: node linkType: hard +"metro-minify-terser@npm:0.82.4": + version: 0.82.4 + resolution: "metro-minify-terser@npm:0.82.4" + dependencies: + flow-enums-runtime: ^0.0.6 + terser: ^5.15.0 + checksum: 23170c34f519ebaa57189283f51847108395f53ebfcb798e2907bf28e3fce8649f80ff4d1b3f0ed2e321287b61ea84ff825923d8879d23d36f7a9bcbbb804294 + languageName: node + linkType: hard + "metro-resolver@npm:0.81.5": version: 0.81.5 resolution: "metro-resolver@npm:0.81.5" @@ -12871,6 +12996,15 @@ __metadata: languageName: node linkType: hard +"metro-resolver@npm:0.82.4": + version: 0.82.4 + resolution: "metro-resolver@npm:0.82.4" + dependencies: + flow-enums-runtime: ^0.0.6 + checksum: d4833712d70516930e60cfd59fa7695eacb23eb064b89819903e27f53f1350ed4acfaa02011655f8aacc63f41d15b0781489db17a167994701596192054d791e + languageName: node + linkType: hard + "metro-runtime@npm:0.81.5, metro-runtime@npm:^0.81.0": version: 0.81.5 resolution: "metro-runtime@npm:0.81.5" @@ -12881,6 +13015,16 @@ __metadata: languageName: node linkType: hard +"metro-runtime@npm:0.82.4": + version: 0.82.4 + resolution: "metro-runtime@npm:0.82.4" + dependencies: + "@babel/runtime": ^7.25.0 + flow-enums-runtime: ^0.0.6 + checksum: a0fa5004db83c6e132f2228c6d91aa56a31d97406c252b27b8e1bdff8f2ff6e453290cc44c4f07b4f0e458fc01eb28c3b85b7d915f6caffb3cc4d2c10f38abd9 + languageName: node + linkType: hard + "metro-source-map@npm:0.81.5, metro-source-map@npm:^0.81.0": version: 0.81.5 resolution: "metro-source-map@npm:0.81.5" @@ -12899,6 +13043,24 @@ __metadata: languageName: node linkType: hard +"metro-source-map@npm:0.82.4": + version: 0.82.4 + resolution: "metro-source-map@npm:0.82.4" + dependencies: + "@babel/traverse": ^7.25.3 + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" + "@babel/types": ^7.25.2 + flow-enums-runtime: ^0.0.6 + invariant: ^2.2.4 + metro-symbolicate: 0.82.4 + nullthrows: ^1.1.1 + ob1: 0.82.4 + source-map: ^0.5.6 + vlq: ^1.0.0 + checksum: 41a5efbf6eff61db338922b5651ed69ca0cb42786100dc794c273147c9af2698ee3f3d7d967232b7591e9b8875d416c12fe7e1f10bb9cf8cb46c9d6a13c10773 + languageName: node + linkType: hard + "metro-symbolicate@npm:0.81.5": version: 0.81.5 resolution: "metro-symbolicate@npm:0.81.5" @@ -12915,6 +13077,22 @@ __metadata: languageName: node linkType: hard +"metro-symbolicate@npm:0.82.4": + version: 0.82.4 + resolution: "metro-symbolicate@npm:0.82.4" + dependencies: + flow-enums-runtime: ^0.0.6 + invariant: ^2.2.4 + metro-source-map: 0.82.4 + nullthrows: ^1.1.1 + source-map: ^0.5.6 + vlq: ^1.0.0 + bin: + metro-symbolicate: src/index.js + checksum: dbe92d7eea7d71ebbfd35cc901d3e428774d7a4747d10781a8f4350a6c341edd352f3b25939a7c3f174a07deffac019a92bab04f32fe8cb7e8c3a708eab11115 + languageName: node + linkType: hard + "metro-transform-plugins@npm:0.81.5": version: 0.81.5 resolution: "metro-transform-plugins@npm:0.81.5" @@ -12929,6 +13107,20 @@ __metadata: languageName: node linkType: hard +"metro-transform-plugins@npm:0.82.4": + version: 0.82.4 + resolution: "metro-transform-plugins@npm:0.82.4" + dependencies: + "@babel/core": ^7.25.2 + "@babel/generator": ^7.25.0 + "@babel/template": ^7.25.0 + "@babel/traverse": ^7.25.3 + flow-enums-runtime: ^0.0.6 + nullthrows: ^1.1.1 + checksum: b1a04093b41a8becd700ddae93278a87424f3c35b86bc0912eb5734948ea7f9d54c2440240277315cfabffc1dd9c4d4155c5286464546a97c5656981a97ce42d + languageName: node + linkType: hard + "metro-transform-worker@npm:0.81.5": version: 0.81.5 resolution: "metro-transform-worker@npm:0.81.5" @@ -12950,6 +13142,27 @@ __metadata: languageName: node linkType: hard +"metro-transform-worker@npm:0.82.4": + version: 0.82.4 + resolution: "metro-transform-worker@npm:0.82.4" + dependencies: + "@babel/core": ^7.25.2 + "@babel/generator": ^7.25.0 + "@babel/parser": ^7.25.3 + "@babel/types": ^7.25.2 + flow-enums-runtime: ^0.0.6 + metro: 0.82.4 + metro-babel-transformer: 0.82.4 + metro-cache: 0.82.4 + metro-cache-key: 0.82.4 + metro-minify-terser: 0.82.4 + metro-source-map: 0.82.4 + metro-transform-plugins: 0.82.4 + nullthrows: ^1.1.1 + checksum: 5d17296ba1ca6ce939c4ffbd99d7372a6033ba6f6d2da42634509a9c121055440ae5c5eea8677d9201e06d71d811729b313c3f6b54f69cb87d05c5b9f92c6334 + languageName: node + linkType: hard + "metro@npm:0.81.5, metro@npm:^0.81.0": version: 0.81.5 resolution: "metro@npm:0.81.5" @@ -13000,6 +13213,56 @@ __metadata: languageName: node linkType: hard +"metro@npm:0.82.4, metro@npm:^0.82.0": + version: 0.82.4 + resolution: "metro@npm:0.82.4" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/core": ^7.25.2 + "@babel/generator": ^7.25.0 + "@babel/parser": ^7.25.3 + "@babel/template": ^7.25.0 + "@babel/traverse": ^7.25.3 + "@babel/types": ^7.25.2 + accepts: ^1.3.7 + chalk: ^4.0.0 + ci-info: ^2.0.0 + connect: ^3.6.5 + debug: ^4.4.0 + error-stack-parser: ^2.0.6 + flow-enums-runtime: ^0.0.6 + graceful-fs: ^4.2.4 + hermes-parser: 0.28.1 + image-size: ^1.0.2 + invariant: ^2.2.4 + jest-worker: ^29.7.0 + jsc-safe-url: ^0.2.2 + lodash.throttle: ^4.1.1 + metro-babel-transformer: 0.82.4 + metro-cache: 0.82.4 + metro-cache-key: 0.82.4 + metro-config: 0.82.4 + metro-core: 0.82.4 + metro-file-map: 0.82.4 + metro-resolver: 0.82.4 + metro-runtime: 0.82.4 + metro-source-map: 0.82.4 + metro-symbolicate: 0.82.4 + metro-transform-plugins: 0.82.4 + metro-transform-worker: 0.82.4 + mime-types: ^2.1.27 + nullthrows: ^1.1.1 + serialize-error: ^2.1.0 + source-map: ^0.5.6 + throat: ^5.0.0 + ws: ^7.5.10 + yargs: ^17.6.2 + bin: + metro: src/cli.js + checksum: cc155f963e393f0d1c6c2f5b094e9e2f3b1a0354d5bdf5bead5a5655ddbb2457fbd16fb101ba41bb0784b44970b7f72ba980229a24d2754598eabcefcccfb13f + languageName: node + linkType: hard + "micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" @@ -13308,7 +13571,7 @@ __metadata: languageName: node linkType: hard -"module-details-from-path@npm:^1.0.3": +"module-details-from-path@npm:^1.0.3, module-details-from-path@npm:^1.0.4": version: 1.0.4 resolution: "module-details-from-path@npm:1.0.4" checksum: 2ebfada5358492f6ab496b70f70a1042f2ee7a4c79d29467f59ed6704f741fb4461d7cecb5082144ed39a05fec4d19e9ff38b731c76228151be97227240a05b2 @@ -13841,6 +14104,15 @@ __metadata: languageName: node linkType: hard +"ob1@npm:0.82.4": + version: 0.82.4 + resolution: "ob1@npm:0.82.4" + dependencies: + flow-enums-runtime: ^0.0.6 + checksum: 8385f5a20195c5c6e61bd18528a10baebe2287dd67fcf5721efeffe89dc61c7ab2b6c56ae9c6649687dda80a20663c33c18e4fc5cc651fd53e6befed3b9d9cf1 + languageName: node + linkType: hard + "object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -14793,9 +15065,9 @@ __metadata: languageName: node linkType: hard -"protobufjs@npm:^7.2.5, protobufjs@npm:^7.3.2": - version: 7.5.2 - resolution: "protobufjs@npm:7.5.2" +"protobufjs@npm:^7.2.5, protobufjs@npm:^7.3.2, protobufjs@npm:^7.5.3": + version: 7.5.3 + resolution: "protobufjs@npm:7.5.3" dependencies: "@protobufjs/aspromise": ^1.1.2 "@protobufjs/base64": ^1.1.2 @@ -14809,7 +15081,7 @@ __metadata: "@protobufjs/utf8": ^1.1.0 "@types/node": ">=13.7.0" long: ^5.0.0 - checksum: fe5663a1f3ec351f08b6281bb87aade9604f0d90d09fd470080bcd64f10c08e94835c7809acf34474c3c003cb25a240fb7350203a0e087337c7a9ca1bee90eec + checksum: 8a8842338c9bf586f11e1c179fc01f0b65adc22114bb2626daf62d66439c7b4227c182ef375184d24d2a16378716bab8dc5000940287610c8b8742972e4b0a2f languageName: node linkType: hard @@ -14844,12 +15116,12 @@ __metadata: linkType: hard "pump@npm:^3.0.0": - version: 3.0.2 - resolution: "pump@npm:3.0.2" + version: 3.0.3 + resolution: "pump@npm:3.0.3" dependencies: end-of-stream: ^1.1.0 once: ^1.3.1 - checksum: e0c4216874b96bd25ddf31a0b61a5613e26cc7afa32379217cf39d3915b0509def3565f5f6968fafdad2894c8bbdbd67d340e84f3634b2a29b950cffb6442d9f + checksum: 52843fc933b838c0330f588388115a1b28ef2a5ffa7774709b142e35431e8ab0c2edec90de3fa34ebb72d59fef854f151eea7dfc211b6dcf586b384556bd2f39 languageName: node linkType: hard @@ -15091,8 +15363,8 @@ __metadata: linkType: hard "react-native-gesture-handler@npm:^2.24.0": - version: 2.25.0 - resolution: "react-native-gesture-handler@npm:2.25.0" + version: 2.26.0 + resolution: "react-native-gesture-handler@npm:2.26.0" dependencies: "@egjs/hammerjs": ^2.0.17 hoist-non-react-statics: ^3.3.0 @@ -15100,7 +15372,7 @@ __metadata: peerDependencies: react: "*" react-native: "*" - checksum: 51b155bcc56043b9e06bf8ded089c44348e8da297b38e73f203f2d6ce8bd51698f85a38dca8eeab3d2ab721aeddefc270acd99e16cf493b20f1f429ad02214b8 + checksum: e01cc57598b1cd2b4bf2886906e0d3a03ef09a57ce7a8ab530ec7779853919bb8265dd9afc0f023a0418cf60f6762eb27d1d71f8e3e9416a78ab0ddd55c22bb9 languageName: node linkType: hard @@ -15224,15 +15496,15 @@ __metadata: linkType: hard "react-native-webview@npm:^13.12.2": - version: 13.13.5 - resolution: "react-native-webview@npm:13.13.5" + version: 13.15.0 + resolution: "react-native-webview@npm:13.15.0" dependencies: escape-string-regexp: ^4.0.0 invariant: 2.2.4 peerDependencies: react: "*" react-native: "*" - checksum: 7f3bce1b37d6be9b2f07f0f7481181d5344f9e58022645b0d20dc58cd66056bb6efecacb231963959db6283cc66d977593db62a403c7c151f83568f83041c2eb + checksum: 1c843206108358faef5cd8e25834de729a90319c3fa3f765923536fdd99b86b07a3e850b89ebe6503725a022dd9dddd5de76ef6e102d290cc5935dcf9c60198d languageName: node linkType: hard @@ -15748,7 +16020,7 @@ __metadata: languageName: node linkType: hard -"rfdc@npm:^1.3.1": +"rfdc@npm:^1.4.1": version: 1.4.1 resolution: "rfdc@npm:1.4.1" checksum: 3b05bd55062c1d78aaabfcea43840cdf7e12099968f368e9a4c3936beb744adb41cbdb315eac6d4d8c6623005d6f87fdf16d8a10e1ff3722e84afea7281c8d13 @@ -15815,8 +16087,8 @@ __metadata: "rum-events-format@DataDog/rum-events-format#workspace=rum-events-format": version: 1.0.0 - resolution: "rum-events-format@https://github.com/DataDog/rum-events-format.git#workspace=rum-events-format&commit=df69253e7a875963d2a9cf0abb97882a97ebf85e" - checksum: f5fc512b6a05a1df52109763c5a959d8715276b754dac4a73585858fdcd09210e52411ebf2987ae068256f3ce32627b5f7130512e90fba307feb001b28d839ff + resolution: "rum-events-format@https://github.com/DataDog/rum-events-format.git#workspace=rum-events-format&commit=ee481e7c74290762219cbf507d61c75785349d88" + checksum: 43c9d903164179ae6ed7a869af7834a18bb1e4b0f30c48f5be146f6f80c2d8a4bb306ee7b8e3147a51c188c810db963f9b49beb7b437d503e7abd6419e35858d languageName: node linkType: hard @@ -16118,9 +16390,9 @@ __metadata: linkType: hard "shell-quote@npm:^1.7.3": - version: 1.8.2 - resolution: "shell-quote@npm:1.8.2" - checksum: 1e97b62ced1c4c5135015978ebf273bed1f425a68cf84163e83fbb0f34b3ff9471e656720dab2b7cbb4ae0f58998e686d17d166c28dfb3662acd009e8bd7faed + version: 1.8.3 + resolution: "shell-quote@npm:1.8.3" + checksum: 550dd84e677f8915eb013d43689c80bb114860649ec5298eb978f40b8f3d4bc4ccb072b82c094eb3548dc587144bb3965a8676f0d685c1cf4c40b5dc27166242 languageName: node linkType: hard @@ -16271,14 +16543,14 @@ __metadata: linkType: hard "snyk@npm:^1.192.3": - version: 1.1297.1 - resolution: "snyk@npm:1.1297.1" + version: 1.1297.2 + resolution: "snyk@npm:1.1297.2" dependencies: "@sentry/node": ^7.36.0 global-agent: ^3.0.0 bin: snyk: bin/snyk - checksum: 083b30c9a0372657b443df1c918e8748fdf65aba91386966e883fc3a1d9b523521470d626ba743a2686d6a339d5f1218a65cffd8d2ba44d1d9ef1352941ee282 + checksum: 2f086a349d85cfa4cc03da2a9d45d5678e2bf5139e011231e565e5a133fbb7ff8444df0600c96a22525defd3d3b82a5cf991c633e974400ec0ec6d8cc45db1a5 languageName: node linkType: hard @@ -16294,12 +16566,12 @@ __metadata: linkType: hard "socks@npm:^2.8.3": - version: 2.8.4 - resolution: "socks@npm:2.8.4" + version: 2.8.5 + resolution: "socks@npm:2.8.5" dependencies: ip-address: ^9.0.5 smart-buffer: ^4.2.0 - checksum: cd1edc924475d5dfde534adf66038df7e62c7343e6b8c0113e52dc9bb6a0a10e25b2f136197f379d695f18e8f0f2b7f6e42977bf720ddbee912a851201c396ad + checksum: d39a77a8c91cfacafc75c67dba45925eccfd884a8a4a68dcda6fb9ab7f37de6e250bb6db3721e8a16a066a8e1ebe872d4affc26f3eb763f4befedcc7b733b7ed languageName: node linkType: hard @@ -16532,6 +16804,16 @@ __metadata: languageName: node linkType: hard +"stop-iteration-iterator@npm:^1.1.0": + version: 1.1.0 + resolution: "stop-iteration-iterator@npm:1.1.0" + dependencies: + es-errors: ^1.3.0 + internal-slot: ^1.1.0 + checksum: be944489d8829fb3bdec1a1cc4a2142c6b6eb317305eeace1ece978d286d6997778afa1ae8cb3bd70e2b274b9aa8c69f93febb1e15b94b1359b11058f9d3c3a1 + languageName: node + linkType: hard + "stream-buffers@npm:2.2.x": version: 2.2.0 resolution: "stream-buffers@npm:2.2.0" @@ -16967,8 +17249,8 @@ __metadata: linkType: hard "terser@npm:^5.15.0": - version: 5.39.2 - resolution: "terser@npm:5.39.2" + version: 5.42.0 + resolution: "terser@npm:5.42.0" dependencies: "@jridgewell/source-map": ^0.3.3 acorn: ^8.14.0 @@ -16976,7 +17258,7 @@ __metadata: source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: 986a47896503c5bc6475c751d9445d4326de2e6f8b0be2c943b7726426ad0fe2385aacb9dce1dbc3aee13171595a0234411479bc855e6c730a51f23175132c84 + checksum: 1fde6c60d490a58ba92551f524b81a541fd75c41f97aef3e6a12262447b3da66c7d71cf475e0990f82b4decc1a30c3ba3663dc5e940bcbd0db1d263932d2cace languageName: node linkType: hard @@ -17429,10 +17711,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.21.0": - version: 6.21.0 - resolution: "undici-types@npm:6.21.0" - checksum: 46331c7d6016bf85b3e8f20c159d62f5ae471aba1eb3dc52fff35a0259d58dcc7d592d4cc4f00c5f9243fa738a11cfa48bd20203040d4a9e6bc25e807fab7ab3 +"undici-types@npm:~7.8.0": + version: 7.8.0 + resolution: "undici-types@npm:7.8.0" + checksum: 59521a5b9b50e72cb838a29466b3557b4eacbc191a83f4df5a2f7b156bc8263072b145dc4bb8ec41da7d56a7e9b178892458da02af769243d57f801a50ac5751 languageName: node linkType: hard @@ -17572,11 +17854,11 @@ __metadata: linkType: hard "use-latest-callback@npm:^0.2.1": - version: 0.2.3 - resolution: "use-latest-callback@npm:0.2.3" + version: 0.2.4 + resolution: "use-latest-callback@npm:0.2.4" peerDependencies: react: ">=16.8" - checksum: 5db2dc0d414508c768ba4d1a337bd73dd0fb2a77eccc9dd7051517b28cd71c849c5e9230b5c97fc76a3811c1500f210cb4e4ebb95fe20347e5f910509a8e533c + checksum: 60c3a6b1b6567e1794f9e48cd86b8cde8a149485cc2fed60570f69ec3b157f6812e0ff0a877f0b971592fb9254b1363cc21c120fd1fc993b1dad1406c69211df languageName: node linkType: hard From 4a6d9d41abf3db6bdbf0add0373cf5151cdc5f5e Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Wed, 23 Apr 2025 11:50:24 +0200 Subject: [PATCH 2/6] Add Datadog Expo Config for Debug ID injection --- example/android/gradle.properties | 2 +- packages/core/src/metro.ts | 10 ++- .../__tests__/__utils__/serializerUtils.ts | 2 +- .../core/src/metro/__tests__/metro.test.ts | 10 +-- .../core/src/metro/plugin/debugIdHelper.ts | 15 ++++- packages/core/src/metro/plugin/metroConfig.ts | 36 ++++++++++- .../core/src/metro/plugin/metroSerializer.ts | 34 +++++++--- .../core/src/metro/plugin/types/expoTypes.ts | 64 +++++++++++++++++++ .../metro/plugin/{ => types}/metroTypes.ts | 2 +- packages/core/src/metro/plugin/utils.ts | 36 ++++++++++- 10 files changed, 187 insertions(+), 24 deletions(-) create mode 100644 packages/core/src/metro/plugin/types/expoTypes.ts rename packages/core/src/metro/plugin/{ => types}/metroTypes.ts (98%) diff --git a/example/android/gradle.properties b/example/android/gradle.properties index 0e9b37d4b..858f2f64e 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -38,4 +38,4 @@ newArchEnabled=false # Use this property to enable or disable the Hermes JS engine. # If set to false, you will be using JSC instead. -hermesEnabled=true +hermesEnabled=false diff --git a/packages/core/src/metro.ts b/packages/core/src/metro.ts index cbf2901f6..ebd294f48 100644 --- a/packages/core/src/metro.ts +++ b/packages/core/src/metro.ts @@ -3,6 +3,12 @@ * This product includes software developed at Datadog (https://www.datadoghq.com/). * Copyright 2016-Present Datadog, Inc. */ -import { withDatadogMetroConfig } from './metro/plugin/metroConfig'; +import { + withDatadogMetroConfig, + getDatadogExpoConfig +} from './metro/plugin/metroConfig'; +import type { DatadogMetroConfigOptions } from './metro/plugin/metroConfig'; +import type { DatadogExpoConfigOptions } from './metro/plugin/types/expoTypes'; -export { withDatadogMetroConfig }; +export { withDatadogMetroConfig, getDatadogExpoConfig }; +export type { DatadogMetroConfigOptions, DatadogExpoConfigOptions }; diff --git a/packages/core/src/metro/__tests__/__utils__/serializerUtils.ts b/packages/core/src/metro/__tests__/__utils__/serializerUtils.ts index 816893da7..743f865a8 100644 --- a/packages/core/src/metro/__tests__/__utils__/serializerUtils.ts +++ b/packages/core/src/metro/__tests__/__utils__/serializerUtils.ts @@ -12,7 +12,7 @@ import type { MixedOutput, Module, MetroVirtualModuleOutput -} from '../../plugin/metroTypes'; +} from '../../plugin/types/metroTypes'; import { createCountingSet } from '../../plugin/utils'; export const mockSerializerArgsForEmptyModule = (): Parameters => { diff --git a/packages/core/src/metro/__tests__/metro.test.ts b/packages/core/src/metro/__tests__/metro.test.ts index 09f694482..895852cc1 100644 --- a/packages/core/src/metro/__tests__/metro.test.ts +++ b/packages/core/src/metro/__tests__/metro.test.ts @@ -12,7 +12,7 @@ import { _isDebugIdInBundle } from '../plugin/debugIdHelper'; import { createDatadogMetroSerializer } from '../plugin/metroSerializer'; -import type { MetroSerializerOutput } from '../plugin/metroTypes'; +import type { MetroSerializerOutput } from '../plugin/types/metroTypes'; import { convertSerializerOutput } from '../plugin/utils'; import { @@ -49,7 +49,7 @@ describe('Datadog Metro Plugin', () => { `${expectedCode}\n//# debugId=${expectedDebugId}` ); - const expectedMap = `{"version":3,"sources":["__datadog_debugid__"],"sourcesContent":["var _datadogDebugIds,_datadogDebugIdMeta;void 0===_datadogDebugIds&&(_datadogDebugIds={});try{var stack=(new Error).stack;stack&&(_datadogDebugIds[stack]=\\"${expectedDebugId}\\",_datadogDebugIdMeta=\\"datadog-debug-id-${expectedDebugId}\\")}catch(e){}"],"names":[],"mappings":"","debug_id":"${expectedDebugId}","debugId":"${expectedDebugId}"}`; + const expectedMap = `{"version":3,"sources":["__datadog_debugid__"],"sourcesContent":["var _datadogDebugIds,_datadogDebugIdMeta;void 0===_datadogDebugIds&&(_datadogDebugIds={});try{var stack=(new Error).stack;stack&&(_datadogDebugIds[stack]=\\"${expectedDebugId}\\",_datadogDebugIdMeta=\\"datadog-debug-id-${expectedDebugId}\\")}catch(e){}"],"names":[],"mappings":"","debugId":"${expectedDebugId}"}`; expect(bundle.map).toEqual(expectedMap); }); @@ -83,7 +83,7 @@ describe('Datadog Metro Plugin', () => { expect(bundle.code).toEqual(expectedCode); - const expectedMap = `{"version":3,"sources":["__datadog_debugid__","index.js"],"sourcesContent":["var _datadogDebugIds,_datadogDebugIdMeta;void 0===_datadogDebugIds&&(_datadogDebugIds={});try{var stack=(new Error).stack;stack&&(_datadogDebugIds[stack]=\\"${expectedDebugId}\\",_datadogDebugIdMeta=\\"datadog-debug-id-${expectedDebugId}\\")}catch(e){}","//# sourceMappingURL=index.android.bundle.map"],"names":[],"mappings":"","debug_id":"${expectedDebugId}","debugId":"${expectedDebugId}"}`; + const expectedMap = `{"version":3,"sources":["__datadog_debugid__","index.js"],"sourcesContent":["var _datadogDebugIds,_datadogDebugIdMeta;void 0===_datadogDebugIds&&(_datadogDebugIds={});try{var stack=(new Error).stack;stack&&(_datadogDebugIds[stack]=\\"${expectedDebugId}\\",_datadogDebugIdMeta=\\"datadog-debug-id-${expectedDebugId}\\")}catch(e){}","//# sourceMappingURL=index.android.bundle.map"],"names":[],"mappings":"","debugId":"${expectedDebugId}"}`; expect(bundle.map).toEqual(expectedMap); }); }); @@ -260,7 +260,9 @@ describe('Datadog Metro Plugin', () => { test('M _isDebugIdInBundle returns true if the debug ID is different from provided and prints warning', () => { const warnSpy = jest .spyOn(console, 'warn') - .mockImplementation(() => {}); + .mockImplementation(() => { + /* empty */ + }); // GIVEN const mockCode = [ diff --git a/packages/core/src/metro/plugin/debugIdHelper.ts b/packages/core/src/metro/plugin/debugIdHelper.ts index 3c7a4f7f1..f649a49ba 100644 --- a/packages/core/src/metro/plugin/debugIdHelper.ts +++ b/packages/core/src/metro/plugin/debugIdHelper.ts @@ -3,7 +3,7 @@ * This product includes software developed at Datadog (https://www.datadoghq.com/). * Copyright 2016-Present Datadog, Inc. * - * Aligned with the architecture of Sentry’s Metro config: + * Portions of this code are adapted from Sentry's Metro configuration: * https://github.com/getsentry/sentry-react-native/blob/17c0c2e8913030e4826d055284a735efad637312/packages/core/src/js/tools/sentryMetroSerializer.ts */ @@ -17,7 +17,7 @@ import type { Module, MetroBundleWithMap, DatadogDebugIdModule -} from './metroTypes'; +} from './types/metroTypes'; import { createCountingSet } from './utils'; /** @@ -213,7 +213,6 @@ export const injectDebugIdInCodeAndSourceMap = ( // Insert the Debug ID as a top-level property of the sourcemap const bundleMap: Record = JSON.parse(sourcemap); - bundleMap['debug_id'] = debugId; bundleMap['debugId'] = debugId; return { code: codeWithDebugId, map: JSON.stringify(bundleMap) }; }; @@ -239,6 +238,16 @@ export const _isDebugIdInBundle = ( return true; }; +/** + * Checks if the virtual Debug ID module exists in the given modules. + * @param modules - The list of modules in which to look for the Debug ID. + * @returns `true` if the Debug ID module exists, `false` otherwise. + */ +export const checkIfDebugIdModuleExists = ( + modules: readonly Module[] +): boolean => + modules.findIndex(module => module.path === DEBUG_ID_MODULE_PATH) !== -1; + /** * [INTERNAL] Replaces the existing Debug ID comment in the bundle with a new one, containing the given Debug ID. */ diff --git a/packages/core/src/metro/plugin/metroConfig.ts b/packages/core/src/metro/plugin/metroConfig.ts index 3630ee2be..12beffa71 100644 --- a/packages/core/src/metro/plugin/metroConfig.ts +++ b/packages/core/src/metro/plugin/metroConfig.ts @@ -5,8 +5,16 @@ */ import type { MetroConfig } from 'metro'; -import { createDatadogMetroSerializer } from './metroSerializer'; -import type { DatadogMetroSerializer } from './metroTypes'; +import { + createDatadogMetroSerializer, + unstable_beforeAssetSerializationPlugin +} from './metroSerializer'; +import type { + DatadogExpoConfigOptions, + DefaultConfigOptions +} from './types/expoTypes'; +import type { DatadogMetroSerializer } from './types/metroTypes'; +import { getDefaultExpoConfig } from './utils'; /** * Custom Datadog Metro Configuration. @@ -46,6 +54,30 @@ export function withDatadogMetroConfig( }; } +/** + * Extends the Expo configuration to integrate with Datadog. + * @param config + * @returns + */ +export function getDatadogExpoConfig( + projectRoot: string, + options: DefaultConfigOptions & DatadogExpoConfigOptions = {} +): DefaultConfigOptions { + const plugins = options.unstable_beforeAssetSerializationPlugins ?? []; + const datadogOptions: DefaultConfigOptions = { + ...options, + unstable_beforeAssetSerializationPlugins: [ + ...plugins, + unstable_beforeAssetSerializationPlugin + ] + }; + + return (options.getDefaultConfig ?? getDefaultExpoConfig)( + projectRoot, + datadogOptions + ); +} + /** * Extends the Metro bundler configuration by enabling Debug ID injection. * Ref: https://github.com/tc39/ecma426/blob/main/proposals/debug-id.md diff --git a/packages/core/src/metro/plugin/metroSerializer.ts b/packages/core/src/metro/plugin/metroSerializer.ts index 12d75faa8..369491bf3 100644 --- a/packages/core/src/metro/plugin/metroSerializer.ts +++ b/packages/core/src/metro/plugin/metroSerializer.ts @@ -3,7 +3,7 @@ * This product includes software developed at Datadog (https://www.datadoghq.com/). * Copyright 2016-Present Datadog, Inc. * - * Aligned with the architecture of Sentry’s Metro config: + * Portions of this code are adapted from Sentry's Metro configuration: * https://github.com/getsentry/sentry-react-native/blob/17c0c2e8913030e4826d055284a735efad637312/packages/core/src/js/tools/sentryMetroSerializer.ts */ @@ -13,9 +13,9 @@ import baseJSBundle from 'metro/src/DeltaBundler/Serializers/baseJSBundle'; import bundleToString from 'metro/src/lib/bundleToString'; import { - DEBUG_ID_MODULE_PATH, DEBUG_ID_PLACEHOLDER, addDebugIdModule, + checkIfDebugIdModuleExists, createDebugIdFromBundle, createDebugIdModule, getDebugIdFromBundleSource, @@ -26,8 +26,11 @@ import type { Bundle, DatadogDebugIdModule, DatadogMetroSerializer, - MetroSerializer -} from './metroTypes'; + MetroSerializer, + MixedOutput, + Module, + ReadOnlyGraph +} from './types/metroTypes'; import { convertSerializerOutput as getMetroBundleWithMap, getSortedModules, @@ -52,11 +55,7 @@ export const createDatadogMetroSerializer = ( } // Make sure we don't add the Debug ID module twice - const debugIdModuleExists = - preModules.findIndex( - module => module.path === DEBUG_ID_MODULE_PATH - ) !== -1; - if (debugIdModuleExists) { + if (checkIfDebugIdModuleExists(preModules)) { return serializer(entryPoint, preModules, graph, options); } @@ -155,3 +154,20 @@ export const createDatadogBundleCallback = ( return bundle; }; }; + +/** + * Adds Debug ID module for runtime injection, used for Expo. + */ +export function unstable_beforeAssetSerializationPlugin({ + premodules, + debugId +}: { + graph: ReadOnlyGraph; + premodules: Module[]; + debugId?: string; +}): Module[] { + if (!debugId || checkIfDebugIdModuleExists(premodules)) { + return premodules; + } + return [...addDebugIdModule(premodules, createDebugIdModule(debugId))]; +} diff --git a/packages/core/src/metro/plugin/types/expoTypes.ts b/packages/core/src/metro/plugin/types/expoTypes.ts new file mode 100644 index 000000000..35019154a --- /dev/null +++ b/packages/core/src/metro/plugin/types/expoTypes.ts @@ -0,0 +1,64 @@ +// The MIT License (MIT) + +// Copyright (c) 2015-present 650 Industries, Inc. (aka Expo) + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +import type { MixedOutput, Module, ReadOnlyGraph } from 'metro'; + +// https://github.com/expo/expo/blob/15350ff92b31782543b455236966e7f67615d774/packages/%40expo/metro-config/src/ExpoMetroConfig.ts +export interface DefaultConfigOptions { + /** @deprecated */ + mode?: 'exotic'; + /** + * **Experimental:** Enable CSS support for Metro web, and shim on native. + * + * This is an experimental feature and may change in the future. The underlying implementation + * is subject to change, and native support for CSS Modules may be added in the future during a non-major SDK release. + */ + isCSSEnabled?: boolean; + + /** + * **Experimental:** Modify premodules before a code asset is serialized + * + * This is an experimental feature and may change in the future. The underlying implementation + * is subject to change. + */ + unstable_beforeAssetSerializationPlugins?: ((serializationInput: { + graph: ReadOnlyGraph; + premodules: Module[]; + debugId?: string; + }) => Module[])[]; +} + +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2016-Present Datadog, Inc. + */ +export interface DatadogExpoConfigOptions { + /** + * You can use this property to specify your getDefaultConfig function. By default, the + * `getDefaultConfig` function from `@expo/metro-config` will be used. + */ + getDefaultConfig?: ( + projectRoot: string, + options: DefaultConfigOptions + ) => DefaultConfigOptions; +} diff --git a/packages/core/src/metro/plugin/metroTypes.ts b/packages/core/src/metro/plugin/types/metroTypes.ts similarity index 98% rename from packages/core/src/metro/plugin/metroTypes.ts rename to packages/core/src/metro/plugin/types/metroTypes.ts index 112dcaab4..98d7f0294 100644 --- a/packages/core/src/metro/plugin/metroTypes.ts +++ b/packages/core/src/metro/plugin/types/metroTypes.ts @@ -91,4 +91,4 @@ export type DatadogDebugIdModule = Module & { setSource: (code: string) => void; }; -export type { MixedOutput, MetroConfig, Module }; +export type { MixedOutput, MetroConfig, Module, ReadOnlyGraph }; diff --git a/packages/core/src/metro/plugin/utils.ts b/packages/core/src/metro/plugin/utils.ts index 721abd326..41d114250 100644 --- a/packages/core/src/metro/plugin/utils.ts +++ b/packages/core/src/metro/plugin/utils.ts @@ -10,11 +10,12 @@ import sourceMapString from 'metro/src/DeltaBundler/Serializers/sourceMapString' import type CountingSet from 'metro/src/lib/CountingSet'; import type { ReadOnlyGraph, Module, MixedOutput } from 'metro'; +import type { DefaultConfigOptions } from './types/expoTypes'; import type { MetroSerializerOutput, MetroBundleWithMap, SourceMapString -} from './metroTypes'; +} from './types/metroTypes'; /** * Lazy-init reference for {@link createCountingSet} resolved function. @@ -26,6 +27,16 @@ let createCountingSetFunc: (() => CountingSet) | undefined; */ let sourceMapStringFunc: SourceMapString | undefined; +/** + * Lazy-init reference for {@link getDefaultExpoConfig} resolved function. + */ +let getDefaultExpoConfigFunc: + | (( + projectRoot: string, + options: DefaultConfigOptions + ) => DefaultConfigOptions) + | undefined; + /** * This function ensures that modules in source maps are sorted in the same * order as in a plain JS bundle. @@ -141,3 +152,26 @@ export const convertSerializerOutput = async ( return value; } }; + +/** + * Gets the default Expo configuration options. + */ +export const getDefaultExpoConfig = ( + projectRoot: string, + options: DefaultConfigOptions +): DefaultConfigOptions => { + if (!getDefaultExpoConfigFunc) { + try { + // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires + const metroConfig = require('expo/metro-config'); + getDefaultExpoConfigFunc = metroConfig.getDefaultConfig; + return metroConfig.getDefaultConfig(projectRoot, options); + } catch (e) { + throw new Error( + 'Cannot load `expo/metro-config`. Make sure Expo is properly set up in your project.' + ); + } + } else { + return getDefaultExpoConfigFunc(projectRoot, options); + } +}; From 91bf2046dfbfaef89df69886a51dadadd8111957 Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Tue, 17 Jun 2025 13:49:58 +0200 Subject: [PATCH 3/6] Added debugId to context of addError --- packages/core/src/rum/DdRum.ts | 3 ++- .../instrumentation/DdRumErrorTracking.tsx | 19 +++---------------- packages/core/src/utils/errorUtils.ts | 13 +++++++++++++ 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/packages/core/src/rum/DdRum.ts b/packages/core/src/rum/DdRum.ts index f2f456098..8943ed5b0 100644 --- a/packages/core/src/rum/DdRum.ts +++ b/packages/core/src/rum/DdRum.ts @@ -12,6 +12,7 @@ import { bufferVoidNativeCall } from '../sdk/DatadogProvider/Buffer/bufferNative import { DdSdk } from '../sdk/DdSdk'; import { GlobalState } from '../sdk/GlobalState/GlobalState'; import { validateContext } from '../utils/argsUtils'; +import { getErrorContext } from '../utils/errorUtils'; import { DefaultTimeProvider } from '../utils/time-provider/DefaultTimeProvider'; import type { TimeProvider } from '../utils/time-provider/TimeProvider'; @@ -249,7 +250,7 @@ class DdRumWrapper implements DdRumType { message, source, stacktrace, - context: validateContext(context), + context: getErrorContext(validateContext(context)), timestampMs, fingerprint: fingerprint ?? '' }); diff --git a/packages/core/src/rum/instrumentation/DdRumErrorTracking.tsx b/packages/core/src/rum/instrumentation/DdRumErrorTracking.tsx index d719305b3..04b01290c 100644 --- a/packages/core/src/rum/instrumentation/DdRumErrorTracking.tsx +++ b/packages/core/src/rum/instrumentation/DdRumErrorTracking.tsx @@ -9,13 +9,13 @@ import type { ErrorHandlerCallback } from 'react-native'; import { InternalLog } from '../../InternalLog'; import { SdkVerbosity } from '../../SdkVerbosity'; import { DdLogs } from '../../logs/DdLogs'; -import { debugId } from '../../metro/debugIdResolver'; import { getErrorMessage, getErrorStackTrace, EMPTY_STACK_TRACE, getErrorName, - DEFAULT_ERROR_NAME + DEFAULT_ERROR_NAME, + getErrorContext } from '../../utils/errorUtils'; import { executeWithDelay } from '../../utils/jsUtils'; import { DdRum } from '../DdRum'; @@ -150,7 +150,7 @@ export class DdRumErrorTracking { message, source, stacktrace, - DdRumErrorTracking.getErrorContext(context) + getErrorContext(context) ), DdLogs.error( message, @@ -166,17 +166,4 @@ export class DdRumErrorTracking { ) ]); }; - - private static getErrorContext = ( - originalContext: any - ): Record => { - const _debugId = debugId; - if (!_debugId) { - return originalContext; - } - return { - ...originalContext, - '_dd.debug_id': _debugId - }; - }; } diff --git a/packages/core/src/utils/errorUtils.ts b/packages/core/src/utils/errorUtils.ts index ca7b3a715..5fc16dcbc 100644 --- a/packages/core/src/utils/errorUtils.ts +++ b/packages/core/src/utils/errorUtils.ts @@ -4,6 +4,8 @@ * Copyright 2016-Present Datadog, Inc. */ +import { debugId } from '../metro/debugIdResolver'; + export const EMPTY_MESSAGE = 'Unknown Error'; export const EMPTY_STACK_TRACE = ''; export const DEFAULT_ERROR_NAME = 'Error'; @@ -71,3 +73,14 @@ export const getErrorName = (error: unknown): string => { } return DEFAULT_ERROR_NAME; }; + +export const getErrorContext = (originalContext: any): Record => { + const _debugId = debugId; + if (!_debugId) { + return originalContext; + } + return { + ...originalContext, + '_dd.debug_id': _debugId + }; +}; From 65055777150630e696136e344722523d2b75d639 Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Wed, 18 Jun 2025 10:49:17 +0200 Subject: [PATCH 4/6] Updated example-new-architecture Podfile.lock --- example-new-architecture/ios/Podfile.lock | 94 +++++++++++------------ 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/example-new-architecture/ios/Podfile.lock b/example-new-architecture/ios/Podfile.lock index 5734c240b..26a7525e9 100644 --- a/example-new-architecture/ios/Podfile.lock +++ b/example-new-architecture/ios/Podfile.lock @@ -1849,79 +1849,79 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost: 4cb898d0bf20404aab1850c656dcea009429d6c1 + boost: 1dca942403ed9342f98334bf4c3621f011aa7946 DatadogCore: 68aee4ffcc3ea17a3b0aa527907757883fc72c84 DatadogCrashReporting: e6a83b143394e28c9c1cb48c5cfb18eff507b3be DatadogInternal: 3c5cae6772295fd175a9de11e4747a9322aaa4e7 DatadogLogs: 09d6358dc7682f9d3eaea85dd418f82d2db3560c DatadogRUM: 0f267df8c9c8579a291870c2bce4549587391a07 - DatadogSDKReactNative: 1c754be7af8f4f23b7761b1f7f2d1119fb384233 + DatadogSDKReactNative: 956da5fbbead751dc3926d912083cbac4915ca97 DatadogTrace: f46c8220c73463d09741013f385a6e27cd39185b DatadogWebViewTracking: dc8376420c8686efd09d00752bc1034b639d180b - DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 + DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385 fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6 FBLazyVector: 7605ea4810e0e10ae4815292433c09bf4324ba45 fmt: 01b82d4ca6470831d1cc0852a1af644be019e8f6 - glog: 69ef571f3de08433d766d614c73a9838a06bf7eb + glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a hermes-engine: 9e868dc7be781364296d6ee2f56d0c1a9ef0bb11 OpenTelemetrySwiftApi: aaee576ed961e0c348af78df58b61300e95bd104 PLCrashReporter: db59ef96fa3d25f3650040d02ec2798cffee75f2 - RCT-Folly: ea9d9256ba7f9322ef911169a9f696e5857b9e17 + RCT-Folly: 7b4f73a92ad9571b9dbdb05bb30fad927fa971e1 RCTDeprecation: ebe712bb05077934b16c6bf25228bdec34b64f83 RCTRequired: ca91e5dd26b64f577b528044c962baf171c6b716 RCTTypeSafety: e7678bd60850ca5a41df9b8dc7154638cb66871f React: 4641770499c39f45d4e7cde1eba30e081f9d8a3d React-callinvoker: 4bef67b5c7f3f68db5929ab6a4d44b8a002998ea - React-Core: a68cea3e762814e60ecc3fa521c7f14c36c99245 - React-CoreModules: d81b1eaf8066add66299bab9d23c9f00c9484c7c - React-cxxreact: 984f8b1feeca37181d4e95301fcd6f5f6501c6ab + React-Core: 0a06707a0b34982efc4a556aff5dae4b22863455 + React-CoreModules: 907334e94314189c2e5eed4877f3efe7b26d85b0 + React-cxxreact: 3a1d5e8f4faa5e09be26614e9c8bbcae8d11b73d React-debug: 817160c07dc8d24d020fbd1eac7b3558ffc08964 - React-defaultsnativemodule: 18a684542f82ce1897552a1c4b847be414c9566e - React-domnativemodule: 90bdd4ec3ab38c47cfc3461c1e9283a8507d613f - React-Fabric: f6dade7007533daeb785ba5925039d83f343be4b - React-FabricComponents: b0655cc3e1b5ae12a4a1119aa7d8308f0ad33520 - React-FabricImage: 9b157c4c01ac2bf433f834f0e1e5fe234113a576 + React-defaultsnativemodule: 814830ccbc3fb08d67d0190e63b179ee4098c67b + React-domnativemodule: 270acf94bd0960b026bc3bfb327e703665d27fb4 + React-Fabric: 64586dc191fc1c170372a638b8e722e4f1d0a09b + React-FabricComponents: b0ebd032387468ea700574c581b139f57a7497fb + React-FabricImage: 81f0e0794caf25ad1224fa406d288fbc1986607f React-featureflags: f2792b067a351d86fdc7bec23db3b9a2f2c8d26c - React-featureflagsnativemodule: 742a8325b3c821d2a1ca13a6d2a0fc72d04555e0 - React-graphics: 68969e4e49d73f89da7abef4116c9b5f466aa121 - React-hermes: ac0bcba26a5d288ebc99b500e1097da2d0297ddf - React-idlecallbacksnativemodule: d61d9c9816131bf70d3d80cd04889fc625ee523f - React-ImageManager: e906eec93a9eb6102a06576b89d48d80a4683020 - React-jserrorhandler: ac5dde01104ff444e043cad8f574ca02756e20d6 - React-jsi: 496fa2b9d63b726aeb07d0ac800064617d71211d - React-jsiexecutor: dd22ab48371b80f37a0a30d0e8915b6d0f43a893 - React-jsinspector: 4629ac376f5765e684d19064f2093e55c97fd086 - React-jsitracing: 7a1c9cd484248870cf660733cd3b8114d54c035f - React-logger: c4052eb941cca9a097ef01b59543a656dc088559 - React-Mapbuffer: 33546a3ebefbccb8770c33a1f8a5554fa96a54de - React-microtasksnativemodule: d80ff86c8902872d397d9622f1a97aadcc12cead + React-featureflagsnativemodule: 0d7091ae344d6160c0557048e127897654a5c00f + React-graphics: cbebe910e4a15b65b0bff94a4d3ed278894d6386 + React-hermes: ec18c10f5a69d49fb9b5e17ae95494e9ea13d4d3 + React-idlecallbacksnativemodule: 6b84add48971da9c40403bd1860d4896462590f2 + React-ImageManager: f2a4c01c2ccb2193e60a20c135da74c7ca4d36f2 + React-jserrorhandler: 61d205b5a7cbc57fed3371dd7eed48c97f49fc64 + React-jsi: 95f7676103137861b79b0f319467627bcfa629ee + React-jsiexecutor: 41e0fe87cda9ea3970ffb872ef10f1ff8dbd1932 + React-jsinspector: 15578208796723e5c6f39069b6e8bf36863ef6e2 + React-jsitracing: 3758cdb155ea7711f0e77952572ea62d90c69f0b + React-logger: dbca7bdfd4aa5ef69431362bde6b36d49403cb20 + React-Mapbuffer: 6efad4a606c1fae7e4a93385ee096681ef0300dc + React-microtasksnativemodule: a645237a841d733861c70b69908ab4a1707b52ad React-nativeconfig: 8efdb1ef1e9158c77098a93085438f7e7b463678 - React-NativeModulesApple: cebca2e5320a3d66e123cade23bd90a167ffce5e - React-perflogger: 72e653eb3aba9122f9e57cf012d22d2486f33358 - React-performancetimeline: cd6a9374a72001165995d2ab632f672df04076dc + React-NativeModulesApple: 958d4f6c5c2ace4c0f427cf7ef82e28ae6538a22 + React-perflogger: 9b4f13c0afe56bc7b4a0e93ec74b1150421ee22d + React-performancetimeline: 359db1cb889aa0282fafc5838331b0987c4915a9 React-RCTActionSheet: aacf2375084dea6e7c221f4a727e579f732ff342 - React-RCTAnimation: 395ab53fd064dff81507c15efb781c8684d9a585 - React-RCTAppDelegate: 345a6f1b82abc578437df0ce7e9c48740eca827c - React-RCTBlob: 13311e554c1a367de063c10ee7c5e6573b2dd1d6 - React-RCTFabric: 007b1a98201cc49b5bc6e1417d7fe3f6fc6e2b78 - React-RCTImage: 1b1f914bcc12187c49ba5d949dac38c2eb9f5cc8 - React-RCTLinking: 4ac7c42beb65e36fba0376f3498f3cd8dd0be7fa - React-RCTNetwork: 938902773add4381e84426a7aa17a2414f5f94f7 - React-RCTSettings: e848f1ba17a7a18479cf5a31d28145f567da8223 - React-RCTText: 7e98fafdde7d29e888b80f0b35544e0cb07913cf - React-RCTVibration: cd7d80affd97dc7afa62f9acd491419558b64b78 + React-RCTAnimation: d8c82deebebe3aaf7a843affac1b57cb2dc073d4 + React-RCTAppDelegate: 1774aa421a29a41a704ecaf789811ef73c4634b6 + React-RCTBlob: 70a58c11a6a3500d1a12f2e51ca4f6c99babcff8 + React-RCTFabric: 731cda82aed592aacce2d32ead69d78cde5d9274 + React-RCTImage: 5e9d655ba6a790c31e3176016f9b47fd0978fbf0 + React-RCTLinking: 2a48338252805091f7521eaf92687206401bdf2a + React-RCTNetwork: 0c1282b377257f6b1c81934f72d8a1d0c010e4c3 + React-RCTSettings: f757b679a74e5962be64ea08d7865a7debd67b40 + React-RCTText: e7d20c490b407d3b4a2daa48db4bcd8ec1032af2 + React-RCTVibration: 8228e37144ca3122a91f1de16ba8e0707159cfec React-rendererconsistency: b4917053ecbaa91469c67a4319701c9dc0d40be6 - React-rendererdebug: aa181c36dd6cf5b35511d1ed875d6638fd38f0ec + React-rendererdebug: 81becbc8852b38d9b1b68672aa504556481330d5 React-rncore: 120d21715c9b4ba8f798bffe986cb769b988dd74 - React-RuntimeApple: d033becbbd1eba6f9f6e3af6f1893030ce203edd - React-RuntimeCore: 38af280bb678e66ba000a3c3d42920b2a138eebb + React-RuntimeApple: 52ed0e9e84a7c2607a901149fb13599a3c057655 + React-RuntimeCore: ca6189d2e53d86db826e2673fe8af6571b8be157 React-runtimeexecutor: 877596f82f5632d073e121cba2d2084b76a76899 - React-RuntimeHermes: 37aad735ff21ca6de2d8450a96de1afe9f86c385 - React-runtimescheduler: 8ec34cc885281a34696ea16c4fd86892d631f38d + React-RuntimeHermes: 3b752dc5d8a1661c9d1687391d6d96acfa385549 + React-runtimescheduler: 8321bb09175ace2a4f0b3e3834637eb85bf42ebe React-timing: 331cbf9f2668c67faddfd2e46bb7f41cbd9320b9 - React-utils: ed818f19ab445000d6b5c4efa9d462449326cc9f - ReactCodegen: f853a20cc9125c5521c8766b4b49375fec20648b - ReactCommon: 300d8d9c5cb1a6cd79a67cf5d8f91e4d477195f9 + React-utils: 54df9ada708578c8ad40d92895d6fed03e0e8a9e + ReactCodegen: 21a52ccddc6479448fc91903a437dd23ddc7366c + ReactCommon: bfd3600989d79bc3acbe7704161b171a1480b9fd SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 Yoga: feb4910aba9742cfedc059e2b2902e22ffe9954a From 75f1c4661f6c08797943c4919433fd83d55bd725 Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Wed, 18 Jun 2025 10:57:10 +0200 Subject: [PATCH 5/6] Updated getDebugIdFromBundleSource regex --- .../core/src/metro/__tests__/metro.test.ts | 27 ++++++++++++++++++- .../core/src/metro/plugin/debugIdHelper.ts | 2 +- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/core/src/metro/__tests__/metro.test.ts b/packages/core/src/metro/__tests__/metro.test.ts index 895852cc1..503c2f8b8 100644 --- a/packages/core/src/metro/__tests__/metro.test.ts +++ b/packages/core/src/metro/__tests__/metro.test.ts @@ -9,7 +9,8 @@ import { createDebugIdFromString, _replaceDebugIdInBundle, _insertDebugIdCommentInBundle, - _isDebugIdInBundle + _isDebugIdInBundle, + getDebugIdFromBundleSource } from '../plugin/debugIdHelper'; import { createDatadogMetroSerializer } from '../plugin/metroSerializer'; import type { MetroSerializerOutput } from '../plugin/types/metroTypes'; @@ -293,6 +294,30 @@ describe('Datadog Metro Plugin', () => { // THEN expect(check).toBe(false); }); + + test('M getDebugIdFromBundleSource finds the debug ID in bundle code if present', () => { + // GIVEN + const debugId = 'a422b269-0dba-4341-93c2-73e1bcf71fbb'; + const mockCode = `var _datadogDebugIds,_datadogDebugIdMeta;void 0===_datadogDebugIds&&(_datadogDebugIds={});try{var stack=(new Error).stack;stack&&(_datadogDebugIds[stack]="${debugId}",_datadogDebugIdMeta="datadog-debug-id-${debugId}")}catch(e){}`; + + // WHEN + const debugIdMatch = getDebugIdFromBundleSource(mockCode); + + // THEN + expect(debugIdMatch).toBe('a422b269-0dba-4341-93c2-73e1bcf71fbb'); + }); + + test('M getDebugIdFromBundleSource returns undefined if the debug ID in bundle code is not present', () => { + // GIVEN + const mockCode = + 'var _datadogDebugIds,_datadogDebugIdMeta;void 0===_datadogDebugIds'; + + // WHEN + const debugIdMatch = getDebugIdFromBundleSource(mockCode); + + // THEN + expect(debugIdMatch).toBeUndefined(); + }); }); describe('Debug ID Utils', () => { diff --git a/packages/core/src/metro/plugin/debugIdHelper.ts b/packages/core/src/metro/plugin/debugIdHelper.ts index f649a49ba..458d0a4a8 100644 --- a/packages/core/src/metro/plugin/debugIdHelper.ts +++ b/packages/core/src/metro/plugin/debugIdHelper.ts @@ -127,7 +127,7 @@ export const getDebugIdFromBundleSource = ( ): string | undefined => { const match = code.match( new RegExp( - `${DEBUG_ID_METADATA_PREFIX}([0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12})` + `${DEBUG_ID_METADATA_PREFIX}([0-9a-fA-F]{8}\\b-(?:[0-9a-fA-F]{4}\\b-){3}[0-9a-fA-F]{12})` ) ); From 9e6523ce8733a29df9e0279e6b60bfb8670b580f Mon Sep 17 00:00:00 2001 From: Marco Saia Date: Wed, 18 Jun 2025 16:05:10 +0200 Subject: [PATCH 6/6] Explicitly include package.json export in core package --- packages/core/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index 7b9373b09..7024ec09d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -48,7 +48,8 @@ "import": "./lib/module/metro.js", "require": "./lib/commonjs/metro.js", "types": "./lib/typescript/metro.d.ts" - } + }, + "./package.json": "./package.json" }, "publishConfig": { "access": "public"