diff --git a/.circleci/config.yml b/.circleci/config.yml
index 36ffd0eed..8d228f68b 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -31,6 +31,10 @@ jobs:
environment:
NODE_OPTIONS: "--max-old-space-size=4096"
+ - run:
+ name: Build the Project
+ command: yarn run build
+
- run:
name: Install AEPSampleApp Dependencies
command: cd apps/AEPSampleApp && yarn install --immutable --network-timeout 300000
@@ -38,10 +42,6 @@ jobs:
environment:
NODE_OPTIONS: "--max-old-space-size=4096"
- - run:
- name: Build the Project
- command: yarn run build
-
- run:
name: Expo Prebuild
command: cd apps/AEPSampleAppNewArchEnabled && npx expo prebuild
@@ -172,7 +172,7 @@ jobs:
command: sudo xcode-select -s /Applications/Xcode.app
- node/install:
- node-version: '20.19.4'
+ node-version: '22.12.0'
- run:
name: Enable Corepack
diff --git a/apps/AEPSampleApp/.gitignore b/apps/AEPSampleApp/.gitignore
index 0cab2ac6f..7cc8b51e6 100644
--- a/apps/AEPSampleApp/.gitignore
+++ b/apps/AEPSampleApp/.gitignore
@@ -61,6 +61,8 @@ yarn-error.log
# Temporary files created by Metro to check the health of the file watcher
.metro-health-check*
+.metro-build-matrix.log
+.metro-build-matrix.pid
# testing
/coverage
diff --git a/apps/AEPSampleApp/App.tsx b/apps/AEPSampleApp/App.tsx
index 1fd42327d..c5e072eee 100644
--- a/apps/AEPSampleApp/App.tsx
+++ b/apps/AEPSampleApp/App.tsx
@@ -35,7 +35,7 @@ import { useState, useEffect, createContext, useContext } from 'react';
const STORAGE_KEY = 'aep_app_id';
-const DEFAULT_APP_ID = '';
+const DEFAULT_APP_ID = '3149c49c3910/0f12baf27522/launch-0d096c129660-development';
export const AppContext = createContext({
appId: DEFAULT_APP_ID,
diff --git a/apps/AEPSampleApp/android/build.gradle b/apps/AEPSampleApp/android/build.gradle
index 3ed3f9bdf..69f69b2a0 100644
--- a/apps/AEPSampleApp/android/build.gradle
+++ b/apps/AEPSampleApp/android/build.gradle
@@ -15,3 +15,19 @@ plugins {
id("org.jetbrains.kotlin.android") version "2.1.20" apply false
id("com.facebook.react.rootproject")
}
+
+// USE_INTEROP_ROOT for @adobe/react-native-aepoptimize (RN 0.85 / Gradle 9).
+// gradle.properties USE_INTEROP_ROOT is toggled by scripts/build-matrix.sh.
+def optimizeUseInteropRoot = findProperty("USE_INTEROP_ROOT") ?: "false"
+
+gradle.beforeProject { project ->
+ if (project.name == "adobe_react-native-aepoptimize") {
+ project.afterEvaluate {
+ project.android {
+ defaultConfig {
+ buildConfigField "boolean", "USE_INTEROP_ROOT", optimizeUseInteropRoot
+ }
+ }
+ }
+ }
+}
diff --git a/apps/AEPSampleApp/android/gradle.properties b/apps/AEPSampleApp/android/gradle.properties
index b866a0ae2..f0382d997 100644
--- a/apps/AEPSampleApp/android/gradle.properties
+++ b/apps/AEPSampleApp/android/gradle.properties
@@ -36,6 +36,9 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# are providing them.
newArchEnabled=true
+# USE_INTEROP_ROOT for @adobe/react-native-aepoptimize (build-matrix.sh toggles this).
+USE_INTEROP_ROOT=false
+
# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true
diff --git a/apps/AEPSampleApp/extensions/OptimizeView.tsx b/apps/AEPSampleApp/extensions/OptimizeView.tsx
index a37813fd9..e18f83a75 100644
--- a/apps/AEPSampleApp/extensions/OptimizeView.tsx
+++ b/apps/AEPSampleApp/extensions/OptimizeView.tsx
@@ -10,7 +10,7 @@ OF ANY KIND, either express or implied. See the License for the specific languag
governing permissions and limitations under the License.
*/
-import React, {useState} from 'react';
+import React, {useMemo, useState} from 'react';
import {
Optimize,
DecisionScope,
@@ -27,6 +27,7 @@ import {
useWindowDimensions,
TextInput,
StyleSheet,
+ ScrollView,
} from 'react-native';
import {RecyclerListView, DataProvider, LayoutProvider} from 'recyclerlistview';
@@ -47,6 +48,22 @@ const defaultPropositions = {
jsonProposition: '{"Type": "JSON place holder"}',
};
+function SmokeButton({
+ id,
+ title,
+ onPress,
+}: {
+ id: string;
+ title: string;
+ onPress: () => void;
+}) {
+ return (
+
+
+
+ );
+}
+
export default ({navigation}: any) => {
const [version, setVersion] = useState('0.0.0');
const [customScopeInput, setCustomScopeInput] = useState('mboxAug');
@@ -55,6 +72,17 @@ export default ({navigation}: any) => {
const [htmlProposition, setHtmlProposition] = useState();
const [jsonProposition, setJsonProposition] = useState();
const [targetProposition, setTargetProposition] = useState();
+ const [listKey, setListKey] = useState(0);
+
+ const dataProvider = useMemo(
+ () =>
+ new DataProvider((data1, data2) => {
+ return data1 !== data2;
+ }),
+ [],
+ );
+
+ const { width } = useWindowDimensions();
const decisionScopeText = new DecisionScope(
'eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0MWM4NTg2MmRiMDQ4YzkiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTQxYzZkNWQzOGYwNDg5NyJ9',
@@ -115,6 +143,7 @@ export default ({navigation}: any) => {
const tapTargetOffer = () => {
if (targetProposition?.items?.[0]) {
targetProposition.items[0].tapped(targetProposition);
+ console.log('Offer is tapped');
} else {
console.log('No target proposition cached — run Get Propositions first');
}
@@ -153,7 +182,8 @@ export default ({navigation}: any) => {
const getPropositions = async () => {
const propositions: Map =
await Optimize.getPropositions(decisionScopes);
- console.log(propositions);
+ console.log('get proposition', propositions);
+ console.log('get proposition iOS', propositions);
if (propositions) {
setTextProposition(propositions.get(decisionScopeText.getName()));
setImageProposition(propositions.get(decisionScopeImage.getName()));
@@ -171,13 +201,40 @@ export default ({navigation}: any) => {
const onPropositionUpdate = () =>
Optimize.onPropositionUpdate({
call(propositions: Map) {
- if (propositions) {
- setTextProposition(propositions.get(decisionScopeText.getName()));
- setImageProposition(propositions.get(decisionScopeImage.getName()));
- setHtmlProposition(propositions.get(decisionScopeHtml.getName()));
- setJsonProposition(propositions.get(decisionScopeJson.getName()));
- setTargetProposition(propositions.get(decisionScopeTargetMbox.getName()));
+ if (!propositions) {
+ console.log("nothing ")
+ return;
}
+ console.log('i am here ', propositions);
+ console.log(
+ 'onPropositionUpdate subscribe callback fired, scopes:',
+ propositions?.size ?? 0,
+ );
+
+ // Defer state updates — RecyclerListView crashes if mutated during layout (RN 0.85/Fabric).
+ requestAnimationFrame(() => {
+ const target = propositions.get(decisionScopeTargetMbox.getName());
+ if (target) {
+ setTargetProposition(target);
+ }
+ const text = propositions.get(decisionScopeText.getName());
+ if (text) {
+ setTextProposition(text);
+ }
+ const image = propositions.get(decisionScopeImage.getName());
+ if (image) {
+ setImageProposition(image);
+ }
+ const html = propositions.get(decisionScopeHtml.getName());
+ if (html) {
+ setHtmlProposition(html);
+ }
+ const json = propositions.get(decisionScopeJson.getName());
+ if (json) {
+ setJsonProposition(json);
+ }
+ setListKey((k) => k + 1);
+ });
},
});
@@ -213,11 +270,6 @@ export default ({navigation}: any) => {
return Default Target Offer;
};
- let dataProvider = new DataProvider((data1, data2) => {
- return data1 !== data2;
- });
-
- const { width } = useWindowDimensions();
const inputStyles = StyleSheet.create({
label: {fontWeight: '600', marginTop: 8, marginBottom: 2, color: '#333', alignSelf: 'flex-start'},
input: {borderWidth: 1, borderColor: '#ccc', borderRadius: 6, padding: 8, fontSize: 13, marginBottom: 2, backgroundColor: '#fff', width: width - 32},
@@ -225,34 +277,35 @@ export default ({navigation}: any) => {
divider: {height: 1, backgroundColor: '#ddd', marginVertical: 8, width: width - 32},
});
- let layoutProvider = new LayoutProvider(
- index => {
- if (index % 2 === 0) {
- //View type is for header
- return ViewTypes.header;
- } else {
- //View type is for Content
- return ViewTypes.content;
- }
- },
- (type, dimen) => {
- switch (type) {
- case ViewTypes.header:
- dimen.width = width;
- dimen.height = 50;
- break;
-
- case ViewTypes.content:
- dimen.width = width;
- dimen.height = 200;
- break;
-
- default:
- dimen.width = 0;
- dimen.height = 0;
- break;
- }
- },
+ const layoutProvider = useMemo(
+ () =>
+ new LayoutProvider(
+ index => {
+ if (index % 2 === 0) {
+ return ViewTypes.header;
+ }
+ return ViewTypes.content;
+ },
+ (type, dimen) => {
+ switch (type) {
+ case ViewTypes.header:
+ dimen.width = width;
+ dimen.height = 50;
+ break;
+
+ case ViewTypes.content:
+ dimen.width = width;
+ dimen.height = 200;
+ break;
+
+ default:
+ dimen.width = 0;
+ dimen.height = 0;
+ break;
+ }
+ },
+ ),
+ [width],
);
let rowRenderer = (type: any, data: any) => {
@@ -388,7 +441,9 @@ export default ({navigation}: any) => {
};
return (
-
+
+ {width > 0 ? (
+
+
+
+ ) : null}
+
);
};
diff --git a/apps/AEPSampleApp/ios/AEPSampleApp.xcodeproj/xcshareddata/xcschemes/AEPSampleApp.xcscheme b/apps/AEPSampleApp/ios/AEPSampleApp.xcodeproj/xcshareddata/xcschemes/AEPSampleApp.xcscheme
index 3dd6ab886..2aab8f2e8 100644
--- a/apps/AEPSampleApp/ios/AEPSampleApp.xcodeproj/xcshareddata/xcschemes/AEPSampleApp.xcscheme
+++ b/apps/AEPSampleApp/ios/AEPSampleApp.xcodeproj/xcshareddata/xcschemes/AEPSampleApp.xcscheme
@@ -30,7 +30,7 @@
shouldAutocreateTestPlan = "YES">
config[:reactNativePath],
# An absolute path to your application root.
- :app_path => "#{Pod::Config.instance.installation_root}/.."
+ :app_path => "#{Pod::Config.instance.installation_root}/..",
+ :new_arch_enabled => new_arch_enabled,
+ :fabric_enabled => new_arch_enabled
)
target 'aepsampleappTests' do
diff --git a/apps/AEPSampleApp/ios/Podfile.lock b/apps/AEPSampleApp/ios/Podfile.lock
index f13d69dd7..159242da1 100644
--- a/apps/AEPSampleApp/ios/Podfile.lock
+++ b/apps/AEPSampleApp/ios/Podfile.lock
@@ -76,8 +76,27 @@ PODS:
- React
- RCTAEPOptimize (7.1.1):
- AEPOptimize (< 6.0.0, >= 5.0.0)
- - React
- - React-Codegen
+ - hermes-engine
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-Core-prebuilt
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-ImageManager
+ - React-jsi
+ - React-NativeModulesApple
+ - React-RCTFabric
+ - React-renderercss
+ - React-rendererdebug
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - ReactNativeDependencies
+ - Yoga
- RCTAEPPlaces (7.0.1):
- AEPPlaces (< 6.0.0, >= 5.0.0)
- React
@@ -110,7 +129,6 @@ PODS:
- React-RCTText (= 0.85.0)
- React-RCTVibration (= 0.85.0)
- React-callinvoker (0.85.0)
- - React-Codegen (0.1.0)
- React-Core (0.85.0):
- hermes-engine
- RCTDeprecation
@@ -2300,7 +2318,6 @@ SPEC REPOS:
- AEPSignal
- AEPTarget
- AEPUserProfile
- - React-Codegen
EXTERNAL SOURCES:
FBLazyVector:
@@ -2520,7 +2537,7 @@ SPEC CHECKSUMS:
RCTAEPEdgeConsent: 94d66ceefac0058a1586b0b876e37f178d3733d2
RCTAEPEdgeIdentity: 2ed3fdc9a3150e9bcf268b128c22f293ab4df6aa
RCTAEPMessaging: d97f2750b4698d54953e6a9b824506a18be1695c
- RCTAEPOptimize: cf583da4e45b6db6e641c4771f5a4204882521f1
+ RCTAEPOptimize: 089bffe4a17ffe9579a39a55db4b841919882ada
RCTAEPPlaces: 4050bda86286605a8683b4c078baac1662ca013a
RCTAEPTarget: e8bcf8864758faf07635719ffa0eff6a06861910
RCTAEPUserProfile: 799d618ffbbfc389175c8a8cd5afcc36d852709a
@@ -2531,7 +2548,6 @@ SPEC CHECKSUMS:
RCTTypeSafety: abdf2eaed5501a52f2000de668ccfc60b78c3b27
React: 1b1536b9099195944034e65b1830f463caaa8390
React-callinvoker: 6dff6d17d1d6cc8fdf85468a649bafed473c65f5
- React-Codegen: 4b8b4817cea7a54b83851d4c1f91f79aa73de30a
React-Core: 39ee05b5798296f433dd3c3624c57a187c1510e3
React-Core-prebuilt: 0eb00afc411cea82c86a1a369b68da88299926f0
React-CoreModules: e78bfd2617075bc0e50c689df4a29232bd72ad82
@@ -2605,6 +2621,6 @@ SPEC CHECKSUMS:
RNWorklets: 4dba1eb7cbfc3e8db49e5cce18a1a471fd2ed696
Yoga: a6fdd7fe90a3d33fb1638cf609f26cb0400a12ad
-PODFILE CHECKSUM: a41e57d372ea045697537da4a369f78630806783
+PODFILE CHECKSUM: 48396176f4991c9e063313426b741c27c8d42ceb
COCOAPODS: 1.16.2
diff --git a/apps/AEPSampleApp/ios/Podfile.properties.json b/apps/AEPSampleApp/ios/Podfile.properties.json
new file mode 100644
index 000000000..83f44152f
--- /dev/null
+++ b/apps/AEPSampleApp/ios/Podfile.properties.json
@@ -0,0 +1,3 @@
+{
+ "newArchEnabled": "true"
+}
diff --git a/apps/AEPSampleApp/package.json b/apps/AEPSampleApp/package.json
index fc7e0cccc..fe7c394a2 100644
--- a/apps/AEPSampleApp/package.json
+++ b/apps/AEPSampleApp/package.json
@@ -5,6 +5,14 @@
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
+ "build:matrix": "bash scripts/build-matrix.sh",
+ "build:matrix:list": "bash scripts/build-matrix.sh --list-matrix",
+ "build:ios:turbo": "bash scripts/build-matrix.sh --preset ios-turbo -c full --sync --run",
+ "build:ios:interop": "bash scripts/build-matrix.sh --preset ios-interop -c full --sync --run",
+ "build:android:turbo": "bash scripts/build-matrix.sh --preset android-turbo -c full --sync --run",
+ "build:android:interop": "bash scripts/build-matrix.sh --preset android-interop -c full --sync --run",
+ "build:both:turbo": "bash scripts/build-matrix.sh --preset both-turbo -c full --sync --run",
+ "build:both:interop": "bash scripts/build-matrix.sh --preset both-interop -c full --sync --run",
"lint": "eslint .",
"start": "react-native start",
"test": "jest"
@@ -18,7 +26,7 @@
"@adobe/react-native-aepedgeconsent": "^7.0.0",
"@adobe/react-native-aepedgeidentity": "^7.0.0",
"@adobe/react-native-aepmessaging": "^7.4.0",
- "@adobe/react-native-aepoptimize": "^7.1.1",
+ "@adobe/react-native-aepoptimize": "portal:../../packages/optimize",
"@adobe/react-native-aepplaces": "^7.0.1",
"@adobe/react-native-aeptarget": "^7.0.0",
"@adobe/react-native-aepuserprofile": "^7.0.0",
diff --git a/apps/AEPSampleApp/scripts/build-matrix.sh b/apps/AEPSampleApp/scripts/build-matrix.sh
new file mode 100755
index 000000000..fd18f0a8c
--- /dev/null
+++ b/apps/AEPSampleApp/scripts/build-matrix.sh
@@ -0,0 +1,379 @@
+#!/usr/bin/env bash
+#
+# AEPSampleApp — new-arch build matrix (RN 0.85)
+#
+# New Architecture only. Toggles USE_INTEROP_ROOT (Optimize turbo vs interop).
+#
+# Examples:
+# ./scripts/build-matrix.sh --preset ios-turbo -c full --sync --run
+# ./scripts/build-matrix.sh --preset android-interop -c full --sync --run
+# ./scripts/build-matrix.sh --list-matrix
+#
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+APP_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
+REPO_ROOT="$(cd "$APP_DIR/../.." && pwd)"
+OPTIMIZE_PKG="$REPO_ROOT/packages/optimize"
+
+IOS_SCHEME="AEPSampleApp"
+IOS_WORKSPACE="AEPSampleApp.xcworkspace"
+IOS_PODFILE_PROPS="$APP_DIR/ios/Podfile.properties.json"
+ANDROID_GRADLE_PROPS="$APP_DIR/android/gradle.properties"
+ANDROID_ROOT_BUILD="$APP_DIR/android/build.gradle"
+ANDROID_DIR="$APP_DIR/android"
+
+PLATFORM="both"
+INTEROP="false"
+CLEAN="light"
+SYNC_DEPS=false
+LINK_LOCAL_OPTIMIZE=false
+RUN_APP=false
+BUILD_ONLY=true
+START_METRO=true
+LIST_MATRIX=false
+PRESET=""
+
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+CYAN='\033[0;36m'
+NC='\033[0m'
+
+log() { echo -e "${CYAN}▸${NC} $*"; }
+ok() { echo -e "${GREEN}✓${NC} $*"; }
+warn() { echo -e "${YELLOW}!${NC} $*"; }
+die() { echo -e "${RED}✗${NC} $*" >&2; exit 1; }
+
+to_lower() {
+ printf '%s' "$1" | tr '[:upper:]' '[:lower:]'
+}
+
+usage() {
+ cat <<'EOF'
+Usage: build-matrix.sh [options]
+
+AEPSampleApp (RN 0.85) — New Architecture only. Interop true/false for Optimize.
+
+Options:
+ -p, --platform ios|android|both Platform (default: both)
+ -i, --interop true|false USE_INTEROP_ROOT (default: false = turbo)
+ -c, --clean none|light|full Clean level (default: light)
+ --sync yarn install before build
+ --link-optimize use portal:../../packages/optimize + prepare (monorepo local dev)
+ --run Install, launch, connect Metro (default for yarn build:* scripts)
+ --build-only Build only, no install/Metro
+ --no-metro With --run, do not auto-start Metro
+ --preset ios-turbo | ios-interop
+ android-turbo | android-interop
+ both-turbo | both-interop
+ --list-matrix Show cells and exit
+ -h, --help
+
+Config updated per run:
+ ios/Podfile.properties.json newArchEnabled=true (always)
+ android/gradle.properties newArchEnabled=true (always)
+ android/gradle.properties newArchEnabled=true, USE_INTEROP_ROOT
+
+EOF
+}
+
+normalize_bool() {
+ case "$(to_lower "$1")" in
+ true|1|yes|on) echo "true" ;;
+ false|0|no|off) echo "false" ;;
+ *) die "Invalid boolean: $1 (use true/false)" ;;
+ esac
+}
+
+apply_preset() {
+ case "$1" in
+ ios-turbo|ios-new-turbo) PLATFORM=ios; INTEROP=false ;;
+ ios-interop|ios-new-interop) PLATFORM=ios; INTEROP=true ;;
+ android-turbo|android-new-turbo) PLATFORM=android; INTEROP=false ;;
+ android-interop|android-new-interop) PLATFORM=android; INTEROP=true ;;
+ both-turbo|both-new-turbo) PLATFORM=both; INTEROP=false ;;
+ both-interop|both-new-interop) PLATFORM=both; INTEROP=true ;;
+ *) die "Unknown preset: $1 (use --list-matrix)" ;;
+ esac
+}
+
+parse_args() {
+ while [[ $# -gt 0 ]]; do
+ case "$1" in
+ -p|--platform) PLATFORM="$(to_lower "$2")"; shift 2 ;;
+ -i|--interop) INTEROP="$(normalize_bool "$2")"; shift 2 ;;
+ -c|--clean) CLEAN="$(to_lower "$2")"; shift 2 ;;
+ --preset) PRESET="$(to_lower "$2")"; shift 2 ;;
+ --sync) SYNC_DEPS=true; shift ;;
+ --link-optimize) LINK_LOCAL_OPTIMIZE=true; SYNC_DEPS=true; shift ;;
+ --run) RUN_APP=true; BUILD_ONLY=false; shift ;;
+ --build-only) BUILD_ONLY=true; RUN_APP=false; shift ;;
+ --metro) START_METRO=true; shift ;;
+ --no-metro) START_METRO=false; shift ;;
+ --list-matrix) LIST_MATRIX=true; shift ;;
+ -h|--help) usage; exit 0 ;;
+ -a|--arch) die "Old arch is not supported on AEPSampleApp (RN 0.85 new arch only). Remove -a/--arch." ;;
+ *) die "Unknown option: $1 (use --help)" ;;
+ esac
+ done
+
+ if [[ -n "$PRESET" ]]; then
+ apply_preset "$PRESET"
+ fi
+
+ case "$PLATFORM" in
+ ios|android|both) ;;
+ *) die "Invalid platform: $PLATFORM" ;;
+ esac
+ case "$CLEAN" in
+ none|light|full) ;;
+ *) die "Invalid clean level: $CLEAN" ;;
+ esac
+}
+
+needs_ios() { [[ "$PLATFORM" == "ios" || "$PLATFORM" == "both" ]]; }
+needs_android() { [[ "$PLATFORM" == "android" || "$PLATFORM" == "both" ]]; }
+
+print_matrix() {
+ cat <<'EOF'
+AEPSampleApp build matrix (RN 0.85 — new arch only):
+
+ # | Interop | USE_INTEROP | iOS path | Android path
+ --|---------|-------------|-----------------------|---------------------------
+ 1 | false | 0 / false | SpecBase turbo | NativeAEPOptimizeModule
+ 2 | true | 1 / true | RCTEventEmitter+spec | RCTAEPOptimizeModule
+
+Presets:
+ ios-turbo ios-interop
+ android-turbo android-interop
+ both-turbo both-interop
+
+Examples:
+ yarn build:ios:turbo
+ yarn build:android:interop
+ ./scripts/build-matrix.sh --preset both-turbo -c full --sync --run
+ ./scripts/build-matrix.sh --preset ios-interop -c full --link-optimize --run
+
+EOF
+}
+
+apply_ios_config() {
+ node -e "
+ const fs = require('fs');
+ const p = process.argv[1];
+ const j = fs.existsSync(p) ? JSON.parse(fs.readFileSync(p, 'utf8')) : {};
+ j.newArchEnabled = 'true';
+ fs.writeFileSync(p, JSON.stringify(j, null, 2) + '\n');
+ " "$IOS_PODFILE_PROPS"
+ ok "ios/Podfile.properties.json → newArchEnabled: true"
+ export RCT_NEW_ARCH_ENABLED=1
+ export USE_INTEROP_ROOT=$([[ "$INTEROP" == "true" ]] && echo 1 || echo 0)
+}
+
+apply_android_config() {
+ if grep -q '^newArchEnabled=' "$ANDROID_GRADLE_PROPS"; then
+ if [[ "$(uname)" == Darwin ]]; then
+ sed -i '' 's/^newArchEnabled=.*/newArchEnabled=true/' "$ANDROID_GRADLE_PROPS"
+ else
+ sed -i 's/^newArchEnabled=.*/newArchEnabled=true/' "$ANDROID_GRADLE_PROPS"
+ fi
+ else
+ echo "newArchEnabled=true" >> "$ANDROID_GRADLE_PROPS"
+ fi
+ ok "android/gradle.properties → newArchEnabled: true"
+
+ if grep -q '^USE_INTEROP_ROOT=' "$ANDROID_GRADLE_PROPS"; then
+ if [[ "$(uname)" == Darwin ]]; then
+ sed -i '' "s/^USE_INTEROP_ROOT=.*/USE_INTEROP_ROOT=$INTEROP/" "$ANDROID_GRADLE_PROPS"
+ else
+ sed -i "s/^USE_INTEROP_ROOT=.*/USE_INTEROP_ROOT=$INTEROP/" "$ANDROID_GRADLE_PROPS"
+ fi
+ else
+ echo "USE_INTEROP_ROOT=$INTEROP" >> "$ANDROID_GRADLE_PROPS"
+ fi
+ ok "android/gradle.properties → USE_INTEROP_ROOT: $INTEROP"
+}
+
+apply_config() {
+ log "Applying config: newArch=true interop=$INTEROP platform=$PLATFORM"
+ if needs_ios; then apply_ios_config; fi
+ if needs_android; then apply_android_config; fi
+}
+
+link_local_optimize() {
+ log "Linking @adobe/react-native-aepoptimize → portal:../../packages/optimize"
+ node -e "
+ const fs = require('fs');
+ const p = process.argv[1];
+ const pkg = JSON.parse(fs.readFileSync(p, 'utf8'));
+ pkg.dependencies['@adobe/react-native-aepoptimize'] = 'portal:../../packages/optimize';
+ fs.writeFileSync(p, JSON.stringify(pkg, null, 2) + '\n');
+ " "$APP_DIR/package.json"
+}
+
+sync_dependencies() {
+ if $LINK_LOCAL_OPTIMIZE; then
+ link_local_optimize
+ (cd "$OPTIMIZE_PKG" && npm run prepare)
+ fi
+ log "yarn install"
+ (cd "$APP_DIR" && yarn install)
+ ok "Dependencies synced"
+}
+
+METRO_LOG="$APP_DIR/.metro-build-matrix.log"
+METRO_PID_FILE="$APP_DIR/.metro-build-matrix.pid"
+
+metro_is_running() {
+ curl -sf "http://localhost:8081/status" 2>/dev/null | grep -q 'packager-status:running'
+}
+
+ensure_metro() {
+ if ! $START_METRO; then
+ log "Skipping Metro start (--no-metro); run: cd apps/AEPSampleApp && yarn start --reset-cache"
+ return
+ fi
+ if metro_is_running; then
+ ok "Metro already running on :8081 (reusing existing server)"
+ return
+ fi
+ log "Starting Metro in background (--reset-cache) → $METRO_LOG"
+ rm -f "$METRO_PID_FILE"
+ pushd "$APP_DIR" > /dev/null
+ nohup npx react-native start --reset-cache >> "$METRO_LOG" 2>&1 &
+ local metro_pid=$!
+ echo "$metro_pid" > "$METRO_PID_FILE"
+ disown "$metro_pid" 2>/dev/null || true
+ popd > /dev/null
+ local i=0
+ while [[ $i -lt 90 ]]; do
+ if metro_is_running; then
+ ok "Metro ready at http://localhost:8081 (pid ${metro_pid:-?})"
+ return
+ fi
+ sleep 1
+ i=$((i + 1))
+ done
+ die "Metro failed to start within 90s — check $METRO_LOG (or run 'yarn start --reset-cache' in another terminal)"
+}
+
+android_invalidate_autolinking() {
+ [[ "$CLEAN" == "none" ]] && return
+ log "Android: invalidating autolinking cache"
+ rm -f "$ANDROID_DIR/build/generated/autolinking/autolinking.json" \
+ "$ANDROID_DIR/build/generated/autolinking/"*.sha 2>/dev/null || true
+}
+
+ios_clean() {
+ case "$CLEAN" in
+ none) ;;
+ light) log "iOS light clean: pod install refresh" ;;
+ full)
+ log "iOS full clean: Pods, Podfile.lock, DerivedData"
+ rm -rf "$APP_DIR/ios/Pods" "$APP_DIR/ios/Podfile.lock"
+ rm -rf "$HOME/Library/Developer/Xcode/DerivedData"/AEPSampleApp-* \
+ "$HOME/Library/Developer/Xcode/DerivedData"/aepsampleapp-*
+ ok "iOS caches removed"
+ ;;
+ esac
+}
+
+android_clean() {
+ case "$CLEAN" in
+ none) ;;
+ light) android_invalidate_autolinking ;;
+ full)
+ log "Android full clean: .cxx, build, .gradle"
+ rm -rf "$ANDROID_DIR/app/.cxx" "$ANDROID_DIR/app/build" \
+ "$ANDROID_DIR/build" "$ANDROID_DIR/.gradle"
+ android_invalidate_autolinking
+ ok "Android caches removed"
+ ;;
+ esac
+}
+
+build_ios() {
+ if $RUN_APP; then
+ ensure_metro
+ fi
+
+ ios_clean
+ log "pod install (RCT_NEW_ARCH_ENABLED=$RCT_NEW_ARCH_ENABLED USE_INTEROP_ROOT=$USE_INTEROP_ROOT)"
+ (cd "$APP_DIR/ios" && RCT_NEW_ARCH_ENABLED="$RCT_NEW_ARCH_ENABLED" USE_INTEROP_ROOT="$USE_INTEROP_ROOT" pod install)
+
+ if $RUN_APP; then
+ log "run-ios (install + launch, --no-packager --mode Debug — Metro already running)"
+ (cd "$APP_DIR" && npx react-native run-ios --scheme "$IOS_SCHEME" --no-packager --mode Debug)
+ ok "iOS run-ios completed"
+ return
+ fi
+
+ log "xcodebuild (simulator)"
+ (cd "$APP_DIR/ios" && xcodebuild \
+ -workspace "$IOS_WORKSPACE" \
+ -scheme "$IOS_SCHEME" \
+ -configuration Debug \
+ -sdk iphonesimulator \
+ -destination 'generic/platform=iOS Simulator' \
+ build)
+ ok "iOS build succeeded"
+}
+
+build_android() {
+ if $RUN_APP; then
+ ensure_metro
+ fi
+
+ android_clean
+
+ if $RUN_APP; then
+ log "run-android (install + launch, --no-packager — Metro already running, interop=$INTEROP)"
+ (cd "$APP_DIR" && npx react-native run-android --no-packager)
+ ok "Android run-android completed"
+ return
+ fi
+
+ log "generateCodegenArtifactsFromSchema + assembleDebug"
+ (cd "$ANDROID_DIR" && ./gradlew generateCodegenArtifactsFromSchema assembleDebug)
+ ok "Android assembleDebug succeeded"
+}
+
+main() {
+ parse_args "$@"
+
+ if $LIST_MATRIX; then
+ print_matrix
+ exit 0
+ fi
+
+ echo ""
+ echo "════════════════════════════════════════════════════════════"
+ echo " AEPSampleApp build matrix (RN 0.85 new arch)"
+ [[ -n "$PRESET" ]] && echo " preset=$PRESET"
+ echo " platform=$PLATFORM interop=$INTEROP clean=$CLEAN"
+ echo "════════════════════════════════════════════════════════════"
+ echo ""
+
+ apply_config
+
+ if $SYNC_DEPS || [[ "$CLEAN" == "full" ]]; then
+ sync_dependencies
+ elif [[ "$CLEAN" == "light" ]]; then
+ log "Skipping yarn sync (use --sync, --link-optimize, or -c full)"
+ fi
+
+ if needs_ios; then build_ios; fi
+ if needs_android; then build_android; fi
+
+ echo ""
+ ok "Done — newArchEnabled=true, USE_INTEROP_ROOT=$INTEROP"
+ if $RUN_APP && $START_METRO; then
+ log "Metro log: tail -f $METRO_LOG"
+ log "If the app shows a red screen, check Metro for bundle errors (Cmd+R to reload simulator)"
+ elif ! $RUN_APP; then
+ log "Start Metro: cd apps/AEPSampleApp && yarn start --reset-cache"
+ fi
+}
+
+main "$@"
diff --git a/apps/AEPSampleApp/yarn.lock b/apps/AEPSampleApp/yarn.lock
index e9ed7b970..9c209ca53 100644
--- a/apps/AEPSampleApp/yarn.lock
+++ b/apps/AEPSampleApp/yarn.lock
@@ -88,17 +88,16 @@ __metadata:
languageName: node
linkType: hard
-"@adobe/react-native-aepoptimize@npm:^7.1.1":
- version: 7.1.1
- resolution: "@adobe/react-native-aepoptimize@npm:7.1.1"
+"@adobe/react-native-aepoptimize@portal:../../packages/optimize::locator=aepsampleapp%40workspace%3A.":
+ version: 0.0.0-use.local
+ resolution: "@adobe/react-native-aepoptimize@portal:../../packages/optimize::locator=aepsampleapp%40workspace%3A."
peerDependencies:
"@adobe/react-native-aepcore": ^7.0.0
"@adobe/react-native-aepedge": ^7.0.0
"@adobe/react-native-aepedgeidentity": ^7.0.0
react-native: ">=0.60.0"
- checksum: 10/95780dca67264b77d9443b43dd05748a5f904b2d37b65ffa98ee9facefd342db46e3541ebea8f86ef5954010bfd7c8a4a64492150eccb7a6fde1866b82901f52
languageName: node
- linkType: hard
+ linkType: soft
"@adobe/react-native-aepplaces@npm:^7.0.1":
version: 7.0.1
@@ -3050,7 +3049,7 @@ __metadata:
"@adobe/react-native-aepedgeconsent": "npm:^7.0.0"
"@adobe/react-native-aepedgeidentity": "npm:^7.0.0"
"@adobe/react-native-aepmessaging": "npm:^7.4.0"
- "@adobe/react-native-aepoptimize": "npm:^7.1.1"
+ "@adobe/react-native-aepoptimize": "portal:../../packages/optimize"
"@adobe/react-native-aepplaces": "npm:^7.0.1"
"@adobe/react-native-aeptarget": "npm:^7.0.0"
"@adobe/react-native-aepuserprofile": "npm:^7.0.0"
diff --git a/apps/BareSampleApp/.bundle/config b/apps/BareSampleApp/.bundle/config
new file mode 100644
index 000000000..848943bb5
--- /dev/null
+++ b/apps/BareSampleApp/.bundle/config
@@ -0,0 +1,2 @@
+BUNDLE_PATH: "vendor/bundle"
+BUNDLE_FORCE_RUBY_PLATFORM: 1
diff --git a/apps/BareSampleApp/.eslintrc.js b/apps/BareSampleApp/.eslintrc.js
new file mode 100644
index 000000000..187894b6a
--- /dev/null
+++ b/apps/BareSampleApp/.eslintrc.js
@@ -0,0 +1,4 @@
+module.exports = {
+ root: true,
+ extends: '@react-native',
+};
diff --git a/apps/BareSampleApp/.gitignore b/apps/BareSampleApp/.gitignore
new file mode 100644
index 000000000..dee6edc95
--- /dev/null
+++ b/apps/BareSampleApp/.gitignore
@@ -0,0 +1,72 @@
+# OSX
+#
+.DS_Store
+
+# Xcode
+#
+build/
+*.pbxuser
+!default.pbxuser
+*.mode1v3
+!default.mode1v3
+*.mode2v3
+!default.mode2v3
+*.perspectivev3
+!default.perspectivev3
+xcuserdata
+*.xccheckout
+*.moved-aside
+DerivedData
+*.hmap
+*.ipa
+*.xcuserstate
+ios/.xcode.env.local
+
+# Android/IntelliJ
+#
+build/
+.idea
+.gradle
+local.properties
+*.iml
+*.hprof
+.cxx/
+*.keystore
+!debug.keystore
+
+# node.js
+#
+node_modules/
+npm-debug.log
+yarn-error.log
+
+# fastlane
+#
+# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
+# screenshots whenever they are needed.
+# For more information about the recommended setup visit:
+# https://docs.fastlane.tools/best-practices/source-control/
+
+**/fastlane/report.xml
+**/fastlane/Preview.html
+**/fastlane/screenshots
+**/fastlane/test_output
+
+# Stale tsc output — Metro resolves .js before .tsx and breaks module resolution
+extensions/*.js
+styles/styles.js
+
+# Bundle artifact
+*.jsbundle
+
+# Ruby / CocoaPods
+/ios/Pods/
+/vendor/bundle/
+
+# Temporary files created by Metro to check the health of the file watcher
+.metro-health-check*
+.metro-build-matrix.log
+.metro-build-matrix.pid
+
+# testing
+/coverage
diff --git a/apps/BareSampleApp/.prettierrc.js b/apps/BareSampleApp/.prettierrc.js
new file mode 100644
index 000000000..2b540746a
--- /dev/null
+++ b/apps/BareSampleApp/.prettierrc.js
@@ -0,0 +1,7 @@
+module.exports = {
+ arrowParens: 'avoid',
+ bracketSameLine: true,
+ bracketSpacing: false,
+ singleQuote: true,
+ trailingComma: 'all',
+};
diff --git a/apps/BareSampleApp/.watchmanconfig b/apps/BareSampleApp/.watchmanconfig
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/apps/BareSampleApp/.watchmanconfig
@@ -0,0 +1 @@
+{}
diff --git a/apps/BareSampleApp/App.tsx b/apps/BareSampleApp/App.tsx
new file mode 100644
index 000000000..b0e4ba749
--- /dev/null
+++ b/apps/BareSampleApp/App.tsx
@@ -0,0 +1,194 @@
+/*
+Copyright 2024 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import * as React from 'react';
+import {Button, View, Text, TextInput, ScrollView, StyleSheet, useColorScheme} from 'react-native';
+import {createDrawerNavigator} from '@react-navigation/drawer';
+import {DarkTheme, DefaultTheme, NavigationContainer} from '@react-navigation/native';
+import OptimizeView from './extensions/OptimizeView';
+import ProfileView from './extensions/ProfileView';
+import MessagingView from './extensions/MessagingView';
+import InboxView from './extensions/InboxView';
+import CoreView from './extensions/CoreView';
+import IdentityView from './extensions/IdentityView';
+import ConsentView from './extensions/ConsentView';
+import EdgeBridgeView from './extensions/EdgeBridgeView';
+import EdgeView from './extensions/EdgeView';
+import AssuranceView from './extensions/AssuranceView';
+import EdgeIdentityView from './extensions/EdgeIdentityView';
+import TargetView from './extensions/TargetView';
+import PlacesView from './extensions/PlacesView';
+import {NavigationProps} from './types/props';
+import CampaignClassicView from './extensions/CampaignClassicView';
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import { MobileCore, LogLevel } from '@adobe/react-native-aepcore';
+import { useState, useEffect, createContext, useContext } from 'react';
+
+declare global {
+ // RN 0.76+ — true when bridgeless/new-arch runtime is active
+ // eslint-disable-next-line no-var
+ var RN$Bridgeless: boolean | undefined;
+}
+
+const STORAGE_KEY = 'aep_app_id';
+
+const DEFAULT_APP_ID = '3149c49c3910/0f12baf27522/launch-0d096c129660-development';
+
+export const AppContext = createContext({
+ appId: DEFAULT_APP_ID,
+ initSDK: (_id: string) => {},
+ rnArchLabel: 'checking…',
+});
+
+function getRnArchLabel(): string {
+ return global.RN$Bridgeless === true
+ ? 'bridgeless / new-arch runtime'
+ : 'classic bridge (old arch)';
+}
+
+function HomeScreen({navigation}: NavigationProps) {
+ const { appId, initSDK, rnArchLabel } = useContext(AppContext);
+ const [inputAppId, setInputAppId] = useState(appId);
+
+ // Sync input when persisted appId is loaded on startup.
+ useEffect(() => { setInputAppId(DEFAULT_APP_ID); }, [DEFAULT_APP_ID]);
+
+ return (
+
+ RN runtime: {rnArchLabel}
+ App ID
+
+ Active: {appId}
+ initSDK(inputAppId)} />
+
+
+
+ navigation.navigate('CoreView')} title="Core/Lifecycle/Signal" />
+ navigation.navigate('ProfileView')} title="UserProfile" />
+ navigation.navigate('IdentityView')} title="Identity" />
+ navigation.navigate('MessagingView')} title="Messaging" />
+ navigation.navigate('InboxView')} title="Message Inbox" />
+ navigation.navigate('OptimizeView')} title="Optimize" />
+ navigation.navigate('EdgeView')} title="Edge" />
+ navigation.navigate('EdgeIdentityView')} title="EdgeIdentity" />
+ navigation.navigate('ConsentView')} title="Consent" />
+ navigation.navigate('EdgeBridgeView')} title="Edge Bridge" />
+ navigation.navigate('AssuranceView')} title="Assurance" />
+ navigation.navigate('TargetView')} title="Target" />
+ navigation.navigate('PlacesView')} title="Places" />
+ navigation.navigate('CampaignClassicView')} title="Campaign Classic" />
+
+ );
+}
+
+const Drawer = createDrawerNavigator();
+
+export default function App() {
+ const [appId, setAppId] = useState(DEFAULT_APP_ID);
+ const [rnArchLabel, setRnArchLabel] = useState(getRnArchLabel());
+
+ const initSDK = (id: string) => {
+ const trimmed = id.trim();
+ if (!trimmed) return;
+ setAppId(trimmed);
+ AsyncStorage.setItem(STORAGE_KEY, trimmed);
+ MobileCore.setLogLevel(LogLevel.VERBOSE);
+ MobileCore.initializeWithAppId(trimmed)
+ .then(() => console.log('AEP SDK Initialized with:', trimmed))
+ .catch((error) => console.error('AEP SDK Initialization error:', error));
+ };
+
+ useEffect(() => {
+ const bridgeless = global.RN$Bridgeless;
+ const label = getRnArchLabel();
+ setRnArchLabel(label);
+ console.log('[BareSampleApp] Bridgeless:', bridgeless);
+ console.log('[BareSampleApp] RN arch hint:', label);
+
+ AsyncStorage.getItem(STORAGE_KEY).then(stored => {
+ initSDK(stored ?? DEFAULT_APP_ID);
+ });
+ }, []);
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+const styles = {
+ container: {
+ alignItems: 'center' as const,
+ padding: 16,
+ },
+ archLabel: {
+ fontSize: 12,
+ fontWeight: '600' as const,
+ color: '#0a6',
+ marginBottom: 12,
+ alignSelf: 'flex-start' as const,
+ },
+ label: {
+ alignSelf: 'flex-start' as const,
+ fontWeight: '600' as const,
+ marginBottom: 4,
+ color: '#333',
+ },
+ input: {
+ borderWidth: 1,
+ borderColor: '#ccc',
+ borderRadius: 6,
+ padding: 8,
+ width: '100%' as const,
+ fontSize: 13,
+ marginBottom: 4,
+ backgroundColor: '#fff',
+ },
+ currentId: {
+ fontSize: 11,
+ color: '#666',
+ marginBottom: 8,
+ alignSelf: 'flex-start' as const,
+ },
+ divider: {
+ height: 1,
+ backgroundColor: '#ddd',
+ width: '100%' as const,
+ marginVertical: 12,
+ },
+};
diff --git a/apps/BareSampleApp/Gemfile b/apps/BareSampleApp/Gemfile
new file mode 100644
index 000000000..85d7f6828
--- /dev/null
+++ b/apps/BareSampleApp/Gemfile
@@ -0,0 +1,9 @@
+source 'https://rubygems.org'
+
+# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
+ruby ">= 2.6.10"
+
+# Exclude problematic versions of cocoapods and activesupport that causes build failures.
+gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
+gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
+gem 'xcodeproj', '< 1.26.0'
diff --git a/apps/BareSampleApp/Gemfile.lock b/apps/BareSampleApp/Gemfile.lock
new file mode 100644
index 000000000..60ed802f4
--- /dev/null
+++ b/apps/BareSampleApp/Gemfile.lock
@@ -0,0 +1,125 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ CFPropertyList (3.0.8)
+ activesupport (7.2.3)
+ base64
+ benchmark (>= 0.3)
+ bigdecimal
+ concurrent-ruby (~> 1.0, >= 1.3.1)
+ connection_pool (>= 2.2.5)
+ drb
+ i18n (>= 1.6, < 2)
+ logger (>= 1.4.2)
+ minitest (>= 5.1)
+ securerandom (>= 0.3)
+ tzinfo (~> 2.0, >= 2.0.5)
+ addressable (2.8.8)
+ public_suffix (>= 2.0.2, < 8.0)
+ algoliasearch (1.27.5)
+ httpclient (~> 2.8, >= 2.8.3)
+ json (>= 1.5.1)
+ atomos (0.1.3)
+ base64 (0.3.0)
+ benchmark (0.5.0)
+ bigdecimal (4.0.1)
+ claide (1.1.0)
+ cocoapods (1.16.2)
+ addressable (~> 2.8)
+ claide (>= 1.0.2, < 2.0)
+ cocoapods-core (= 1.16.2)
+ cocoapods-deintegrate (>= 1.0.3, < 2.0)
+ cocoapods-downloader (>= 2.1, < 3.0)
+ cocoapods-plugins (>= 1.0.0, < 2.0)
+ cocoapods-search (>= 1.0.0, < 2.0)
+ cocoapods-trunk (>= 1.6.0, < 2.0)
+ cocoapods-try (>= 1.1.0, < 2.0)
+ colored2 (~> 3.1)
+ escape (~> 0.0.4)
+ fourflusher (>= 2.3.0, < 3.0)
+ gh_inspector (~> 1.0)
+ molinillo (~> 0.8.0)
+ nap (~> 1.0)
+ ruby-macho (>= 2.3.0, < 3.0)
+ xcodeproj (>= 1.27.0, < 2.0)
+ cocoapods-core (1.16.2)
+ activesupport (>= 5.0, < 8)
+ addressable (~> 2.8)
+ algoliasearch (~> 1.0)
+ concurrent-ruby (~> 1.1)
+ fuzzy_match (~> 2.0.4)
+ nap (~> 1.0)
+ netrc (~> 0.11)
+ public_suffix (~> 4.0)
+ typhoeus (~> 1.0)
+ cocoapods-deintegrate (1.0.5)
+ cocoapods-downloader (2.1)
+ cocoapods-plugins (1.0.0)
+ nap
+ cocoapods-search (1.0.1)
+ cocoapods-trunk (1.6.0)
+ nap (>= 0.8, < 2.0)
+ netrc (~> 0.11)
+ cocoapods-try (1.2.0)
+ colored2 (3.1.2)
+ concurrent-ruby (1.3.3)
+ connection_pool (3.0.2)
+ drb (2.2.3)
+ escape (0.0.4)
+ ethon (0.15.0)
+ ffi (>= 1.15.0)
+ ffi (1.17.3)
+ fourflusher (2.3.1)
+ fuzzy_match (2.0.4)
+ gh_inspector (1.1.3)
+ httpclient (2.9.0)
+ mutex_m
+ i18n (1.14.8)
+ concurrent-ruby (~> 1.0)
+ json (2.18.1)
+ logger (1.7.0)
+ minitest (6.0.1)
+ prism (~> 1.5)
+ molinillo (0.8.0)
+ mutex_m (0.3.0)
+ nanaimo (0.4.0)
+ nap (1.1.0)
+ netrc (0.11.0)
+ nkf (0.2.0)
+ ostruct (0.6.3)
+ prism (1.9.0)
+ public_suffix (4.0.7)
+ rexml (3.4.4)
+ ruby-macho (2.5.1)
+ securerandom (0.4.1)
+ typhoeus (1.5.0)
+ ethon (>= 0.9.0, < 0.16.0)
+ tzinfo (2.0.6)
+ concurrent-ruby (~> 1.0)
+ xcodeproj (1.27.0)
+ CFPropertyList (>= 2.3.3, < 4.0)
+ atomos (~> 0.1.3)
+ claide (>= 1.0.2, < 2.0)
+ colored2 (~> 3.1)
+ nanaimo (~> 0.4.0)
+ rexml (>= 3.3.6, < 4.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ activesupport (>= 6.1.7.5, < 8.0.0)
+ base64
+ benchmark
+ bigdecimal
+ cocoapods (~> 1.16)
+ logger
+ mutex_m
+ nkf
+ ostruct
+
+RUBY VERSION
+ ruby 3.4.1p0
+
+BUNDLED WITH
+ 2.6.2
diff --git a/apps/BareSampleApp/README.md b/apps/BareSampleApp/README.md
new file mode 100644
index 000000000..d50ed994a
--- /dev/null
+++ b/apps/BareSampleApp/README.md
@@ -0,0 +1,112 @@
+# AEPSampleApp
+
+## Table of Contents
+- [Introduction](#introduction)
+- [Prerequisites](#prerequisites)
+- [Get Started](#how-to-run-the-sample-app)
+- [Validate with Assurance](#validate-with-assurance)
+- [Resources and Troubleshooting](#resources-and-troubleshooting)
+
+## Introduction
+This project is a React Native app set up using `react-native-cli`. It serves as a demonstrates of the integration Adobe SDKs with a React Native application.
+
+## Prerequisites
+
+ * If you are new to React Native we suggest you follow the older version [React Native Setting up development environment](https://reactnative.dev/docs/0.74/getting-started-without-a-framework) React Native CLI before continuing.
+ * Cocoapods version >= 1.11.3
+ * Node version >= 18
+
+## How to run the sample app:
+
+### Add your App Id:
+
+In `/apps/AEPSampleApp/App.tsx`, locate the call to `MobileCore.initializeWithAppId(appId:"YOUR_APP_ID")` and replace `"YOUR_APP_ID"` with your property App Id.
+
+> Note: App id is configured in a mobile property in Data Collection UI, in Tags. Refer to [configure with App ID per environment](https://developer.adobe.com/client-sdks/home/base/mobile-core/configuration/#configure-with-app-id-per-environment) page for more information.
+
+### Install dependencies
+Go to the **AEPSampleApp** folder and run
+
+```
+yarn install
+```
+
+Go to the **root directory** and run scripts
+
+> Note: Commands are assuming you're in the root directory of the repository.
+
+```
+yarn install && yarn sampleapp:ios:pod:install
+```
+
+### Build packages
+
+```
+yarn run build
+```
+
+### Run instructions for iOS:
+
+```
+yarn sampleapp:ios:run
+```
+Alternatively, you can run the iOS app from Xcode by executing the following command in your terminal:
+
+```
+npx react-native start
+```
+Then navigate to apps/AEPSampleApp/ios and double click on the `AEPSampleApp.xcworkspace` file, or from the terminal:
+
+```
+cd apps/AEPSampleApp/ios
+open AEPSampleApp.xcworkspace
+```
+
+### Run instructions for Android:
+
+Have an Android emulator running (quickest way to get started), or a device connected. https://developer.android.com/studio/run/emulator-commandline
+
+```
+yarn sampleapp:android:run
+```
+
+Alternatively, you can run the Android app from Android Studio by executing the following command in your terminal
+
+```
+npx react-native start
+```
+
+Then navigate to apps/AEPSampleApp/android, double click on the `build.gradle` file, and run the app in Android Studio.
+
+### Validate with Assurance:
+
+Assurance is integrated in the sample app for validating the events and flows.
+
+1. Create an [Assurance Session](https://experienceleague.adobe.com/docs/experience-platform/assurance/tutorials/using-assurance.html#create-sessions).
+2. Copy the session link from `Copy Link` in the Assurance Session Details window. Paste it to the AEPSampleApp -> AssuranceView, then Start Session.
+
+
+## Resources and Troubleshooting
+* Where can we find the information about the Yarn scripts in the Sample App?
+ Refer to [Sample App yarn scripts](https://github.com/adobe/aepsdk-react-native/blob/main/package.json#L11).
+
+* Where is the sample app React Native code?
+ All the extension TypeScript code is located under AEPSampleApp > extensions.
+
+* I encountered errors while building the app.
+ Validate you have node installed, check your React Native development setup, refer to the doc under Prerequisites.
+
+* Getting error regarding to Yoga.cpp when building the Sample App
+ Run below code in the Terminal:
+ ```bash
+ cd apps/AEPSampleApp
+ sed -i.bo 's/ node->getLayout()\.hadOverflow() |$/\0|/' ./node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp
+ cd ../../
+ rm -rf ~/Library/Developer/Xcode/DerivedData
+ ```
+* Getting this error in logcat logs when running in Android simulator: javax.net.ssl.SSLHandshakeException: Chain validation failed
+ Check the date and time on the simulator is current, if not, update these from the Settings menu.
+
+* Getting error when building app in Xcode 15 RCT-Folly hash - No template named 'unary_function' in namespace std
+ This error may be thrown due to an incompatiblity between React Native version 0.68.x and Xcode 15. Make sure you are running with React Native 0.70 or above, if needed pull the latest updates from main branch of this repo, and run [Install dependencies](#install-dependencies) again.
+
diff --git a/apps/BareSampleApp/android/app/build.gradle b/apps/BareSampleApp/android/app/build.gradle
new file mode 100644
index 000000000..020ca4826
--- /dev/null
+++ b/apps/BareSampleApp/android/app/build.gradle
@@ -0,0 +1,119 @@
+apply plugin: "com.android.application"
+apply plugin: "org.jetbrains.kotlin.android"
+apply plugin: "com.facebook.react"
+
+/**
+ * This is the configuration block to customize your React Native Android app.
+ * By default you don't need to apply any configuration, just uncomment the lines you need.
+ */
+react {
+ /* Folders */
+ // The root of your project, i.e. where "package.json" lives. Default is '../..'
+ // root = file("../../")
+ // The folder where the react-native NPM package is. Default is ../../node_modules/react-native
+ // reactNativeDir = file("../../node_modules/react-native")
+ // The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen
+ // codegenDir = file("../../node_modules/@react-native/codegen")
+ // The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js
+ // cliFile = file("../../node_modules/react-native/cli.js")
+
+ /* Variants */
+ // The list of variants to that are debuggable. For those we're going to
+ // skip the bundling of the JS bundle and the assets. By default is just 'debug'.
+ // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
+ // debuggableVariants = ["liteDebug", "prodDebug"]
+
+ /* Bundling */
+ // A list containing the node command and its flags. Default is just 'node'.
+ // nodeExecutableAndArgs = ["node"]
+ //
+ // The command to run when bundling. By default is 'bundle'
+ // bundleCommand = "ram-bundle"
+ //
+ // The path to the CLI configuration file. Default is empty.
+ // bundleConfig = file(../rn-cli.config.js)
+ //
+ // The name of the generated asset file containing your JS bundle
+ // bundleAssetName = "MyApplication.android.bundle"
+ //
+ // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
+ // entryFile = file("../js/MyApplication.android.js")
+ //
+ // 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
+ // extraPackagerArgs = []
+
+ /* Hermes Commands */
+ // The hermes compiler command to run. By default it is 'hermesc'
+ // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
+ //
+ // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
+ // hermesFlags = ["-O", "-output-source-map"]
+
+ /* Autolinking */
+ autolinkLibrariesWithApp()
+}
+
+/**
+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
+ */
+def enableProguardInReleaseBuilds = false
+
+/**
+ * The preferred build flavor of JavaScriptCore (JSC)
+ *
+ * For example, to use the international variant, you can use:
+ * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
+ *
+ * The international variant includes ICU i18n library and necessary data
+ * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
+ * give correct results when using with locales other than en-US. Note that
+ * this variant is about 6MiB larger per architecture than default.
+ */
+def jscFlavor = 'org.webkit:android-jsc:+'
+
+android {
+ ndkVersion rootProject.ext.ndkVersion
+ buildToolsVersion rootProject.ext.buildToolsVersion
+ compileSdk rootProject.ext.compileSdkVersion
+
+ namespace "com.baresampleapp"
+ defaultConfig {
+ applicationId "com.baresampleapp"
+ minSdkVersion rootProject.ext.minSdkVersion
+ targetSdkVersion rootProject.ext.targetSdkVersion
+ versionCode 1
+ versionName "1.0"
+ }
+ signingConfigs {
+ debug {
+ storeFile file('debug.keystore')
+ storePassword 'android'
+ keyAlias 'androiddebugkey'
+ keyPassword 'android'
+ }
+ }
+ buildTypes {
+ debug {
+ signingConfig signingConfigs.debug
+ }
+ release {
+ // Caution! In production, you need to generate your own keystore file.
+ // see https://reactnative.dev/docs/signed-apk-android.
+ signingConfig signingConfigs.debug
+ minifyEnabled enableProguardInReleaseBuilds
+ proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
+ }
+ }
+}
+
+dependencies {
+ // The version of react-native is set by the React Native Gradle Plugin
+ implementation("com.facebook.react:react-android")
+
+ if (hermesEnabled.toBoolean()) {
+ implementation("com.facebook.react:hermes-android")
+ } else {
+ implementation jscFlavor
+ }
+}
diff --git a/apps/BareSampleApp/android/app/debug.keystore b/apps/BareSampleApp/android/app/debug.keystore
new file mode 100644
index 000000000..364e105ed
Binary files /dev/null and b/apps/BareSampleApp/android/app/debug.keystore differ
diff --git a/apps/BareSampleApp/android/app/proguard-rules.pro b/apps/BareSampleApp/android/app/proguard-rules.pro
new file mode 100644
index 000000000..11b025724
--- /dev/null
+++ b/apps/BareSampleApp/android/app/proguard-rules.pro
@@ -0,0 +1,10 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
diff --git a/apps/BareSampleApp/android/app/src/debug/AndroidManifest.xml b/apps/BareSampleApp/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 000000000..eb98c01af
--- /dev/null
+++ b/apps/BareSampleApp/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/apps/BareSampleApp/android/app/src/main/AndroidManifest.xml b/apps/BareSampleApp/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 000000000..e1892528b
--- /dev/null
+++ b/apps/BareSampleApp/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/BareSampleApp/android/app/src/main/java/com/baresampleapp/MainActivity.kt b/apps/BareSampleApp/android/app/src/main/java/com/baresampleapp/MainActivity.kt
new file mode 100644
index 000000000..63dcbff7e
--- /dev/null
+++ b/apps/BareSampleApp/android/app/src/main/java/com/baresampleapp/MainActivity.kt
@@ -0,0 +1,22 @@
+package com.baresampleapp
+
+import com.facebook.react.ReactActivity
+import com.facebook.react.ReactActivityDelegate
+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
+import com.facebook.react.defaults.DefaultReactActivityDelegate
+
+class MainActivity : ReactActivity() {
+
+ /**
+ * Returns the name of the main component registered from JavaScript. This is used to schedule
+ * rendering of the component.
+ */
+ override fun getMainComponentName(): String = "BareSampleApp"
+
+ /**
+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
+ */
+ override fun createReactActivityDelegate(): ReactActivityDelegate =
+ DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled)
+}
diff --git a/apps/BareSampleApp/android/app/src/main/java/com/baresampleapp/MainApplication.kt b/apps/BareSampleApp/android/app/src/main/java/com/baresampleapp/MainApplication.kt
new file mode 100644
index 000000000..916dc38e2
--- /dev/null
+++ b/apps/BareSampleApp/android/app/src/main/java/com/baresampleapp/MainApplication.kt
@@ -0,0 +1,44 @@
+package com.baresampleapp
+
+import android.app.Application
+import com.facebook.react.PackageList
+import com.facebook.react.ReactApplication
+import com.facebook.react.ReactHost
+import com.facebook.react.ReactNativeHost
+import com.facebook.react.ReactPackage
+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
+import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
+import com.facebook.react.defaults.DefaultReactNativeHost
+import com.facebook.react.soloader.OpenSourceMergedSoMapping
+import com.facebook.soloader.SoLoader
+
+class MainApplication : Application(), ReactApplication {
+
+ override val reactNativeHost: ReactNativeHost =
+ object : DefaultReactNativeHost(this) {
+ override fun getPackages(): List =
+ PackageList(this).packages.apply {
+ // Packages that cannot be autolinked yet can be added manually here, for example:
+ // add(MyReactNativePackage())
+ }
+
+ override fun getJSMainModuleName(): String = "index"
+
+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
+
+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
+ }
+
+ override val reactHost: ReactHost
+ get() = getDefaultReactHost(applicationContext, reactNativeHost)
+
+ override fun onCreate() {
+ super.onCreate()
+ SoLoader.init(this, OpenSourceMergedSoMapping)
+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
+ // If you opted-in for the New Architecture, we load the native entry point for this app.
+ load()
+ }
+ }
+}
diff --git a/apps/BareSampleApp/android/app/src/main/res/drawable/rn_edit_text_material.xml b/apps/BareSampleApp/android/app/src/main/res/drawable/rn_edit_text_material.xml
new file mode 100644
index 000000000..5c25e728e
--- /dev/null
+++ b/apps/BareSampleApp/android/app/src/main/res/drawable/rn_edit_text_material.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/BareSampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/apps/BareSampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 000000000..a2f590828
Binary files /dev/null and b/apps/BareSampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/apps/BareSampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/apps/BareSampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 000000000..1b5239980
Binary files /dev/null and b/apps/BareSampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/apps/BareSampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/apps/BareSampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 000000000..ff10afd6e
Binary files /dev/null and b/apps/BareSampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/apps/BareSampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/apps/BareSampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 000000000..115a4c768
Binary files /dev/null and b/apps/BareSampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/apps/BareSampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/apps/BareSampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 000000000..dcd3cd808
Binary files /dev/null and b/apps/BareSampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/apps/BareSampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/apps/BareSampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 000000000..459ca609d
Binary files /dev/null and b/apps/BareSampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/apps/BareSampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/apps/BareSampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 000000000..8ca12fe02
Binary files /dev/null and b/apps/BareSampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/apps/BareSampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/apps/BareSampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 000000000..8e19b410a
Binary files /dev/null and b/apps/BareSampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/apps/BareSampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/apps/BareSampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 000000000..b824ebdd4
Binary files /dev/null and b/apps/BareSampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/apps/BareSampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/apps/BareSampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 000000000..4c19a13c2
Binary files /dev/null and b/apps/BareSampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/apps/BareSampleApp/android/app/src/main/res/values/strings.xml b/apps/BareSampleApp/android/app/src/main/res/values/strings.xml
new file mode 100644
index 000000000..adb54941e
--- /dev/null
+++ b/apps/BareSampleApp/android/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ BareSampleApp
+
diff --git a/apps/BareSampleApp/android/app/src/main/res/values/styles.xml b/apps/BareSampleApp/android/app/src/main/res/values/styles.xml
new file mode 100644
index 000000000..7ba83a2ad
--- /dev/null
+++ b/apps/BareSampleApp/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/apps/BareSampleApp/android/build.gradle b/apps/BareSampleApp/android/build.gradle
new file mode 100644
index 000000000..cfad8ebbd
--- /dev/null
+++ b/apps/BareSampleApp/android/build.gradle
@@ -0,0 +1,33 @@
+buildscript {
+ ext {
+ buildToolsVersion = "35.0.0"
+ minSdkVersion = 24
+ compileSdkVersion = 35
+ targetSdkVersion = 34
+ ndkVersion = "26.1.10909125"
+ kotlinVersion = "1.9.24"
+ }
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath("com.android.tools.build:gradle")
+ classpath("com.facebook.react:react-native-gradle-plugin")
+ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
+ }
+}
+
+subprojects { subproject ->
+ subproject.afterEvaluate {
+ if (subproject.name == "adobe_react-native-aepoptimize") {
+ subproject.android {
+ defaultConfig {
+ buildConfigField "boolean", "USE_INTEROP_ROOT", "true"
+ }
+ }
+ }
+ }
+}
+
+apply plugin: "com.facebook.react.rootproject"
diff --git a/apps/BareSampleApp/android/gradle.properties b/apps/BareSampleApp/android/gradle.properties
new file mode 100644
index 000000000..9fb15664b
--- /dev/null
+++ b/apps/BareSampleApp/android/gradle.properties
@@ -0,0 +1,39 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
+org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+
+# Use this property to specify which architecture you want to build.
+# You can also override it from the CLI using
+# ./gradlew -PreactNativeArchitectures=x86_64
+reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
+
+# Use this property to enable support to the new architecture.
+# This will allow you to use TurboModules and the Fabric render in
+# your application. You should enable this flag either if you want
+# to write custom TurboModules/Fabric components OR use libraries that
+# are providing them.
+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
diff --git a/apps/BareSampleApp/android/gradle/wrapper/gradle-wrapper.jar b/apps/BareSampleApp/android/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000..a4b76b953
Binary files /dev/null and b/apps/BareSampleApp/android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/apps/BareSampleApp/android/gradle/wrapper/gradle-wrapper.properties b/apps/BareSampleApp/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 000000000..79eb9d003
--- /dev/null
+++ b/apps/BareSampleApp/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,7 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
+networkTimeout=10000
+validateDistributionUrl=true
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/apps/BareSampleApp/android/gradlew b/apps/BareSampleApp/android/gradlew
new file mode 100755
index 000000000..f5feea6d6
--- /dev/null
+++ b/apps/BareSampleApp/android/gradlew
@@ -0,0 +1,252 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
+' "$PWD" ) || exit
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/apps/BareSampleApp/android/gradlew.bat b/apps/BareSampleApp/android/gradlew.bat
new file mode 100644
index 000000000..9b42019c7
--- /dev/null
+++ b/apps/BareSampleApp/android/gradlew.bat
@@ -0,0 +1,94 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/apps/BareSampleApp/android/settings.gradle b/apps/BareSampleApp/android/settings.gradle
new file mode 100644
index 000000000..934f6f0d1
--- /dev/null
+++ b/apps/BareSampleApp/android/settings.gradle
@@ -0,0 +1,6 @@
+pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") }
+plugins { id("com.facebook.react.settings") }
+extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
+rootProject.name = 'BareSampleApp'
+include ':app'
+includeBuild('../node_modules/@react-native/gradle-plugin')
diff --git a/apps/BareSampleApp/app.json b/apps/BareSampleApp/app.json
new file mode 100644
index 000000000..75c12cb5f
--- /dev/null
+++ b/apps/BareSampleApp/app.json
@@ -0,0 +1,4 @@
+{
+ "name": "BareSampleApp",
+ "displayName": "BareSampleApp"
+}
diff --git a/apps/BareSampleApp/babel.config.js b/apps/BareSampleApp/babel.config.js
new file mode 100644
index 000000000..84c4d69a0
--- /dev/null
+++ b/apps/BareSampleApp/babel.config.js
@@ -0,0 +1,4 @@
+module.exports = {
+ presets: ['module:@react-native/babel-preset'],
+ plugins: ['react-native-reanimated/plugin']
+};
diff --git a/apps/BareSampleApp/constants/Colors.js b/apps/BareSampleApp/constants/Colors.js
new file mode 100644
index 000000000..30a7f3ce1
--- /dev/null
+++ b/apps/BareSampleApp/constants/Colors.js
@@ -0,0 +1,43 @@
+"use strict";
+/**
+ * Below are the colors that are used in the app. The colors are defined in the light and dark mode.
+ * There are many other ways to style your app. For example, [Nativewind](https://www.nativewind.dev/), [Tamagui](https://tamagui.dev/), [unistyles](https://reactnativeunistyles.vercel.app), etc.
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Colors = void 0;
+var tintColorLight = '#0a7ea4';
+var tintColorDark = '#fff';
+exports.Colors = {
+ light: {
+ text: '#11181C',
+ background: '#fff',
+ tint: tintColorLight,
+ icon: '#687076',
+ tabIconDefault: '#687076',
+ tabIconSelected: tintColorLight,
+ panel: '#F5F5F5',
+ panelBorder: '#E0E0E0',
+ inputBg: '#FFFFFF',
+ inputBorder: '#CCC',
+ mutedText: '#666666',
+ viewBg: '#E8E8E8',
+ themeBg: '#FFFFFF',
+ placeholderText: '#999'
+ },
+ dark: {
+ text: '#ECEDEE',
+ background: '#151718',
+ tint: tintColorDark,
+ icon: '#9BA1A6',
+ tabIconDefault: '#9BA1A6',
+ tabIconSelected: tintColorDark,
+ panel: '#2A2A2A',
+ panelBorder: '#444',
+ inputBg: '#3A3A3A',
+ inputBorder: '#555',
+ mutedText: '#CCCCCC',
+ viewBg: '#3A3A3A',
+ themeBg: '#4A4A4A',
+ placeholderText: '#888'
+ },
+};
diff --git a/apps/BareSampleApp/constants/Colors.ts b/apps/BareSampleApp/constants/Colors.ts
new file mode 100644
index 000000000..ea2390503
--- /dev/null
+++ b/apps/BareSampleApp/constants/Colors.ts
@@ -0,0 +1,42 @@
+/**
+ * Below are the colors that are used in the app. The colors are defined in the light and dark mode.
+ * There are many other ways to style your app. For example, [Nativewind](https://www.nativewind.dev/), [Tamagui](https://tamagui.dev/), [unistyles](https://reactnativeunistyles.vercel.app), etc.
+ */
+
+const tintColorLight = '#0a7ea4';
+const tintColorDark = '#fff';
+
+export const Colors = {
+ light: {
+ text: '#11181C',
+ background: '#fff',
+ tint: tintColorLight,
+ icon: '#687076',
+ tabIconDefault: '#687076',
+ tabIconSelected: tintColorLight,
+ panel: '#F5F5F5',
+ panelBorder: '#E0E0E0',
+ inputBg: '#FFFFFF',
+ inputBorder: '#CCC',
+ mutedText: '#666666',
+ viewBg: '#E8E8E8',
+ themeBg: '#FFFFFF',
+ placeholderText: '#999'
+ },
+ dark: {
+ text: '#ECEDEE',
+ background: '#151718',
+ tint: tintColorDark,
+ icon: '#9BA1A6',
+ tabIconDefault: '#9BA1A6',
+ tabIconSelected: tintColorDark,
+ panel: '#2A2A2A',
+ panelBorder: '#444',
+ inputBg: '#3A3A3A',
+ inputBorder: '#555',
+ mutedText: '#CCCCCC',
+ viewBg: '#3A3A3A',
+ themeBg: '#4A4A4A',
+ placeholderText: '#888'
+ },
+};
diff --git a/apps/BareSampleApp/extensions/AssuranceView.tsx b/apps/BareSampleApp/extensions/AssuranceView.tsx
new file mode 100644
index 000000000..4ebe37447
--- /dev/null
+++ b/apps/BareSampleApp/extensions/AssuranceView.tsx
@@ -0,0 +1,68 @@
+/*
+Copyright 2022 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React, {useState} from 'react';
+import {
+ Button,
+ StyleSheet,
+ Text,
+ View,
+ TextInput,
+ ScrollView,
+} from 'react-native';
+import {Assurance} from '@adobe/react-native-aepassurance';
+import { NavigationProps } from '../types/props';
+
+const AssuranceView = ({navigation}: NavigationProps) => {
+ const [version, setVersion] = useState('');
+ const [sessionURL, setsessionURL] = useState('your-assurance-url');
+
+ Assurance.extensionVersion().then(version => {
+ setVersion(version);
+ });
+
+ return (
+
+
+ navigation.goBack()} title="Go to main page" />
+ Assurance v{version}
+
+ setsessionURL(val)}
+ />
+
+
+ );
+
+ function startSessionClicked() {
+ Assurance.startSession("edgetutorialapp://?adb_validation_sessionid=827183a9-582f-4f39-afbd-3d02705cba7d");
+ }
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: '#F5FCFF',
+ },
+ welcome: {
+ fontSize: 25,
+ textAlign: 'center',
+ margin: 10,
+ marginTop: 80,
+ },
+});
+
+export default AssuranceView;
diff --git a/apps/BareSampleApp/extensions/CampaignClassicView.tsx b/apps/BareSampleApp/extensions/CampaignClassicView.tsx
new file mode 100644
index 000000000..b7e3d2e56
--- /dev/null
+++ b/apps/BareSampleApp/extensions/CampaignClassicView.tsx
@@ -0,0 +1,63 @@
+/*
+Copyright 2024 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import {CampaignClassic} from '@adobe/react-native-aepcampaignclassic';
+import React from 'react';
+import {Button, ScrollView, Text, View} from 'react-native';
+import styles from '../styles/styles';
+import {NavigationProps} from '../types/props';
+
+function CampaignClassicView({navigation}: NavigationProps) {
+ const extensionVersion = async () => {
+ const version = await CampaignClassic.extensionVersion();
+ console.log(`AdobeExperienceSDK: Campaign Classic version: ${version}`);
+ };
+
+ const registerDeviceWithToken = () => {
+ CampaignClassic.registerDeviceWithToken('myToken', 'myUserKey');
+ console.log('Device registered!')
+ }
+
+ const trackNotificationClickWithUserInfo = () => {
+ CampaignClassic.trackNotificationClickWithUserInfo({'_mId': '12345', '_dId': 'testDId'});
+ console.log('Notification clicked!')
+ }
+
+ const trackNotificationReceiveWithUserInfo = () => {
+ CampaignClassic.trackNotificationReceiveWithUserInfo({'_mId': '12345', '_dId': 'testDId'});
+ console.log('Notification received!')
+ }
+
+
+ return (
+
+
+ navigation.goBack()} title="Go to main page" />
+ Campaign Classic
+
+
+
+
+
+
+
+
+ );
+}
+
+export default CampaignClassicView;
diff --git a/apps/BareSampleApp/extensions/ConsentView.tsx b/apps/BareSampleApp/extensions/ConsentView.tsx
new file mode 100644
index 000000000..8f2ba0951
--- /dev/null
+++ b/apps/BareSampleApp/extensions/ConsentView.tsx
@@ -0,0 +1,90 @@
+/*
+Copyright 2022 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React, {useState} from 'react';
+import {Button, Text, View, ScrollView} from 'react-native';
+import {Consent} from '@adobe/react-native-aepedgeconsent';
+import {MobileCore} from '@adobe/react-native-aepcore';
+import styles from '../styles/styles';
+import {NavigationProps} from '../types/props';
+
+function updateCollectConsent(allowed: boolean) {
+ var collectConsentStatus = allowed ? {val: 'y'} : {val: 'n'};
+
+ var consents: {[keys: string]: any} = {
+ consents: {collect: collectConsentStatus},
+ };
+ Consent.update(consents);
+ console.log(
+ 'AdobeExperienceSDK: Consent.update called with: ' +
+ JSON.stringify(consents),
+ );
+}
+
+function setDefaultConsent(allowed: boolean) {
+ var collectConsentStatus = allowed ? {val: 'y'} : {val: 'n'};
+ var defaultConsents: {[keys: string]: any} = {
+ 'consent.default': {consents: {collect: collectConsentStatus}},
+ };
+ MobileCore.updateConfiguration(defaultConsents);
+}
+
+const ConsentView = ({navigation}: NavigationProps) => {
+ const [version, setVersion] = useState('');
+ const [consents, setConsents] = useState('');
+ Consent.extensionVersion().then(version => setVersion(version));
+
+ function getConsents() {
+ var consents = {consents: {collect: {val: 'n'}}};
+ Consent.getConsents()
+ .then(currentConsents => {
+ let consentsStr = JSON.stringify(currentConsents);
+ setConsents(consentsStr);
+ console.log(
+ 'AdobeExperienceSDK: Consent.getConsents returned current consent preferences: ' +
+ consentsStr,
+ );
+ })
+ .catch(error => {
+ console.warn(
+ 'AdobeExperienceSDK: Consent.getConsents returned error: ',
+ error,
+ );
+ });
+ }
+
+ return (
+
+
+ navigation.goBack()} title="Go to main page" />
+ Consent v{version}
+ setDefaultConsent(true)}
+ />
+ updateCollectConsent(true)}
+ />
+ updateCollectConsent(false)}
+ />
+
+
+ {consents}
+
+
+ );
+};
+
+export default ConsentView;
diff --git a/apps/BareSampleApp/extensions/CoreView.tsx b/apps/BareSampleApp/extensions/CoreView.tsx
new file mode 100644
index 000000000..997c101e8
--- /dev/null
+++ b/apps/BareSampleApp/extensions/CoreView.tsx
@@ -0,0 +1,188 @@
+/*
+Copyright 2022 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React from 'react';
+import {Button, Text, View, ScrollView} from 'react-native';
+import {
+ MobileCore,
+ Lifecycle,
+ Signal,
+ Event,
+ Identity,
+ LogLevel,
+ PrivacyStatus,
+} from '@adobe/react-native-aepcore';
+import styles from '../styles/styles';
+import {NavigationProps} from '../types/props';
+
+function trackAction() {
+ MobileCore.trackAction('trigger_postback', {key: 'value'});
+}
+
+function trackState() {
+ MobileCore.trackState('state name', {key: 'value'});
+}
+
+function setPushIdentifier() {
+ MobileCore.setPushIdentifier('xxx');
+}
+
+function collectPii() {
+ MobileCore.collectPii({myPii: 'data'});
+}
+
+function dispatchEvent() {
+ var event = new Event('eventName', 'eventType', 'eventSource', {
+ testDataKey: 'testDataValue',
+ });
+ MobileCore.dispatchEvent(event);
+}
+
+function dispatchEventWithResponseCallback() {
+ var event = new Event('eventName', 'eventType', 'eventSource', {
+ testDataKey: 'testDataValue',
+ });
+ MobileCore.dispatchEventWithResponseCallback(event, 1500).then(responseEvent =>
+ console.log('AdobeExperienceSDK: responseEvent = ' + responseEvent),
+ );
+}
+
+function setAdvertisingIdentifier() {
+ MobileCore.setAdvertisingIdentifier('adID');
+}
+function getSdkIdentities() {
+ MobileCore.getSdkIdentities().then(identities =>
+ console.log('AdobeExperienceSDK: Identities = ' + identities),
+ );
+}
+
+function updateConfiguration() {
+ MobileCore.updateConfiguration({'global.privacy': 'optedout'});
+}
+
+function clearUpdatedConfiguration() {
+ MobileCore.clearUpdatedConfiguration();
+}
+
+function getLogLevel() {
+ MobileCore.getLogLevel().then(level =>
+ console.log('AdobeExperienceSDK: Log Level = ' + level),
+ );
+}
+
+function setLogLevel() {
+ MobileCore.setLogLevel(LogLevel.VERBOSE);
+}
+
+function lifecycleStart() {
+ Lifecycle.lifecycleStart();
+ console.log('AdobeExperienceSDK: lifecycleStart called');
+}
+
+function lifecycleStartWithContextData() {
+ Lifecycle.lifecycleStart({contextKey: 'contextValue'});
+ console.log('AdobeExperienceSDK: lifecycleStart with context data called');
+}
+
+function lifecyclePause() {
+ Lifecycle.lifecyclePause();
+ console.log('AdobeExperienceSDK: lifecyclePause called');
+}
+
+function lifecycleExtensionVersion() {
+ Lifecycle.extensionVersion().then(version =>
+ console.log('AdobeExperienceSDK: Lifecycle version: ' + version),
+ );
+}
+
+function identityExtensionVersion() {
+ Identity.extensionVersion().then(version =>
+ console.log('AdobeExperienceSDK: Identity version: ' + version),
+ );
+}
+
+function signalExtensionVersion() {
+ Signal.extensionVersion().then(version =>
+ console.log('AdobeExperienceSDK: Signal version: ' + version),
+ );
+}
+
+function coreExtensionVersion() {
+ MobileCore.extensionVersion().then(version =>
+ console.log('AdobeExperienceSDK: MobileCore version: ' + version),
+ );
+}
+
+function setPrivacyOptIn() {
+ MobileCore.setPrivacyStatus(PrivacyStatus.OPT_IN);
+}
+
+function getPrivacyStatus() {
+ MobileCore.getPrivacyStatus().then(status =>
+ console.log('AdobeExperienceSDK: Privacy Status = ' + status),
+ );
+}
+
+function resetIdentities() {
+ MobileCore.resetIdentities();
+}
+
+const CoreView = ({navigation}: NavigationProps) => {
+ return (
+
+
+ navigation.goBack()} title="Go to main page" />
+ Core
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Lifecycle
+
+
+
+
+ Signal
+
+
+
+ );
+};
+
+export default CoreView;
diff --git a/apps/BareSampleApp/extensions/EdgeBridgeView.tsx b/apps/BareSampleApp/extensions/EdgeBridgeView.tsx
new file mode 100644
index 000000000..0474da42f
--- /dev/null
+++ b/apps/BareSampleApp/extensions/EdgeBridgeView.tsx
@@ -0,0 +1,50 @@
+/*
+Copyright 2023 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React, {useState} from 'react';
+import {Button, Text, View, ScrollView} from 'react-native';
+import {EdgeBridge} from '@adobe/react-native-aepedgebridge';
+import {MobileCore} from '@adobe/react-native-aepcore';
+import styles from '../styles/styles';
+import {NavigationProps} from '../types/props';
+
+
+const EdgeBridgeView = ({navigation}: NavigationProps) => {
+ const [version, setVersion] = useState('');
+ EdgeBridge.extensionVersion().then(version => setVersion(version));
+
+
+function trackAction() {
+ MobileCore.trackAction("purchase", { "&&products": ";Running Shoes;1;69.95;event1|event2=55.99;eVar1=12345,;Running Socks;10;29.99;event2=10.95;eVar1=54321",
+ "&&events": "event5,purchase",
+ "myapp.promotion": "a0138"});
+}
+
+function trackState() {
+ MobileCore.trackState("products/189025/runningshoes/12345", {"&&products": ";Running Shoes;1;69.95;prodView|event2=55.99;eVar1=12345",
+ "myapp.category": "189025",
+ "myapp.promotion": "a0138"});
+}
+
+ return (
+
+
+ navigation.goBack()} title="Go to main page" />
+ Edge Bridge v{version}
+
+
+
+
+ );
+};
+
+export default EdgeBridgeView;
diff --git a/apps/BareSampleApp/extensions/EdgeIdentityView.tsx b/apps/BareSampleApp/extensions/EdgeIdentityView.tsx
new file mode 100644
index 000000000..ea55d88a9
--- /dev/null
+++ b/apps/BareSampleApp/extensions/EdgeIdentityView.tsx
@@ -0,0 +1,106 @@
+/*
+Copyright 2022 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React, {useState} from 'react';
+import {Button, Text, View, ScrollView} from 'react-native';
+import {
+ AuthenticatedState,
+ Identity,
+ IdentityItem,
+ IdentityMap,
+} from '@adobe/react-native-aepedgeidentity';
+import styles from '../styles/styles';
+import {NavigationProps} from '../types/props';
+
+function updateIdentities() {
+ var namespace1 = 'namespace1';
+ var item1 = new IdentityItem('id1', AuthenticatedState.AUTHENTICATED, false);
+ var item2 = new IdentityItem('id2');
+
+ var map = new IdentityMap();
+ map.addItem(item1, namespace1);
+ map.addItem(item2, namespace1);
+ console.log('sample app - update identity');
+ Identity.updateIdentities(map);
+}
+
+function removeIdentity() {
+ let namespace = 'namespace1';
+ let item1 = new IdentityItem('id1');
+
+ console.log('sample app - removeIdentity');
+ Identity.removeIdentity(item1, namespace);
+}
+
+const EdgeIdentityView = ({navigation}: NavigationProps) => {
+ const [version, setVersion] = useState('');
+ const [identities, setIdentities] = useState('');
+ const [ecid, setECID] = useState('');
+ const [urlvariables, setUrlVariables] = useState('');
+ Identity.extensionVersion().then(version => setVersion(version));
+
+ function getIdentities() {
+ Identity.getIdentities()
+ .then(currentIdentity => {
+ let identitiesStr = JSON.stringify(currentIdentity);
+ setIdentities(identitiesStr);
+ console.log(
+ 'AdobeExperienceSDK: Identity.getIdentities ' + identitiesStr,
+ );
+ })
+ .catch(error => {
+ console.warn(
+ 'AdobeExperienceSDK: Identity.getIdentities returned error: ',
+ error,
+ );
+ });
+ }
+
+ function getExperienceCloudId() {
+ Identity.getExperienceCloudId()
+ .then(experienceCloudId => {
+ setECID(experienceCloudId);
+ console.log('AdobeExperienceSDK: ECID = ' + experienceCloudId);
+ })
+ .catch(error => {
+ console.warn('AdobeExperienceSDK: ECID returned error: ', error);
+ });
+ }
+
+ function getUrlVariables() {
+ Identity.getUrlVariables()
+ .then(urlVariables => {
+ setUrlVariables(urlVariables);
+ console.log('AdobeExperienceSDK: urlVariables = ' + urlVariables);
+ })
+ }
+
+ return (
+
+
+ navigation.goBack()} title="Go to main page" />
+ EdgeIdentity v{version}
+
+
+
+
+
+
+ {identities}
+ {ecid}
+ {urlvariables}
+
+
+ );
+};
+
+export default EdgeIdentityView;
diff --git a/apps/BareSampleApp/extensions/EdgeView.tsx b/apps/BareSampleApp/extensions/EdgeView.tsx
new file mode 100644
index 000000000..7e4f19c74
--- /dev/null
+++ b/apps/BareSampleApp/extensions/EdgeView.tsx
@@ -0,0 +1,150 @@
+/*
+Copyright 2022 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React, {useState} from 'react';
+import {Button, Text, View, ScrollView} from 'react-native';
+import {Edge, ExperienceEvent} from '@adobe/react-native-aepedge';
+import styles from '../styles/styles';
+import {NavigationProps} from '../types/props';
+
+const EdgeView = ({navigation}: NavigationProps) => {
+ const [version, setVersion] = useState('');
+ const [eventHandles, setEventHandles] = useState('');
+ const [locationHint, getlocationHintText] = useState('');
+
+ Edge.extensionVersion().then(version => setVersion(version));
+
+ function sendEvent(experienceEvent: any) {
+ Edge.sendEvent(experienceEvent).then(eventHandles => {
+ let eventHandlesStr = JSON.stringify(eventHandles);
+ console.log('AdobeExperienceSDK: EdgeEventHandles = ' + eventHandlesStr);
+ setEventHandles(eventHandlesStr);
+ });
+ }
+
+ function sendEventWithParams(datasetId?: string) {
+ const sampleXdmData = {eventType: 'SampleXDMEvent'};
+ const freeFormData = {free: 'form', data: 'example'};
+
+ // Method using params
+ let experienceEvent = new ExperienceEvent(sampleXdmData, freeFormData, datasetId);
+
+ sendEvent(experienceEvent);
+ }
+
+ function sendEventAsObject(datasetId?: string) {
+ const sampleXdmData = {eventType: 'SampleXDMEvent'};
+ const freeFormData = {free: 'form', data: 'example'};
+
+ // Method using object
+ let experienceEvent = new ExperienceEvent({
+ xdmData: sampleXdmData,
+ data: freeFormData,
+ datasetIdentifier: datasetId,
+ });
+
+ sendEvent(experienceEvent);
+ }
+
+ function sendEventDataStreamIdOverride() {
+ const sampleXdmData = {eventType: 'SampleXDMEvent'};
+ const freeFormData = {free: 'form', data: 'example'};
+
+ let datastreamIdOverride = 'sampleDatastreamID';
+ let experienceEvent = new ExperienceEvent({
+ xdmData: sampleXdmData,
+ data: freeFormData,
+ datastreamIdOverride: datastreamIdOverride,
+ });
+
+ sendEvent(experienceEvent);
+ }
+
+ function sendEventDataStreamConfigOverride() {
+ const sampleXdmData = {eventType: 'SampleXDMEvent'};
+ const freeFormData = {free: 'form', data: 'example'};
+
+ let configOverrides = {
+ com_adobe_experience_platform: {
+ datasets: {
+ event: {
+ datasetId: 'sampleDatasetID',
+ },
+ },
+ },
+ com_adobe_analytics: {
+ reportSuites: ['sampleReportSuiteID'],
+ },
+ };
+ let experienceEvent = new ExperienceEvent({
+ xdmData: sampleXdmData,
+ data: freeFormData,
+ datastreamConfigOverride: configOverrides,
+ });
+
+ sendEvent(experienceEvent);
+ }
+
+ function getLocationHint() {
+ Edge.getLocationHint().then(hint => {
+ let locationStr = hint;
+ console.log('AdobeExperienceSDK: location hint = ' + locationStr);
+ if (hint == null) {
+ locationStr = "null";
+ }
+ getlocationHintText(locationStr || '');
+ });
+ }
+
+ return (
+
+
+ navigation.goBack()} title="Go to main page" />
+ Edge v{version}
+ sendEventWithParams()}
+ />
+ sendEventAsObject()} />
+ sendEventWithParams('datasetIdExample')}
+ />
+ sendEventAsObject('datasetIdExample')}
+ />
+ sendEventDataStreamIdOverride()}
+ />
+ sendEventDataStreamConfigOverride()}
+ />
+ Response event handles: {eventHandles}
+ Edge.setLocationHint('va6')}
+ />
+ Edge.setLocationHint(null)}
+ />
+ getLocationHint()} />
+ Location Hint: {locationHint}
+
+
+ );
+};
+
+export default EdgeView;
diff --git a/apps/BareSampleApp/extensions/IdentityView.tsx b/apps/BareSampleApp/extensions/IdentityView.tsx
new file mode 100644
index 000000000..0dad82df3
--- /dev/null
+++ b/apps/BareSampleApp/extensions/IdentityView.tsx
@@ -0,0 +1,90 @@
+/*
+Copyright 2022 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React from 'react';
+import {Button, Text, View, ScrollView} from 'react-native';
+import {Identity, MobileVisitorAuthenticationState} from '@adobe/react-native-aepcore';
+import styles from '../styles/styles';
+import {NavigationProps} from '../types/props';
+
+function identityExtensionVersion() {
+ Identity.extensionVersion().then(version =>
+ console.log('AdobeExperienceSDK: Identity version: ' + version),
+ );
+}
+function syncIdentifiers() {
+ Identity.syncIdentifiers({id1: 'identifier1'});
+}
+
+function syncIdentifiersWithAuthState() {
+ Identity.syncIdentifiersWithAuthState(
+ {id1: 'identifier1'},
+ MobileVisitorAuthenticationState.AUTHENTICATED,
+ );
+}
+
+function syncIdentifier() {
+ Identity.syncIdentifier('idType', 'ID', MobileVisitorAuthenticationState.AUTHENTICATED);
+}
+
+function appendVisitorInfoForURL() {
+ Identity.appendVisitorInfoForURL('test.com').then(urlWithVisitorData =>
+ console.log('AdobeExperienceSDK: VisitorData = ' + urlWithVisitorData),
+ );
+}
+
+function getUrlVariables() {
+ Identity.getUrlVariables().then(urlVariables =>
+ console.log('AdobeExperienceSDK: UrlVariables = ' + urlVariables),
+ );
+}
+
+function getIdentifiers() {
+ Identity.getIdentifiers().then(identifiers =>
+ console.log(
+ 'AdobeExperienceSDK: Identifiers = ' + JSON.stringify(identifiers),
+ ),
+ );
+}
+
+function getExperienceCloudId() {
+ Identity.getExperienceCloudId().then(cloudId =>
+ console.log('AdobeExperienceSDK: CloudID = ' + cloudId),
+ );
+}
+
+const IdentityView = ({navigation}: NavigationProps) => {
+ return (
+
+
+ navigation.goBack()} title="Go to main page" />
+ Identity
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default IdentityView;
diff --git a/apps/BareSampleApp/extensions/InboxView.tsx b/apps/BareSampleApp/extensions/InboxView.tsx
new file mode 100644
index 000000000..9696dc55e
--- /dev/null
+++ b/apps/BareSampleApp/extensions/InboxView.tsx
@@ -0,0 +1,494 @@
+/*
+Copyright 2026 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import { MobileCore } from "@adobe/react-native-aepcore";
+import {
+ InboxSettings,
+ Inbox,
+ ContentCardView,
+ ThemeProvider,
+ useContentCardUI,
+ useInbox,
+ Messaging
+} from "@adobe/react-native-aepmessaging";
+import React, { memo, useCallback, useEffect, useState } from "react";
+import {
+ Appearance,
+ ColorSchemeName,
+ FlatList,
+ Modal,
+ Platform,
+ StyleSheet,
+ Text,
+ TextInput,
+ TouchableOpacity,
+ View,
+} from "react-native";
+import { Colors } from "../constants/Colors";
+import { useColorScheme } from "../hooks/useColorScheme";
+import { mockSettings, MockSurface } from "../mocks/contentCards/inbox/mockSettings";
+import {
+ DemoItem,
+ IMAGE_ONLY_TEMPLATES,
+ LARGE_IMAGE_TEMPLATES,
+ SMALL_IMAGE_TEMPLATES,
+} from "../mocks/contentCards/templates/demoitems";
+
+const VIEW_OPTIONS = [
+ "Remote",
+ "Vertical",
+ "Horizontal",
+ "Inbox with Styling",
+ "Empty",
+ "Custom Card View",
+ "Templates"
+] as const;
+type ViewOption = (typeof VIEW_OPTIONS)[number];
+
+const THEME_OPTIONS: Array<{
+ label: string;
+ value: ColorSchemeName;
+}> = [
+ { label: "Light", value: "light" },
+ { label: "Dark", value: "dark" },
+ { label: "System", value: null },
+ ];
+
+const TEMPLATE_OPTIONS: Array<{
+ label: string;
+ value: string;
+ items: DemoItem[];
+}> = [
+ { label: "Small Image", value: "SmallImage", items: SMALL_IMAGE_TEMPLATES },
+ { label: "Large Image", value: "LargeImage", items: LARGE_IMAGE_TEMPLATES },
+ { label: "Image Only", value: "ImageOnly", items: IMAGE_ONLY_TEMPLATES },
+ ];
+type TemplateOption = typeof TEMPLATE_OPTIONS[number]['value'];
+
+const ITEMS_BY_VIEW = Object.fromEntries(
+ TEMPLATE_OPTIONS.map(o => [o.value, o.items])
+) as Record;
+
+const StyledText = ({ text }: { text: string }) => {
+ return {text};
+};
+
+const Switcher = ({ title, options, selected, onChange, colors, colorScheme }: {
+ title: string;
+ options: { label: string; value: string }[];
+ selected: string;
+ onChange: (value: string) => void;
+ colors: any;
+ colorScheme: ColorSchemeName;
+}) => (
+
+ {title}
+
+ {options.map(({ label, value }) => (
+ onChange(value)}
+ >
+
+ {label}
+
+
+ ))}
+
+
+);
+
+const Header = ({
+ isLoading,
+ onTrackAction,
+ selectedView,
+ setSelectedView,
+ selectedTemplate,
+ onTemplateChange
+}: {
+ isLoading: boolean;
+ onTrackAction: () => void;
+ selectedView: ViewOption;
+ setSelectedView: (view: ViewOption) => void;
+ selectedTemplate: TemplateOption;
+ onTemplateChange: (template: TemplateOption) => void;
+}) => {
+ const [showPicker, setShowPicker] = useState(false);
+ const [selectedTheme, setSelectedTheme] = useState("System");
+ const [trackInput, setTrackInput] = useState("");
+ const colorScheme = useColorScheme();
+
+ const handleThemeChange = useCallback(
+ (theme: string, value: ColorSchemeName) => {
+ setSelectedTheme(theme);
+ // Android's AppearanceModule.setColorScheme parameter is @NonNull, so
+ // passing null (the "System" choice) crashes the bridge. Skip the call
+ // on Android — the scheme stays on whatever was last set explicitly.
+ if (Platform.OS === 'android' && value == null) {
+ return;
+ }
+ Appearance.setColorScheme(value);
+ }, []
+ );
+
+ // Track action and refresh content cards
+ const handleTrackAction = useCallback(async () => {
+ if (!trackInput.trim()) {
+ return;
+ }
+
+ MobileCore.trackAction(trackInput);
+ await onTrackAction();
+ setTrackInput('');
+ }, [trackInput, onTrackAction]);
+
+ const colors = colorScheme === "dark" ? Colors.dark : Colors.light;
+
+ return (
+
+ {/* View Picker */}
+
+ Select View Type
+ setShowPicker(true)}
+ >
+ {selectedView}
+
+
+
+ {/* Theme Switcher */}
+ ({ label, value: label }))}
+ selected={selectedTheme}
+ onChange={(label) => handleThemeChange(label, THEME_OPTIONS.find(o => o.label === label)!.value)}
+ colors={colors}
+ colorScheme={colorScheme}
+ />
+
+ {selectedView == 'Templates' ? (
+ /* Template Switcher */
+ ({ label, value }))}
+ selected={selectedTemplate}
+ onChange={(val) => onTemplateChange(val as TemplateOption)}
+ colors={colors}
+ colorScheme={colorScheme}
+ />)
+
+ /* Track Action Input */
+ : (
+
+ Track Action
+
+
+
+
+ {isLoading ? 'Loading...' : 'Track'}
+
+
+
+
+ )}
+
+
+ setShowPicker(false)}>
+
+ {VIEW_OPTIONS.map((option) => (
+ {
+ setSelectedView(option);
+ setShowPicker(false);
+ }}
+ >
+ {option}
+
+ ))}
+ setShowPicker(false)}>
+ Cancel
+
+
+
+
+
+ );
+};
+
+const MemoHeader = memo(Header);
+
+const InboxView = () => {
+ const colorScheme = useColorScheme();
+ const [selectedView, setSelectedView] = useState('Remote');
+ const [selectedTemplate, setSelectedTemplate] = useState('SmallImage');
+
+ const surface = "rn/cards"
+ // Platform.OS === "android"
+ // ? "rn/android/remote_image"
+ // : "rn/cards"";
+ const { isLoading, refetch } = useContentCardUI(surface);
+ const {
+ settings,
+ error,
+ isLoading: isLoadingInbox,
+ refetch: refetchInbox
+ } = useInbox(surface);
+
+ const items = selectedView === 'Templates' ? ITEMS_BY_VIEW[selectedTemplate] : undefined;
+
+ useEffect(() => {
+ void Messaging.updatePropositionsForSurfaces([surface]);
+ }, [surface]);
+
+ if (selectedView === 'Remote') {
+ return (
+
+ }
+ />
+ );
+ }
+
+ else if (selectedView !== 'Templates') {
+ function getMocks(view: ViewOption): MockSurface {
+ return `mock/${view.toLowerCase().replaceAll(' ', '-')}` as MockSurface;
+ }
+
+ const settings = mockSettings[
+ getMocks(selectedView)
+ ] as { surfaceSettings: InboxSettings; inboxStyle?: any; CardProps?: any };
+
+ return (
+ }
+ />
+ );
+ }
+
+ const renderContentCard = (item: any, isRemote: boolean) => {
+ const cardView = ;
+
+ if (!isRemote) {
+ return (
+
+
+ {item.customThemes ? (
+
+ {cardView}
+
+ ) : (
+ cardView
+ )}
+
+ );
+ }
+ return cardView;
+ };
+
+ return (
+ item.key}
+ renderItem={({ item }: any) =>
+ renderContentCard(item, false)
+ }
+ ListHeaderComponent={
+
+ }
+ />
+ );
+};
+export default InboxView;
+
+const SPACING = { s: 10, m: 20, l: 24 };
+
+const styles = StyleSheet.create({
+ infoText: {
+ color: "darkgray",
+ fontSize: 18,
+ paddingTop: SPACING.s,
+ paddingBottom: SPACING.s,
+ },
+ themeSwitcher: {
+ width: "100%",
+ borderRadius: SPACING.s,
+ padding: 4,
+ flexDirection: "row",
+ alignItems: "center",
+ justifyContent: "space-between",
+ },
+ section: {
+ marginHorizontal: SPACING.s,
+ marginBottom: SPACING.s,
+ },
+ themeOption: {
+ flex: 1,
+ paddingVertical: 8,
+ paddingHorizontal: 12,
+ borderRadius: 8,
+ marginHorizontal: 1,
+ alignItems: "center",
+ justifyContent: "center",
+ shadowOffset: { width: 0, height: 1 },
+ shadowRadius: 2,
+ },
+ themeOptionSelected: {
+ shadowColor: "#000",
+ shadowOpacity: 0.1,
+ elevation: 2,
+ },
+ themeOptionUnselected: {
+ backgroundColor: "transparent",
+ shadowColor: "transparent",
+ shadowOpacity: 0,
+ elevation: 0,
+ },
+ textLabel: {
+ fontSize: 14,
+ },
+ buttonNeutral: {
+ height: 40,
+ borderWidth: 1,
+ borderRadius: 5,
+ justifyContent: "center",
+ paddingHorizontal: SPACING.s,
+ },
+ buttonPrimary: {
+ backgroundColor: "#007AFF",
+ paddingHorizontal: 16,
+ paddingVertical: SPACING.s,
+ borderRadius: 8,
+ },
+ modalOverlay: {
+ flex: 1,
+ justifyContent: "center",
+ alignItems: "center",
+ backgroundColor: "rgba(0,0,0,0.5)",
+ },
+ modalCard: {
+ borderRadius: 10,
+ padding: SPACING.m,
+ backgroundColor: "white",
+ width: "80%",
+ },
+ modalOption: {
+ paddingVertical: SPACING.s,
+ borderBottomWidth: 1,
+ borderBottomColor: "#eee",
+ },
+ modalCancel: {
+ paddingVertical: SPACING.s,
+ marginTop: SPACING.s,
+ },
+ modalCancelText: {
+ color: "#FF3B30",
+ },
+ panel: {
+ borderRadius: SPACING.s,
+ borderWidth: 1,
+ padding: 15,
+ },
+ titleText: {
+ fontWeight: "600",
+ marginBottom: 5
+ },
+ textCenter: {
+ textAlign: "center",
+ },
+ rowCenter: {
+ flexDirection: "row",
+ alignItems: "center",
+ },
+ trackInput: {
+ flex: 1,
+ height: 40,
+ borderWidth: 1,
+ borderRadius: 8,
+ paddingHorizontal: SPACING.s,
+ marginRight: SPACING.s,
+ },
+ trackButtonText: {
+ color: "white",
+ fontWeight: "600",
+ },
+});
diff --git a/apps/BareSampleApp/extensions/MessagingView.tsx b/apps/BareSampleApp/extensions/MessagingView.tsx
new file mode 100644
index 000000000..048c84ff9
--- /dev/null
+++ b/apps/BareSampleApp/extensions/MessagingView.tsx
@@ -0,0 +1,245 @@
+/*
+Copyright 2022 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React, {useState} from 'react';
+import {Button, Text, View, ScrollView, TextInput, StyleSheet, Switch} from 'react-native';
+import {MobileCore} from '@adobe/react-native-aepcore';
+import {
+ Messaging,
+ PersonalizationSchema,
+ MessagingEdgeEventType
+} from '@adobe/react-native-aepmessaging';
+import {NavigationProps} from '../types/props';
+
+const parseSurfaces = (input: string): string[] =>
+ input.split(',').map(s => s.trim()).filter(Boolean);
+
+function ParamBadge({label}: {label: string}) {
+ return (
+ {label}
+ );
+}
+
+function MessagingView({navigation}: NavigationProps) {
+ const [surfacesInput, setSurfacesInput] = useState('cbehtml-ios,android-cc');
+ const [contentCardSurfacesInput, setContentCardSurfacesInput] = useState('android-cc');
+ const [trackActionName, setTrackActionName] = useState('iamjs');
+ const [trackActionFull, setTrackActionFull] = useState(true);
+
+ const surfaces = parseSurfaces(surfacesInput);
+ const contentCardSurfaces = parseSurfaces(contentCardSurfacesInput);
+
+ const messagingExtensionVersion = async () => {
+ const version = await Messaging.extensionVersion();
+ console.log(`AdobeExperienceSDK: Messaging version: ${version}`);
+ };
+
+ const refreshInAppMessages = () => {
+ Messaging.refreshInAppMessages();
+ console.log('messages refreshed');
+ };
+
+ const setMessagingDelegate = () => {
+ Messaging.setMessagingDelegate({
+ onDismiss: msg => console.log('dismissed!', msg),
+ onShow: msg => {
+ console.log('show', msg);
+ msg.handleJavascriptMessage('myInappCallback', (content: string) => {
+ console.log('Received webview content in onShow:', content);
+ });
+ },
+ shouldShowMessage: () => true,
+ shouldSaveMessage: () => true,
+ urlLoaded: (url, message) => console.log(url, message)
+ });
+ console.log('messaging delegate set');
+ };
+
+ const getPropositionsForSurfaces = async () => {
+ const messages = await Messaging.getPropositionsForSurfaces(surfaces);
+ console.log('getPropositionsForSurfaces', JSON.stringify(messages));
+ };
+
+ const updatePropositionsForSurfaces = async () => {
+ Messaging.updatePropositionsForSurfaces(surfaces);
+ console.log('Updated Propositions for:', surfaces);
+ };
+
+ const getCachedMessages = async () => {
+ const messages = await Messaging.getCachedMessages();
+ console.log('Cached messages:', messages);
+ };
+
+ const getLatestMessage = async () => {
+ const message = await Messaging.getLatestMessage();
+ console.log('Latest Message:', message);
+ };
+
+ const trackAction = async () => {
+ MobileCore.trackAction(trackActionName, {full: trackActionFull});
+ console.log('trackAction:', trackActionName, 'full:', trackActionFull);
+ };
+
+ const trackContentCardInteraction = async () => {
+ const messages = await Messaging.getPropositionsForSurfaces(contentCardSurfaces);
+ for (const surface of contentCardSurfaces) {
+ const propositions = messages[surface] || [];
+ for (const proposition of propositions) {
+ for (const propositionItem of proposition.items) {
+ if (propositionItem.schema === PersonalizationSchema.CONTENT_CARD) {
+ Messaging.trackContentCardInteraction(proposition, propositionItem as any);
+ console.log('trackContentCardInteraction', proposition, propositionItem);
+ }
+ }
+ }
+ }
+ };
+
+ const trackContentCardDisplay = async () => {
+ const messages = await Messaging.getPropositionsForSurfaces(contentCardSurfaces);
+ for (const surface of contentCardSurfaces) {
+ const propositions = messages[surface] || [];
+ for (const proposition of propositions) {
+ for (const propositionItem of proposition.items) {
+ if (propositionItem.schema === PersonalizationSchema.CONTENT_CARD) {
+ Messaging.trackContentCardDisplay(proposition, propositionItem as any);
+ console.log('trackContentCardDisplay', proposition, propositionItem);
+ }
+ }
+ }
+ }
+ };
+
+ const unifiedTrackingExample = async () => {
+ const messages = await Messaging.getPropositionsForSurfaces(surfaces);
+ for (const surface of surfaces) {
+ const propositions = messages[surface] || [];
+ for (const proposition of propositions) {
+ for (const propositionItem of proposition.items) {
+ propositionItem.track(MessagingEdgeEventType.DISPLAY);
+ propositionItem.track('content_card_clicked', MessagingEdgeEventType.INTERACT, null);
+ }
+ }
+ }
+ };
+
+ return (
+
+
+ navigation.goBack()} title="Go to main page" />
+ Messaging
+
+ {/* ── Surfaces ── */}
+ 🔷 Surfaces
+ Surfaces (comma-separated)
+
+ Active: {surfaces.join(', ')}
+ Used by: getPropositionsForSurfaces · updatePropositionsForSurfaces · Unified Tracking
+
+ {/* ── Content Card Surfaces ── */}
+ 🔶 Content Card Surfaces
+ Content Card Surfaces (comma-separated)
+
+ Active: {contentCardSurfaces.join(', ')}
+ Used by: trackContentCardInteraction · trackContentCardDisplay
+
+ {/* ── Track Action ── */}
+ 🔘 Track Action
+ Action Name
+
+
+ full
+
+ {trackActionFull ? 'true' : 'false'}
+
+ Used by: trackAction
+
+
+
+ {/* ── No params ── */}
+ No parameters
+
+
+
+
+
+
+
+
+ {/* ── Uses Surfaces ── */}
+ Uses Surfaces
+
+
+
+
+
+
+ {/* ── Uses Content Card Surfaces ── */}
+ Uses Content Card Surfaces
+
+
+
+
+
+ {/* ── Uses Track Action params ── */}
+ Uses Track Action
+
+
+
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {flex: 1, backgroundColor: '#F5FCFF'},
+ welcome: {fontSize: 22, textAlign: 'center', margin: 10},
+ sectionTitle: {fontSize: 15, fontWeight: '700', marginTop: 16, marginBottom: 4, color: '#333'},
+ groupLabel: {fontSize: 13, fontWeight: '600', color: '#555', marginBottom: 4},
+ label: {fontWeight: '600', marginBottom: 2, color: '#333'},
+ hint: {fontSize: 11, color: '#666', marginBottom: 2},
+ usedBy: {fontSize: 11, color: '#888', fontStyle: 'italic', marginBottom: 6},
+ input: {
+ borderWidth: 1, borderColor: '#ccc', borderRadius: 6,
+ padding: 8, fontSize: 13, marginBottom: 2, backgroundColor: '#fff',
+ },
+ row: {flexDirection: 'row', alignItems: 'center', gap: 8, marginBottom: 2},
+ divider: {height: 1, backgroundColor: '#ddd', marginVertical: 12},
+ buttonWrapper: {marginVertical: 4},
+ badge: {
+ fontSize: 11, color: '#555', backgroundColor: '#e8e8e8',
+ paddingHorizontal: 6, paddingVertical: 2, borderRadius: 4, overflow: 'hidden',
+ },
+});
+
+export default MessagingView;
diff --git a/apps/BareSampleApp/extensions/OptimizeView.tsx b/apps/BareSampleApp/extensions/OptimizeView.tsx
new file mode 100644
index 000000000..e75ffe0d5
--- /dev/null
+++ b/apps/BareSampleApp/extensions/OptimizeView.tsx
@@ -0,0 +1,561 @@
+/*
+Copyright 2022 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React, {useMemo, useState} from 'react';
+import {
+ Optimize,
+ DecisionScope,
+ Proposition,
+} from '@adobe/react-native-aepoptimize';
+import {WebView} from 'react-native-webview';
+import styles from '../styles/styles';
+import {
+ Button,
+ Text,
+ View,
+ Image,
+ TouchableOpacity,
+ useWindowDimensions,
+ TextInput,
+ StyleSheet,
+ ScrollView,
+} from 'react-native';
+import {RecyclerListView, DataProvider, LayoutProvider} from 'recyclerlistview';
+
+const ViewTypes = {
+ header: 0,
+ content: 1,
+};
+
+const TARGET_OFFER_TYPE_JSON = 'application/json';
+const TARGET_OFFER_TYPE_HTML = 'text/html';
+
+const defaultPropositions = {
+ textProposition: 'Placeholder Text Offer!!',
+ imageProposition:
+ 'https://blog.adobe.com/en/publish/2020/05/28/media_3dfaf748ad02bf771410a771def79c9ad86b1766.jpg',
+ htmlProposition:
+ 'HTML place holder!
',
+ jsonProposition: '{"Type": "JSON place holder"}',
+};
+
+function SmokeButton({
+ id,
+ title,
+ onPress,
+}: {
+ id: string;
+ title: string;
+ onPress: () => void;
+}) {
+ return (
+
+
+
+ );
+}
+
+export default ({navigation}: any) => {
+ const [version, setVersion] = useState('0.0.0');
+ const [customScopeInput, setCustomScopeInput] = useState('mboxAug');
+ const [textProposition, setTextProposition] = useState();
+ const [imageProposition, setImageProposition] = useState();
+ const [htmlProposition, setHtmlProposition] = useState();
+ const [jsonProposition, setJsonProposition] = useState();
+ const [targetProposition, setTargetProposition] = useState();
+ const [listKey, setListKey] = useState(0);
+
+ const dataProvider = useMemo(
+ () =>
+ new DataProvider((data1, data2) => {
+ return data1 !== data2;
+ }),
+ [],
+ );
+
+ const {width} = useWindowDimensions();
+
+ const decisionScopeText = new DecisionScope(
+ 'eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0MWM4NTg2MmRiMDQ4YzkiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTQxYzZkNWQzOGYwNDg5NyJ9',
+ );
+ const decisionScopeImage = new DecisionScope(
+ 'eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0MWM4NTg2MmRiMDQ4YzkiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTQxYzZkYTliNDMwNDg5OCJ9',
+ );
+ const decisionScopeHtml = new DecisionScope(
+ 'eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0MWM4NTg2MmRiMDQ4YzkiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTQxYzZkOTJjNmJhZDA4NCJ9',
+ );
+ const decisionScopeJson = new DecisionScope(
+ 'eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0MWM4NTg2MmRiMDQ4YzkiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTQxYzZkN2VjOTZmOTg2ZCJ9',
+ );
+ const decisionScopeTargetMbox = new DecisionScope(customScopeInput.trim() || 'mboxAug');
+
+ const decisionScopes = [decisionScopeTargetMbox];
+
+ const optimizeExtensionVersion = async () => {
+ const extVersion = await Optimize.extensionVersion();
+ console.log('AdobeExperienceSDK: Optimize version: ' + extVersion);
+ setVersion(extVersion);
+ };
+
+ const updatePropositions = () => {
+ Optimize.updatePropositions(decisionScopes);
+ console.log('Updated Propositions');
+ };
+
+ const updatePropositionsWithCallback = () => {
+ Optimize.updatePropositions(
+ decisionScopes,
+ undefined,
+ undefined,
+ (response: Map) => {
+ console.log('updatePropositions onSuccess:', response);
+ },
+ (error: any) => {
+ console.log('updatePropositions onError:', error);
+ },
+ );
+ };
+
+ const displayTargetOffer = () => {
+ if (targetProposition?.items?.[0]) {
+ targetProposition.items[0].displayed(targetProposition);
+ console.log('Display Target Offer invoked');
+ } else {
+ console.log('No target proposition cached — run Get Propositions first');
+ }
+ };
+
+ const tapTargetOffer = () => {
+ if (targetProposition?.items?.[0]) {
+ targetProposition.items[0].tapped(targetProposition);
+ console.log('Offer is tapped');
+ } else {
+ console.log('No target proposition cached — run Get Propositions first');
+ }
+ };
+
+ const multipleOffersDisplayed = () => {
+ const allOffers: any[] = [];
+ for (const prop of [
+ textProposition,
+ imageProposition,
+ htmlProposition,
+ jsonProposition,
+ targetProposition,
+ ]) {
+ if (prop?.items) {
+ for (const offer of prop.items) {
+ allOffers.push(offer);
+ }
+ }
+ }
+ Optimize.displayed(allOffers);
+ console.log('Multiple Offers Displayed with ' + allOffers.length + ' offers');
+ };
+
+ const multipleOffersGenerateDisplayInteractionXdm = async () => {
+ const allOffers: any[] = [];
+ for (const prop of [
+ textProposition,
+ imageProposition,
+ htmlProposition,
+ jsonProposition,
+ targetProposition,
+ ]) {
+ if (prop?.items) {
+ for (const offer of prop.items) {
+ allOffers.push(offer);
+ }
+ }
+ }
+ try {
+ const xdm = await Optimize.generateDisplayInteractionXdm(allOffers);
+ console.log('generateDisplayInteractionXdm:', JSON.stringify(xdm));
+ } catch (e) {
+ console.log('generateDisplayInteractionXdm error:', e);
+ }
+ };
+
+ const getPropositions = async () => {
+ const propositions: Map =
+ await Optimize.getPropositions(decisionScopes);
+ console.log('get proposition', propositions);
+ console.log('get proposition iOS', propositions);
+ if (propositions) {
+ setTextProposition(propositions.get(decisionScopeText.getName()));
+ setImageProposition(propositions.get(decisionScopeImage.getName()));
+ setHtmlProposition(propositions.get(decisionScopeHtml.getName()));
+ setJsonProposition(propositions.get(decisionScopeJson.getName()));
+ setTargetProposition(propositions.get(decisionScopeTargetMbox.getName()));
+ }
+ };
+
+ const clearCachedProposition = () => {
+ Optimize.clearCachedPropositions();
+ console.log('Proposition cache cleared');
+ };
+
+ const onPropositionUpdate = () =>
+ Optimize.onPropositionUpdate({
+ call(propositions: Map) {
+ if (!propositions) {
+ console.log('nothing');
+ return;
+ }
+ console.log('i am here ', propositions);
+ console.log(
+ 'onPropositionUpdate subscribe callback fired, scopes:',
+ propositions?.size ?? 0,
+ );
+ requestAnimationFrame(() => {
+ const target = propositions.get(decisionScopeTargetMbox.getName());
+ if (target) {
+ setTargetProposition(target);
+ }
+ const text = propositions.get(decisionScopeText.getName());
+ if (text) {
+ setTextProposition(text);
+ }
+ const image = propositions.get(decisionScopeImage.getName());
+ if (image) {
+ setImageProposition(image);
+ }
+ const html = propositions.get(decisionScopeHtml.getName());
+ if (html) {
+ setHtmlProposition(html);
+ }
+ const json = propositions.get(decisionScopeJson.getName());
+ if (json) {
+ setJsonProposition(json);
+ }
+ setListKey(k => k + 1);
+ });
+ },
+ });
+
+ const renderTargetOffer = () => {
+ if (targetProposition?.items) {
+ if (targetProposition.items[0].format === TARGET_OFFER_TYPE_JSON) {
+ return (
+ {
+ targetProposition?.items[0].tapped(targetProposition);
+ }}>
+ {targetProposition.items[0].content}
+
+ );
+ } else if (targetProposition.items[0].format === TARGET_OFFER_TYPE_HTML) {
+ return (
+ {
+ targetProposition?.items[0].tapped(targetProposition);
+ }}>
+
+
+
+
+ );
+ }
+ }
+ return Default Target Offer;
+ };
+
+ const inputStyles = StyleSheet.create({
+ label: {
+ fontWeight: '600',
+ marginTop: 8,
+ marginBottom: 2,
+ color: '#333',
+ alignSelf: 'flex-start',
+ },
+ input: {
+ borderWidth: 1,
+ borderColor: '#ccc',
+ borderRadius: 6,
+ padding: 8,
+ fontSize: 13,
+ marginBottom: 2,
+ backgroundColor: '#fff',
+ width: width - 32,
+ },
+ hint: {
+ fontSize: 11,
+ color: '#666',
+ marginBottom: 4,
+ alignSelf: 'flex-start',
+ },
+ divider: {
+ height: 1,
+ backgroundColor: '#ddd',
+ marginVertical: 8,
+ width: width - 32,
+ },
+ });
+
+ const layoutProvider = useMemo(
+ () =>
+ new LayoutProvider(
+ index => {
+ if (index % 2 === 0) {
+ return ViewTypes.header;
+ }
+ return ViewTypes.content;
+ },
+ (type, dimen) => {
+ switch (type) {
+ case ViewTypes.header:
+ dimen.width = width;
+ dimen.height = 50;
+ break;
+
+ case ViewTypes.content:
+ dimen.width = width;
+ dimen.height = 200;
+ break;
+
+ default:
+ dimen.width = 0;
+ dimen.height = 0;
+ break;
+ }
+ },
+ ),
+ [width],
+ );
+
+ let rowRenderer = (type: any, data: any) => {
+ switch (type) {
+ case ViewTypes.header:
+ return (
+
+ {data}
+
+ );
+
+ case ViewTypes.content:
+ if (data === textProposition) {
+ return (
+
+ {
+ textProposition?.items[0].tapped(textProposition);
+ }}>
+ {textProposition?.items[0]
+ ? textProposition.items[0].content
+ : defaultPropositions.textProposition}
+
+
+ );
+ } else if (data === imageProposition) {
+ return (
+
+ {
+ imageProposition?.items[0].tapped(imageProposition);
+ }}>
+
+
+
+ );
+ } else if (data === jsonProposition) {
+ return (
+ {
+ jsonProposition?.items[0].tapped(jsonProposition);
+ }}>
+ {' '}
+ {jsonProposition?.items?.[0]
+ ? jsonProposition.items[0].content
+ : defaultPropositions.jsonProposition}
+
+ );
+ } else if (data === htmlProposition) {
+ return (
+ {
+ htmlProposition?.items[0].tapped(htmlProposition);
+ }}>
+
+
+
+
+ );
+ } else if (data === targetProposition) {
+ return renderTargetOffer();
+ }
+ return (
+
+ Offer type didn't match
+
+ );
+ default:
+ return null;
+ }
+ };
+
+ var data: any;
+ let getContent = () => {
+ data = new Array();
+ data.push('Text Offer');
+ data.push(textProposition);
+ data.push('Image Offer');
+ data.push(imageProposition);
+ data.push('JSON Offer');
+ data.push(jsonProposition);
+ data.push('HTML Offer');
+ data.push(htmlProposition);
+ data.push('Target Mbox Offer');
+ data.push(targetProposition);
+ return dataProvider.cloneWithRows(data);
+ };
+
+ let hasBegunScrolling = true;
+ let indicesWithData = [1, 3, 5, 7, 9];
+
+ let indicesChangeHandler = (all: any, now: any, notNow: any) => {
+ if (hasBegunScrolling && notNow && notNow[0] && notNow[0] === 0) {
+ for (const i in all) {
+ if (
+ indicesWithData.includes(i as any) &&
+ typeof data[i] === 'object' &&
+ data[i].items
+ ) {
+ const offer = data[i].items[0];
+ const proposition = data[i];
+ offer.displayed(proposition);
+ }
+ }
+ hasBegunScrolling = false;
+ } else if (
+ now &&
+ indicesWithData.includes(now[0]) &&
+ data[now[0]] &&
+ typeof data[now[0]] === 'object' &&
+ data[now[0]].items
+ ) {
+ const offer = data[now[0]].items[0];
+ const proposition = data[now[0]];
+ offer.displayed(proposition);
+ }
+ };
+
+ return (
+
+ navigation.goBack()} title="Go to main page" />
+ Optimize
+
+ Decision Scope (Target Mbox)
+
+
+ Active scope: {customScopeInput.trim() || 'mboxAug'}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SDK Version:: {version}
+ Personalized Offers
+ {width > 0 ? (
+
+
+
+ ) : null}
+
+ );
+};
diff --git a/apps/BareSampleApp/extensions/PlacesView.tsx b/apps/BareSampleApp/extensions/PlacesView.tsx
new file mode 100644
index 000000000..ce8a22b47
--- /dev/null
+++ b/apps/BareSampleApp/extensions/PlacesView.tsx
@@ -0,0 +1,108 @@
+/*
+Copyright 2022 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React from 'react';
+import {Button, ScrollView, Text, View} from 'react-native';
+import {
+ Places,
+ PlacesAuthStatus,
+ PlacesGeofence,
+ PlacesGeofenceTransitionType,
+ PlacesLocation,
+} from '@adobe/react-native-aepplaces';
+import {NavigationProps} from '../types/props';
+import styles from '../styles/styles';
+
+const EXAMPLE_LATITUDE = 37.3325958;
+const EXAMPLE_LONGITUDE = -121.8910217;
+const EXAMPLE_GEOFENCE_ID = '82e2eb52-e925-41a3-9d50-418a2e015608';
+const EXAMPLE_RADIUS = 50;
+
+const extensionVersion = async () => {
+ const version = await Places.extensionVersion();
+ console.log('AdobeExperienceSDK: Places version: ' + version);
+};
+
+const getNearbyPointsOfInterest = async () => {
+ const location = new PlacesLocation(EXAMPLE_LONGITUDE, EXAMPLE_LATITUDE);
+ try {
+ const pois = await Places.getNearbyPointsOfInterest(location, 2);
+ console.log(
+ `AdobeExperienceSDK: Places pois: ${pois[0]?.['name'] || '[]'}`,
+ );
+ } catch (e) {
+ console.log(`AdobeExperienceSDK: Places error: ${e}`);
+ }
+};
+
+const processGeofence = () => {
+ const geofence = new PlacesGeofence(
+ EXAMPLE_GEOFENCE_ID,
+ EXAMPLE_LATITUDE,
+ EXAMPLE_LONGITUDE,
+ EXAMPLE_RADIUS,
+ 10,
+ );
+ Places.processGeofence(geofence, PlacesGeofenceTransitionType.EXIT);
+ console.log('Geofence processed');
+};
+
+const getCurrentPointsOfInterest = async () => {
+ const pois = await Places.getCurrentPointsOfInterest();
+ console.log(`AdobeExperienceSDK: Places pois: ${pois[0]?.['name'] || '[]'}`);
+};
+
+const getLastKnownLocation = async () => {
+ const location = await Places.getLastKnownLocation();
+ console.log(
+ `AdobeExperienceSDK: Places location: ${JSON.stringify(location)}`,
+ );
+};
+
+const clear = () => {
+ Places.clear();
+ console.log('cleared');
+};
+
+const setAuthorizationStatus = () => {
+ Places.setAuthorizationStatus(PlacesAuthStatus.ALWAYS);
+ console.log('Authorization status set');
+};
+
+const PlacesView = ({navigation: {goBack}}: NavigationProps) => {
+ return (
+
+
+
+ Places
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default PlacesView;
diff --git a/apps/BareSampleApp/extensions/ProfileView.tsx b/apps/BareSampleApp/extensions/ProfileView.tsx
new file mode 100644
index 000000000..562b19f5f
--- /dev/null
+++ b/apps/BareSampleApp/extensions/ProfileView.tsx
@@ -0,0 +1,58 @@
+/*
+Copyright 2022 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React from 'react';
+import {Button, Text, View, ScrollView} from 'react-native';
+import {UserProfile} from '@adobe/react-native-aepuserprofile';
+import styles from '../styles/styles';
+import {NavigationProps} from '../types/props';
+
+function profileExtensionVersion() {
+ UserProfile.extensionVersion().then(version =>
+ console.log('AdobeExperienceSDK: UserProfile version: ' + version),
+ );
+}
+
+function updateUserAttributes() {
+ let attrMap = {mapKey: 'mapValue', mapKey1: 'mapValue1'};
+ UserProfile.updateUserAttributes(attrMap);
+}
+
+function removeUserAttributes() {
+ UserProfile.removeUserAttributes(['mapKey1']);
+}
+
+function getUserAttributes() {
+ UserProfile.getUserAttributes(['mapKey', 'mapKey1']).then(map =>
+ console.log(
+ 'AdobeExperienceSDK: UserProfile getUserAttributes: ' +
+ JSON.stringify(map),
+ ),
+ );
+}
+
+const ProfileView = ({navigation}: NavigationProps) => {
+ return (
+
+
+ navigation.goBack()} title="Go to main page" />
+ UserProfile
+
+
+
+
+
+
+ );
+};
+
+export default ProfileView;
diff --git a/apps/BareSampleApp/extensions/TargetView.tsx b/apps/BareSampleApp/extensions/TargetView.tsx
new file mode 100644
index 000000000..dd260909b
--- /dev/null
+++ b/apps/BareSampleApp/extensions/TargetView.tsx
@@ -0,0 +1,217 @@
+/*
+Copyright 2024 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import React, {useState} from 'react';
+import {Button, ScrollView, StyleSheet, Text, TextInput, View} from 'react-native';
+import {
+ Target,
+ TargetOrder,
+ TargetParameters,
+ TargetPrefetchObject,
+ TargetProduct,
+ TargetRequestObject,
+} from '@adobe/react-native-aeptarget';
+import {NavigationProps} from '../types/props';
+
+function TargetView({navigation}: NavigationProps) {
+ const [mbox1, setMbox1] = useState('sdk_smoke_tests_target');
+ const [mbox2, setMbox2] = useState('aep-loc-2');
+
+ const targetExtensionVersion = async () => {
+ const version = await Target.extensionVersion();
+ console.log(`AdobeExperienceSDK: Target version: ${version}`);
+ };
+
+ const clearPrefetchCache = () => Target.clearPrefetchCache();
+
+ const getSessionId = async () => {
+ const sessionId = await Target.getSessionId();
+ console.log(`Session ID: ${sessionId}`);
+ };
+
+ const getThirdPartyId = async () => {
+ const id = await Target.getThirdPartyId();
+ console.log(`AdobeExperienceSDK: Third Party ID: ${id}`);
+ };
+
+ const getTntId = async () => {
+ const id = await Target.getTntId();
+ console.log(`AdobeExperienceSDK: TNT ID ${id}`);
+ };
+
+ const resetExperience = () => Target.resetExperience();
+
+ const setPreviewRestartDeeplink = () =>
+ Target.setPreviewRestartDeeplink('https://www.adobe.com');
+
+ const setSessionId = () => Target.setSessionId('sessionId');
+ const setTntId = () => Target.setTntId('tntId');
+ const setThirdPartyId = () => Target.setThirdPartyId('thirdPartyId');
+
+ const retrieveLocationContent = () => {
+ const mboxParameters1 = {status: 'platinum'};
+ const mboxParameters2 = {userType: 'Paid'};
+ const purchaseIDs = ['34', '125'];
+ const targetOrder = new TargetOrder('ADCKKIM', 344.3, purchaseIDs);
+ const targetProduct = new TargetProduct('24D3412', 'Books');
+
+ const request1 = new TargetRequestObject(
+ mbox1,
+ new TargetParameters(mboxParameters1),
+ 'defaultContent1',
+ (error, content) => {
+ if (error) console.error(error);
+ else console.log('Adobe content:' + content);
+ },
+ );
+
+ const request2 = new TargetRequestObject(
+ mbox2,
+ new TargetParameters(mboxParameters2, {profileParameters: 'parameterValue'}, targetProduct, targetOrder),
+ 'defaultContent2',
+ (error, content) => {
+ if (error) console.error(error);
+ else console.log('Adobe content:' + content);
+ },
+ );
+
+ const parameters = new TargetParameters(
+ {parameters: 'parametervalue'},
+ {ageGroup: '20-32'},
+ targetProduct,
+ targetOrder,
+ );
+ Target.retrieveLocationContent([request1, request2], parameters);
+ };
+
+ const displayedLocations = () =>
+ Target.displayedLocations([mbox1, mbox2]);
+
+ const clickedLocation = () => {
+ const purchaseIDs = ['34', '125'];
+ const targetOrder = new TargetOrder('ADCKKIM', 344.3, purchaseIDs);
+ const targetProduct = new TargetProduct('24D3412', 'Books');
+ const parameters = new TargetParameters(
+ {parameters: 'parametervalue'},
+ {ageGroup: '20-32'},
+ targetProduct,
+ targetOrder,
+ );
+ Target.clickedLocation(mbox1, parameters);
+ };
+
+ const prefetchContent = () => {
+ const mboxParameters1 = {status: 'platinum'};
+ const mboxParameters2 = {userType: 'Paid'};
+ const purchaseIDs = ['34', '125'];
+ const targetOrder = new TargetOrder('ADCKKIM', 344.3, purchaseIDs);
+ const targetProduct = new TargetProduct('24D3412', 'Books');
+
+ const prefetch1 = new TargetPrefetchObject(mbox1, new TargetParameters(mboxParameters1));
+ const prefetch2 = new TargetPrefetchObject(
+ mbox2,
+ new TargetParameters(mboxParameters2, {profileParameters: 'parameterValue'}, targetProduct, targetOrder),
+ );
+
+ const parameters = new TargetParameters(
+ {parameters: 'parametervalue'},
+ {ageGroup: '20-32'},
+ targetProduct,
+ targetOrder,
+ );
+ Target.prefetchContent([prefetch1, prefetch2], parameters)
+ .then(success => console.log(success))
+ .catch(err => console.log(err));
+ };
+
+ return (
+
+
+ navigation.goBack()} title="Go to main page" />
+ Target Test App
+
+ Mbox 1
+
+ Mbox 2
+
+
+
+
+
+ clearPrefetchCache()} />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#F5FCFF',
+ },
+ welcome: {
+ fontSize: 22,
+ textAlign: 'center',
+ margin: 10,
+ },
+ label: {
+ fontWeight: '600',
+ marginTop: 8,
+ marginBottom: 2,
+ color: '#333',
+ },
+ input: {
+ borderWidth: 1,
+ borderColor: '#ccc',
+ borderRadius: 6,
+ padding: 8,
+ fontSize: 13,
+ marginBottom: 4,
+ backgroundColor: '#fff',
+ },
+ divider: {
+ height: 1,
+ backgroundColor: '#ddd',
+ marginVertical: 12,
+ },
+ buttonWrapper: {
+ marginVertical: 4,
+ },
+});
+
+export default TargetView;
diff --git a/apps/BareSampleApp/hooks/useColorScheme.js b/apps/BareSampleApp/hooks/useColorScheme.js
new file mode 100644
index 000000000..18557ed46
--- /dev/null
+++ b/apps/BareSampleApp/hooks/useColorScheme.js
@@ -0,0 +1,5 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.useColorScheme = void 0;
+var react_native_1 = require("react-native");
+Object.defineProperty(exports, "useColorScheme", { enumerable: true, get: function () { return react_native_1.useColorScheme; } });
diff --git a/apps/BareSampleApp/hooks/useColorScheme.ts b/apps/BareSampleApp/hooks/useColorScheme.ts
new file mode 100644
index 000000000..17e3c63e1
--- /dev/null
+++ b/apps/BareSampleApp/hooks/useColorScheme.ts
@@ -0,0 +1 @@
+export { useColorScheme } from 'react-native';
diff --git a/apps/BareSampleApp/index.js b/apps/BareSampleApp/index.js
new file mode 100644
index 000000000..fa8747444
--- /dev/null
+++ b/apps/BareSampleApp/index.js
@@ -0,0 +1,31 @@
+/*
+Copyright 2024 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import 'react-native-gesture-handler';
+import { AppRegistry, NativeModules } from 'react-native';
+import App from './App.tsx';
+import { name as appName } from './app.json';
+
+console.log('[BareSampleApp] Bridgeless:', global.RN$Bridgeless);
+
+// Routes JS console.log through native NSLogger in release builds so JS logs
+// remain visible in native log capture tools on iOS 26.5+/RN 0.85+ where JS
+// logs no longer surface in com.facebook.react.log. Required for /ajo-mob-smoke-test
+// to capture JS SDK callbacks (e.g. CloudID, Identities) when running on release builds.
+if (!__DEV__) {
+ const { NSLogger } = NativeModules;
+ if (NSLogger) {
+ console.log = (...args) => NSLogger.log(args.map(String).join(' '));
+ }
+}
+
+AppRegistry.registerComponent(appName, () => App);
diff --git a/apps/BareSampleApp/ios/.xcode.env b/apps/BareSampleApp/ios/.xcode.env
new file mode 100644
index 000000000..3d5782c71
--- /dev/null
+++ b/apps/BareSampleApp/ios/.xcode.env
@@ -0,0 +1,11 @@
+# This `.xcode.env` file is versioned and is used to source the environment
+# used when running script phases inside Xcode.
+# To customize your local environment, you can create an `.xcode.env.local`
+# file that is not versioned.
+
+# NODE_BINARY variable contains the PATH to the node executable.
+#
+# Customize the NODE_BINARY variable here.
+# For example, to use nvm with brew, add the following line
+# . "$(brew --prefix nvm)/nvm.sh" --no-use
+export NODE_BINARY=$(command -v node)
diff --git a/apps/BareSampleApp/ios/BareSampleApp.xcodeproj/project.pbxproj b/apps/BareSampleApp/ios/BareSampleApp.xcodeproj/project.pbxproj
new file mode 100644
index 000000000..3196dbe93
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp.xcodeproj/project.pbxproj
@@ -0,0 +1,727 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 54;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 00E356F31AD99517003FC87E /* BareSampleAppTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* BareSampleAppTests.m */; };
+ 0BF9353BAD5BF435417AA68B /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; };
+ 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
+ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
+ 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
+ 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
+ A09A52C82D999E04C2EFFC7E /* Pods_BareSampleApp_BareSampleAppTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CE1A5309DCF9CAAB94FDA1A /* Pods_BareSampleApp_BareSampleAppTests.framework */; };
+ E49D701D0B3525FA0700028B /* Pods_BareSampleApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81B1527D0EFDD7F0EFC2132C /* Pods_BareSampleApp.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
+ remoteInfo = BareSampleApp;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 00E356EE1AD99517003FC87E /* BareSampleAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BareSampleAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 00E356F21AD99517003FC87E /* BareSampleAppTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BareSampleAppTests.m; sourceTree = ""; };
+ 13B07F961A680F5B00A75B9A /* BareSampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BareSampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = BareSampleApp/AppDelegate.h; sourceTree = ""; };
+ 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = BareSampleApp/AppDelegate.mm; sourceTree = ""; };
+ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = BareSampleApp/Images.xcassets; sourceTree = ""; };
+ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = BareSampleApp/Info.plist; sourceTree = ""; };
+ 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = BareSampleApp/main.m; sourceTree = ""; };
+ 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = BareSampleApp/PrivacyInfo.xcprivacy; sourceTree = ""; };
+ 3B4392A12AC88292D35C810B /* Pods-BareSampleApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BareSampleApp.debug.xcconfig"; path = "Target Support Files/Pods-BareSampleApp/Pods-BareSampleApp.debug.xcconfig"; sourceTree = ""; };
+ 5709B34CF0A7D63546082F79 /* Pods-BareSampleApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BareSampleApp.release.xcconfig"; path = "Target Support Files/Pods-BareSampleApp/Pods-BareSampleApp.release.xcconfig"; sourceTree = ""; };
+ 5B7EB9410499542E8C5724F5 /* Pods-BareSampleApp-BareSampleAppTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BareSampleApp-BareSampleAppTests.debug.xcconfig"; path = "Target Support Files/Pods-BareSampleApp-BareSampleAppTests/Pods-BareSampleApp-BareSampleAppTests.debug.xcconfig"; sourceTree = ""; };
+ 6CE1A5309DCF9CAAB94FDA1A /* Pods_BareSampleApp_BareSampleAppTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BareSampleApp_BareSampleAppTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = BareSampleApp/LaunchScreen.storyboard; sourceTree = ""; };
+ 81B1527D0EFDD7F0EFC2132C /* Pods_BareSampleApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BareSampleApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 89C6BE57DB24E9ADA2F236DE /* Pods-BareSampleApp-BareSampleAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BareSampleApp-BareSampleAppTests.release.xcconfig"; path = "Target Support Files/Pods-BareSampleApp-BareSampleAppTests/Pods-BareSampleApp-BareSampleAppTests.release.xcconfig"; sourceTree = ""; };
+ ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 00E356EB1AD99517003FC87E /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ A09A52C82D999E04C2EFFC7E /* Pods_BareSampleApp_BareSampleAppTests.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E49D701D0B3525FA0700028B /* Pods_BareSampleApp.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 00E356EF1AD99517003FC87E /* BareSampleAppTests */ = {
+ isa = PBXGroup;
+ children = (
+ 00E356F21AD99517003FC87E /* BareSampleAppTests.m */,
+ 00E356F01AD99517003FC87E /* Supporting Files */,
+ );
+ path = BareSampleAppTests;
+ sourceTree = "";
+ };
+ 00E356F01AD99517003FC87E /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 00E356F11AD99517003FC87E /* Info.plist */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ 13B07FAE1A68108700A75B9A /* BareSampleApp */ = {
+ isa = PBXGroup;
+ children = (
+ 13B07FAF1A68108700A75B9A /* AppDelegate.h */,
+ 13B07FB01A68108700A75B9A /* AppDelegate.mm */,
+ 13B07FB51A68108700A75B9A /* Images.xcassets */,
+ 13B07FB61A68108700A75B9A /* Info.plist */,
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
+ 13B07FB71A68108700A75B9A /* main.m */,
+ 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */,
+ );
+ name = BareSampleApp;
+ sourceTree = "";
+ };
+ 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
+ 81B1527D0EFDD7F0EFC2132C /* Pods_BareSampleApp.framework */,
+ 6CE1A5309DCF9CAAB94FDA1A /* Pods_BareSampleApp_BareSampleAppTests.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = Libraries;
+ sourceTree = "";
+ };
+ 83CBB9F61A601CBA00E9B192 = {
+ isa = PBXGroup;
+ children = (
+ 13B07FAE1A68108700A75B9A /* BareSampleApp */,
+ 832341AE1AAA6A7D00B99B32 /* Libraries */,
+ 00E356EF1AD99517003FC87E /* BareSampleAppTests */,
+ 83CBBA001A601CBA00E9B192 /* Products */,
+ 2D16E6871FA4F8E400B85C8A /* Frameworks */,
+ BBD78D7AC51CEA395F1C20DB /* Pods */,
+ );
+ indentWidth = 2;
+ sourceTree = "";
+ tabWidth = 2;
+ usesTabs = 0;
+ };
+ 83CBBA001A601CBA00E9B192 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 13B07F961A680F5B00A75B9A /* BareSampleApp.app */,
+ 00E356EE1AD99517003FC87E /* BareSampleAppTests.xctest */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ BBD78D7AC51CEA395F1C20DB /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ 3B4392A12AC88292D35C810B /* Pods-BareSampleApp.debug.xcconfig */,
+ 5709B34CF0A7D63546082F79 /* Pods-BareSampleApp.release.xcconfig */,
+ 5B7EB9410499542E8C5724F5 /* Pods-BareSampleApp-BareSampleAppTests.debug.xcconfig */,
+ 89C6BE57DB24E9ADA2F236DE /* Pods-BareSampleApp-BareSampleAppTests.release.xcconfig */,
+ );
+ path = Pods;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 00E356ED1AD99517003FC87E /* BareSampleAppTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "BareSampleAppTests" */;
+ buildPhases = (
+ A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */,
+ 00E356EA1AD99517003FC87E /* Sources */,
+ 00E356EB1AD99517003FC87E /* Frameworks */,
+ 00E356EC1AD99517003FC87E /* Resources */,
+ C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */,
+ F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 00E356F51AD99517003FC87E /* PBXTargetDependency */,
+ );
+ name = BareSampleAppTests;
+ productName = BareSampleAppTests;
+ productReference = 00E356EE1AD99517003FC87E /* BareSampleAppTests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
+ 13B07F861A680F5B00A75B9A /* BareSampleApp */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "BareSampleApp" */;
+ buildPhases = (
+ C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */,
+ 13B07F871A680F5B00A75B9A /* Sources */,
+ 13B07F8C1A680F5B00A75B9A /* Frameworks */,
+ 13B07F8E1A680F5B00A75B9A /* Resources */,
+ 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
+ 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */,
+ E235C05ADACE081382539298 /* [CP] Copy Pods Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = BareSampleApp;
+ productName = BareSampleApp;
+ productReference = 13B07F961A680F5B00A75B9A /* BareSampleApp.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 83CBB9F71A601CBA00E9B192 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 1210;
+ TargetAttributes = {
+ 00E356ED1AD99517003FC87E = {
+ CreatedOnToolsVersion = 6.2;
+ TestTargetID = 13B07F861A680F5B00A75B9A;
+ };
+ 13B07F861A680F5B00A75B9A = {
+ LastSwiftMigration = 1120;
+ };
+ };
+ };
+ buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "BareSampleApp" */;
+ compatibilityVersion = "Xcode 12.0";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ Base,
+ );
+ mainGroup = 83CBB9F61A601CBA00E9B192;
+ productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 13B07F861A680F5B00A75B9A /* BareSampleApp */,
+ 00E356ED1AD99517003FC87E /* BareSampleAppTests */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 00E356EC1AD99517003FC87E /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 13B07F8E1A680F5B00A75B9A /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
+ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
+ 0BF9353BAD5BF435417AA68B /* PrivacyInfo.xcprivacy in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "$(SRCROOT)/.xcode.env.local",
+ "$(SRCROOT)/.xcode.env",
+ );
+ name = "Bundle React Native code and images";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
+ };
+ 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-BareSampleApp/Pods-BareSampleApp-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-BareSampleApp/Pods-BareSampleApp-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BareSampleApp/Pods-BareSampleApp-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-BareSampleApp-BareSampleAppTests-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-BareSampleApp-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-BareSampleApp-BareSampleAppTests/Pods-BareSampleApp-BareSampleAppTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-BareSampleApp-BareSampleAppTests/Pods-BareSampleApp-BareSampleAppTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BareSampleApp-BareSampleAppTests/Pods-BareSampleApp-BareSampleAppTests-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-BareSampleApp/Pods-BareSampleApp-resources-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-BareSampleApp/Pods-BareSampleApp-resources-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BareSampleApp/Pods-BareSampleApp-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-BareSampleApp-BareSampleAppTests/Pods-BareSampleApp-BareSampleAppTests-resources-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-BareSampleApp-BareSampleAppTests/Pods-BareSampleApp-BareSampleAppTests-resources-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BareSampleApp-BareSampleAppTests/Pods-BareSampleApp-BareSampleAppTests-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 00E356EA1AD99517003FC87E /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 00E356F31AD99517003FC87E /* BareSampleAppTests.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 13B07F871A680F5B00A75B9A /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
+ 13B07FC11A68108700A75B9A /* main.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 13B07F861A680F5B00A75B9A /* BareSampleApp */;
+ targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 00E356F61AD99517003FC87E /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-BareSampleApp-BareSampleAppTests.debug.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ INFOPLIST_FILE = BareSampleAppTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.1;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ OTHER_LDFLAGS = (
+ "-ObjC",
+ "-lc++",
+ "$(inherited)",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.adobe.BareSampleApplication;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BareSampleApp.app/BareSampleApp";
+ };
+ name = Debug;
+ };
+ 00E356F71AD99517003FC87E /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-BareSampleApp-BareSampleAppTests.release.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ COPY_PHASE_STRIP = NO;
+ INFOPLIST_FILE = BareSampleAppTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.1;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ OTHER_LDFLAGS = (
+ "-ObjC",
+ "-lc++",
+ "$(inherited)",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.adobe.BareSampleApplication;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BareSampleApp.app/BareSampleApp";
+ };
+ name = Release;
+ };
+ 13B07F941A680F5B00A75B9A /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-BareSampleApp.debug.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
+ CURRENT_PROJECT_VERSION = 1;
+ ENABLE_BITCODE = NO;
+ INFOPLIST_FILE = BareSampleApp/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.1;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ MARKETING_VERSION = 1.0;
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.adobe.BareSampleApplication;
+ PRODUCT_NAME = BareSampleApp;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Debug;
+ };
+ 13B07F951A680F5B00A75B9A /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-BareSampleApp.release.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
+ CURRENT_PROJECT_VERSION = 1;
+ INFOPLIST_FILE = BareSampleApp/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.1;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ MARKETING_VERSION = 1.0;
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = com.adobe.BareSampleApplication;
+ PRODUCT_NAME = BareSampleApp;
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Release;
+ };
+ 83CBBA201A601CBA00E9B192 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "c++20";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
+ );
+ IPHONEOS_DEPLOYMENT_TARGET = 15.1;
+ LD_RUNPATH_SEARCH_PATHS = (
+ /usr/lib/swift,
+ "$(inherited)",
+ );
+ LIBRARY_SEARCH_PATHS = (
+ "\"$(SDKROOT)/usr/lib/swift\"",
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
+ "\"$(inherited)\"",
+ );
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_CPLUSPLUSFLAGS = (
+ "$(OTHER_CFLAGS)",
+ "-DFOLLY_NO_CONFIG",
+ "-DFOLLY_MOBILE=1",
+ "-DFOLLY_USE_LIBCPP=1",
+ "-DFOLLY_CFG_NO_COROUTINES=1",
+ "-DFOLLY_HAVE_CLOCK_GETTIME=1",
+ );
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ " ",
+ );
+ REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
+ SDKROOT = iphoneos;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
+ USE_HERMES = true;
+ };
+ name = Debug;
+ };
+ 83CBBA211A601CBA00E9B192 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "c++20";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
+ );
+ IPHONEOS_DEPLOYMENT_TARGET = 15.1;
+ LD_RUNPATH_SEARCH_PATHS = (
+ /usr/lib/swift,
+ "$(inherited)",
+ );
+ LIBRARY_SEARCH_PATHS = (
+ "\"$(SDKROOT)/usr/lib/swift\"",
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
+ "\"$(inherited)\"",
+ );
+ MTL_ENABLE_DEBUG_INFO = NO;
+ OTHER_CPLUSPLUSFLAGS = (
+ "$(OTHER_CFLAGS)",
+ "-DFOLLY_NO_CONFIG",
+ "-DFOLLY_MOBILE=1",
+ "-DFOLLY_USE_LIBCPP=1",
+ "-DFOLLY_CFG_NO_COROUTINES=1",
+ "-DFOLLY_HAVE_CLOCK_GETTIME=1",
+ );
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ " ",
+ );
+ REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
+ SDKROOT = iphoneos;
+ USE_HERMES = true;
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "BareSampleAppTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 00E356F61AD99517003FC87E /* Debug */,
+ 00E356F71AD99517003FC87E /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "BareSampleApp" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 13B07F941A680F5B00A75B9A /* Debug */,
+ 13B07F951A680F5B00A75B9A /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "BareSampleApp" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 83CBBA201A601CBA00E9B192 /* Debug */,
+ 83CBBA211A601CBA00E9B192 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
+}
diff --git a/apps/BareSampleApp/ios/BareSampleApp.xcodeproj/xcshareddata/xcschemes/BareSampleApp.xcscheme b/apps/BareSampleApp/ios/BareSampleApp.xcodeproj/xcshareddata/xcschemes/BareSampleApp.xcscheme
new file mode 100644
index 000000000..de97592d6
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp.xcodeproj/xcshareddata/xcschemes/BareSampleApp.xcscheme
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/BareSampleApp/ios/BareSampleApp.xcodeproj/xcshareddata/xcschemes/BareSampleApp76.xcscheme b/apps/BareSampleApp/ios/BareSampleApp.xcodeproj/xcshareddata/xcschemes/BareSampleApp76.xcscheme
new file mode 100644
index 000000000..de97592d6
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp.xcodeproj/xcshareddata/xcschemes/BareSampleApp76.xcscheme
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/BareSampleApp/ios/BareSampleApp.xcworkspace/contents.xcworkspacedata b/apps/BareSampleApp/ios/BareSampleApp.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 000000000..897a32c34
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/apps/BareSampleApp/ios/BareSampleApp/AppDelegate.h b/apps/BareSampleApp/ios/BareSampleApp/AppDelegate.h
new file mode 100644
index 000000000..5d2808256
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp/AppDelegate.h
@@ -0,0 +1,6 @@
+#import
+#import
+
+@interface AppDelegate : RCTAppDelegate
+
+@end
diff --git a/apps/BareSampleApp/ios/BareSampleApp/AppDelegate.mm b/apps/BareSampleApp/ios/BareSampleApp/AppDelegate.mm
new file mode 100644
index 000000000..c3912b430
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp/AppDelegate.mm
@@ -0,0 +1,31 @@
+#import "AppDelegate.h"
+
+#import
+
+@implementation AppDelegate
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ self.moduleName = @"BareSampleApp";
+ // You can add your custom initial props in the dictionary below.
+ // They will be passed down to the ViewController used by React Native.
+ self.initialProps = @{};
+
+ return [super application:application didFinishLaunchingWithOptions:launchOptions];
+}
+
+- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
+{
+ return [self bundleURL];
+}
+
+- (NSURL *)bundleURL
+{
+#if DEBUG
+ return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
+#else
+ return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
+#endif
+}
+
+@end
diff --git a/apps/BareSampleApp/ios/BareSampleApp/Images.xcassets/AppIcon.appiconset/Contents.json b/apps/BareSampleApp/ios/BareSampleApp/Images.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 000000000..81213230d
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,53 @@
+{
+ "images" : [
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/apps/BareSampleApp/ios/BareSampleApp/Images.xcassets/Contents.json b/apps/BareSampleApp/ios/BareSampleApp/Images.xcassets/Contents.json
new file mode 100644
index 000000000..2d92bd53f
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp/Images.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
diff --git a/apps/BareSampleApp/ios/BareSampleApp/Info.plist b/apps/BareSampleApp/ios/BareSampleApp/Info.plist
new file mode 100644
index 000000000..9e7e2ae1a
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp/Info.plist
@@ -0,0 +1,52 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleDisplayName
+ BareSampleApp
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ $(MARKETING_VERSION)
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+ LSRequiresIPhoneOS
+
+ NSAppTransportSecurity
+
+
+ NSAllowsArbitraryLoads
+
+ NSAllowsLocalNetworking
+
+
+ NSLocationWhenInUseUsageDescription
+
+ UILaunchStoryboardName
+ LaunchScreen
+ UIRequiredDeviceCapabilities
+
+ arm64
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UIViewControllerBasedStatusBarAppearance
+
+
+
diff --git a/apps/BareSampleApp/ios/BareSampleApp/LaunchScreen.storyboard b/apps/BareSampleApp/ios/BareSampleApp/LaunchScreen.storyboard
new file mode 100644
index 000000000..a9ffaef22
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp/LaunchScreen.storyboard
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/BareSampleApp/ios/BareSampleApp/PrivacyInfo.xcprivacy b/apps/BareSampleApp/ios/BareSampleApp/PrivacyInfo.xcprivacy
new file mode 100644
index 000000000..5cae44312
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp/PrivacyInfo.xcprivacy
@@ -0,0 +1,38 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ 1C8F.1
+ CA92.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryFileTimestamp
+ NSPrivacyAccessedAPITypeReasons
+
+ C617.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategorySystemBootTime
+ NSPrivacyAccessedAPITypeReasons
+
+ 35F9.1
+
+
+
+ NSPrivacyCollectedDataTypes
+
+ NSPrivacyTracking
+
+
+
diff --git a/apps/BareSampleApp/ios/BareSampleApp/main.m b/apps/BareSampleApp/ios/BareSampleApp/main.m
new file mode 100644
index 000000000..d645c7246
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleApp/main.m
@@ -0,0 +1,10 @@
+#import
+
+#import "AppDelegate.h"
+
+int main(int argc, char *argv[])
+{
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+ }
+}
diff --git a/apps/BareSampleApp/ios/BareSampleAppTests/BareSampleApp76Tests.m b/apps/BareSampleApp/ios/BareSampleAppTests/BareSampleApp76Tests.m
new file mode 100644
index 000000000..ac56771d3
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleAppTests/BareSampleApp76Tests.m
@@ -0,0 +1,66 @@
+#import
+#import
+
+#import
+#import
+
+#define TIMEOUT_SECONDS 600
+#define TEXT_TO_LOOK_FOR @"Welcome to React"
+
+@interface BareSampleAppTests : XCTestCase
+
+@end
+
+@implementation BareSampleAppTests
+
+- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test
+{
+ if (test(view)) {
+ return YES;
+ }
+ for (UIView *subview in [view subviews]) {
+ if ([self findSubviewInView:subview matching:test]) {
+ return YES;
+ }
+ }
+ return NO;
+}
+
+- (void)testRendersWelcomeScreen
+{
+ UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
+ BOOL foundElement = NO;
+
+ __block NSString *redboxError = nil;
+#ifdef DEBUG
+ RCTSetLogFunction(
+ ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
+ if (level >= RCTLogLevelError) {
+ redboxError = message;
+ }
+ });
+#endif
+
+ while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
+ [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
+ [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
+
+ foundElement = [self findSubviewInView:vc.view
+ matching:^BOOL(UIView *view) {
+ if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
+ return YES;
+ }
+ return NO;
+ }];
+ }
+
+#ifdef DEBUG
+ RCTSetLogFunction(RCTDefaultLogFunction);
+#endif
+
+ XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
+ XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
+}
+
+@end
diff --git a/apps/BareSampleApp/ios/BareSampleAppTests/Info.plist b/apps/BareSampleApp/ios/BareSampleAppTests/Info.plist
new file mode 100644
index 000000000..ba72822e8
--- /dev/null
+++ b/apps/BareSampleApp/ios/BareSampleAppTests/Info.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1
+
+
diff --git a/apps/BareSampleApp/ios/Podfile b/apps/BareSampleApp/ios/Podfile
new file mode 100644
index 000000000..cf55aa016
--- /dev/null
+++ b/apps/BareSampleApp/ios/Podfile
@@ -0,0 +1,61 @@
+# Resolve react_native_pods.rb with node to allow for hoisting
+require Pod::Executable.execute_command('node', ['-p',
+ 'require.resolve(
+ "react-native/scripts/react_native_pods.rb",
+ {paths: [process.argv[1]]},
+ )', __dir__]).strip
+
+require 'json'
+
+platform :ios, min_ios_version_supported
+
+# Old-arch interop path for @adobe/react-native-aepoptimize (RN 0.76).
+# Matches Android USE_INTEROP_ROOT=true in android/build.gradle.
+ENV['USE_INTEROP_ROOT'] ||= '1'
+
+podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json')))
+new_arch_enabled = podfile_properties.fetch('newArchEnabled', 'false') == 'true'
+ENV['RCT_NEW_ARCH_ENABLED'] = new_arch_enabled ? '1' : '0'
+
+prepare_react_native_project!
+
+# Required for AEP SDK with New Architecture - use static frameworks
+use_frameworks! :linkage => :static
+
+target 'BareSampleApp' do
+ config = use_native_modules!
+
+ use_react_native!(
+ :path => config[:reactNativePath],
+ :app_path => "#{Pod::Config.instance.installation_root}/..",
+ :new_arch_enabled => new_arch_enabled,
+ :fabric_enabled => new_arch_enabled
+ )
+
+ target 'BareSampleAppTests' do
+ inherit! :complete
+ end
+
+ post_install do |installer|
+ react_native_post_install(
+ installer,
+ config[:reactNativePath],
+ :mac_catalyst_enabled => false
+ )
+
+ installer.pods_project.targets.each do |t|
+ t.build_configurations.each do |bc|
+ bc.build_settings['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
+ if t.name == 'RNScreens'
+ bc.build_settings['HEADER_SEARCH_PATHS'] ||= '$(inherited)'
+ bc.build_settings['HEADER_SEARCH_PATHS'] << ' "$(PODS_TARGET_SRCROOT)/common/cpp/react/renderer/components/rnscreens"'
+ end
+ end
+ if t.name.start_with?("AEP")
+ t.build_configurations.each do |bc|
+ bc.build_settings['OTHER_SWIFT_FLAGS'] = '$(inherited) -no-verify-emitted-module-interface'
+ end
+ end
+ end
+ end
+end
diff --git a/apps/BareSampleApp/ios/Podfile.lock b/apps/BareSampleApp/ios/Podfile.lock
new file mode 100644
index 000000000..383dbad1e
--- /dev/null
+++ b/apps/BareSampleApp/ios/Podfile.lock
@@ -0,0 +1,2279 @@
+PODS:
+ - AEPAssurance (5.0.3):
+ - AEPCore (< 6.0.0, >= 5.0.0)
+ - AEPServices (< 6.0.0, >= 5.0.0)
+ - AEPCampaignClassic (5.0.0):
+ - AEPCore (< 6.0.0, >= 5.0.0)
+ - AEPServices (< 6.0.0, >= 5.0.0)
+ - AEPCore (5.8.0):
+ - AEPRulesEngine (< 6.0.0, >= 5.0.0)
+ - AEPServices (< 6.0.0, >= 5.8.0)
+ - AEPEdge (5.0.3):
+ - AEPCore (< 6.0.0, >= 5.3.1)
+ - AEPEdgeIdentity (< 6.0.0, >= 5.0.0)
+ - AEPEdgeBridge (5.1.0):
+ - AEPCore (< 6.0.0, >= 5.0.0)
+ - AEPEdgeConsent (5.0.1):
+ - AEPCore (< 6.0.0, >= 5.0.0)
+ - AEPEdge (< 6.0.0, >= 5.0.0)
+ - AEPEdgeIdentity (5.0.0):
+ - AEPCore (< 6.0.0, >= 5.0.0)
+ - AEPIdentity (5.8.0):
+ - AEPCore (< 6.0.0, >= 5.8.0)
+ - AEPLifecycle (5.8.0):
+ - AEPCore (< 6.0.0, >= 5.8.0)
+ - AEPMessaging (5.13.0):
+ - AEPCore (< 6.0.0, >= 5.8.0)
+ - AEPEdge (< 6.0.0, >= 5.0.2)
+ - AEPEdgeIdentity (< 6.0.0, >= 5.0.0)
+ - AEPMessagingLiveActivity (< 6.0.0, >= 5.7.0)
+ - AEPServices (< 6.0.0, >= 5.8.0)
+ - AEPMessagingLiveActivity (5.13.0)
+ - AEPOptimize (5.6.1):
+ - AEPCore (< 6.0.0, >= 5.4.0)
+ - AEPEdge (< 6.0.0, >= 5.0.0)
+ - AEPPlaces (5.0.0):
+ - AEPCore (< 6.0.0, >= 5.0.0)
+ - AEPServices (< 6.0.0, >= 5.0.0)
+ - AEPRulesEngine (5.0.0)
+ - AEPServices (5.8.0)
+ - AEPSignal (5.8.0):
+ - AEPCore (< 6.0.0, >= 5.8.0)
+ - AEPTarget (5.1.0):
+ - AEPCore (< 6.0.0, >= 5.0.0)
+ - AEPUserProfile (5.0.0):
+ - AEPCore (< 6.0.0, >= 5.0.0)
+ - boost (1.84.0)
+ - DoubleConversion (1.1.6)
+ - FBLazyVector (0.76.6)
+ - fmt (9.1.0)
+ - glog (0.3.5)
+ - hermes-engine (0.76.6):
+ - hermes-engine/Pre-built (= 0.76.6)
+ - hermes-engine/Pre-built (0.76.6)
+ - RCT-Folly (2024.01.01.00):
+ - boost
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - RCT-Folly/Default (= 2024.01.01.00)
+ - RCT-Folly/Default (2024.01.01.00):
+ - boost
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - RCT-Folly/Fabric (2024.01.01.00):
+ - boost
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - RCTAEPAssurance (7.0.0):
+ - AEPAssurance (< 6.0.0, >= 5.0.0)
+ - React
+ - RCTAEPCampaignClassic (7.0.0):
+ - AEPCampaignClassic (< 6.0.0, >= 5.0.0)
+ - React
+ - RCTAEPCore (7.0.0):
+ - AEPCore (< 6.0.0, >= 5.4.0)
+ - AEPIdentity (< 6.0.0, >= 5.4.0)
+ - AEPLifecycle (< 6.0.0, >= 5.4.0)
+ - AEPSignal (< 6.0.0, >= 5.4.0)
+ - React
+ - RCTAEPEdge (7.0.0):
+ - AEPEdge (< 6.0.0, >= 5.0.0)
+ - React
+ - RCTAEPEdgeBridge (7.0.1):
+ - AEPEdgeBridge (< 6.0.0, >= 5.0.0)
+ - React
+ - RCTAEPEdgeConsent (7.0.0):
+ - AEPEdgeConsent (< 6.0.0, >= 5.0.0)
+ - React
+ - RCTAEPEdgeIdentity (7.0.0):
+ - AEPEdgeIdentity (< 6.0.0, >= 5.0.0)
+ - React
+ - RCTAEPMessaging (7.4.0):
+ - AEPMessaging (< 6.0.0, >= 5.12.0)
+ - React
+ - RCTAEPOptimize (7.1.1):
+ - AEPOptimize (< 6.0.0, >= 5.0.0)
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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
+ - RCTAEPPlaces (7.0.1):
+ - AEPPlaces (< 6.0.0, >= 5.0.0)
+ - React
+ - RCTAEPTarget (7.0.0):
+ - AEPTarget (< 6.0.0, >= 5.0.0)
+ - React
+ - RCTAEPUserProfile (7.0.0):
+ - AEPUserProfile (< 6.0.0, >= 5.0.0)
+ - React
+ - RCTDeprecation (0.76.6)
+ - RCTRequired (0.76.6)
+ - RCTTypeSafety (0.76.6):
+ - FBLazyVector (= 0.76.6)
+ - RCTRequired (= 0.76.6)
+ - React-Core (= 0.76.6)
+ - React (0.76.6):
+ - React-Core (= 0.76.6)
+ - React-Core/DevSupport (= 0.76.6)
+ - React-Core/RCTWebSocket (= 0.76.6)
+ - React-RCTActionSheet (= 0.76.6)
+ - React-RCTAnimation (= 0.76.6)
+ - React-RCTBlob (= 0.76.6)
+ - React-RCTImage (= 0.76.6)
+ - React-RCTLinking (= 0.76.6)
+ - React-RCTNetwork (= 0.76.6)
+ - React-RCTSettings (= 0.76.6)
+ - React-RCTText (= 0.76.6)
+ - React-RCTVibration (= 0.76.6)
+ - React-callinvoker (0.76.6)
+ - React-Core (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default (= 0.76.6)
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/CoreModulesHeaders (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/Default (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/DevSupport (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default (= 0.76.6)
+ - React-Core/RCTWebSocket (= 0.76.6)
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/RCTActionSheetHeaders (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/RCTAnimationHeaders (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/RCTBlobHeaders (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/RCTImageHeaders (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/RCTLinkingHeaders (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/RCTNetworkHeaders (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/RCTSettingsHeaders (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/RCTTextHeaders (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/RCTVibrationHeaders (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-Core/RCTWebSocket (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTDeprecation
+ - React-Core/Default (= 0.76.6)
+ - React-cxxreact
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-perflogger
+ - React-runtimescheduler
+ - React-utils
+ - SocketRocket (= 0.7.1)
+ - Yoga
+ - React-CoreModules (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTTypeSafety (= 0.76.6)
+ - React-Core/CoreModulesHeaders (= 0.76.6)
+ - React-jsi (= 0.76.6)
+ - React-jsinspector
+ - React-NativeModulesApple
+ - React-RCTBlob
+ - React-RCTImage (= 0.76.6)
+ - ReactCodegen
+ - ReactCommon
+ - SocketRocket (= 0.7.1)
+ - React-cxxreact (0.76.6):
+ - boost
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - React-callinvoker (= 0.76.6)
+ - React-debug (= 0.76.6)
+ - React-jsi (= 0.76.6)
+ - React-jsinspector
+ - React-logger (= 0.76.6)
+ - React-perflogger (= 0.76.6)
+ - React-runtimeexecutor (= 0.76.6)
+ - React-timing (= 0.76.6)
+ - React-debug (0.76.6)
+ - React-defaultsnativemodule (0.76.6):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-debug
+ - React-domnativemodule
+ - React-Fabric
+ - React-featureflags
+ - React-featureflagsnativemodule
+ - React-graphics
+ - React-idlecallbacksnativemodule
+ - React-ImageManager
+ - React-microtasksnativemodule
+ - React-NativeModulesApple
+ - React-RCTFabric
+ - React-rendererdebug
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-domnativemodule (0.76.6):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-debug
+ - React-Fabric
+ - React-FabricComponents
+ - React-featureflags
+ - React-graphics
+ - React-ImageManager
+ - React-NativeModulesApple
+ - React-RCTFabric
+ - React-rendererdebug
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-Fabric (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric/animations (= 0.76.6)
+ - React-Fabric/attributedstring (= 0.76.6)
+ - React-Fabric/componentregistry (= 0.76.6)
+ - React-Fabric/componentregistrynative (= 0.76.6)
+ - React-Fabric/components (= 0.76.6)
+ - React-Fabric/core (= 0.76.6)
+ - React-Fabric/dom (= 0.76.6)
+ - React-Fabric/imagemanager (= 0.76.6)
+ - React-Fabric/leakchecker (= 0.76.6)
+ - React-Fabric/mounting (= 0.76.6)
+ - React-Fabric/observers (= 0.76.6)
+ - React-Fabric/scheduler (= 0.76.6)
+ - React-Fabric/telemetry (= 0.76.6)
+ - React-Fabric/templateprocessor (= 0.76.6)
+ - React-Fabric/uimanager (= 0.76.6)
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/animations (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/attributedstring (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/componentregistry (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/componentregistrynative (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric/components/legacyviewmanagerinterop (= 0.76.6)
+ - React-Fabric/components/root (= 0.76.6)
+ - React-Fabric/components/view (= 0.76.6)
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/legacyviewmanagerinterop (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/root (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/components/view (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-Fabric/core (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/dom (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/imagemanager (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/leakchecker (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/mounting (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/observers (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric/observers/events (= 0.76.6)
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/observers/events (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/scheduler (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric/observers/events
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-performancetimeline
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/telemetry (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/templateprocessor (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/uimanager (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric/uimanager/consistency (= 0.76.6)
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererconsistency
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-Fabric/uimanager/consistency (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererconsistency
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCommon/turbomodule/core
+ - React-FabricComponents (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-FabricComponents/components (= 0.76.6)
+ - React-FabricComponents/textlayoutmanager (= 0.76.6)
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricComponents/components (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-FabricComponents/components/inputaccessory (= 0.76.6)
+ - React-FabricComponents/components/iostextinput (= 0.76.6)
+ - React-FabricComponents/components/modal (= 0.76.6)
+ - React-FabricComponents/components/rncore (= 0.76.6)
+ - React-FabricComponents/components/safeareaview (= 0.76.6)
+ - React-FabricComponents/components/scrollview (= 0.76.6)
+ - React-FabricComponents/components/text (= 0.76.6)
+ - React-FabricComponents/components/textinput (= 0.76.6)
+ - React-FabricComponents/components/unimplementedview (= 0.76.6)
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricComponents/components/inputaccessory (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricComponents/components/iostextinput (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricComponents/components/modal (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricComponents/components/rncore (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricComponents/components/safeareaview (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricComponents/components/scrollview (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricComponents/components/text (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricComponents/components/textinput (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricComponents/components/unimplementedview (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricComponents/textlayoutmanager (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-logger
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-FabricImage (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - RCTRequired (= 0.76.6)
+ - RCTTypeSafety (= 0.76.6)
+ - React-Fabric
+ - React-graphics
+ - React-ImageManager
+ - React-jsi
+ - React-jsiexecutor (= 0.76.6)
+ - React-logger
+ - React-rendererdebug
+ - React-utils
+ - ReactCommon
+ - Yoga
+ - React-featureflags (0.76.6)
+ - React-featureflagsnativemodule (0.76.6):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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-graphics (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - React-jsi
+ - React-jsiexecutor
+ - React-utils
+ - React-hermes (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - React-cxxreact (= 0.76.6)
+ - React-jsi
+ - React-jsiexecutor (= 0.76.6)
+ - React-jsinspector
+ - React-perflogger (= 0.76.6)
+ - React-runtimeexecutor
+ - React-idlecallbacksnativemodule (0.76.6):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-ImageManager
+ - React-NativeModulesApple
+ - React-RCTFabric
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - React-ImageManager (0.76.6):
+ - glog
+ - RCT-Folly/Fabric
+ - React-Core/Default
+ - React-debug
+ - React-Fabric
+ - React-graphics
+ - React-rendererdebug
+ - React-utils
+ - React-jserrorhandler (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - React-cxxreact
+ - React-debug
+ - React-jsi
+ - React-jsi (0.76.6):
+ - boost
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - React-jsiexecutor (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - React-cxxreact (= 0.76.6)
+ - React-jsi (= 0.76.6)
+ - React-jsinspector
+ - React-perflogger (= 0.76.6)
+ - React-jsinspector (0.76.6):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - React-featureflags
+ - React-jsi
+ - React-perflogger (= 0.76.6)
+ - React-runtimeexecutor (= 0.76.6)
+ - React-jsitracing (0.76.6):
+ - React-jsi
+ - React-logger (0.76.6):
+ - glog
+ - React-Mapbuffer (0.76.6):
+ - glog
+ - React-debug
+ - React-microtasksnativemodule (0.76.6):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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 (4.14.1):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-ImageManager
+ - react-native-safe-area-context/common (= 4.14.1)
+ - react-native-safe-area-context/fabric (= 4.14.1)
+ - React-NativeModulesApple
+ - React-RCTFabric
+ - React-rendererdebug
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - react-native-safe-area-context/common (4.14.1):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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 (4.14.1):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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.17.0):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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-nativeconfig (0.76.6)
+ - React-NativeModulesApple (0.76.6):
+ - glog
+ - hermes-engine
+ - React-callinvoker
+ - React-Core
+ - React-cxxreact
+ - React-jsi
+ - React-jsinspector
+ - React-runtimeexecutor
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - React-perflogger (0.76.6):
+ - DoubleConversion
+ - RCT-Folly (= 2024.01.01.00)
+ - React-performancetimeline (0.76.6):
+ - RCT-Folly (= 2024.01.01.00)
+ - React-cxxreact
+ - React-timing
+ - React-RCTActionSheet (0.76.6):
+ - React-Core/RCTActionSheetHeaders (= 0.76.6)
+ - React-RCTAnimation (0.76.6):
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTTypeSafety
+ - React-Core/RCTAnimationHeaders
+ - React-jsi
+ - React-NativeModulesApple
+ - ReactCodegen
+ - ReactCommon
+ - React-RCTAppDelegate (0.76.6):
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-CoreModules
+ - React-debug
+ - React-defaultsnativemodule
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-hermes
+ - React-nativeconfig
+ - React-NativeModulesApple
+ - React-RCTFabric
+ - React-RCTImage
+ - React-RCTNetwork
+ - React-rendererdebug
+ - React-RuntimeApple
+ - React-RuntimeCore
+ - React-RuntimeHermes
+ - React-runtimescheduler
+ - React-utils
+ - ReactCodegen
+ - ReactCommon
+ - React-RCTBlob (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - React-Core/RCTBlobHeaders
+ - React-Core/RCTWebSocket
+ - React-jsi
+ - React-jsinspector
+ - React-NativeModulesApple
+ - React-RCTNetwork
+ - ReactCodegen
+ - ReactCommon
+ - React-RCTFabric (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - React-Core
+ - React-debug
+ - React-Fabric
+ - React-FabricComponents
+ - React-FabricImage
+ - React-featureflags
+ - React-graphics
+ - React-ImageManager
+ - React-jsi
+ - React-jsinspector
+ - React-nativeconfig
+ - React-performancetimeline
+ - React-RCTImage
+ - React-RCTText
+ - React-rendererconsistency
+ - React-rendererdebug
+ - React-runtimescheduler
+ - React-utils
+ - Yoga
+ - React-RCTImage (0.76.6):
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTTypeSafety
+ - React-Core/RCTImageHeaders
+ - React-jsi
+ - React-NativeModulesApple
+ - React-RCTNetwork
+ - ReactCodegen
+ - ReactCommon
+ - React-RCTLinking (0.76.6):
+ - React-Core/RCTLinkingHeaders (= 0.76.6)
+ - React-jsi (= 0.76.6)
+ - React-NativeModulesApple
+ - ReactCodegen
+ - ReactCommon
+ - ReactCommon/turbomodule/core (= 0.76.6)
+ - React-RCTNetwork (0.76.6):
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTTypeSafety
+ - React-Core/RCTNetworkHeaders
+ - React-jsi
+ - React-NativeModulesApple
+ - ReactCodegen
+ - ReactCommon
+ - React-RCTSettings (0.76.6):
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTTypeSafety
+ - React-Core/RCTSettingsHeaders
+ - React-jsi
+ - React-NativeModulesApple
+ - ReactCodegen
+ - ReactCommon
+ - React-RCTText (0.76.6):
+ - React-Core/RCTTextHeaders (= 0.76.6)
+ - Yoga
+ - React-RCTVibration (0.76.6):
+ - RCT-Folly (= 2024.01.01.00)
+ - React-Core/RCTVibrationHeaders
+ - React-jsi
+ - React-NativeModulesApple
+ - ReactCodegen
+ - ReactCommon
+ - React-rendererconsistency (0.76.6)
+ - React-rendererdebug (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - RCT-Folly (= 2024.01.01.00)
+ - React-debug
+ - React-rncore (0.76.6)
+ - React-RuntimeApple (0.76.6):
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - React-callinvoker
+ - React-Core/Default
+ - React-CoreModules
+ - React-cxxreact
+ - React-jserrorhandler
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-Mapbuffer
+ - React-NativeModulesApple
+ - React-RCTFabric
+ - React-RuntimeCore
+ - React-runtimeexecutor
+ - React-RuntimeHermes
+ - React-runtimescheduler
+ - React-utils
+ - React-RuntimeCore (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - React-cxxreact
+ - React-featureflags
+ - React-jserrorhandler
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-performancetimeline
+ - React-runtimeexecutor
+ - React-runtimescheduler
+ - React-utils
+ - React-runtimeexecutor (0.76.6):
+ - React-jsi (= 0.76.6)
+ - React-RuntimeHermes (0.76.6):
+ - hermes-engine
+ - RCT-Folly/Fabric (= 2024.01.01.00)
+ - React-featureflags
+ - React-hermes
+ - React-jsi
+ - React-jsinspector
+ - React-jsitracing
+ - React-nativeconfig
+ - React-RuntimeCore
+ - React-utils
+ - React-runtimescheduler (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - React-callinvoker
+ - React-cxxreact
+ - React-debug
+ - React-featureflags
+ - React-jsi
+ - React-performancetimeline
+ - React-rendererconsistency
+ - React-rendererdebug
+ - React-runtimeexecutor
+ - React-timing
+ - React-utils
+ - React-timing (0.76.6)
+ - React-utils (0.76.6):
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - React-debug
+ - React-jsi (= 0.76.6)
+ - ReactCodegen (0.76.6):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-debug
+ - React-Fabric
+ - React-FabricImage
+ - React-featureflags
+ - React-graphics
+ - React-jsi
+ - React-jsiexecutor
+ - React-NativeModulesApple
+ - React-rendererdebug
+ - React-utils
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - ReactCommon (0.76.6):
+ - ReactCommon/turbomodule (= 0.76.6)
+ - ReactCommon/turbomodule (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - React-callinvoker (= 0.76.6)
+ - React-cxxreact (= 0.76.6)
+ - React-jsi (= 0.76.6)
+ - React-logger (= 0.76.6)
+ - React-perflogger (= 0.76.6)
+ - ReactCommon/turbomodule/bridging (= 0.76.6)
+ - ReactCommon/turbomodule/core (= 0.76.6)
+ - ReactCommon/turbomodule/bridging (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - React-callinvoker (= 0.76.6)
+ - React-cxxreact (= 0.76.6)
+ - React-jsi (= 0.76.6)
+ - React-logger (= 0.76.6)
+ - React-perflogger (= 0.76.6)
+ - ReactCommon/turbomodule/core (0.76.6):
+ - DoubleConversion
+ - fmt (= 9.1.0)
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - React-callinvoker (= 0.76.6)
+ - React-cxxreact (= 0.76.6)
+ - React-debug (= 0.76.6)
+ - React-featureflags (= 0.76.6)
+ - React-jsi (= 0.76.6)
+ - React-logger (= 0.76.6)
+ - React-perflogger (= 0.76.6)
+ - React-utils (= 0.76.6)
+ - RNCAsyncStorage (2.2.0):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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
+ - RNCMaskedView (0.3.2):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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
+ - RNGestureHandler (2.20.2):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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
+ - RNReanimated (3.16.7):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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
+ - RNReanimated/reanimated (= 3.16.7)
+ - RNReanimated/worklets (= 3.16.7)
+ - Yoga
+ - RNReanimated/reanimated (3.16.7):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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
+ - RNReanimated/reanimated/apple (= 3.16.7)
+ - Yoga
+ - RNReanimated/reanimated/apple (3.16.7):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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
+ - RNReanimated/worklets (3.16.7):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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
+ - RNScreens (3.34.1):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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 (= 3.34.1)
+ - Yoga
+ - RNScreens/common (3.34.1):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.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
+ - Yoga
+ - SocketRocket (0.7.1)
+ - Yoga (0.0.0)
+
+DEPENDENCIES:
+ - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
+ - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
+ - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
+ - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`)
+ - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
+ - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
+ - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
+ - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
+ - "RCTAEPAssurance (from `../node_modules/@adobe/react-native-aepassurance`)"
+ - "RCTAEPCampaignClassic (from `../node_modules/@adobe/react-native-aepcampaignclassic`)"
+ - "RCTAEPCore (from `../node_modules/@adobe/react-native-aepcore`)"
+ - "RCTAEPEdge (from `../node_modules/@adobe/react-native-aepedge`)"
+ - "RCTAEPEdgeBridge (from `../node_modules/@adobe/react-native-aepedgebridge`)"
+ - "RCTAEPEdgeConsent (from `../node_modules/@adobe/react-native-aepedgeconsent`)"
+ - "RCTAEPEdgeIdentity (from `../node_modules/@adobe/react-native-aepedgeidentity`)"
+ - "RCTAEPMessaging (from `../node_modules/@adobe/react-native-aepmessaging`)"
+ - "RCTAEPOptimize (from `../node_modules/@adobe/react-native-aepoptimize`)"
+ - "RCTAEPPlaces (from `../node_modules/@adobe/react-native-aepplaces`)"
+ - "RCTAEPTarget (from `../node_modules/@adobe/react-native-aeptarget`)"
+ - "RCTAEPUserProfile (from `../node_modules/@adobe/react-native-aepuserprofile`)"
+ - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`)
+ - RCTRequired (from `../node_modules/react-native/Libraries/Required`)
+ - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
+ - React (from `../node_modules/react-native/`)
+ - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
+ - React-Core (from `../node_modules/react-native/`)
+ - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
+ - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
+ - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
+ - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`)
+ - React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`)
+ - React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`)
+ - React-Fabric (from `../node_modules/react-native/ReactCommon`)
+ - React-FabricComponents (from `../node_modules/react-native/ReactCommon`)
+ - React-FabricImage (from `../node_modules/react-native/ReactCommon`)
+ - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`)
+ - React-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`)
+ - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`)
+ - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`)
+ - React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`)
+ - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`)
+ - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`)
+ - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
+ - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
+ - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`)
+ - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`)
+ - React-logger (from `../node_modules/react-native/ReactCommon/logger`)
+ - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`)
+ - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`)
+ - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
+ - react-native-webview (from `../node_modules/react-native-webview`)
+ - React-nativeconfig (from `../node_modules/react-native/ReactCommon`)
+ - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
+ - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
+ - React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`)
+ - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
+ - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
+ - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`)
+ - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
+ - React-RCTFabric (from `../node_modules/react-native/React`)
+ - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
+ - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
+ - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
+ - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
+ - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
+ - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
+ - React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`)
+ - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`)
+ - React-rncore (from `../node_modules/react-native/ReactCommon`)
+ - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`)
+ - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`)
+ - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
+ - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`)
+ - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
+ - React-timing (from `../node_modules/react-native/ReactCommon/react/timing`)
+ - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
+ - ReactCodegen (from `build/generated/ios`)
+ - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
+ - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)"
+ - "RNCMaskedView (from `../node_modules/@react-native-masked-view/masked-view`)"
+ - RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
+ - RNReanimated (from `../node_modules/react-native-reanimated`)
+ - RNScreens (from `../node_modules/react-native-screens`)
+ - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
+
+SPEC REPOS:
+ trunk:
+ - AEPAssurance
+ - AEPCampaignClassic
+ - AEPCore
+ - AEPEdge
+ - AEPEdgeBridge
+ - AEPEdgeConsent
+ - AEPEdgeIdentity
+ - AEPIdentity
+ - AEPLifecycle
+ - AEPMessaging
+ - AEPMessagingLiveActivity
+ - AEPOptimize
+ - AEPPlaces
+ - AEPRulesEngine
+ - AEPServices
+ - AEPSignal
+ - AEPTarget
+ - AEPUserProfile
+ - SocketRocket
+
+EXTERNAL SOURCES:
+ boost:
+ :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
+ DoubleConversion:
+ :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
+ FBLazyVector:
+ :path: "../node_modules/react-native/Libraries/FBLazyVector"
+ fmt:
+ :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec"
+ glog:
+ :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
+ hermes-engine:
+ :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
+ :tag: hermes-2024-11-12-RNv0.76.2-5b4aa20c719830dcf5684832b89a6edb95ac3d64
+ RCT-Folly:
+ :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
+ RCTAEPAssurance:
+ :path: "../node_modules/@adobe/react-native-aepassurance"
+ RCTAEPCampaignClassic:
+ :path: "../node_modules/@adobe/react-native-aepcampaignclassic"
+ RCTAEPCore:
+ :path: "../node_modules/@adobe/react-native-aepcore"
+ RCTAEPEdge:
+ :path: "../node_modules/@adobe/react-native-aepedge"
+ RCTAEPEdgeBridge:
+ :path: "../node_modules/@adobe/react-native-aepedgebridge"
+ RCTAEPEdgeConsent:
+ :path: "../node_modules/@adobe/react-native-aepedgeconsent"
+ RCTAEPEdgeIdentity:
+ :path: "../node_modules/@adobe/react-native-aepedgeidentity"
+ RCTAEPMessaging:
+ :path: "../node_modules/@adobe/react-native-aepmessaging"
+ RCTAEPOptimize:
+ :path: "../node_modules/@adobe/react-native-aepoptimize"
+ RCTAEPPlaces:
+ :path: "../node_modules/@adobe/react-native-aepplaces"
+ RCTAEPTarget:
+ :path: "../node_modules/@adobe/react-native-aeptarget"
+ RCTAEPUserProfile:
+ :path: "../node_modules/@adobe/react-native-aepuserprofile"
+ RCTDeprecation:
+ :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation"
+ RCTRequired:
+ :path: "../node_modules/react-native/Libraries/Required"
+ RCTTypeSafety:
+ :path: "../node_modules/react-native/Libraries/TypeSafety"
+ React:
+ :path: "../node_modules/react-native/"
+ React-callinvoker:
+ :path: "../node_modules/react-native/ReactCommon/callinvoker"
+ React-Core:
+ :path: "../node_modules/react-native/"
+ React-CoreModules:
+ :path: "../node_modules/react-native/React/CoreModules"
+ React-cxxreact:
+ :path: "../node_modules/react-native/ReactCommon/cxxreact"
+ React-debug:
+ :path: "../node_modules/react-native/ReactCommon/react/debug"
+ React-defaultsnativemodule:
+ :path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults"
+ React-domnativemodule:
+ :path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom"
+ React-Fabric:
+ :path: "../node_modules/react-native/ReactCommon"
+ React-FabricComponents:
+ :path: "../node_modules/react-native/ReactCommon"
+ React-FabricImage:
+ :path: "../node_modules/react-native/ReactCommon"
+ React-featureflags:
+ :path: "../node_modules/react-native/ReactCommon/react/featureflags"
+ React-featureflagsnativemodule:
+ :path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags"
+ React-graphics:
+ :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics"
+ React-hermes:
+ :path: "../node_modules/react-native/ReactCommon/hermes"
+ React-idlecallbacksnativemodule:
+ :path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks"
+ React-ImageManager:
+ :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios"
+ React-jserrorhandler:
+ :path: "../node_modules/react-native/ReactCommon/jserrorhandler"
+ React-jsi:
+ :path: "../node_modules/react-native/ReactCommon/jsi"
+ React-jsiexecutor:
+ :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
+ React-jsinspector:
+ :path: "../node_modules/react-native/ReactCommon/jsinspector-modern"
+ React-jsitracing:
+ :path: "../node_modules/react-native/ReactCommon/hermes/executor/"
+ React-logger:
+ :path: "../node_modules/react-native/ReactCommon/logger"
+ React-Mapbuffer:
+ :path: "../node_modules/react-native/ReactCommon"
+ React-microtasksnativemodule:
+ :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks"
+ react-native-safe-area-context:
+ :path: "../node_modules/react-native-safe-area-context"
+ react-native-webview:
+ :path: "../node_modules/react-native-webview"
+ React-nativeconfig:
+ :path: "../node_modules/react-native/ReactCommon"
+ React-NativeModulesApple:
+ :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios"
+ React-perflogger:
+ :path: "../node_modules/react-native/ReactCommon/reactperflogger"
+ React-performancetimeline:
+ :path: "../node_modules/react-native/ReactCommon/react/performance/timeline"
+ React-RCTActionSheet:
+ :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
+ React-RCTAnimation:
+ :path: "../node_modules/react-native/Libraries/NativeAnimation"
+ React-RCTAppDelegate:
+ :path: "../node_modules/react-native/Libraries/AppDelegate"
+ React-RCTBlob:
+ :path: "../node_modules/react-native/Libraries/Blob"
+ React-RCTFabric:
+ :path: "../node_modules/react-native/React"
+ React-RCTImage:
+ :path: "../node_modules/react-native/Libraries/Image"
+ React-RCTLinking:
+ :path: "../node_modules/react-native/Libraries/LinkingIOS"
+ React-RCTNetwork:
+ :path: "../node_modules/react-native/Libraries/Network"
+ React-RCTSettings:
+ :path: "../node_modules/react-native/Libraries/Settings"
+ React-RCTText:
+ :path: "../node_modules/react-native/Libraries/Text"
+ React-RCTVibration:
+ :path: "../node_modules/react-native/Libraries/Vibration"
+ React-rendererconsistency:
+ :path: "../node_modules/react-native/ReactCommon/react/renderer/consistency"
+ React-rendererdebug:
+ :path: "../node_modules/react-native/ReactCommon/react/renderer/debug"
+ React-rncore:
+ :path: "../node_modules/react-native/ReactCommon"
+ React-RuntimeApple:
+ :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios"
+ React-RuntimeCore:
+ :path: "../node_modules/react-native/ReactCommon/react/runtime"
+ React-runtimeexecutor:
+ :path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
+ React-RuntimeHermes:
+ :path: "../node_modules/react-native/ReactCommon/react/runtime"
+ React-runtimescheduler:
+ :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler"
+ React-timing:
+ :path: "../node_modules/react-native/ReactCommon/react/timing"
+ React-utils:
+ :path: "../node_modules/react-native/ReactCommon/react/utils"
+ ReactCodegen:
+ :path: build/generated/ios
+ ReactCommon:
+ :path: "../node_modules/react-native/ReactCommon"
+ RNCAsyncStorage:
+ :path: "../node_modules/@react-native-async-storage/async-storage"
+ RNCMaskedView:
+ :path: "../node_modules/@react-native-masked-view/masked-view"
+ RNGestureHandler:
+ :path: "../node_modules/react-native-gesture-handler"
+ RNReanimated:
+ :path: "../node_modules/react-native-reanimated"
+ RNScreens:
+ :path: "../node_modules/react-native-screens"
+ Yoga:
+ :path: "../node_modules/react-native/ReactCommon/yoga"
+
+SPEC CHECKSUMS:
+ AEPAssurance: 3ab00d47a40bc6c6cb2000689e0dcfa595cda250
+ AEPCampaignClassic: bb177cc477846b15c38cfba77b8ec5127abf2105
+ AEPCore: 65d2f2c9ef750ce89557dba59a71e729306f0629
+ AEPEdge: 105afc7958acd7c016d57f7ac1d6f632bf05e6ee
+ AEPEdgeBridge: 2302555a67bf4677a903c42dedf9b3ab0dd941b9
+ AEPEdgeConsent: 5f28a8ed6cd86812a73b1f5a4dbde9c81e486bf1
+ AEPEdgeIdentity: 3161ff33434586962946912d6b8e9e8fca1c4d23
+ AEPIdentity: 2dcdaa0288641441a7c1b1c97f1ed8113d40cc2d
+ AEPLifecycle: 1ff56cdd009b043c2ad412ddf8952beefd1f3e3d
+ AEPMessaging: a6993660695fddc0578093e1c3335220773383e5
+ AEPMessagingLiveActivity: c5ea7db020f4e1fb0c3b7651965fe5ff52cb1665
+ AEPOptimize: ac17a3311f3763ec2c2786243c5b8272acaf83dd
+ AEPPlaces: 9eec5f88306033ce8190ec30727cbdd4008cc018
+ AEPRulesEngine: fe5800653a4bee07b1e41e61b4d5551f0dba557b
+ AEPServices: a5608a9d3749701030e12fe379f53e40fa6f8e6f
+ AEPSignal: 63a1c25c5f99c775a78bc398d728ed50a3bc6184
+ AEPTarget: 54d4aac9a1478e97bbbb7211c61314ab3ee1098c
+ AEPUserProfile: cf36305d683d993d528337a46b7a269029b63e5d
+ boost: 1dca942403ed9342f98334bf4c3621f011aa7946
+ DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385
+ FBLazyVector: be509404b5de73a64a74284edcaf73a5d1e128b1
+ fmt: 10c6e61f4be25dc963c36bd73fc7b1705fe975be
+ glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a
+ hermes-engine: 1949ca944b195a8bde7cbf6316b9068e19cf53c6
+ RCT-Folly: bf5c0376ffe4dd2cf438dcf86db385df9fdce648
+ RCTAEPAssurance: 152e7737d6edbcdbb1e62fa8e2e4befe963d365d
+ RCTAEPCampaignClassic: 5bf6ddaa3f1e0f5367d48d45c6877d4867c99f55
+ RCTAEPCore: 39f578b989e45556b813fbcf6bc301bcf46c5a04
+ RCTAEPEdge: 2a3f5db77a5413c41a7cbc4fd5d1e05828b32653
+ RCTAEPEdgeBridge: 8d778ec9cbb0dd2315e38b8df79b85a6ad915b2d
+ RCTAEPEdgeConsent: 94d66ceefac0058a1586b0b876e37f178d3733d2
+ RCTAEPEdgeIdentity: 2ed3fdc9a3150e9bcf268b128c22f293ab4df6aa
+ RCTAEPMessaging: d97f2750b4698d54953e6a9b824506a18be1695c
+ RCTAEPOptimize: ec1e7167e129800e4055366f3fd2d184cd32cec9
+ RCTAEPPlaces: 4050bda86286605a8683b4c078baac1662ca013a
+ RCTAEPTarget: e8bcf8864758faf07635719ffa0eff6a06861910
+ RCTAEPUserProfile: 799d618ffbbfc389175c8a8cd5afcc36d852709a
+ RCTDeprecation: 063fc281b30b7dc944c98fe53a7e266dab1a8706
+ RCTRequired: 8eda2a5a745f6081157a4f34baac40b65fe02b31
+ RCTTypeSafety: 0f96bf6c99efc33eb43352212703854933f22930
+ React: 1d3d5bada479030961d513fb11e42659b30e97ff
+ React-callinvoker: 682c610b9e9d3b93bd8d0075eacb2e6aa304d3e0
+ React-Core: 10420b32e62acf6b3aa0a570e45566001175c777
+ React-CoreModules: aad977a7dbff83aa707c4045e5db81446a511cca
+ React-cxxreact: 1bee1b97e7d537f1a33d9eb68c9426c1fc1a4e3c
+ React-debug: 7cdd014eb067b2a7f2ef8f373e1d6584f8f78a4c
+ React-defaultsnativemodule: 4e207bc2bbb3873fa053d026952e05d607e24799
+ React-domnativemodule: 844197f18229503d2866025f4d19aa045daed40c
+ React-Fabric: ea260e9322a497d54f5b57d0b30c59c068599716
+ React-FabricComponents: e74b35dc682a66b7fb24caa6252630e9159eac5b
+ React-FabricImage: 4e828ff4896f515eff7762c9c5bfc65dc02093fd
+ React-featureflags: 0c0803e06d3db7267bce68cf03057dc820cb569e
+ React-featureflagsnativemodule: e4440553861594ce1ab4da2d8acb4486c670a421
+ React-graphics: 20e88d34fa4ada72dcb4d04d251ebdea66a1aa82
+ React-hermes: add932964f5ef024c86352dcc0dc427e6309642e
+ React-idlecallbacksnativemodule: 47054965c7020e4af7b2038e95abc6d0b88305db
+ React-ImageManager: 0221592b8b202bde3a9bd9a98099601d0af70c70
+ React-jserrorhandler: f7c72b07f32be01babd3503df6ed0c3b1adc3067
+ React-jsi: 690f3742db66cab8d5219bcfbc19fee112c6bb0c
+ React-jsiexecutor: a060f7e989da21e2478f652d7799e3b5ae5db262
+ React-jsinspector: d64bcb6bb731da23c793de5bf3edbcd0ac81ed7a
+ React-jsitracing: 92aef17e13a4e068eb80abec9cdd39c19a307750
+ React-logger: 162c09cc432b02d4a0db31b1d98f6df5243a2679
+ React-Mapbuffer: eab34f6d54d26931c5f70eb19da1e36162d87bbd
+ React-microtasksnativemodule: 069ef12656a93e0344851e18de6cfb7bdfd9a59e
+ react-native-safe-area-context: d71edcee579673b370c053804f34c40c1f250976
+ react-native-webview: b277ca7f2b3387f9f2ebc07075778ffb01ca1afc
+ React-nativeconfig: 014403841159c621de6d2f888ad829aac530f93e
+ React-NativeModulesApple: 5bebad70ac824fefe9c0a04a5e2c829a91365b9d
+ React-perflogger: 4e80a5b8d61dfb38024e7d5b8efaf9ce1037d31f
+ React-performancetimeline: edbde0e8946d754f422722e8dbad9d2d7b16fe88
+ React-RCTActionSheet: ed5a845eae98fe455b9a1d71f057d626e2f3f1c5
+ React-RCTAnimation: 0cda303ef8ca5a2d0ee9e425f188cc9fc1d2e20f
+ React-RCTAppDelegate: 1edcdebdaebf5120bdaa9d54bc40789714be3719
+ React-RCTBlob: dab83a3c22210e5c7a8267834c68e6cf94bc1ce2
+ React-RCTFabric: b48ef59af177c89ed6806a29c41e4554667c9430
+ React-RCTImage: b9c3d2cff3b8214322022cdf8afb92ff978bb92e
+ React-RCTLinking: e58c4fa216f9ac87ed3d4a0cce03905df67adec0
+ React-RCTNetwork: 9f206fa039e107f51ddfac133df79105643ea2bd
+ React-RCTSettings: c7663cfcb3531cd438b8f73e98cd2d982a4bbd72
+ React-RCTText: cfee29316f1049f016cbd81328a89a8a07410bba
+ React-RCTVibration: 20f5efc1b05cd3f5f7ea03489dd3766c890fb493
+ React-rendererconsistency: 553f1344af8ae2c4b561d7defbb2aa508e4bcbb2
+ React-rendererdebug: cca1f3214c128bd3b155a5d41a1db5c9e35f2d42
+ React-rncore: 1bf4b98f4456362bdf0166264a97e5d1dd0d43cf
+ React-RuntimeApple: 2900404ad5dffd4dc1e4070710def260fa251cfc
+ React-RuntimeCore: faa7186334fa52ecb77146028278370d64654eb5
+ React-runtimeexecutor: 26a9d14619ec1359470df391be9abb7c80a21b2b
+ React-RuntimeHermes: 7e920222cad4860752406e4ba4df9a322bf00022
+ React-runtimescheduler: eddc4ad43c6093ffd26324ad5eee69ff9315b88e
+ React-timing: 042cb96cc87f2035d284a058b468aa3e5505b5ba
+ React-utils: 313aee0d3b79d0f43ddc9e8aebf789b56469aff8
+ ReactCodegen: e61f5cbdd7d1c7144f3f9e07bc5f9fcbe7a71ccc
+ ReactCommon: 407be731d21caa89dfb2f648868865b76c84d2d2
+ RNCAsyncStorage: 071cbe78593c4509b3a814b44a9b1113819d8bad
+ RNCMaskedView: 381d041f80e6bf7983d2c058a34362e6a362ce01
+ RNGestureHandler: 598e45cedb905b157e9764acbef0b5e365693451
+ RNReanimated: ddc60075b382b872662cadaf9972b07d52a8fce7
+ RNScreens: fa9965adf9ca283802df592b96aca9ec9b0b97da
+ SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
+ Yoga: c597d2c0803c51f27569fb69f05eeb76646c0074
+
+PODFILE CHECKSUM: 9889050fd6a8e3720ca16506d28020226aa032bc
+
+COCOAPODS: 1.16.2
diff --git a/apps/BareSampleApp/ios/Podfile.properties.json b/apps/BareSampleApp/ios/Podfile.properties.json
new file mode 100644
index 000000000..83f44152f
--- /dev/null
+++ b/apps/BareSampleApp/ios/Podfile.properties.json
@@ -0,0 +1,3 @@
+{
+ "newArchEnabled": "true"
+}
diff --git a/apps/BareSampleApp/jest.config.js b/apps/BareSampleApp/jest.config.js
new file mode 100644
index 000000000..8eb675e9b
--- /dev/null
+++ b/apps/BareSampleApp/jest.config.js
@@ -0,0 +1,3 @@
+module.exports = {
+ preset: 'react-native',
+};
diff --git a/apps/BareSampleApp/metro.config.js b/apps/BareSampleApp/metro.config.js
new file mode 100644
index 000000000..1f27ea15c
--- /dev/null
+++ b/apps/BareSampleApp/metro.config.js
@@ -0,0 +1,49 @@
+/**
+ * Metro configuration for React Native
+ * https://reactnative.dev/docs/metro
+ *
+ * Monorepo-aware config. Watches specific directories instead of
+ * the entire monorepo root to avoid file watcher limits and
+ * Metro 0.84+ file map validation issues.
+ */
+
+const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
+const path = require('path');
+
+const projectRoot = __dirname;
+const monorepoRoot = path.resolve(projectRoot, '../..');
+
+const config = {
+ // Watch specific directories needed for resolution
+ watchFolders: [
+ path.resolve(monorepoRoot, 'packages'), // AEP SDK packages
+ path.resolve(monorepoRoot, 'node_modules'), // Root node_modules (hoisted deps)
+ ],
+
+ resolver: {
+ // Local file: dependency — resolve from packages/optimize (dist built via `npm run tsc` / `yarn build`).
+ extraNodeModules: {
+ '@adobe/react-native-aepoptimize': path.resolve(monorepoRoot, 'packages/optimize'),
+ },
+ // Tell Metro where to find node_modules
+ nodeModulesPaths: [
+ path.resolve(projectRoot, 'node_modules'),
+ path.resolve(monorepoRoot, 'node_modules'),
+ ],
+ // Block nested node_modules inside packages to avoid duplicates
+ blockList: [
+ /packages\/.*\/node_modules\/.*/,
+ ],
+ },
+
+ transformer: {
+ getTransformOptions: async () => ({
+ transform: {
+ experimentalImportSupport: false,
+ inlineRequires: true,
+ },
+ }),
+ },
+};
+
+module.exports = mergeConfig(getDefaultConfig(projectRoot), config);
diff --git a/apps/BareSampleApp/mocks/contentCards/inbox/mockSettings.js b/apps/BareSampleApp/mocks/contentCards/inbox/mockSettings.js
new file mode 100644
index 000000000..92ed52296
--- /dev/null
+++ b/apps/BareSampleApp/mocks/contentCards/inbox/mockSettings.js
@@ -0,0 +1,131 @@
+"use strict";
+/*
+Copyright 2026 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.mockSettings = void 0;
+exports.mockSettings = {
+ 'mock/vertical': {
+ surfaceSettings: {
+ content: {
+ heading: { content: 'Vertical' },
+ layout: { orientation: 'vertical' },
+ capacity: 15,
+ emptyStateSettings: { message: { content: 'Error loading inbox' } },
+ isUnreadEnabled: true,
+ },
+ showPagination: false,
+ }
+ },
+ 'mock/horizontal': {
+ surfaceSettings: {
+ content: {
+ heading: { content: 'Horizontal' },
+ layout: { orientation: 'horizontal' },
+ capacity: 15,
+ emptyStateSettings: { message: { content: 'Error loading carousel' } },
+ isUnreadEnabled: false,
+ },
+ showPagination: false,
+ }
+ },
+ 'mock/empty': {
+ surfaceSettings: {
+ content: {
+ heading: { content: 'Empty' },
+ layout: { orientation: 'vertical' },
+ capacity: 0,
+ emptyStateSettings: {
+ message: {
+ content: "No deals today come back soon!",
+ },
+ image: {
+ url: "https://cdn-icons-png.flaticon.com/512/6134/6134065.png",
+ darkUrl: "https://cdni.iconscout.com/illustration/premium/thumb/not-found-error-illustration-svg-download-png-9824391.png",
+ }
+ },
+ isUnreadEnabled: true,
+ },
+ },
+ },
+ 'mock/inbox-with-styling': {
+ surfaceSettings: {
+ content: {
+ heading: { content: 'Inbox with Styling' },
+ layout: { orientation: 'vertical' },
+ capacity: 10,
+ emptyStateSettings: { message: { content: 'Error loading inbox with styling' } },
+ unread_indicator: {
+ unread_bg: {
+ clr: {
+ light: "#dcfbd8",
+ dark: "#14532D",
+ },
+ },
+ },
+ isUnreadEnabled: true,
+ },
+ showPagination: false,
+ },
+ inboxStyle: {
+ rowGap: 12,
+ alignItems: 'stretch',
+ backgroundColor: '#FDF2F8',
+ borderRadius: 18,
+ borderWidth: 2,
+ borderColor: '#F0ABFC',
+ shadowColor: '#F472B6',
+ shadowOpacity: 0.25,
+ shadowRadius: 12,
+ elevation: 6,
+ margin: 10,
+ }
+ },
+ 'mock/custom-card-view': {
+ surfaceSettings: {
+ content: {
+ heading: { content: 'Custom Card View' },
+ layout: { orientation: 'horizontal' },
+ capacity: 10,
+ emptyStateSettings: { message: { content: 'Error loading custom card view' } },
+ isUnreadEnabled: true,
+ unread_indicator: {
+ unread_icon: {
+ placement: "bottomright",
+ image: {
+ url: "https://icons.veryicon.com/png/o/leisure/crisp-app-icon-library-v3/notification-5.png",
+ darkUrl: "",
+ },
+ },
+ },
+ },
+ showPagination: false,
+ },
+ CardProps: {
+ BodyProps: { numberOfLines: 2, ellipsizeMode: 'tail' },
+ styleOverrides: {
+ largeImageStyle: {
+ container: { height: 250, alignItems: 'center', backgroundColor: '#ADD8E6', borderRadius: 12, padding: 10 },
+ imageContainer: { width: '100%', alignItems: 'center', justifyContent: 'center', backgroundColor: '#ADD8E6' },
+ image: { width: 140, height: 90, resizeMode: 'cover', alignSelf: 'center', borderRadius: 12 },
+ contentContainer: { alignSelf: 'stretch', alignItems: 'flex-start' },
+ },
+ smallImageStyle: {
+ container: { height: 250, flexDirection: 'row', backgroundColor: '#ADD8E6', borderRadius: 12, alignItems: 'center', padding: 10 },
+ },
+ imageOnlyStyle: {
+ imageContainer: { backgroundColor: '#ADD8E6', height: 250, alignItems: 'center', justifyContent: 'center' },
+ },
+ },
+ },
+ containerStyle: { height: 250 },
+ },
+};
diff --git a/apps/BareSampleApp/mocks/contentCards/inbox/mockSettings.ts b/apps/BareSampleApp/mocks/contentCards/inbox/mockSettings.ts
new file mode 100644
index 000000000..496ed72e7
--- /dev/null
+++ b/apps/BareSampleApp/mocks/contentCards/inbox/mockSettings.ts
@@ -0,0 +1,132 @@
+/*
+Copyright 2026 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+export const mockSettings = {
+ 'mock/vertical': {
+ surfaceSettings: {
+ content: {
+ heading: { content: 'Vertical' },
+ layout: { orientation: 'vertical' },
+ capacity: 15,
+ emptyStateSettings: { message: { content: 'Error loading inbox' } },
+ isUnreadEnabled: true,
+ },
+ showPagination: false,
+ }
+ },
+ 'mock/horizontal': {
+ surfaceSettings: {
+ content: {
+ heading: { content: 'Horizontal' },
+ layout: { orientation: 'horizontal' },
+ capacity: 15,
+ emptyStateSettings: { message: { content: 'Error loading carousel' } },
+ isUnreadEnabled: false,
+ },
+ showPagination: false,
+ }
+ },
+ 'mock/empty': {
+ surfaceSettings: {
+ content: {
+ heading: { content: 'Empty' },
+ layout: { orientation: 'vertical' },
+ capacity: 0,
+ emptyStateSettings: {
+ message: {
+ content: "No deals today come back soon!",
+ },
+ image: {
+ url: "https://cdn-icons-png.flaticon.com/512/6134/6134065.png",
+ darkUrl: "https://cdni.iconscout.com/illustration/premium/thumb/not-found-error-illustration-svg-download-png-9824391.png",
+ }
+ },
+ isUnreadEnabled: true,
+ },
+ },
+ },
+ 'mock/inbox-with-styling': {
+ surfaceSettings: {
+ content: {
+ heading: { content: 'Inbox with Styling' },
+ layout: { orientation: 'vertical' },
+ capacity: 10,
+ emptyStateSettings: { message: { content: 'Error loading inbox with styling' } },
+ unread_indicator: {
+ unread_bg: {
+ clr: {
+ light: "#dcfbd8",
+ dark: "#14532D",
+ },
+ },
+
+ },
+ isUnreadEnabled: true,
+ },
+ showPagination: false,
+ },
+ inboxStyle: {
+ rowGap: 12,
+ alignItems: 'stretch',
+ backgroundColor: '#FDF2F8',
+ borderRadius: 18,
+ borderWidth: 2,
+ borderColor: '#F0ABFC',
+ shadowColor: '#F472B6',
+ shadowOpacity: 0.25,
+ shadowRadius: 12,
+ elevation: 6,
+ margin: 10,
+ }
+ },
+ 'mock/custom-card-view': {
+ surfaceSettings: {
+ content: {
+ heading: { content: 'Custom Card View' },
+ layout: { orientation: 'horizontal' },
+ capacity: 10,
+ emptyStateSettings: { message: { content: 'Error loading custom card view' } },
+ isUnreadEnabled: true,
+ unread_indicator: {
+ unread_icon: {
+ placement: "bottomright",
+ image: {
+ url: "https://icons.veryicon.com/png/o/leisure/crisp-app-icon-library-v3/notification-5.png",
+ darkUrl: "",
+ },
+ },
+ },
+ },
+ showPagination: false,
+ },
+ CardProps: {
+ BodyProps: { numberOfLines: 2, ellipsizeMode: 'tail' },
+ styleOverrides: {
+ largeImageStyle: {
+ container: { height: 250, alignItems: 'center', backgroundColor: '#ADD8E6', borderRadius: 12, padding: 10 },
+ imageContainer: { width: '100%', alignItems: 'center', justifyContent: 'center', backgroundColor: '#ADD8E6' },
+ image: { width: 140, height: 90, resizeMode: 'cover', alignSelf: 'center', borderRadius: 12 },
+ contentContainer: { alignSelf: 'stretch', alignItems: 'flex-start' },
+ },
+ smallImageStyle: {
+ container: { height: 250, flexDirection: 'row', backgroundColor: '#ADD8E6', borderRadius: 12, alignItems: 'center', padding: 10 },
+ },
+ imageOnlyStyle: {
+ imageContainer: { backgroundColor: '#ADD8E6', height: 250, alignItems: 'center', justifyContent: 'center'},
+ },
+ },
+ },
+ containerStyle: { height: 250 },
+ },
+}
+
+export type MockSurface = keyof typeof mockSettings;
\ No newline at end of file
diff --git a/apps/BareSampleApp/mocks/contentCards/templates/demoitems.js b/apps/BareSampleApp/mocks/contentCards/templates/demoitems.js
new file mode 100644
index 000000000..3bae2d4fa
--- /dev/null
+++ b/apps/BareSampleApp/mocks/contentCards/templates/demoitems.js
@@ -0,0 +1,396 @@
+"use strict";
+/*
+Copyright 2026 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.IMAGE_ONLY_TEMPLATES = exports.LARGE_IMAGE_TEMPLATES = exports.SMALL_IMAGE_TEMPLATES = void 0;
+var imageOnly_1 = require("./imageOnly");
+var largeImage_1 = require("./largeImage");
+var smallImage_1 = require("./smallImage");
+// SmallImage
+exports.SMALL_IMAGE_TEMPLATES = [
+ {
+ key: '1',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_ALL_FIELDS,
+ renderText: '[Basic] all fields',
+ styleOverrides: {
+ smallImageStyle: {
+ card: {
+ backgroundColor: '#800080',
+ borderRadius: 20,
+ margin: 15
+ },
+ title: {
+ color: '#FF0000'
+ },
+ body: {
+ color: '#00FF00'
+ }
+ }
+ },
+ listener: function (event, card) {
+ console.log('Event triggered:', event, card);
+ },
+ },
+ {
+ key: '13',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_ALL_FIELDS,
+ renderText: '[dark/light]Custom theme',
+ listener: function (event, card) {
+ console.log('Event triggered:', event, card);
+ },
+ customThemes: {
+ light: { colors: { textPrimary: 'red', background: 'oldlace', buttonTextColor: 'orange' } },
+ dark: { colors: { textPrimary: 'green', background: 'lightblue', buttonTextColor: 'mediumorchid' } }
+ }
+ },
+ {
+ key: '11',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_NO_DISMISS_BUTTON,
+ renderText: '[dismiss button] NO ',
+ },
+ {
+ key: '12',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_DISMISS_BUTTON_SIMPLE,
+ renderText: '[dismiss button] Simple',
+ },
+ {
+ key: '2',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_INVALID_IMAGE,
+ renderText: '[image] Invalid',
+ styleOverrides: {
+ smallImageStyle: {
+ card: {
+ backgroundColor: '#800080',
+ borderRadius: 20,
+ margin: 15,
+ padding: 10
+ },
+ title: {
+ color: '#FF0000'
+ },
+ body: {
+ color: '#00FF00'
+ }
+ }
+ },
+ },
+ {
+ key: '3',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_IMAGE_DARK_URL,
+ renderText: '[dark/light] darkUrl',
+ },
+ {
+ key: '4',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_IMAGE_DARK_URL,
+ renderText: '[style]title (2 lines), body (4 lines)',
+ styleOverrides: {
+ smallImageStyle: {
+ card: {
+ backgroundColor: '#800080',
+ borderRadius: 20,
+ margin: 15,
+ padding: 10
+ },
+ title: {
+ color: '#FF0000'
+ },
+ body: {
+ color: '#00FF00'
+ }
+ }
+ },
+ listener: function (event, card) {
+ console.log('Event triggered:', event, card);
+ }
+ },
+ {
+ key: '5',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_3_BUTTONS,
+ renderText: '[button] 3',
+ },
+ {
+ key: '6',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_IMAGE_DARK_URL,
+ renderText: '[style] height (150) title (1 line), body (1 line)',
+ styleOverrides: {
+ smallImageStyle: {
+ title: {
+ fontSize: 16
+ },
+ body: {
+ fontSize: 14
+ }
+ }
+ }
+ },
+ {
+ key: '14',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_IMAGE_DARK_URL,
+ renderText: 'image width (50%)',
+ styleOverrides: {
+ smallImageStyle: {
+ title: { fontSize: 16, fontWeight: '600' },
+ body: { fontSize: 14, lineHeight: 18 },
+ imageContainer: {
+ width: '50%'
+ }
+ }
+ }
+ },
+ {
+ key: '7',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_NO_BUTTON,
+ renderText: 'No button, image width (40%), title (2 lines), body (6 lines), height (180)',
+ styleOverrides: {
+ smallImageStyle: {
+ title: { fontSize: 16, fontWeight: '600' },
+ body: { fontSize: 14, lineHeight: 18 },
+ imageContainer: {
+ width: '40%'
+ }
+ }
+ }
+ },
+ {
+ key: '8',
+ template: smallImage_1.SMALL_IMAGE_CONTENT_NO_BUTTON,
+ renderText: 'No button, image (right aligned)',
+ styleOverrides: {
+ smallImageStyle: {
+ title: { fontSize: 16, fontWeight: '600' },
+ body: { fontSize: 14, lineHeight: 18 },
+ container: {
+ flexDirection: 'row-reverse'
+ },
+ imageContainer: {
+ width: '40%'
+ }
+ }
+ }
+ }
+];
+exports.LARGE_IMAGE_TEMPLATES = [
+ {
+ key: '1',
+ template: largeImage_1.LARGE_IMAGE_CONTENT_ALL_FIELDS,
+ renderText: '[Basic] all fields',
+ },
+ {
+ key: '2',
+ template: largeImage_1.LARGE_IMAGE_CONTENT_3_BUTTONS,
+ renderText: '[button] 3',
+ },
+ {
+ key: '3',
+ template: largeImage_1.LARGE_IMAGE_CONTENT_NO_DISMISS_BUTTON,
+ renderText: '[dismiss button] NO ',
+ },
+ {
+ key: '4',
+ template: largeImage_1.LARGE_IMAGE_CONTENT_INVALID_IMAGE,
+ renderText: '[image] Invalid',
+ },
+ {
+ key: '5',
+ template: largeImage_1.LARGE_IMAGE_CONTENT_DARK_URL,
+ renderText: '[dark/light] darkUrl',
+ },
+ {
+ key: '6',
+ template: largeImage_1.LARGE_IMAGE_CONTENT_LONG_TITLE,
+ renderText: '[style]title (2 lines), body (2 lines), image (1:1)',
+ styleOverrides: {
+ largeImageStyle: {
+ title: {
+ fontSize: 18,
+ fontWeight: '600'
+ },
+ body: {
+ fontSize: 14,
+ lineHeight: 18
+ },
+ image: {
+ aspectRatio: 1 / 1
+ }
+ }
+ },
+ listener: function (event, card) {
+ console.log('Event triggered:', event, card);
+ }
+ },
+ {
+ key: '7',
+ template: largeImage_1.LARGE_IMAGE_CONTENT_DARK_URL,
+ renderText: '[dark/light]Custom theme',
+ customThemes: {
+ light: {
+ colors: {
+ textPrimary: 'red',
+ background: 'oldlace',
+ buttonTextColor: 'orange'
+ }
+ },
+ dark: {
+ colors: {
+ textPrimary: 'green',
+ background: 'lightblue',
+ buttonTextColor: 'mediumorchid'
+ }
+ }
+ },
+ listener: function (event, card) {
+ console.log('Event triggered:', event, card);
+ }
+ }
+];
+exports.IMAGE_ONLY_TEMPLATES = [
+ {
+ key: '1',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '1. All fields',
+ listener: function (event, card) {
+ console.log('Event triggered: - for imageOnly image 1', event, card);
+ }
+ },
+ {
+ key: '2',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_DISMISS_BUTTON_CIRCLE,
+ renderText: '2.Adobe default image, dismiss style circle',
+ listener: function (event, card) {
+ console.log('Event triggered: - for imageOnly image 2', event, card);
+ }
+ },
+ {
+ key: '3',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_NO_DISMISS_BUTTON,
+ renderText: '3. No dismiss button - no card height',
+ },
+ {
+ key: '4',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_INVALID_IMAGE,
+ renderText: '4. [image] Invalid',
+ },
+ {
+ key: '5',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_NO_ACTION,
+ renderText: '5. [action] No actionUrl',
+ },
+ {
+ key: '6',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '6. [style] Custom aspect ratio (1:1)',
+ styleOverrides: {
+ imageOnlyStyle: {
+ image: {
+ aspectRatio: 1 / 1
+ }
+ }
+ },
+ listener: function (event, card) {
+ console.log('Event triggered: - for imageOnly image 7', event, card);
+ }
+ },
+ {
+ key: '7',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '7. [style] Custom height (150)',
+ styleOverrides: {
+ imageOnlyStyle: {
+ image: {
+ height: 150
+ }
+ }
+ }
+ },
+ {
+ key: '8',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '8. [style] Custom width (80%), set image container backgroud color',
+ styleOverrides: {
+ imageOnlyStyle: {
+ image: {
+ width: '80%'
+ },
+ imageContainer: {
+ backgroundColor: '#79f4bbff'
+ }
+ }
+ }
+ },
+ {
+ key: '9',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '9. [style] Card customization',
+ styleOverrides: {
+ imageOnlyStyle: {
+ card: {
+ borderRadius: 80,
+ margin: 30
+ },
+ image: {
+ width: '50%',
+ resizeMode: 'stretch'
+ }
+ }
+ }
+ },
+ {
+ key: '10',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '10. [style] Image container customization',
+ styleOverrides: {
+ imageOnlyStyle: {
+ imageContainer: {
+ borderRadius: 15,
+ borderWidth: 5,
+ borderColor: '#FF69B4',
+ maxHeight: 100
+ },
+ image: {
+ resizeMode: 'center',
+ backgroundColor: '#79f4bbff',
+ maxHeight: 90
+ }
+ }
+ }
+ },
+ {
+ key: '11',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '11. [style] Combined styles',
+ styleOverrides: {
+ imageOnlyStyle: {
+ card: {
+ margin: 5,
+ borderRadius: 0
+ },
+ imageContainer: {
+ backgroundColor: '#E6E6FA',
+ minHeight: 180
+ },
+ image: {
+ resizeMode: 'cover'
+ }
+ }
+ }
+ },
+ {
+ key: '12',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_NO_DARK_URL,
+ renderText: '12. [image] No darkUrl (only light mode)',
+ },
+ {
+ key: '15',
+ template: imageOnly_1.IMAGE_ONLY_CONTENT_NO_LIGHT_MODE,
+ renderText: '1.[image] No Light Mode (only dark mode) - no actionUrl',
+ },
+];
diff --git a/apps/BareSampleApp/mocks/contentCards/templates/demoitems.ts b/apps/BareSampleApp/mocks/contentCards/templates/demoitems.ts
new file mode 100644
index 000000000..818c7099a
--- /dev/null
+++ b/apps/BareSampleApp/mocks/contentCards/templates/demoitems.ts
@@ -0,0 +1,445 @@
+/*
+Copyright 2026 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import {
+ IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ IMAGE_ONLY_CONTENT_DISMISS_BUTTON_CIRCLE,
+ IMAGE_ONLY_CONTENT_INVALID_IMAGE,
+ IMAGE_ONLY_CONTENT_NO_DARK_URL,
+ IMAGE_ONLY_CONTENT_NO_DISMISS_BUTTON,
+ IMAGE_ONLY_CONTENT_NO_LIGHT_MODE,
+ IMAGE_ONLY_CONTENT_NO_ACTION
+ } from './imageOnly';
+ import {
+ LARGE_IMAGE_CONTENT_3_BUTTONS,
+ LARGE_IMAGE_CONTENT_ALL_FIELDS,
+ LARGE_IMAGE_CONTENT_DARK_URL,
+ LARGE_IMAGE_CONTENT_INVALID_IMAGE,
+ LARGE_IMAGE_CONTENT_LONG_TITLE,
+ LARGE_IMAGE_CONTENT_NO_DISMISS_BUTTON
+ } from './largeImage';
+ import {
+ SMALL_IMAGE_CONTENT_3_BUTTONS,
+ SMALL_IMAGE_CONTENT_ALL_FIELDS,
+ SMALL_IMAGE_CONTENT_DISMISS_BUTTON_SIMPLE,
+ SMALL_IMAGE_CONTENT_IMAGE_DARK_URL,
+ SMALL_IMAGE_CONTENT_INVALID_IMAGE,
+ SMALL_IMAGE_CONTENT_NO_BUTTON,
+ SMALL_IMAGE_CONTENT_NO_DISMISS_BUTTON
+ } from './smallImage';
+
+ export type DemoItem = {
+ key: string;
+ template: any; // ContentTemplate
+ renderText: string;
+ styleOverrides?: any; // ContentView props styleOverrides
+ listener?: (event: any, card?: any) => void;
+ customThemes?: {
+ light?: { colors?: any };
+ dark?: { colors?: any };
+ };
+ };
+
+ // SmallImage
+ export const SMALL_IMAGE_TEMPLATES: DemoItem[] = [
+ {
+ key: '1',
+ template: SMALL_IMAGE_CONTENT_ALL_FIELDS,
+ renderText: '[Basic] all fields',
+ styleOverrides: {
+ smallImageStyle: {
+ card: {
+ backgroundColor: '#800080',
+ borderRadius: 20,
+ margin: 15
+ },
+ title: {
+ color: '#FF0000'
+ },
+ body: {
+ color: '#00FF00'
+ }
+ }
+ },
+ listener: (event, card) => {
+ console.log('Event triggered:', event, card);
+ },
+ },
+ {
+ key: '13',
+ template: SMALL_IMAGE_CONTENT_ALL_FIELDS,
+ renderText: '[dark/light]Custom theme',
+ listener:(event, card) => {
+ console.log('Event triggered:', event, card);
+ },
+ customThemes: {
+ light: { colors: { textPrimary: 'red', background: 'oldlace', buttonTextColor: 'orange' } },
+ dark: { colors: { textPrimary: 'green', background: 'lightblue', buttonTextColor: 'mediumorchid' } }
+ }
+ },
+ {
+ key: '11',
+ template: SMALL_IMAGE_CONTENT_NO_DISMISS_BUTTON,
+ renderText: '[dismiss button] NO ',
+ },
+ {
+ key: '12',
+ template: SMALL_IMAGE_CONTENT_DISMISS_BUTTON_SIMPLE,
+ renderText: '[dismiss button] Simple',
+ },
+ {
+ key: '2',
+ template: SMALL_IMAGE_CONTENT_INVALID_IMAGE,
+ renderText: '[image] Invalid',
+ styleOverrides: {
+ smallImageStyle: {
+ card: {
+ backgroundColor: '#800080',
+ borderRadius: 20,
+ margin: 15,
+ padding: 10
+ },
+ title: {
+ color: '#FF0000'
+ },
+ body: {
+ color: '#00FF00'
+ }
+ }
+ },
+ },
+ {
+ key: '3',
+ template: SMALL_IMAGE_CONTENT_IMAGE_DARK_URL,
+ renderText: '[dark/light] darkUrl',
+ },
+ {
+ key: '4',
+ template: SMALL_IMAGE_CONTENT_IMAGE_DARK_URL,
+ renderText: '[style]title (2 lines), body (4 lines)',
+ styleOverrides: {
+ smallImageStyle: {
+ card: {
+ backgroundColor: '#800080',
+ borderRadius: 20,
+ margin: 15,
+ padding: 10
+ },
+ title: {
+ color: '#FF0000'
+ },
+ body: {
+ color: '#00FF00'
+ }
+ }
+ },
+ listener:(event, card) => {
+ console.log('Event triggered:', event, card);
+ }
+ },
+ {
+ key: '5',
+ template: SMALL_IMAGE_CONTENT_3_BUTTONS,
+ renderText: '[button] 3',
+ },
+ {
+ key: '6',
+ template: SMALL_IMAGE_CONTENT_IMAGE_DARK_URL,
+ renderText: '[style] height (150) title (1 line), body (1 line)',
+ styleOverrides:{
+ smallImageStyle: {
+ title: {
+ fontSize: 16
+ },
+ body: {
+ fontSize: 14
+ }
+ }
+ }
+ },
+ {
+ key: '14',
+ template: SMALL_IMAGE_CONTENT_IMAGE_DARK_URL,
+ renderText: 'image width (50%)',
+ styleOverrides: {
+ smallImageStyle: {
+ title: { fontSize: 16, fontWeight: '600' },
+ body: { fontSize: 14, lineHeight: 18 },
+ imageContainer: {
+ width: '50%'
+ }
+ }
+ }
+ },
+ {
+ key: '7',
+ template: SMALL_IMAGE_CONTENT_NO_BUTTON,
+ renderText: 'No button, image width (40%), title (2 lines), body (6 lines), height (180)',
+ styleOverrides: {
+ smallImageStyle: {
+ title: { fontSize: 16, fontWeight: '600' },
+ body: { fontSize: 14, lineHeight: 18 },
+ imageContainer: {
+ width: '40%'
+ }
+ }
+ }
+ },
+ {
+ key: '8',
+ template: SMALL_IMAGE_CONTENT_NO_BUTTON,
+ renderText: 'No button, image (right aligned)',
+ styleOverrides: {
+ smallImageStyle: {
+ title: { fontSize: 16, fontWeight: '600' },
+ body: { fontSize: 14, lineHeight: 18 },
+ container: {
+ flexDirection: 'row-reverse'
+ },
+ imageContainer: {
+ width: '40%'
+ }
+ }
+ }
+ }
+ ];
+
+ export const LARGE_IMAGE_TEMPLATES: DemoItem[] = [
+ {
+ key: '1',
+ template: LARGE_IMAGE_CONTENT_ALL_FIELDS,
+ renderText: '[Basic] all fields',
+ },
+ {
+ key: '2',
+ template: LARGE_IMAGE_CONTENT_3_BUTTONS,
+ renderText: '[button] 3',
+ },
+ {
+ key: '3',
+ template: LARGE_IMAGE_CONTENT_NO_DISMISS_BUTTON,
+ renderText: '[dismiss button] NO ',
+ },
+ {
+ key: '4',
+ template: LARGE_IMAGE_CONTENT_INVALID_IMAGE,
+ renderText: '[image] Invalid',
+ },
+ {
+ key: '5',
+ template: LARGE_IMAGE_CONTENT_DARK_URL,
+ renderText: '[dark/light] darkUrl',
+ },
+ {
+ key: '6',
+ template: LARGE_IMAGE_CONTENT_LONG_TITLE,
+ renderText: '[style]title (2 lines), body (2 lines), image (1:1)',
+ styleOverrides: {
+ largeImageStyle: {
+ title: {
+ fontSize: 18,
+ fontWeight: '600'
+ },
+ body: {
+ fontSize: 14,
+ lineHeight: 18
+ },
+ image: {
+ aspectRatio: 1 / 1
+ }
+ }
+ },
+ listener: (event, card) => {
+ console.log('Event triggered:', event, card);
+ }
+ },
+ {
+ key: '7',
+ template: LARGE_IMAGE_CONTENT_DARK_URL,
+ renderText: '[dark/light]Custom theme',
+ customThemes: {
+ light: {
+ colors: {
+ textPrimary: 'red',
+ background: 'oldlace',
+ buttonTextColor: 'orange'
+ }
+ },
+ dark: {
+ colors: {
+ textPrimary: 'green',
+ background: 'lightblue',
+ buttonTextColor: 'mediumorchid'
+ }
+ }
+ },
+ listener: (event, card) => {
+ console.log('Event triggered:', event, card);
+ }
+ }
+ ]
+
+ export const IMAGE_ONLY_TEMPLATES: DemoItem[] = [
+ {
+ key: '1',
+ template: IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '1. All fields',
+ listener: (event, card) => {
+ console.log(
+ 'Event triggered: - for imageOnly image 1',
+ event,
+ card
+ );
+ }
+ },
+ {
+ key: '2',
+ template: IMAGE_ONLY_CONTENT_DISMISS_BUTTON_CIRCLE,
+ renderText: '2.Adobe default image, dismiss style circle',
+ listener: (event, card) => {
+ console.log(
+ 'Event triggered: - for imageOnly image 2',
+ event,
+ card
+ );
+ }
+ },
+ {
+ key: '3',
+ template: IMAGE_ONLY_CONTENT_NO_DISMISS_BUTTON,
+ renderText: '3. No dismiss button - no card height',
+ },
+ {
+ key: '4',
+ template: IMAGE_ONLY_CONTENT_INVALID_IMAGE,
+ renderText: '4. [image] Invalid',
+ },
+ {
+ key: '5',
+ template: IMAGE_ONLY_CONTENT_NO_ACTION,
+ renderText: '5. [action] No actionUrl',
+ },
+ {
+ key: '6',
+ template: IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '6. [style] Custom aspect ratio (1:1)',
+ styleOverrides: {
+ imageOnlyStyle: {
+ image: {
+ aspectRatio: 1 / 1
+ }
+ }
+ },
+ listener: (event, card) => {
+ console.log(
+ 'Event triggered: - for imageOnly image 7',
+ event,
+ card
+ );
+ }
+ },
+ {
+ key: '7',
+ template: IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '7. [style] Custom height (150)',
+ styleOverrides: {
+ imageOnlyStyle: {
+ image: {
+ height: 150
+ }
+ }
+ }
+ },
+ {
+ key: '8',
+ template: IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '8. [style] Custom width (80%), set image container backgroud color',
+ styleOverrides: {
+ imageOnlyStyle: {
+ image: {
+ width: '80%'
+ },
+ imageContainer: {
+ backgroundColor: '#79f4bbff'
+ }
+ }
+ }
+ },
+ {
+ key: '9',
+ template: IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '9. [style] Card customization',
+ styleOverrides: {
+ imageOnlyStyle: {
+ card: {
+ borderRadius: 80,
+ margin: 30
+ },
+ image: {
+ width: '50%',
+ resizeMode: 'stretch'
+ }
+ }
+ }
+ },
+ {
+ key: '10',
+ template: IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '10. [style] Image container customization',
+ styleOverrides: {
+ imageOnlyStyle: {
+ imageContainer: {
+ borderRadius: 15,
+ borderWidth: 5,
+ borderColor: '#FF69B4',
+ maxHeight: 100
+ },
+ image: {
+ resizeMode: 'center',
+ backgroundColor: '#79f4bbff',
+ maxHeight: 90
+ }
+ }
+ }
+ },
+ {
+ key: '11',
+ template: IMAGE_ONLY_CONTENT_ALL_FIELDS,
+ renderText: '11. [style] Combined styles',
+ styleOverrides: {
+ imageOnlyStyle: {
+ card: {
+ margin: 5,
+ borderRadius: 0
+ },
+ imageContainer: {
+ backgroundColor: '#E6E6FA',
+ minHeight: 180
+ },
+ image: {
+ resizeMode: 'cover'
+ }
+ }
+ }
+ },
+ {
+ key: '12',
+ template: IMAGE_ONLY_CONTENT_NO_DARK_URL,
+ renderText: '12. [image] No darkUrl (only light mode)',
+ },
+ {
+ key: '15',
+ template: IMAGE_ONLY_CONTENT_NO_LIGHT_MODE,
+ renderText: '1.[image] No Light Mode (only dark mode) - no actionUrl',
+ },
+ ]
+
\ No newline at end of file
diff --git a/apps/BareSampleApp/mocks/contentCards/templates/imageOnly.js b/apps/BareSampleApp/mocks/contentCards/templates/imageOnly.js
new file mode 100644
index 000000000..fe3a161e8
--- /dev/null
+++ b/apps/BareSampleApp/mocks/contentCards/templates/imageOnly.js
@@ -0,0 +1,209 @@
+"use strict";
+/*
+Copyright 2026 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.IMAGE_ONLY_CONTENT_NO_LIGHT_MODE = exports.IMAGE_ONLY_CONTENT_NO_DARK_URL = exports.IMAGE_ONLY_CONTENT_NO_ACTION = exports.IMAGE_ONLY_CONTENT_INVALID_IMAGE = exports.IMAGE_ONLY_CONTENT_NO_DISMISS_BUTTON = exports.IMAGE_ONLY_CONTENT_DISMISS_BUTTON_CIRCLE = exports.IMAGE_ONLY_CONTENT_WITH_ACTION_URL = exports.IMAGE_ONLY_CONTENT_ALL_FIELDS = void 0;
+// Image Only Templates
+exports.IMAGE_ONLY_CONTENT_ALL_FIELDS = {
+ id: 'image-only-all-fields',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://www.adobe.com/',
+ image: {
+ url: 'https://t4.ftcdn.net/jpg/13/35/40/27/240_F_1335402728_gCAPzivq5VytTJVCEcfIB2eX3ZCdE8cc.jpg',
+ darkUrl: 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg',
+ alt: 'flight offer'
+ },
+ dismissBtn: {
+ style: 'simple'
+ }
+ }
+ }
+};
+exports.IMAGE_ONLY_CONTENT_WITH_ACTION_URL = {
+ id: 'image-only-with-action-url',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://google.com',
+ image: {
+ url: 'https://t4.ftcdn.net/jpg/13/35/40/27/240_F_1335402728_gCAPzivq5VytTJVCEcfIB2eX3ZCdE8cc.jpg',
+ darkUrl: 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*',
+ alt: 'with action URL - Google Images'
+ },
+ dismissBtn: {
+ style: 'simple'
+ }
+ }
+ }
+};
+exports.IMAGE_ONLY_CONTENT_DISMISS_BUTTON_CIRCLE = {
+ id: 'image-only-dismiss-circle',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://google.com',
+ image: {
+ url: 'https://i.ibb.co/0X8R3TG/Messages-24.png',
+ darkUrl: 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*',
+ alt: 'flight offer'
+ },
+ dismissBtn: {
+ style: 'circle'
+ }
+ }
+ }
+};
+exports.IMAGE_ONLY_CONTENT_NO_DISMISS_BUTTON = {
+ id: 'image-only-no-dismiss',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://google.com',
+ image: {
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg',
+ darkUrl: 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg',
+ alt: 'flight offer'
+ }
+ }
+ }
+};
+exports.IMAGE_ONLY_CONTENT_INVALID_IMAGE = {
+ id: 'image-only-invalid-image',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://google.com',
+ image: {
+ url: 'https://invalid-url-that-will-fail',
+ darkUrl: 'https://another-invalid-url',
+ alt: 'broken image'
+ },
+ dismissBtn: {
+ style: 'simple'
+ }
+ }
+ }
+};
+exports.IMAGE_ONLY_CONTENT_NO_ACTION = {
+ id: 'image-only-no-action',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ image: {
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg',
+ darkUrl: 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg',
+ alt: 'non-clickable image'
+ },
+ dismissBtn: {
+ style: 'simple'
+ }
+ }
+ }
+};
+exports.IMAGE_ONLY_CONTENT_NO_DARK_URL = {
+ id: 'image-only-no-dark-url',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://google.com',
+ image: {
+ url: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png',
+ alt: 'light mode only image'
+ },
+ dismissBtn: {
+ style: 'simple'
+ }
+ }
+ }
+};
+exports.IMAGE_ONLY_CONTENT_NO_LIGHT_MODE = {
+ id: 'image-only-different-image',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ image: {
+ url: '',
+ darkUrl: 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*',
+ alt: 'basketball icon'
+ },
+ dismissBtn: {
+ style: 'circle'
+ }
+ }
+ }
+};
diff --git a/apps/BareSampleApp/mocks/contentCards/templates/imageOnly.ts b/apps/BareSampleApp/mocks/contentCards/templates/imageOnly.ts
new file mode 100644
index 000000000..80b26d50a
--- /dev/null
+++ b/apps/BareSampleApp/mocks/contentCards/templates/imageOnly.ts
@@ -0,0 +1,222 @@
+/*
+Copyright 2026 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import { ContentTemplate } from "@adobe/react-native-aepmessaging";
+
+// Image Only Templates
+export const IMAGE_ONLY_CONTENT_ALL_FIELDS: ContentTemplate = {
+ id: 'image-only-all-fields',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://www.adobe.com/',
+ image: {
+ url: 'https://t4.ftcdn.net/jpg/13/35/40/27/240_F_1335402728_gCAPzivq5VytTJVCEcfIB2eX3ZCdE8cc.jpg',
+ darkUrl:
+ 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg',
+ alt: 'flight offer'
+ },
+ dismissBtn: {
+ style: 'simple'
+ }
+ }
+ }
+ };
+
+ export const IMAGE_ONLY_CONTENT_WITH_ACTION_URL: ContentTemplate = {
+ id: 'image-only-with-action-url',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://google.com',
+ image: {
+ url: 'https://t4.ftcdn.net/jpg/13/35/40/27/240_F_1335402728_gCAPzivq5VytTJVCEcfIB2eX3ZCdE8cc.jpg',
+ darkUrl:
+ 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*',
+ alt: 'with action URL - Google Images'
+ },
+ dismissBtn: {
+ style: 'simple'
+ }
+ }
+ }
+ };
+
+ export const IMAGE_ONLY_CONTENT_DISMISS_BUTTON_CIRCLE: ContentTemplate = {
+ id: 'image-only-dismiss-circle',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://google.com',
+ image: {
+ url: 'https://i.ibb.co/0X8R3TG/Messages-24.png',
+ darkUrl:
+ 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*',
+ alt: 'flight offer'
+ },
+ dismissBtn: {
+ style: 'circle'
+ }
+ }
+ }
+ };
+
+ export const IMAGE_ONLY_CONTENT_NO_DISMISS_BUTTON: ContentTemplate = {
+ id: 'image-only-no-dismiss',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://google.com',
+ image: {
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg',
+ darkUrl:
+ 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg',
+ alt: 'flight offer'
+ }
+ }
+ }
+ };
+
+ export const IMAGE_ONLY_CONTENT_INVALID_IMAGE: ContentTemplate = {
+ id: 'image-only-invalid-image',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://google.com',
+ image: {
+ url: 'https://invalid-url-that-will-fail',
+ darkUrl: 'https://another-invalid-url',
+ alt: 'broken image'
+ },
+ dismissBtn: {
+ style: 'simple'
+ }
+ }
+ }
+ };
+
+ export const IMAGE_ONLY_CONTENT_NO_ACTION: ContentTemplate = {
+ id: 'image-only-no-action',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ image: {
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg',
+ darkUrl:
+ 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg',
+ alt: 'non-clickable image'
+ },
+ dismissBtn: {
+ style: 'simple'
+ }
+ }
+ }
+ };
+
+ export const IMAGE_ONLY_CONTENT_NO_DARK_URL: ContentTemplate = {
+ id: 'image-only-no-dark-url',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://google.com',
+ image: {
+ url: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png',
+ alt: 'light mode only image'
+ },
+ dismissBtn: {
+ style: 'simple'
+ }
+ }
+ }
+ };
+
+ export const IMAGE_ONLY_CONTENT_NO_LIGHT_MODE: ContentTemplate = {
+ id: 'image-only-different-image',
+ type: 'ImageOnly',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'ImageOnly' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ image: {
+ url: '',
+ darkUrl:
+ 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*',
+ alt: 'basketball icon'
+ },
+ dismissBtn: {
+ style: 'circle'
+ }
+ }
+ }
+ } as ContentTemplate;
\ No newline at end of file
diff --git a/apps/BareSampleApp/mocks/contentCards/templates/largeImage.js b/apps/BareSampleApp/mocks/contentCards/templates/largeImage.js
new file mode 100644
index 000000000..7f027f051
--- /dev/null
+++ b/apps/BareSampleApp/mocks/contentCards/templates/largeImage.js
@@ -0,0 +1,273 @@
+"use strict";
+/*
+Copyright 2026 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LARGE_IMAGE_CONTENT_LONG_TITLE = exports.LARGE_IMAGE_CONTENT_DARK_URL = exports.LARGE_IMAGE_CONTENT_INVALID_IMAGE = exports.LARGE_IMAGE_CONTENT_NO_DISMISS_BUTTON = exports.LARGE_IMAGE_CONTENT_3_BUTTONS = exports.LARGE_IMAGE_CONTENT_ALL_FIELDS = void 0;
+// Large Image Templates
+exports.LARGE_IMAGE_CONTENT_ALL_FIELDS = {
+ id: 'large-image-all-fields',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content: "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e0554595',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked',
+ text: {
+ content: 'ButtonTextOne'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg',
+ darkUrl: ''
+ },
+ dismissBtn: {
+ style: 'simple'
+ },
+ title: {
+ content: 'This is large image title'
+ }
+ }
+ }
+};
+exports.LARGE_IMAGE_CONTENT_3_BUTTONS = {
+ id: 'large-image-3-buttons',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content: "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e035795',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked_1',
+ text: {
+ content: 'ButtonOne'
+ }
+ },
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e055796',
+ interactId: 'buttonOneClicked_2',
+ text: {
+ content: 'ButtonTwo'
+ }
+ },
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e055797',
+ interactId: 'buttonOneClicked_3',
+ text: {
+ content: 'ButtonThreeeeeeeee'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg'
+ },
+ dismissBtn: {
+ style: 'simple'
+ },
+ title: {
+ content: 'This is large image title'
+ }
+ }
+ }
+};
+exports.LARGE_IMAGE_CONTENT_NO_DISMISS_BUTTON = {
+ id: 'large-image-no-dismiss',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content: "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e055798',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked',
+ text: {
+ content: 'ButtonTextOne'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg'
+ },
+ dismissBtn: {
+ style: 'none'
+ },
+ title: {
+ content: 'This is large image title'
+ }
+ }
+ }
+};
+exports.LARGE_IMAGE_CONTENT_INVALID_IMAGE = {
+ id: 'large-image-invalid',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content: "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b365e055795',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked',
+ text: {
+ content: 'ButtonTextOne'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://xxx',
+ darkUrl: 'https://imageurl.com/dark'
+ },
+ dismissBtn: {
+ style: 'none'
+ },
+ title: {
+ content: 'This is large image title'
+ }
+ }
+ }
+};
+exports.LARGE_IMAGE_CONTENT_DARK_URL = {
+ id: 'large-image-dark-url',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content: "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e055745',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked',
+ text: {
+ content: 'ButtonTextOne'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg',
+ darkUrl: 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*'
+ },
+ dismissBtn: {
+ style: 'none'
+ },
+ title: {
+ content: 'This is large image title'
+ }
+ }
+ }
+};
+exports.LARGE_IMAGE_CONTENT_LONG_TITLE = {
+ id: 'large-image-long-title',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content: "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e055748',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked',
+ text: {
+ content: 'ButtonTextOne'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg',
+ darkUrl: 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*'
+ },
+ dismissBtn: {
+ style: 'none'
+ },
+ title: {
+ content: "This is large image title, it's very long very long very long very long"
+ }
+ }
+ }
+};
diff --git a/apps/BareSampleApp/mocks/contentCards/templates/largeImage.ts b/apps/BareSampleApp/mocks/contentCards/templates/largeImage.ts
new file mode 100644
index 000000000..4ee2c518e
--- /dev/null
+++ b/apps/BareSampleApp/mocks/contentCards/templates/largeImage.ts
@@ -0,0 +1,287 @@
+/*
+Copyright 2026 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import { ContentTemplate } from "@adobe/react-native-aepmessaging";
+
+// Large Image Templates
+export const LARGE_IMAGE_CONTENT_ALL_FIELDS: ContentTemplate = {
+ id: 'large-image-all-fields',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content:
+ "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e0554595',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked',
+ text: {
+ content: 'ButtonTextOne'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg',
+ darkUrl: ''
+ },
+ dismissBtn: {
+ style: 'simple'
+ },
+ title: {
+ content: 'This is large image title'
+ }
+ }
+ }
+ };
+
+ export const LARGE_IMAGE_CONTENT_3_BUTTONS: ContentTemplate = {
+ id: 'large-image-3-buttons',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content:
+ "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e035795',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked_1',
+ text: {
+ content: 'ButtonOne'
+ }
+ },
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e055796',
+ interactId: 'buttonOneClicked_2',
+ text: {
+ content: 'ButtonTwo'
+ }
+ },
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e055797',
+ interactId: 'buttonOneClicked_3',
+ text: {
+ content: 'ButtonThreeeeeeeee'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg'
+ },
+ dismissBtn: {
+ style: 'simple'
+ },
+ title: {
+ content: 'This is large image title'
+ }
+ }
+ }
+ };
+
+ export const LARGE_IMAGE_CONTENT_NO_DISMISS_BUTTON: ContentTemplate = {
+ id: 'large-image-no-dismiss',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content:
+ "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e055798',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked',
+ text: {
+ content: 'ButtonTextOne'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg'
+ },
+ dismissBtn: {
+ style: 'none'
+ },
+ title: {
+ content: 'This is large image title'
+ }
+ }
+ }
+ };
+
+ export const LARGE_IMAGE_CONTENT_INVALID_IMAGE: ContentTemplate = {
+ id: 'large-image-invalid',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content:
+ "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b365e055795',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked',
+ text: {
+ content: 'ButtonTextOne'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://xxx',
+ darkUrl: 'https://imageurl.com/dark'
+ },
+ dismissBtn: {
+ style: 'none'
+ },
+ title: {
+ content: 'This is large image title'
+ }
+ }
+ }
+ };
+
+ export const LARGE_IMAGE_CONTENT_DARK_URL: ContentTemplate = {
+ id: 'large-image-dark-url',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content:
+ "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e055745',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked',
+ text: {
+ content: 'ButtonTextOne'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg',
+ darkUrl:
+ 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*'
+ },
+ dismissBtn: {
+ style: 'none'
+ },
+ title: {
+ content: 'This is large image title'
+ }
+ }
+ }
+ };
+
+ export const LARGE_IMAGE_CONTENT_LONG_TITLE: ContentTemplate = {
+ id: 'large-image-long-title',
+ type: 'LargeImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'LargeImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ actionUrl: 'https://cardaction.com',
+ body: {
+ content:
+ "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ buttons: [
+ {
+ id: 'a41d1bff-2797-4958-a6d7-2b367e055748',
+ actionUrl: 'https://buttonone.com/action',
+ interactId: 'buttonOneClicked',
+ text: {
+ content: 'ButtonTextOne'
+ }
+ }
+ ],
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg',
+ darkUrl:
+ 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*'
+ },
+ dismissBtn: {
+ style: 'none'
+ },
+ title: {
+ content:
+ "This is large image title, it's very long very long very long very long"
+ }
+ }
+ }
+ };
\ No newline at end of file
diff --git a/apps/BareSampleApp/mocks/contentCards/templates/smallImage.js b/apps/BareSampleApp/mocks/contentCards/templates/smallImage.js
new file mode 100644
index 000000000..67933277a
--- /dev/null
+++ b/apps/BareSampleApp/mocks/contentCards/templates/smallImage.js
@@ -0,0 +1,317 @@
+"use strict";
+/*
+Copyright 2026 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.SMALL_IMAGE_CONTENT_NO_BUTTON = exports.SMALL_IMAGE_CONTENT_3_BUTTONS = exports.SMALL_IMAGE_CONTENT_IMAGE_DARK_URL = exports.SMALL_IMAGE_CONTENT_INVALID_IMAGE = exports.SMALL_IMAGE_CONTENT_DISMISS_BUTTON_SIMPLE = exports.SMALL_IMAGE_CONTENT_NO_DISMISS_BUTTON = exports.SMALL_IMAGE_CONTENT_ALL_FIELDS = void 0;
+exports.SMALL_IMAGE_CONTENT_ALL_FIELDS = {
+ id: 'small-image-all-fields',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ image: {
+ alt: '',
+ url: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png',
+ darkUrl: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png'
+ },
+ buttons: [
+ {
+ interactId: 'downloadClicked',
+ actionUrl: 'https://nba.com',
+ id: '5b4d53f5-44bd-4e5c-a5cb-6e650b1993f6',
+ text: {
+ content: 'Download App'
+ }
+ },
+ {
+ interactId: 'OK',
+ id: '5b4d53f5-45bd-4e3c-a5cb-6e650b1993f7',
+ text: {
+ content: 'OK'
+ }
+ }
+ ],
+ dismissBtn: {
+ style: 'circle'
+ },
+ actionUrl: '',
+ body: {
+ content: 'Get live scores, real-time updates, and exclusive content right at your fingertips.'
+ },
+ title: {
+ content: 'Stay connected to all the action'
+ }
+ }
+ }
+};
+exports.SMALL_IMAGE_CONTENT_NO_DISMISS_BUTTON = {
+ id: 'small-image-no-dismiss',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ image: {
+ alt: '',
+ url: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png',
+ darkUrl: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png'
+ },
+ buttons: [
+ {
+ interactId: 'downloadClicked',
+ actionUrl: 'https://nba.com',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e65b1993f6',
+ text: {
+ content: 'Download App'
+ }
+ }
+ ],
+ actionUrl: '',
+ body: {
+ content: 'Get live scores, real-time updates, and exclusive content right at your fingertips.'
+ },
+ title: {
+ content: 'Stay connected to all the action'
+ }
+ }
+ }
+};
+exports.SMALL_IMAGE_CONTENT_DISMISS_BUTTON_SIMPLE = {
+ id: 'small-image-dismiss-button-simple',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ image: {
+ alt: '',
+ url: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png',
+ darkUrl: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png'
+ },
+ buttons: [
+ {
+ interactId: 'downloadClicked',
+ actionUrl: 'https://nba.com',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e650b1893f6',
+ text: {
+ content: 'Download App'
+ }
+ },
+ {
+ interactId: 'OK',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e650a1993f6',
+ text: {
+ content: 'OK'
+ }
+ }
+ ],
+ dismissBtn: {
+ style: 'simple'
+ },
+ actionUrl: '',
+ body: {
+ content: 'Get live scores, real-time updates, and exclusive content right at your fingertips.'
+ },
+ title: {
+ content: 'Stay connected to all the action'
+ }
+ }
+ }
+};
+exports.SMALL_IMAGE_CONTENT_INVALID_IMAGE = {
+ id: 'small-image-invalid-image',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ body: {
+ content: 'Get live scores, real-time updates, and exclusive content right at your fingertips.'
+ },
+ title: {
+ content: 'Stay connected to all the action'
+ },
+ buttons: [
+ {
+ interactId: 'buy',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e450b1993f6',
+ actionUrl: 'https://nba.com',
+ text: {
+ content: 'Get Season Pass'
+ }
+ }
+ ],
+ actionUrl: '',
+ dismissBtn: {
+ style: 'circle'
+ },
+ image: {
+ darkUrl: 'https://invalid-dark-url-that-will-fail.png',
+ alt: '',
+ url: 'https://invalid-light-url-that-will-fail.png'
+ }
+ }
+ }
+};
+exports.SMALL_IMAGE_CONTENT_IMAGE_DARK_URL = {
+ id: 'small-image-dark-url',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ body: {
+ content: "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ title: {
+ content: 'Get Ready for the Basketball Season Kickoff!'
+ },
+ buttons: [
+ {
+ interactId: 'buy',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e850b1993f6',
+ actionUrl: 'https://nba.com',
+ text: {
+ content: 'Get Season Pass'
+ }
+ }
+ ],
+ actionUrl: '',
+ dismissBtn: {
+ style: 'circle'
+ },
+ image: {
+ darkUrl: 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*',
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg'
+ }
+ }
+ }
+};
+exports.SMALL_IMAGE_CONTENT_3_BUTTONS = {
+ id: 'small-image-3-buttons',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ body: {
+ content: "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ title: {
+ content: 'Get Ready for the Basketball Season Kickoff!'
+ },
+ buttons: [
+ {
+ interactId: 'buy',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e610b1993f6',
+ actionUrl: 'https://nba.com',
+ text: {
+ content: 'Buyyyyy'
+ }
+ },
+ {
+ interactId: 'ok',
+ id: '5b4d53f5-41bd-4e5c-a5cb-6e650b1993f6',
+ actionUrl: 'https://nba.com',
+ text: {
+ content: 'OK'
+ }
+ },
+ {
+ interactId: 'more',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e650b1793f6',
+ actionUrl: 'https://nba.com',
+ text: {
+ content: 'More'
+ }
+ }
+ ],
+ actionUrl: '',
+ dismissBtn: {
+ style: 'circle'
+ },
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg'
+ }
+ }
+ }
+};
+exports.SMALL_IMAGE_CONTENT_NO_BUTTON = {
+ id: 'small-image-no-button',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card',
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ body: {
+ content: "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ title: {
+ content: 'Get Ready for the Basketball Season Kickoff!'
+ },
+ // buttons removed to avoid rendering 0 from `.length &&` in upstream UI
+ actionUrl: '',
+ dismissBtn: {
+ style: 'circle'
+ },
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg'
+ }
+ }
+ }
+};
diff --git a/apps/BareSampleApp/mocks/contentCards/templates/smallImage.ts b/apps/BareSampleApp/mocks/contentCards/templates/smallImage.ts
new file mode 100644
index 000000000..ac9da86f4
--- /dev/null
+++ b/apps/BareSampleApp/mocks/contentCards/templates/smallImage.ts
@@ -0,0 +1,331 @@
+/*
+Copyright 2026 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import { ContentTemplate } from '@adobe/react-native-aepmessaging';
+
+export const SMALL_IMAGE_CONTENT_ALL_FIELDS: ContentTemplate = {
+ id: 'small-image-all-fields',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ image: {
+ alt: '',
+ url: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png',
+ darkUrl: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png'
+ },
+ buttons: [
+ {
+ interactId: 'downloadClicked',
+ actionUrl: 'https://nba.com',
+ id: '5b4d53f5-44bd-4e5c-a5cb-6e650b1993f6',
+ text: {
+ content: 'Download App'
+ }
+ },
+ {
+ interactId: 'OK',
+ id: '5b4d53f5-45bd-4e3c-a5cb-6e650b1993f7',
+ text: {
+ content: 'OK'
+ }
+ }
+ ],
+ dismissBtn: {
+ style: 'circle'
+ },
+ actionUrl: '',
+ body: {
+ content:
+ 'Get live scores, real-time updates, and exclusive content right at your fingertips.'
+ },
+ title: {
+ content: 'Stay connected to all the action'
+ }
+ }
+ }
+ };
+
+ export const SMALL_IMAGE_CONTENT_NO_DISMISS_BUTTON: ContentTemplate = {
+ id: 'small-image-no-dismiss',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ image: {
+ alt: '',
+ url: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png',
+ darkUrl: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png'
+ },
+ buttons: [
+ {
+ interactId: 'downloadClicked',
+ actionUrl: 'https://nba.com',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e65b1993f6',
+ text: {
+ content: 'Download App'
+ }
+ }
+ ],
+ actionUrl: '',
+ body: {
+ content:
+ 'Get live scores, real-time updates, and exclusive content right at your fingertips.'
+ },
+ title: {
+ content: 'Stay connected to all the action'
+ }
+ }
+ }
+ };
+
+ export const SMALL_IMAGE_CONTENT_DISMISS_BUTTON_SIMPLE: ContentTemplate = {
+ id: 'small-image-dismiss-button-simple',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ image: {
+ alt: '',
+ url: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png',
+ darkUrl: 'https://cdn-icons-png.flaticon.com/256/3303/3303838.png'
+ },
+ buttons: [
+ {
+ interactId: 'downloadClicked',
+ actionUrl: 'https://nba.com',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e650b1893f6',
+ text: {
+ content: 'Download App'
+ }
+ },
+ {
+ interactId: 'OK',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e650a1993f6',
+ text: {
+ content: 'OK'
+ }
+ }
+ ],
+ dismissBtn: {
+ style: 'simple'
+ },
+ actionUrl: '',
+ body: {
+ content:
+ 'Get live scores, real-time updates, and exclusive content right at your fingertips.'
+ },
+ title: {
+ content: 'Stay connected to all the action'
+ }
+ }
+ }
+ };
+
+ export const SMALL_IMAGE_CONTENT_INVALID_IMAGE: ContentTemplate = {
+ id: 'small-image-invalid-image',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ body: {
+ content:
+ 'Get live scores, real-time updates, and exclusive content right at your fingertips.'
+ },
+ title: {
+ content: 'Stay connected to all the action'
+ },
+ buttons: [
+ {
+ interactId: 'buy',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e450b1993f6',
+ actionUrl: 'https://nba.com',
+ text: {
+ content: 'Get Season Pass'
+ }
+ }
+ ],
+ actionUrl: '',
+ dismissBtn: {
+ style: 'circle'
+ },
+ image: {
+ darkUrl: 'https://invalid-dark-url-that-will-fail.png',
+ alt: '',
+ url: 'https://invalid-light-url-that-will-fail.png'
+ }
+ }
+ }
+ };
+
+ export const SMALL_IMAGE_CONTENT_IMAGE_DARK_URL: ContentTemplate = {
+ id: 'small-image-dark-url',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ body: {
+ content:
+ "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ title: {
+ content: 'Get Ready for the Basketball Season Kickoff!'
+ },
+ buttons: [
+ {
+ interactId: 'buy',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e850b1993f6',
+ actionUrl: 'https://nba.com',
+ text: {
+ content: 'Get Season Pass'
+ }
+ }
+ ],
+ actionUrl: '',
+ dismissBtn: {
+ style: 'circle'
+ },
+ image: {
+ darkUrl:
+ 'https://hips.hearstapps.com/hmg-prod/images/golden-retriever-dog-royalty-free-image-505534037-1565105327.jpg?crop=0.760xw:1.00xh;0.204xw,0&resize=980:*',
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg'
+ }
+ }
+ }
+ };
+
+ export const SMALL_IMAGE_CONTENT_3_BUTTONS: ContentTemplate = {
+ id: 'small-image-3-buttons',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ body: {
+ content:
+ "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ title: {
+ content: 'Get Ready for the Basketball Season Kickoff!'
+ },
+ buttons: [
+ {
+ interactId: 'buy',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e610b1993f6',
+ actionUrl: 'https://nba.com',
+ text: {
+ content: 'Buyyyyy'
+ }
+ },
+ {
+ interactId: 'ok',
+ id: '5b4d53f5-41bd-4e5c-a5cb-6e650b1993f6',
+ actionUrl: 'https://nba.com',
+ text: {
+ content: 'OK'
+ }
+ },
+ {
+ interactId: 'more',
+ id: '5b4d53f5-45bd-4e5c-a5cb-6e650b1793f6',
+ actionUrl: 'https://nba.com',
+ text: {
+ content: 'More'
+ }
+ }
+ ],
+ actionUrl: '',
+ dismissBtn: {
+ style: 'circle'
+ },
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg'
+ }
+ }
+ }
+ };
+
+ export const SMALL_IMAGE_CONTENT_NO_BUTTON: ContentTemplate = {
+ id: 'small-image-no-button',
+ type: 'SmallImage',
+ schema: 'https://ns.adobe.com/personalization/message/content-card' as any,
+ data: {
+ expiryDate: Date.now() + 86400000, // 24 hours from now
+ publishedDate: Date.now(),
+ contentType: 'application/json',
+ meta: {
+ adobe: { template: 'SmallImage' as any },
+ surface: 'rn/ios/sample'
+ },
+ content: {
+ body: {
+ content:
+ "Tickets are on sale now! Don't miss out on securing your seat to witness the high-flying action from the best players in the game"
+ },
+ title: {
+ content: 'Get Ready for the Basketball Season Kickoff!'
+ },
+ // buttons removed to avoid rendering 0 from `.length &&` in upstream UI
+ actionUrl: '',
+ dismissBtn: {
+ style: 'circle'
+ },
+ image: {
+ alt: '',
+ url: 'https://cdn.pixabay.com/photo/2022/06/24/06/53/cavalier-king-charles-spaniel-7281121_1280.jpg'
+ }
+ }
+ }
+ };
\ No newline at end of file
diff --git a/apps/BareSampleApp/package.json b/apps/BareSampleApp/package.json
new file mode 100644
index 000000000..33c6fb1a8
--- /dev/null
+++ b/apps/BareSampleApp/package.json
@@ -0,0 +1,107 @@
+{
+ "name": "baresampleapp",
+ "version": "2.0.0",
+ "private": true,
+ "scripts": {
+ "android": "react-native run-android",
+ "ios": "react-native run-ios --scheme BareSampleApp",
+ "build:matrix": "bash scripts/build-matrix.sh",
+ "build:matrix:list": "bash scripts/build-matrix.sh --list-matrix",
+ "build:ios:old:interop": "bash scripts/build-matrix.sh --preset ios-old-interop -c full --sync --run",
+ "build:ios:new:turbo": "bash scripts/build-matrix.sh --preset ios-new-turbo -c full --sync --run",
+ "build:ios:new:interop": "bash scripts/build-matrix.sh --preset ios-new-interop -c full --sync --run",
+ "build:android:old:interop": "bash scripts/build-matrix.sh --preset android-old-interop -c full --sync --run",
+ "build:android:old:bridge": "bash scripts/build-matrix.sh --preset android-old-bridge -c full --sync --run",
+ "build:android:new:turbo": "bash scripts/build-matrix.sh --preset android-new-turbo -c full --sync --run",
+ "build:android:new:interop": "bash scripts/build-matrix.sh --preset android-new-interop -c full --sync --run",
+ "lint": "eslint .",
+ "start": "react-native start",
+ "test": "jest"
+ },
+ "dependencies": {
+ "@adobe/react-native-aepassurance": "^7.0.0",
+ "@adobe/react-native-aepcampaignclassic": "^7.0.0",
+ "@adobe/react-native-aepcore": "^7.0.0",
+ "@adobe/react-native-aepedge": "^7.0.0",
+ "@adobe/react-native-aepedgebridge": "^7.0.1",
+ "@adobe/react-native-aepedgeconsent": "^7.0.0",
+ "@adobe/react-native-aepedgeidentity": "^7.0.0",
+ "@adobe/react-native-aepmessaging": "^7.4.0",
+ "@adobe/react-native-aepoptimize": "portal:../../packages/optimize",
+ "@adobe/react-native-aepplaces": "^7.0.1",
+ "@adobe/react-native-aeptarget": "^7.0.0",
+ "@adobe/react-native-aepuserprofile": "^7.0.0",
+ "@react-native-async-storage/async-storage": "^2.1.2",
+ "@react-native-masked-view/masked-view": "^0.3.0",
+ "@react-navigation/drawer": "^6.7.2",
+ "@react-navigation/native": "^6.1.18",
+ "@react-navigation/stack": "^6.4.1",
+ "lodash.isequal": "^4.5.0",
+ "react": "18.3.1",
+ "react-native": "0.76.6",
+ "react-native-gesture-handler": "2.20.2",
+ "react-native-reanimated": "3.16.7",
+ "react-native-safe-area-context": "^4.14.0",
+ "react-native-screens": "~3.34.0",
+ "react-native-webview": "^13.12.5",
+ "recyclerlistview": "^4.2.0",
+ "ts-object-utils": "0.0.5",
+ "tslib": "^2.6.0"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.25.2",
+ "@babel/preset-env": "^7.25.3",
+ "@babel/runtime": "^7.25.0",
+ "@react-native-community/cli": "15.0.1",
+ "@react-native-community/cli-platform-android": "15.0.1",
+ "@react-native-community/cli-platform-ios": "15.0.1",
+ "@react-native/babel-preset": "0.76.6",
+ "@react-native/eslint-config": "0.76.6",
+ "@react-native/metro-config": "0.76.6",
+ "@react-native/typescript-config": "0.76.6",
+ "@types/jest": "^29.5.13",
+ "@types/react": "^18.2.6",
+ "@types/react-test-renderer": "^18.0.0",
+ "eslint": "^8.19.0",
+ "jest": "^29.6.3",
+ "prettier": "2.8.8",
+ "react-test-renderer": "18.3.1",
+ "typescript": "5.0.4"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "installConfig": {
+ "hoistingLimits": "workspaces",
+ "selfReferences": false
+ },
+ "rnx-kit": {
+ "kitType": "app",
+ "alignDeps": {
+ "requirements": [
+ "react-native@0.76"
+ ],
+ "capabilities": [
+ "animation",
+ "babel-preset-react-native",
+ "community/cli",
+ "community/cli-android",
+ "community/cli-ios",
+ "core",
+ "core-android",
+ "core-ios",
+ "core/metro-config",
+ "gestures",
+ "jest",
+ "masked-view",
+ "navigation/native",
+ "navigation/stack",
+ "react",
+ "react-test-renderer",
+ "safe-area",
+ "screens",
+ "webview"
+ ]
+ }
+ }
+}
diff --git a/apps/BareSampleApp/react-native.config.js b/apps/BareSampleApp/react-native.config.js
new file mode 100644
index 000000000..49c6d9436
--- /dev/null
+++ b/apps/BareSampleApp/react-native.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+ project: {
+ ios: {},
+ android: {},
+ },
+};
diff --git a/apps/BareSampleApp/scripts/build-matrix.sh b/apps/BareSampleApp/scripts/build-matrix.sh
new file mode 100755
index 000000000..85f7c2ec0
--- /dev/null
+++ b/apps/BareSampleApp/scripts/build-matrix.sh
@@ -0,0 +1,505 @@
+#!/usr/bin/env bash
+#
+# BareSampleApp — build matrix helper (RN 0.76)
+#
+# Configures new/old arch + USE_INTEROP_ROOT (Optimize turbo vs interop) and
+# runs iOS and/or Android builds. Supports incremental, light, and full cleans.
+#
+# Examples:
+# ./scripts/build-matrix.sh --platform ios --arch new --interop false --clean full
+# ./scripts/build-matrix.sh --platform android --arch old --interop true --clean full --sync --run
+# ./scripts/build-matrix.sh --preset android-old-interop --clean full --sync --run
+# ./scripts/build-matrix.sh --list-matrix
+#
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+APP_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
+REPO_ROOT="$(cd "$APP_DIR/../.." && pwd)"
+OPTIMIZE_PKG="$REPO_ROOT/packages/optimize"
+
+IOS_SCHEME="BareSampleApp"
+IOS_PODFILE_PROPS="$APP_DIR/ios/Podfile.properties.json"
+ANDROID_GRADLE_PROPS="$APP_DIR/android/gradle.properties"
+ANDROID_ROOT_BUILD="$APP_DIR/android/build.gradle"
+ANDROID_DIR="$APP_DIR/android"
+
+# Defaults
+PLATFORM="both"
+ARCH="new"
+INTEROP="false"
+CLEAN="light"
+SYNC_DEPS=false
+RUN_APP=false
+BUILD_ONLY=true
+START_METRO=true
+LIST_MATRIX=false
+PRESET=""
+METRO_PID=""
+
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+CYAN='\033[0;36m'
+NC='\033[0m'
+
+log() { echo -e "${CYAN}▸${NC} $*"; }
+ok() { echo -e "${GREEN}✓${NC} $*"; }
+warn() { echo -e "${YELLOW}!${NC} $*"; }
+die() { echo -e "${RED}✗${NC} $*" >&2; exit 1; }
+
+# macOS /bin/bash is 3.2 — avoid ${var,,} (requires bash 4+)
+to_lower() {
+ printf '%s' "$1" | tr '[:upper:]' '[:lower:]'
+}
+
+usage() {
+ cat <<'EOF'
+Usage: build-matrix.sh [options]
+
+Configure BareSampleApp for a TurboModule test cell and build iOS and/or Android.
+
+Options:
+ -p, --platform ios|android|both Platform to build (default: both)
+ -a, --arch new|old New Architecture on/off (default: new)
+ -i, --interop true|false USE_INTEROP_ROOT for @adobe/react-native-aepoptimize
+ true = RCTEventEmitter / bridge interop
+ false = Turbo SpecBase path (default)
+ -c, --clean none|light|full Clean level (default: light)
+ none = incremental build only
+ light = invalidate autolinking + pod install / gradle
+ full = remove Pods, DerivedData, Android .cxx/build caches
+ --sync Run optimize prepare + yarn install before build
+ --run Launch app on simulator/device after build
+ --build-only Build only, do not launch (default)
+ --preset Shortcut for common cells (overrides -p -a -i):
+ ios-old-interop iOS old arch + interop
+ ios-new-interop iOS new arch + interop
+ ios-new-turbo iOS new arch + turbo
+ android-old-interop Android old arch + interop (primary)
+ android-old-bridge Android old arch + turbo flag off*
+ android-new-interop Android new arch + interop
+ android-new-turbo Android new arch + turbo
+ both-new-turbo Both platforms, new arch turbo
+ * old Android always uses bridge module; flag still toggles BuildConfig
+ --list-matrix Print all combinations and exit
+ -h, --help Show this help
+
+Config files updated (platform-specific):
+ ios/Podfile.properties.json → newArchEnabled (ios | both)
+ android/gradle.properties → newArchEnabled (android | both)
+ android/build.gradle → USE_INTEROP_ROOT (android | both)
+
+iOS pod install env:
+ RCT_NEW_ARCH_ENABLED=0|1
+ USE_INTEROP_ROOT=0|1
+
+Recommended cells (RN 0.76):
+ iOS old + interop true — primary iOS 0.76 bridge path
+ iOS new + interop false — turbo path (recommended new arch)
+ Android old + interop true — primary Android 0.76 path (always bridge module)
+ Android new + interop false — turbo NativeAEPOptimizeModule
+ iOS old + interop false — NOT supported (methods not exported)
+
+EOF
+}
+
+normalize_bool() {
+ case "$(to_lower "$1")" in
+ true|1|yes|on) echo "true" ;;
+ false|0|no|off) echo "false" ;;
+ *) die "Invalid boolean: $1 (use true/false)" ;;
+ esac
+}
+
+apply_preset() {
+ case "$1" in
+ ios-old-interop) PLATFORM=ios; ARCH=old; INTEROP=true ;;
+ ios-new-interop) PLATFORM=ios; ARCH=new; INTEROP=true ;;
+ ios-new-turbo) PLATFORM=ios; ARCH=new; INTEROP=false ;;
+ android-old-interop) PLATFORM=android; ARCH=old; INTEROP=true ;;
+ android-old-bridge) PLATFORM=android; ARCH=old; INTEROP=false ;;
+ android-new-interop) PLATFORM=android; ARCH=new; INTEROP=true ;;
+ android-new-turbo) PLATFORM=android; ARCH=new; INTEROP=false ;;
+ both-new-turbo) PLATFORM=both; ARCH=new; INTEROP=false ;;
+ *) die "Unknown preset: $1 (use --list-matrix)" ;;
+ esac
+}
+
+parse_args() {
+ while [[ $# -gt 0 ]]; do
+ case "$1" in
+ -p|--platform)
+ PLATFORM="$(to_lower "$2")"
+ shift 2
+ ;;
+ -a|--arch)
+ ARCH="$(to_lower "$2")"
+ shift 2
+ ;;
+ -i|--interop)
+ INTEROP="$(normalize_bool "$2")"
+ shift 2
+ ;;
+ -c|--clean)
+ CLEAN="$(to_lower "$2")"
+ shift 2
+ ;;
+ --preset)
+ PRESET="$(to_lower "$2")"
+ shift 2
+ ;;
+ --sync) SYNC_DEPS=true; shift ;;
+ --run) RUN_APP=true; BUILD_ONLY=false; shift ;;
+ --build-only) BUILD_ONLY=true; RUN_APP=false; shift ;;
+ --metro) START_METRO=true; shift ;;
+ --no-metro) START_METRO=false; shift ;;
+ --list-matrix) LIST_MATRIX=true; shift ;;
+ -h|--help) usage; exit 0 ;;
+ *) die "Unknown option: $1 (use --help)" ;;
+ esac
+ done
+
+ if [[ -n "$PRESET" ]]; then
+ apply_preset "$PRESET"
+ fi
+
+ case "$PLATFORM" in
+ ios|android|both) ;;
+ *) die "Invalid platform: $PLATFORM" ;;
+ esac
+ case "$ARCH" in
+ new|old) ;;
+ *) die "Invalid arch: $ARCH" ;;
+ esac
+ case "$CLEAN" in
+ none|light|full) ;;
+ *) die "Invalid clean level: $CLEAN" ;;
+ esac
+}
+
+needs_ios() {
+ [[ "$PLATFORM" == "ios" || "$PLATFORM" == "both" ]]
+}
+
+needs_android() {
+ [[ "$PLATFORM" == "android" || "$PLATFORM" == "both" ]]
+}
+
+print_matrix() {
+ cat <<'EOF'
+BareSampleApp build matrix — 4 arch×interop cells (each platform):
+
+ # | Arch | Interop | Optimize USE_INTEROP | iOS native root | Android native root
+ --|------|---------|----------------------|------------------------|-----------------------------
+ 1 | old | true | true | RCTEventEmitter bridge | RCTAEPOptimizeModule (bridge)
+ 2 | old | false | false | SpecBase (broken) | RCTAEPOptimizeModule (bridge)*
+ 3 | new | true | true | RCTEventEmitter+spec | RCTAEPOptimizeModule (bridge)
+ 4 | new | false | false | SpecBase turbo | NativeAEPOptimizeModule (turbo)
+
+ * Android old arch always loads RCTAEPOptimizeModule regardless of USE_INTEROP_ROOT;
+ the flag still updates BuildConfig for parity with iOS test cells.
+
+Presets:
+ ios-old-interop android-old-interop (primary 0.76 cells)
+ ios-new-turbo android-new-turbo (primary new-arch cells)
+ ios-new-interop android-new-interop (interop-on-new-arch smoke tests)
+ android-old-bridge old Android + USE_INTEROP_ROOT=false
+ both-new-turbo both platforms, new arch turbo
+
+Example commands:
+
+ # iOS
+ ./scripts/build-matrix.sh --preset ios-old-interop -c full --sync --run
+ ./scripts/build-matrix.sh --preset ios-new-turbo -c full --sync --run
+ ./scripts/build-matrix.sh --preset ios-new-interop -c full --sync --run
+
+ # Android (including old arch)
+ ./scripts/build-matrix.sh --preset android-old-interop -c full --sync --run
+ ./scripts/build-matrix.sh --preset android-old-bridge -c full --sync --run
+ ./scripts/build-matrix.sh --preset android-new-turbo -c full --sync --run
+ ./scripts/build-matrix.sh --preset android-new-interop -c full --sync --run
+
+ # Both
+ ./scripts/build-matrix.sh --preset both-new-turbo -c full --sync
+
+EOF
+}
+
+apply_ios_config() {
+ local new_arch_enabled="$1"
+
+ node -e "
+ const fs = require('fs');
+ const p = process.argv[1];
+ const v = process.argv[2];
+ const j = JSON.parse(fs.readFileSync(p, 'utf8'));
+ j.newArchEnabled = v;
+ fs.writeFileSync(p, JSON.stringify(j, null, 2) + '\n');
+ " "$IOS_PODFILE_PROPS" "$new_arch_enabled"
+ ok "ios/Podfile.properties.json → newArchEnabled: $new_arch_enabled"
+
+ export RCT_NEW_ARCH_ENABLED=$([[ "$new_arch_enabled" == "true" ]] && echo 1 || echo 0)
+}
+
+apply_android_config() {
+ local new_arch_enabled="$1"
+ local interop_enabled="$2"
+
+ if grep -q '^newArchEnabled=' "$ANDROID_GRADLE_PROPS"; then
+ if [[ "$(uname)" == Darwin ]]; then
+ sed -i '' "s/^newArchEnabled=.*/newArchEnabled=$new_arch_enabled/" "$ANDROID_GRADLE_PROPS"
+ else
+ sed -i "s/^newArchEnabled=.*/newArchEnabled=$new_arch_enabled/" "$ANDROID_GRADLE_PROPS"
+ fi
+ else
+ echo "newArchEnabled=$new_arch_enabled" >> "$ANDROID_GRADLE_PROPS"
+ fi
+ ok "android/gradle.properties → newArchEnabled: $new_arch_enabled"
+
+ if [[ "$(uname)" == Darwin ]]; then
+ sed -i '' "s/buildConfigField \"boolean\", \"USE_INTEROP_ROOT\", \"\(true\|false\)\"/buildConfigField \"boolean\", \"USE_INTEROP_ROOT\", \"$interop_enabled\"/" "$ANDROID_ROOT_BUILD"
+ else
+ sed -i "s/buildConfigField \"boolean\", \"USE_INTEROP_ROOT\", \"\(true\|false\)\"/buildConfigField \"boolean\", \"USE_INTEROP_ROOT\", \"$interop_enabled\"/" "$ANDROID_ROOT_BUILD"
+ fi
+ ok "android/build.gradle → USE_INTEROP_ROOT: $interop_enabled"
+
+ if [[ "$new_arch_enabled" == "false" ]]; then
+ log "Android old arch: RCTAEPOptimizePackage always registers bridge module (RCTAEPOptimizeModule)"
+ fi
+}
+
+apply_config() {
+ local new_arch_enabled="$1"
+ local interop_enabled="$2"
+ local ios_interop="$3"
+
+ log "Applying config: newArch=$new_arch_enabled interop=$interop_enabled platform=$PLATFORM"
+
+ if needs_ios; then
+ apply_ios_config "$new_arch_enabled"
+ export USE_INTEROP_ROOT="$ios_interop"
+ fi
+
+ if needs_android; then
+ apply_android_config "$new_arch_enabled" "$interop_enabled"
+ fi
+
+ if [[ "$ARCH" == "old" && "$INTEROP" == "false" ]] && needs_ios; then
+ warn "iOS old arch + interop false is NOT supported (Optimize methods won't export)."
+ fi
+
+ if [[ "$ARCH" == "old" && "$INTEROP" == "false" ]] && needs_android; then
+ warn "Android old arch ignores turbo path — still uses RCTAEPOptimizeModule; USE_INTEROP_ROOT=false only affects BuildConfig."
+ fi
+}
+
+sync_dependencies() {
+ log "Syncing @adobe/react-native-aepoptimize (packages/optimize → node_modules)"
+ (cd "$OPTIMIZE_PKG" && npm run prepare)
+ (cd "$APP_DIR" && yarn install)
+ ok "Dependencies synced"
+}
+
+metro_is_running() {
+ curl -sf "http://localhost:8081/status" 2>/dev/null | grep -q 'packager-status:running'
+}
+
+METRO_LOG="$APP_DIR/.metro-build-matrix.log"
+METRO_PID_FILE="$APP_DIR/.metro-build-matrix.pid"
+
+ensure_metro() {
+ if ! $START_METRO; then
+ log "Skipping Metro start (--no-metro); run: cd apps/BareSampleApp && yarn start --reset-cache"
+ return
+ fi
+ if metro_is_running; then
+ ok "Metro already running on :8081 (reusing existing server)"
+ return
+ fi
+ log "Starting Metro in background (--reset-cache) → $METRO_LOG"
+ rm -f "$METRO_PID_FILE"
+ pushd "$APP_DIR" > /dev/null
+ nohup npx react-native start --reset-cache >> "$METRO_LOG" 2>&1 &
+ METRO_PID=$!
+ echo "$METRO_PID" > "$METRO_PID_FILE"
+ disown "$METRO_PID" 2>/dev/null || true
+ popd > /dev/null
+ local i=0
+ while [[ $i -lt 90 ]]; do
+ if metro_is_running; then
+ ok "Metro ready at http://localhost:8081 (pid ${METRO_PID:-?})"
+ return
+ fi
+ sleep 1
+ i=$((i + 1))
+ done
+ die "Metro failed to start within 90s — check $METRO_LOG (or run 'yarn start --reset-cache' in another terminal)"
+}
+
+android_invalidate_autolinking() {
+ if [[ "$CLEAN" == "none" ]]; then
+ return
+ fi
+ log "Android: invalidating autolinking / codegen cache (arch or interop may have changed)"
+ rm -f "$ANDROID_DIR/build/generated/autolinking/autolinking.json" \
+ "$ANDROID_DIR/build/generated/autolinking/"*.sha 2>/dev/null || true
+}
+
+ios_clean() {
+ case "$CLEAN" in
+ none) ;;
+ light)
+ log "iOS light clean: pod install refresh (keeping DerivedData)"
+ ;;
+ full)
+ log "iOS full clean: Pods, Podfile.lock, DerivedData"
+ rm -rf "$APP_DIR/ios/Pods" "$APP_DIR/ios/Podfile.lock"
+ rm -rf "$HOME/Library/Developer/Xcode/DerivedData"/BareSampleApp-*
+ ok "iOS caches removed"
+ ;;
+ esac
+}
+
+android_clean() {
+ case "$CLEAN" in
+ none) ;;
+ light)
+ android_invalidate_autolinking
+ ;;
+ full)
+ log "Android full clean: .cxx, build dirs, .gradle (avoid gradlew clean — CMake glob issues)"
+ rm -rf "$ANDROID_DIR/app/.cxx" \
+ "$ANDROID_DIR/app/build" \
+ "$ANDROID_DIR/build" \
+ "$ANDROID_DIR/.gradle"
+ android_invalidate_autolinking
+ ok "Android caches removed"
+ ;;
+ esac
+}
+
+build_ios() {
+ if $RUN_APP; then
+ ensure_metro
+ fi
+
+ ios_clean
+
+ log "iOS pod install (RCT_NEW_ARCH_ENABLED=$RCT_NEW_ARCH_ENABLED USE_INTEROP_ROOT=$USE_INTEROP_ROOT)"
+ (cd "$APP_DIR/ios" && RCT_NEW_ARCH_ENABLED="$RCT_NEW_ARCH_ENABLED" USE_INTEROP_ROOT="$USE_INTEROP_ROOT" pod install)
+
+ if $RUN_APP; then
+ log "run-ios (install + launch, --no-packager --mode Debug — Metro already running)"
+ (cd "$APP_DIR" && npx react-native run-ios --scheme "$IOS_SCHEME" --no-packager --mode Debug)
+ ok "iOS run-ios completed"
+ return
+ fi
+
+ log "iOS xcodebuild (simulator, Debug)"
+ local sim
+ sim=$(xcrun simctl list devices available -j 2>/dev/null | python3 -c "
+import sys, json
+try:
+ d = json.load(sys.stdin)
+ devs = []
+ for rt, items in d.get('devices', {}).items():
+ if 'iOS' in rt:
+ ver = rt.split('iOS-')[-1].replace('-', '.') if 'iOS-' in rt else '0'
+ for i in items:
+ if i.get('isAvailable') and 'iPhone' in i.get('name', ''):
+ devs.append((ver, i['udid']))
+ devs.sort(key=lambda x: [int(p) if p.isdigit() else 0 for p in x[0].split('.')], reverse=True)
+ print(devs[0][1] if devs else '')
+except Exception:
+ print('')
+" 2>/dev/null || true)
+
+ local dest="generic/platform=iOS Simulator"
+ if [[ -n "$sim" ]]; then
+ dest="platform=iOS Simulator,id=$sim"
+ fi
+
+ (cd "$APP_DIR/ios" && xcodebuild \
+ -workspace BareSampleApp.xcworkspace \
+ -scheme "$IOS_SCHEME" \
+ -configuration Debug \
+ -sdk iphonesimulator \
+ -destination "$dest" \
+ build)
+ ok "iOS build succeeded"
+}
+
+build_android() {
+ android_clean
+
+ local new_arch_enabled
+ new_arch_enabled=$(grep '^newArchEnabled=' "$ANDROID_GRADLE_PROPS" | cut -d= -f2)
+
+ if $RUN_APP; then
+ ensure_metro
+ log "Installing fresh debug APK + launch (run-android --no-packager, newArchEnabled=$new_arch_enabled USE_INTEROP_ROOT=$INTEROP)"
+ (cd "$APP_DIR" && npx react-native run-android --no-packager)
+ ok "Android run-android completed — app reinstalled and connected to Metro"
+ return
+ fi
+
+ if [[ "$new_arch_enabled" == "true" ]]; then
+ log "Android new arch: generating codegen artifacts"
+ (cd "$ANDROID_DIR" && ./gradlew generateCodegenArtifactsFromSchema)
+ else
+ log "Android old arch: skipping turbo codegen (bridge modules only)"
+ fi
+
+ log "Android assembleDebug only (newArchEnabled=$new_arch_enabled USE_INTEROP_ROOT=$INTEROP)"
+ log "APK built but NOT installed — add --run to reinstall on device/emulator"
+ (cd "$ANDROID_DIR" && ./gradlew assembleDebug)
+ ok "Android assembleDebug succeeded"
+}
+
+main() {
+ parse_args "$@"
+
+ if $LIST_MATRIX; then
+ print_matrix
+ exit 0
+ fi
+
+ local new_arch interop_ios
+ new_arch=$([[ "$ARCH" == "new" ]] && echo "true" || echo "false")
+ interop_ios=$([[ "$INTEROP" == "true" ]] && echo "1" || echo "0")
+
+ echo ""
+ echo "════════════════════════════════════════════════════════════"
+ echo " BareSampleApp build matrix"
+ if [[ -n "$PRESET" ]]; then
+ echo " preset=$PRESET"
+ fi
+ echo " platform=$PLATFORM arch=$ARCH interop=$INTEROP clean=$CLEAN"
+ echo "════════════════════════════════════════════════════════════"
+ echo ""
+
+ apply_config "$new_arch" "$INTEROP" "$interop_ios"
+
+ if $SYNC_DEPS || [[ "$CLEAN" == "full" ]]; then
+ sync_dependencies
+ elif [[ "$CLEAN" == "light" ]]; then
+ log "Skipping yarn sync (use --sync or -c full to refresh file: optimize package)"
+ fi
+
+ if needs_ios; then
+ build_ios
+ fi
+
+ if needs_android; then
+ build_android
+ fi
+
+ echo ""
+ ok "Done — config left at: newArchEnabled=$new_arch, USE_INTEROP_ROOT=$INTEROP"
+ if ! $RUN_APP; then
+ log "Start Metro: cd apps/BareSampleApp && npx react-native start --reset-cache"
+ fi
+}
+
+main "$@"
diff --git a/apps/BareSampleApp/styles/styles.ts b/apps/BareSampleApp/styles/styles.ts
new file mode 100644
index 000000000..413e79c73
--- /dev/null
+++ b/apps/BareSampleApp/styles/styles.ts
@@ -0,0 +1,48 @@
+/*
+Copyright 2022 Adobe. All rights reserved.
+This file is licensed to you under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License. You may obtain a copy
+of the License at http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under
+the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
+OF ANY KIND, either express or implied. See the License for the specific language
+governing permissions and limitations under the License.
+*/
+
+import {StyleSheet} from 'react-native';
+export default StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: '#F5FCFF',
+ },
+ welcome: {
+ fontSize: 22,
+ textAlign: 'center',
+ margin: 10,
+ },
+ header: {
+ fontSize: 18,
+ textAlign: 'center',
+ margin: 5,
+ backgroundColor: '#C1B7B5',
+ },
+ text: {
+ fontSize: 15,
+ textAlign: 'center',
+ margin: 5,
+ },
+ breakLine: {
+ borderWidth: 0.5,
+ borderColor: 'black',
+ margin: 10,
+ marginTop: 10,
+ marginBottom: 10,
+ },
+ textinput: {
+ fontSize: 18,
+ margin: 10,
+ },
+});
diff --git a/apps/BareSampleApp/tsconfig.json b/apps/BareSampleApp/tsconfig.json
new file mode 100644
index 000000000..304ab4e2d
--- /dev/null
+++ b/apps/BareSampleApp/tsconfig.json
@@ -0,0 +1,3 @@
+{
+ "extends": "@react-native/typescript-config/tsconfig.json"
+}
diff --git a/apps/BareSampleApp/types/props.js b/apps/BareSampleApp/types/props.js
new file mode 100644
index 000000000..c8ad2e549
--- /dev/null
+++ b/apps/BareSampleApp/types/props.js
@@ -0,0 +1,2 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/apps/BareSampleApp/types/props.ts b/apps/BareSampleApp/types/props.ts
new file mode 100644
index 000000000..141727415
--- /dev/null
+++ b/apps/BareSampleApp/types/props.ts
@@ -0,0 +1,3 @@
+export interface NavigationProps {
+ navigation: any;
+}
\ No newline at end of file
diff --git a/apps/BareSampleApp/yarn.lock b/apps/BareSampleApp/yarn.lock
new file mode 100644
index 000000000..295af86eb
--- /dev/null
+++ b/apps/BareSampleApp/yarn.lock
@@ -0,0 +1,9810 @@
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 8
+ cacheKey: 10
+
+"@adobe/react-native-aepassurance@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "@adobe/react-native-aepassurance@npm:7.0.0"
+ peerDependencies:
+ "@adobe/react-native-aepcore": ^7.0.0
+ react-native: ">=0.60.0"
+ checksum: 10/e0c1444641c358707006546001a081141f91fe44cfb54f630007db3dcbf67521244e444ded515ec1ded09ce227e44de58811b76191e90beb037e91180b372913
+ languageName: node
+ linkType: hard
+
+"@adobe/react-native-aepcampaignclassic@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "@adobe/react-native-aepcampaignclassic@npm:7.0.0"
+ peerDependencies:
+ "@adobe/react-native-aepcore": ^7.0.0
+ react-native: ">=0.60.0"
+ checksum: 10/93a563b6e6b4ba281f2511cabf61497745aa5eb68717b633bb987786c3cb84d32c54a615845b79b35a515328278701af7bd13872ff251d5988f332cfb36952c8
+ languageName: node
+ linkType: hard
+
+"@adobe/react-native-aepcore@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "@adobe/react-native-aepcore@npm:7.0.0"
+ peerDependencies:
+ react-native: ">=0.60.0"
+ checksum: 10/afff9023b3d18c1b5926543c8d1563da75dc69d654e0ee001c8fdc1de86f3343b83a701bb957f72fc4fb3c84ff5afd5b030c562e4436a860e10f5857dee76090
+ languageName: node
+ linkType: hard
+
+"@adobe/react-native-aepedge@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "@adobe/react-native-aepedge@npm:7.0.0"
+ peerDependencies:
+ "@adobe/react-native-aepcore": ^7.0.0
+ "@adobe/react-native-aepedgeidentity": ^7.0.0
+ react-native: ">=0.60.0"
+ checksum: 10/9daaa9fc349bb48c7852264e96eac6bbb2eb4f01704894e48a4f31ffaccfed1d7d9052ea658c27884af3c6a5546ce3ded9a00455d42bca311cad5828958c91fe
+ languageName: node
+ linkType: hard
+
+"@adobe/react-native-aepedgebridge@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "@adobe/react-native-aepedgebridge@npm:7.0.1"
+ peerDependencies:
+ "@adobe/react-native-aepcore": ^7.0.0
+ react-native: ">=0.60.0"
+ checksum: 10/1694d09b772929efb280c6df9bb9592cda948a82200b9915726e5479a36e7eee8c3ba2285b08f5e3ddbc1ebeead93c7a0370a95877ac97ebe799836c2fbd5af4
+ languageName: node
+ linkType: hard
+
+"@adobe/react-native-aepedgeconsent@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "@adobe/react-native-aepedgeconsent@npm:7.0.0"
+ peerDependencies:
+ "@adobe/react-native-aepcore": ^7.0.0
+ react-native: ">=0.60.0"
+ checksum: 10/f8c0ed97e4b3c20378ff0c4632c5a1c9dcc276174a66e53c68aec0f3c784fe950edcaf4a139384d823bed3f697eb95e2b67ecbf903635745132f2a51bdbd3df2
+ languageName: node
+ linkType: hard
+
+"@adobe/react-native-aepedgeidentity@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "@adobe/react-native-aepedgeidentity@npm:7.0.0"
+ peerDependencies:
+ "@adobe/react-native-aepcore": ^7.0.0
+ react-native: ">=0.60.0"
+ checksum: 10/da4fe75f4066bed2ade55932e557c709679690c96e3fe60f5ff431496bf1da6e7026909eebeba3547a754af67a1fd3fd52c48677375dfe7b5417fff72481fa5e
+ languageName: node
+ linkType: hard
+
+"@adobe/react-native-aepmessaging@npm:^7.4.0":
+ version: 7.4.0
+ resolution: "@adobe/react-native-aepmessaging@npm:7.4.0"
+ peerDependencies:
+ "@adobe/react-native-aepcore": ^7.0.0
+ "@adobe/react-native-aepedge": ^7.0.0
+ "@adobe/react-native-aepedgeidentity": ^7.0.0
+ react: "*"
+ react-native: ">=0.60.0"
+ checksum: 10/1af488a0a84f08c775aeca58ad80e27ef6f50dd0e93c314676d92f11353a2770197caab6757de6c1e15d46c6f59f48e0a1293ab30b5a72da4a34ec7753a6df08
+ languageName: node
+ linkType: hard
+
+"@adobe/react-native-aepoptimize@portal:../../packages/optimize::locator=baresampleapp%40workspace%3A.":
+ version: 0.0.0-use.local
+ resolution: "@adobe/react-native-aepoptimize@portal:../../packages/optimize::locator=baresampleapp%40workspace%3A."
+ peerDependencies:
+ "@adobe/react-native-aepcore": ^7.0.0
+ "@adobe/react-native-aepedge": ^7.0.0
+ "@adobe/react-native-aepedgeidentity": ^7.0.0
+ react-native: ">=0.60.0"
+ languageName: node
+ linkType: soft
+
+"@adobe/react-native-aepplaces@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "@adobe/react-native-aepplaces@npm:7.0.1"
+ peerDependencies:
+ "@adobe/react-native-aepcore": ^7.0.0
+ react-native: ">=0.60.0"
+ checksum: 10/189a5cd12b45db1ffc402028b42928d15df489c27b72b7a140bdfe53312e52edac2cb711b1b6a5f8e84a9cbd554bb9ba0b555a17014e30e408be19364435cfec
+ languageName: node
+ linkType: hard
+
+"@adobe/react-native-aeptarget@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "@adobe/react-native-aeptarget@npm:7.0.0"
+ peerDependencies:
+ "@adobe/react-native-aepcore": ^7.0.0
+ "@adobe/react-native-aepedge": ^7.0.0
+ react-native: ">=0.60.0"
+ checksum: 10/c492e98553ac0f694e460492f881d04c643e7bc269c7bffdf6b9d8ca644bd8cea688e3baf28a67e6ccc2a0d388cbec53e5d86f74b203749fb40e98a4cdf979dc
+ languageName: node
+ linkType: hard
+
+"@adobe/react-native-aepuserprofile@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "@adobe/react-native-aepuserprofile@npm:7.0.0"
+ peerDependencies:
+ "@adobe/react-native-aepcore": ^7.0.0
+ react-native: ">=0.60.0"
+ checksum: 10/ed7bd52832b4dac18f021d150c06392e87e65f88847c3849859b58c4413f21f7bee0127f030ad99662d0c36e43a9d92299b4b369012e1dc34d2c0e974cace1ec
+ languageName: node
+ linkType: hard
+
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/code-frame@npm:7.29.7"
+ dependencies:
+ "@babel/helper-validator-identifier": "npm:^7.29.7"
+ js-tokens: "npm:^4.0.0"
+ picocolors: "npm:^1.1.1"
+ checksum: 10/84da552e51a55795a50b3589116edb2f9e368a647d266380683775f18effd9acd4521b0246bebd0b049a7f32af1f87b1e8475d3bcb665f876bd04ade8da99697
+ languageName: node
+ linkType: hard
+
+"@babel/compat-data@npm:^7.28.6, @babel/compat-data@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/compat-data@npm:7.29.7"
+ checksum: 10/ad2272714087f68970977f6e2b53597a8503fc9c3028c4a91686474bd77a707dd00903cdde4b73788972016d1bad4dc3fa4e5ff38e1ed8f1c3bde1095352973a
+ 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.23.9, @babel/core@npm:^7.25.2":
+ version: 7.29.7
+ resolution: "@babel/core@npm:7.29.7"
+ dependencies:
+ "@babel/code-frame": "npm:^7.29.7"
+ "@babel/generator": "npm:^7.29.7"
+ "@babel/helper-compilation-targets": "npm:^7.29.7"
+ "@babel/helper-module-transforms": "npm:^7.29.7"
+ "@babel/helpers": "npm:^7.29.7"
+ "@babel/parser": "npm:^7.29.7"
+ "@babel/template": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ "@jridgewell/remapping": "npm:^2.3.5"
+ convert-source-map: "npm:^2.0.0"
+ debug: "npm:^4.1.0"
+ gensync: "npm:^1.0.0-beta.2"
+ json5: "npm:^2.2.3"
+ semver: "npm:^6.3.1"
+ checksum: 10/38e71cf81db790b0bb2a3a0c8140c2b1c87576b61dc6be676de4fab8c3be871af590a739e8c489fe8e8f9a8e5899fa11e35e59e9e09d40b259c6a675f2f98928
+ languageName: node
+ linkType: hard
+
+"@babel/eslint-parser@npm:^7.25.1":
+ version: 7.29.7
+ resolution: "@babel/eslint-parser@npm:7.29.7"
+ dependencies:
+ "@nicolo-ribaudo/eslint-scope-5-internals": "npm:5.1.1-v1"
+ eslint-visitor-keys: "npm:^2.1.0"
+ semver: "npm:^6.3.1"
+ peerDependencies:
+ "@babel/core": ^7.11.0
+ eslint: ^7.5.0 || ^8.0.0 || ^9.0.0
+ checksum: 10/fb12b127ba7231b07eb4a809fd7cf07f9df6f1abe5f9a0ce8be5edfce07c5a9f6f5745cd608af19b037961e4e8d5e30f844c7fa5f7b3d6d24f017f2194156a50
+ languageName: node
+ linkType: hard
+
+"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.29.7, @babel/generator@npm:^7.7.2":
+ version: 7.29.7
+ resolution: "@babel/generator@npm:7.29.7"
+ dependencies:
+ "@babel/parser": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ "@jridgewell/gen-mapping": "npm:^0.3.12"
+ "@jridgewell/trace-mapping": "npm:^0.3.28"
+ jsesc: "npm:^3.0.2"
+ checksum: 10/60fb0432ebeab791b2d68e5fc49da6f8e8b68bcc4751211ccf08ac0101e9dcaddefd0cbbbd488afb1c1517515c7c3e76f63d9b05d06deaeb008afd499488db9c
+ languageName: node
+ linkType: hard
+
+"@babel/helper-annotate-as-pure@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-annotate-as-pure@npm:7.29.7"
+ dependencies:
+ "@babel/types": "npm:^7.29.7"
+ checksum: 10/acd9e128de634a5144b5d622357d018fa616de45f64c74e42007c048dd15d0a0be213f4d5a2bf02307bdaddf053791b87900a99d183de828c08dc3b556329009
+ languageName: node
+ linkType: hard
+
+"@babel/helper-compilation-targets@npm:^7.28.6, @babel/helper-compilation-targets@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-compilation-targets@npm:7.29.7"
+ dependencies:
+ "@babel/compat-data": "npm:^7.29.7"
+ "@babel/helper-validator-option": "npm:^7.29.7"
+ browserslist: "npm:^4.24.0"
+ lru-cache: "npm:^5.1.1"
+ semver: "npm:^6.3.1"
+ checksum: 10/af9ed4299ad5cfbe48432a964f37cbbfc200bbeb0f8ba9cbc86448503fa929382d5161d32096274752230c9feb919c9ef595559498833da656fc6a8e24a62383
+ languageName: node
+ linkType: hard
+
+"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-create-class-features-plugin@npm:7.29.7"
+ dependencies:
+ "@babel/helper-annotate-as-pure": "npm:^7.29.7"
+ "@babel/helper-member-expression-to-functions": "npm:^7.29.7"
+ "@babel/helper-optimise-call-expression": "npm:^7.29.7"
+ "@babel/helper-replace-supers": "npm:^7.29.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ semver: "npm:^6.3.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/74f871e5389beca9fb52670f2bd83abdd6dc7b7a10f34679ffab5eabf91077dccaabf55438b9f3c897258fb81fbb80bfbf469b836a404abb7e64b4d7c141a8da
+ languageName: node
+ linkType: hard
+
+"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-create-regexp-features-plugin@npm:7.29.7"
+ dependencies:
+ "@babel/helper-annotate-as-pure": "npm:^7.29.7"
+ regexpu-core: "npm:^6.3.1"
+ semver: "npm:^6.3.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/bf79ffc671d824d00b43a018555cb9fb3f2bc8be8d8ed8c901131e4cd072cc83e610a2cbb580f5f84b60d70bf4c7a7a8c5a629b7b325e1a27dca86d96d2668e0
+ languageName: node
+ linkType: hard
+
+"@babel/helper-define-polyfill-provider@npm:^0.6.5, @babel/helper-define-polyfill-provider@npm:^0.6.8":
+ version: 0.6.8
+ resolution: "@babel/helper-define-polyfill-provider@npm:0.6.8"
+ dependencies:
+ "@babel/helper-compilation-targets": "npm:^7.28.6"
+ "@babel/helper-plugin-utils": "npm:^7.28.6"
+ debug: "npm:^4.4.3"
+ lodash.debounce: "npm:^4.0.8"
+ resolve: "npm:^1.22.11"
+ peerDependencies:
+ "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
+ checksum: 10/a6f9fbb82578464da35eec88c7f3e70bdd95237bfc1d3ebb9cf4536a86a577b7c6e587f9a6797b01ee08629599ee2bc6fdab39e99de505751a30d9b4877202ab
+ languageName: node
+ linkType: hard
+
+"@babel/helper-globals@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-globals@npm:7.29.7"
+ checksum: 10/e53203e87ae24a45f59639edea0c429bc3c63c6d74f1862fe60a35032d89478e7511d2f34855da0fcb65782668d72e59e93d1de5bc00121ba9bc1aa38f1f0ad3
+ languageName: node
+ linkType: hard
+
+"@babel/helper-member-expression-to-functions@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-member-expression-to-functions@npm:7.29.7"
+ dependencies:
+ "@babel/traverse": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ checksum: 10/bb8dc59a65b4404260e0b7ff70f491de5a1607876f61736d26605ab3cba5b368827b0551acd3458212f5cfa99cbcd48bb66a96497b0fe00af09a6a2cbea4276b
+ languageName: node
+ linkType: hard
+
+"@babel/helper-module-imports@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-module-imports@npm:7.29.7"
+ dependencies:
+ "@babel/traverse": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ checksum: 10/28ec6f7efd99588d6eebfb25c9f1ccc34cb0cdb0839c4c0f08b3ec0105ccaefbe7e8b4f651f3f55a4f5c4fcb1d979bd32a9b8ee23e3e62163ea22aaa7ee0dfa1
+ languageName: node
+ linkType: hard
+
+"@babel/helper-module-transforms@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-module-transforms@npm:7.29.7"
+ dependencies:
+ "@babel/helper-module-imports": "npm:^7.29.7"
+ "@babel/helper-validator-identifier": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/33251b1fb44d726194a974a0078b1269511d130a2609357ff829b479e9e4dca96ecd5384c534a477095f665ffb01503d3e680699c2002e5b62e6ca1a272f1892
+ languageName: node
+ linkType: hard
+
+"@babel/helper-optimise-call-expression@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-optimise-call-expression@npm:7.29.7"
+ dependencies:
+ "@babel/types": "npm:^7.29.7"
+ checksum: 10/6b477e01b403fd48349336cb1d94722bff4fa54af2841b5fa950c557b796f4ecc14724052252ed1362ccfc23d1c09c54dc03e182fea59d3dc5bd69f8c626ba25
+ languageName: node
+ linkType: hard
+
+"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.28.6, @babel/helper-plugin-utils@npm:^7.29.7, @babel/helper-plugin-utils@npm:^7.8.0":
+ version: 7.29.7
+ resolution: "@babel/helper-plugin-utils@npm:7.29.7"
+ checksum: 10/6d16929fe5c792bbc8e4d67e18d7c1be69d2f18992deaa3d94dc26541fec662e83cbeeaf7553c6867d068eb7aed4e0d5e3e137c1dd4d5bcfa286f8d772f1f457
+ languageName: node
+ linkType: hard
+
+"@babel/helper-remap-async-to-generator@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-remap-async-to-generator@npm:7.29.7"
+ dependencies:
+ "@babel/helper-annotate-as-pure": "npm:^7.29.7"
+ "@babel/helper-wrap-function": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/98338ad6e34ebb4be2dc23f8d9199d28d6d8ac6a2ce8b90fe9efdf3595b39748321528d9f2540ec0586a6e45f7c84f5f623fbf980c5efa7fa9ba7ce837ea4b20
+ languageName: node
+ linkType: hard
+
+"@babel/helper-replace-supers@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-replace-supers@npm:7.29.7"
+ dependencies:
+ "@babel/helper-member-expression-to-functions": "npm:^7.29.7"
+ "@babel/helper-optimise-call-expression": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/4aa7b48a6078db99bba24b67f63f97cd08ad9b3c476dcca196c6421dc2080f3566d683fba64c772e2f9597603d42ad4ac2ce9ccf0559643823c540f08cf0efa7
+ languageName: node
+ linkType: hard
+
+"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.29.7"
+ dependencies:
+ "@babel/traverse": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ checksum: 10/a5800bfcdca6cef7f6fe33ac02a0f05ff33da9746f97806553f249733f7ba8400290a17f3831d7faa5d91656f254ab749931f53c8a29f301d958d7dd00499637
+ languageName: node
+ linkType: hard
+
+"@babel/helper-string-parser@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-string-parser@npm:7.29.7"
+ checksum: 10/4d8ef0ef7105f3d9fe4361137c8f42e5b4c7a52b5380b962762f2a528a1ba89064e2c6236090716ce34b63707b886ae0ebf36b2c2fcc2851f27e652febfc3648
+ languageName: node
+ linkType: hard
+
+"@babel/helper-validator-identifier@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-validator-identifier@npm:7.29.7"
+ checksum: 10/2efa42701eb05babf26dff3332109c9e5e1a3400a71fb9e68ee27af28235036a2a72c2494c04bdab3f909075f42a58b2e8271074372bc7f8e79ec02bd364d7a7
+ languageName: node
+ linkType: hard
+
+"@babel/helper-validator-option@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-validator-option@npm:7.29.7"
+ checksum: 10/aeb6aa966f59300d3cc2fea7c68e1dfd7ad011fc10e535c8e2b2de3094b27c859428dc7220f16420350f8b1cde99da120b673be04bcb0c2f37b56258c96bed58
+ languageName: node
+ linkType: hard
+
+"@babel/helper-wrap-function@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-wrap-function@npm:7.29.7"
+ dependencies:
+ "@babel/template": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ checksum: 10/fc37b53a93c0814e5443c344fcd42b343c75856d865547ca0d50ddad73e96c27f6a677330d115232644e143066758188e4eb47ce5207124c095312b9e49599ed
+ languageName: node
+ linkType: hard
+
+"@babel/helpers@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helpers@npm:7.29.7"
+ dependencies:
+ "@babel/template": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ checksum: 10/b4d1ef12c19e896585c009ba29677839097ff04f8b11a2430d335c3fb6bd667b4f9e96a3b185a083fdde6b1137eabbbf2600c32425cb69cefc81d81d5cfe425d
+ 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.29.7":
+ version: 7.29.7
+ resolution: "@babel/parser@npm:7.29.7"
+ dependencies:
+ "@babel/types": "npm:^7.29.7"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 10/da40c5928c95997b01aabe84fc3440881b8f20b866714fefa142961d37e82ffc03fbb9afed706f15f8a688278f95286ca0cea0d87ad6c77600f8c6c45d9824ee
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/c0e85e9b4bf8706f23b58c1794ad398e41b69a639416578fd4c0ef5a5472365a8d1d7a533f94137daf3660e4f710a8b7e10bc8a53a91a41773ec92bf1725af98
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/ad06de66ccfb19f0f04e6124d144f3fef72fa5191861b1d04bc32cab87ce43958810d9632eac5881ef991a78b33e68588e3d90e76a63d917bd5a7ff4c96618f8
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/2189a2a648948107c59ad3bf028e5b71a85b28c840facfead769a33c5f63ae4ec0f147e6a2e664a91a506d4405f5a8972d2ca628f3b64d03edd7620d770761fb
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/a9bd13c2600bdfcb5b35590e210bcb30f009fda9bd1556567757ea4fcb8ca247750331d6d10774d68127cae4e529bc79abd86a28fe5e2a1cc2cc00e75964ac52
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7"
+ "@babel/plugin-transform-optional-chaining": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.13.0
+ checksum: 10/76a494ec4f52a127b0208c4574a6da36f6ff5f30484306921762db549fa7d9d9183c837759eb68c0c9e5a56013aa247e6e02e02263384d2a103240353ae0ceb6
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/73125174671241b3eb1fa7c7f53ed0894d3853f2afb280684492a707cf3e4a9c498537acb511c014d364018117e181bb265dbbb975ea0b1a61a6de60bae8f07e
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-class-properties@npm:^7.13.0":
+ version: 7.18.6
+ resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": "npm:^7.18.6"
+ "@babel/helper-plugin-utils": "npm:^7.18.6"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-export-default-from@npm:^7.24.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-proposal-export-default-from@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/373ba179cb2a1ece4facd4a984aa43808ec046d3ad75404a0b2fdd92cd6c3ab41548856c055e63b1cc4a895ae23380298e36a219c454eb4c3ac9da1475a6cbd0
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8":
+ version: 7.18.6
+ resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.18.6"
+ "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/949c9ddcdecdaec766ee610ef98f965f928ccc0361dd87cf9f88cf4896a6ccd62fce063d4494778e50da99dea63d270a1be574a62d6ab81cbe9d85884bf55a7d
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-optional-chaining@npm:^7.13.12":
+ version: 7.21.0
+ resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.20.2"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.20.0"
+ "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/522cd133aff5c94c0ef36ff83c64f03deee183815da68b65b6950e81972ace3b514e032df07ea76d0f9ec8cc7a49578092907adfa17fccb4612117557c04a882
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2":
+ version: 7.21.0-placeholder-for-preset-env.2
+ resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/fab70f399aa869275690ec6c7cedb4ef361d4e8b6f55c3d7b04bfee61d52fb93c87cec2c65d73cddbaca89fb8ef5ec0921fce675c9169d9d51f18305ab34e78a
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-async-generators@npm:^7.8.4":
+ version: 7.8.4
+ resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-bigint@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-bigint@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-class-properties@npm:^7.12.13":
+ version: 7.12.13
+ resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.12.13"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-class-static-block@npm:^7.14.5":
+ version: 7.14.5
+ resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.14.5"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-dynamic-import@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-export-default-from@npm:^7.24.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-syntax-export-default-from@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/33a0e0a629e58036038e51a48cf18e81a78e60c16827f82667dc6500df01bc52ee52e8f2b107200d3811526be0d1a10e5ccd53a803e6e9bdec79eedd0aa8d760
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-flow@npm:^7.12.1, @babel/plugin-syntax-flow@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-syntax-flow@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/3e03792bb20d4a0f2610df5d5af6c2ec8cbb5096a7576b24027eca60ac2b9e3a183d48255e4156fa94768322d82b13e77623f785ef556660de1c0efc5708e52a
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-import-assertions@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-syntax-import-assertions@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/a7f24858e7e833c2ee25779a355b5eff46e4bc93c98b06bda7ea0fd12faf99c4954e0f71074485512045920432790e0269aa562dd4d2085c3f8660ed1cfde8a1
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-import-attributes@npm:^7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-syntax-import-attributes@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/9f47345d09aae16b7ab52ecaf541cde3e3ae1e57e3eb2d4088e062b29dfbd67db55d42d529840557583d66121e2a98788df7a455401cc6d635c8b7700a02efc9
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-import-meta@npm:^7.10.4":
+ version: 7.10.4
+ resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.10.4"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-json-strings@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-jsx@npm:^7.29.7, @babel/plugin-syntax-jsx@npm:^7.7.2":
+ version: 7.29.7
+ resolution: "@babel/plugin-syntax-jsx@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/84150d27c553a1d3d921354437f6725ca1d63b49514c25591bfcaaafa6ea4d6c10715b66fe7245e4ad7ab7c6cf4b6e1de7373defd3df00877ab12638170d7772
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4":
+ version: 7.10.4
+ resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.10.4"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-numeric-separator@npm:^7.10.4":
+ version: 7.10.4
+ resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.10.4"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-optional-chaining@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.8.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5":
+ version: 7.14.5
+ resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.14.5"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-top-level-await@npm:^7.14.5":
+ version: 7.14.5
+ resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.14.5"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-typescript@npm:^7.29.7, @babel/plugin-syntax-typescript@npm:^7.7.2":
+ version: 7.29.7
+ resolution: "@babel/plugin-syntax-typescript@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/ef454d2a7a6209dd4255361c072c94ab1293e7ad4b06e7e744d08bb308065d4d6544964eae9b2357c3b33d8d939f9e32d4aa95905bc464407cd8f7101dee4443
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6":
+ version: 7.18.6
+ resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6"
+ "@babel/helper-plugin-utils": "npm:^7.18.6"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-arrow-functions@npm:^7.0.0-0, @babel/plugin-transform-arrow-functions@npm:^7.24.7, @babel/plugin-transform-arrow-functions@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-arrow-functions@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/0037fd7563c7c91cddb8ce104e270bc260190d29c7a297df65e4306471010b4343366de13fab4602cf8ee6c672d3b313b34a01b62f27a333cad16908c83368d8
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-async-generator-functions@npm:^7.25.4, @babel/plugin-transform-async-generator-functions@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-async-generator-functions@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-remap-async-to-generator": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/0abb8d8bb21e7293b3eda5a743051678478ab7c0392310a4a9e0417125a2bb8536a0a5f41a8062211d995479339afa7ffab6b0141f0839af8fbba367dd6a99c5
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-async-to-generator@npm:^7.24.7, @babel/plugin-transform-async-to-generator@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-async-to-generator@npm:7.29.7"
+ dependencies:
+ "@babel/helper-module-imports": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-remap-async-to-generator": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/e24db9c4c69121daab25883f9a96e6849fa664c78c6bbcfb77fe0a0c6ab29b81ba39e8497985367463d3a88deac3b5bbe15dd1c5d0e5dd492cfccf8efdd27452
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-block-scoped-functions@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/24f9712ade98061cd22088709b86b8e3e19ea416dbe5a69ad504fc3f8f2179af5bdeb32fcb9c24fc861bef515e41ae5ef72cd909e0e42bb0cf15838c4e737149
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-block-scoping@npm:^7.25.0, @babel/plugin-transform-block-scoping@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-block-scoping@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/9c3cbbdda288b2eff7355ab94fc7b4b18f408d8e7145c2d6bd34e70eef03f200c699f527318ac11d9cd6e99124b5e8d6aeeba4421346ee5cdc224d06175d984f
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-class-properties@npm:^7.0.0-0, @babel/plugin-transform-class-properties@npm:^7.25.4, @babel/plugin-transform-class-properties@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-class-properties@npm:7.29.7"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/0cc5e7a882e29eead360f02ef79f6b2ec3b3813213b1513d8fdaa931d1d1361fccc92fbacc9b399e42495953d9d6fc722f283b5f3aa272fe016a0b5fe1e6a130
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-class-static-block@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-class-static-block@npm:7.29.7"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.12.0
+ checksum: 10/9e7112dafb0e7791de3858cb721a76147e8cfc9b6ba370dd0267bdc193abdbe8a8f78db8d70e0f860d03497d861f0ac7e8cd3e8caf2639c59b57fc74eb3b95d0
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-classes@npm:^7.0.0-0, @babel/plugin-transform-classes@npm:^7.25.4, @babel/plugin-transform-classes@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-classes@npm:7.29.7"
+ dependencies:
+ "@babel/helper-annotate-as-pure": "npm:^7.29.7"
+ "@babel/helper-compilation-targets": "npm:^7.29.7"
+ "@babel/helper-globals": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-replace-supers": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/ac6387c6bfb9d9b9f9d0702050fa8833e76c123d607bdba1af8d991f691e01a0652130954baa53051f0e16b8a0545e3f3c5a5bc4404a19abac0af2eee748f898
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-computed-properties@npm:^7.24.7, @babel/plugin-transform-computed-properties@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-computed-properties@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/template": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/c982355904fc113334ba108282c8a617e3159c6960de717bbe7c5fa86ff777baea04c117edc692fb4de22b01460bfedc62af3c6a9d0ecd81511f5eb8357d8bab
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-destructuring@npm:^7.24.8, @babel/plugin-transform-destructuring@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-destructuring@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/e53caad0c2d523367724aefcc6b8c8df24fcb1a3f53e9899cb4bb5dc39ccf61e30df0a761d74485a895d9bcaaad49644879cbd3a9fc20c90501a5e831caaac5b
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-dotall-regex@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-dotall-regex@npm:7.29.7"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/537df0fb915a420df715a2f4da16ab6c08ce2370521edef9a8a59af23a533314109f6abd836c5e127c8cea4a46bc4a05692670cf7ad64868c286075fa2d7848c
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-duplicate-keys@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-duplicate-keys@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/f0e7ad459dd9c78514c07a576fa509478aa9c7e90c1d7cf3b1d142579f8dadd609878c10b044dd2a3a2b08adbdb51b108fcb261d9a78443e13494a7985f9c2a7
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.29.7"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/fa7fcdbede10dbc06fe4f861e90286f7f599d3f3c43e69445e63c3f48422fd34db0b0dd9bbebccd1dbd04a50fca4ab22fd82d28e7bc8fe9b6d5790c9e694d380
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-dynamic-import@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-dynamic-import@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/58c035e6b9103c225f3d181671d9b3dec140351c3ecf12bc3a66b8653be41161f20135ada00a703244c2bfc9dd57b62fc54f77f2f6fe43df6c598358f377e6fa
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-explicit-resource-management@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-explicit-resource-management@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/plugin-transform-destructuring": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/a4ea28a18161a7e8c8f33731cb3dfc6981cb089b9a6b57abfa7ff7579a0ca76a4c19c29ebaf775b037ff31503c74c6cf3687ce86cdaa246d1c60afb5abd820df
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-exponentiation-operator@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/bf0366d77d318d4b6eae6880217e3fdfcb6e5f7913f658583de9537fd4fca1f05f9ac4083d8f946a84eaefec068cbba948be90f4a39484c85bc69082def3162d
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-export-namespace-from@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-export-namespace-from@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/d157d62b144d1626b801e557dcede914db33e78f3f4230f487e5709c21efd40648f7f3a47a44a7fce694ad9cd117d2ac3ed796da0102275fd02b4fdb317d906b
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-flow-strip-types@npm:^7.25.2, @babel/plugin-transform-flow-strip-types@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-flow-strip-types@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/plugin-syntax-flow": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/6a9073606850e50902949b3f89da650af18e5f9f98af4f95e7cc9fdb136dabb9b6b15f34a38155f460822b65a84adf50ad501a6bf109fbb17d9806d25cb66427
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-for-of@npm:^7.24.7, @babel/plugin-transform-for-of@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-for-of@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/af79d2859f7330c4b47fefc49a7849fb651ef062532beafdba5500fc13a46b9dfe1a853a27b73257a092d7e65a7b9956a8df9971c9908825d2f3b86b00c35c38
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-function-name@npm:^7.25.1, @babel/plugin-transform-function-name@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-function-name@npm:7.29.7"
+ dependencies:
+ "@babel/helper-compilation-targets": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/87a6329442ef8085fbc160e659f64562f0f5b63be65403b8bbb8e18c67dd7d03b82fb2e1371fdde734e2f05b13a72f88ed8d8cb03807150063954b9604d082cf
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-json-strings@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-json-strings@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/3af97e144e0d986522f01803ffa0f90741530d1610952ac6a92511c356ecbf5616092ab1d21401d25bc7cb8ac90d73c2c7ff35e41766df2708c29d7e588cfa7f
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-literals@npm:^7.25.2, @babel/plugin-transform-literals@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-literals@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/aadb2b3fe85186c274a07d5486aeef9496ce374e534fbc7b54f77985c75513422d9acec4c532f67b027e939644d93a69c00505b8909e259184c3ee5c5c62c46b
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7, @babel/plugin-transform-logical-assignment-operators@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/374d83dfbb2de5e339d2966487c0f0d766cd67422addbd0172104ff2788b60317858172a7ab2cb6ee7d5bffad72ce07120fec009a2ef3b35551013fce4908686
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-member-expression-literals@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-member-expression-literals@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/698cbc9500e8caea1d36b48248112d60e023cea9d0772ac1ecf1639b38b662d9352043747dbe617fe1f6f17709bc17601534f7bf2f22c791fb86f7e2ab43e39f
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-modules-amd@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-modules-amd@npm:7.29.7"
+ dependencies:
+ "@babel/helper-module-transforms": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/a25cfc84db14a943cee1717030114e052152487af8784c015762a4fc11ee7b45127036c074044636b10c7251eb310c172904028a6f36abcae816e0cc685553b8
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.24.8, @babel/plugin-transform-modules-commonjs@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-modules-commonjs@npm:7.29.7"
+ dependencies:
+ "@babel/helper-module-transforms": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/7d816febde2d65bde5607ef355d751ba6c5a2d68ffe47c37b809e3ed2f829603751d4b5a5506f4299936d95fc73909243f9074f98dd32201277ec4131fc3ff33
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-modules-systemjs@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-modules-systemjs@npm:7.29.7"
+ dependencies:
+ "@babel/helper-module-transforms": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-validator-identifier": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/084759e221428b52d888da594d65293f0f888b774398a6431f5a6a5f355a9a3accb8ba0cb123d54c7aafd24cbfe82613ee64939e4600b38a78393cbbea8979ac
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-modules-umd@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-modules-umd@npm:7.29.7"
+ dependencies:
+ "@babel/helper-module-transforms": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/74024ae1ecb702a766af6b3131a44be8b50d3614860ba857f8bb1e29c38acbecb14f66e2847082ccc5e188547aaa9678d9bbd67c20cef6f2e597f977a81f34dd
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.29.7"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/3a481be133e9ca5d25570b5ed62daae323a51663bacf30fed0d1980e912047ebd34d6326533182db625fc0bbd086d1a23ed68ebb6108e7a68a8650c228afc084
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-new-target@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-new-target@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/6ef505da7107e46afe170a7c3dc69a2afb2a58276c172189cbba86ed669e64bf2884a16deb007257af399fcc3c2381c688b8bbed612c986ded82ac9fa43ab5b1
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.0.0-0, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/4bff79355c240342e18e02cee282ce5c30bafa4335a250f4a47e822fde6def70afa19708e04fec3cc942252da16ea3a28a21279180cc92734c2a2d9826600bb3
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-numeric-separator@npm:^7.24.7, @babel/plugin-transform-numeric-separator@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-numeric-separator@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/6177df9e1a8a190bf4a360f8cbcfa614b70ededba61201bd0a38929770b6d00a8a54a19f8fda82cf60688d9bab938427a9fe5dae0a9e8cd8ed79c88a3b2dbcd7
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-object-rest-spread@npm:^7.24.7, @babel/plugin-transform-object-rest-spread@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-object-rest-spread@npm:7.29.7"
+ dependencies:
+ "@babel/helper-compilation-targets": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/plugin-transform-destructuring": "npm:^7.29.7"
+ "@babel/plugin-transform-parameters": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/36b906179d21a2a3287fac5283b25584bd7b79eb2707c62fa8e75ab79b21b4e11b2670e6b2eafb99fb448495153587dc5cdeec1d8433ba175060e5c8101292b0
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-object-super@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-object-super@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-replace-supers": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/65ed8719563572c4917f19b32c476c9a9062fccf89bfd44a418bb734cd866034d66049499cace58e2bb4589da779983f534078bd989333f36268b9da08d4b33c
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7, @babel/plugin-transform-optional-catch-binding@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/4b6e41e1dc5dbd02cfe0b96214130cca5fd3bd879551fc82188bb3d9a2782af9bab50f2140af9ff946a8ee23b9478ee42810641fb99aa3e033884d7c6103d138
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-optional-chaining@npm:^7.0.0-0, @babel/plugin-transform-optional-chaining@npm:^7.24.8, @babel/plugin-transform-optional-chaining@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-optional-chaining@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/2fd8f0135d8b051e4873ba097443bd753abd12a32f910fd19ae4c2f94a183129cf0936aed7aa14b417a68752aa1eec7a9fe43befdab736dbb24bbf192b7e5edc
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-parameters@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/05faa7bbe1ae81eda6ab9bfca35476d7e55049b1ad182471a6e5a45a888ef1208977a0cbe0ee23b6920d4754d2386cd94026d705e32acff7a036b9db4110b566
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-private-methods@npm:^7.24.7, @babel/plugin-transform-private-methods@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-private-methods@npm:7.29.7"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/5055af2b86a95acbf6bd1a14256edf439ba4f214707f6aa9f6a29d1168c882e5709853c4ff225f55575f88d3a58effbed952d25c5cd70f93785106541f992cdd
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-private-property-in-object@npm:^7.24.7, @babel/plugin-transform-private-property-in-object@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-private-property-in-object@npm:7.29.7"
+ dependencies:
+ "@babel/helper-annotate-as-pure": "npm:^7.29.7"
+ "@babel/helper-create-class-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/72464fe21457daa2002b8fb8ab222dfc4a5fa4df33b99a371ca5594a28c933491d4373349cbff95caff33d8b5506d0350b1b7b0f4fde04ebd1defcdd5d7d9751
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-property-literals@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-property-literals@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/7e7a557df8feb50cd6913158c6d12df0e8a9da58e3f73e7cbfc08af399055b03e77a22b12c73d5bf6bb49239617d6189ccb6021ab03f0225bc54f9c74a880b62
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-display-name@npm:^7.24.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-react-display-name@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/65b6676cfc9a163915e7ed4ca2e3e6080ccaa419cb04e44517101d86f08afc4e3310676c713d18b88b12b98a3e7e44f0694286609207968bb3f60ef3debf9b70
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx-self@npm:^7.24.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-react-jsx-self@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/779cde890f36a0160585a357f0850951d9e18d72e960099e32544420252e983b54bfe4a7c81c39b1668ad588231771c97e6b9e59056b21e5cda0953f26db1286
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx-source@npm:^7.24.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-react-jsx-source@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/286641d64bfd1d91eb8fcc3a6a5c48cc7b8e04268c79f3ee9902addc723652a4aa1d967278208d3b0ef03db381853d68eb25ae609e5a305421ff3d3fd5f3cb77
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx@npm:^7.25.2":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-react-jsx@npm:7.29.7"
+ dependencies:
+ "@babel/helper-annotate-as-pure": "npm:^7.29.7"
+ "@babel/helper-module-imports": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/plugin-syntax-jsx": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/ad735e6666e296404fd3c55378ad9ac712816a9ba3292bf491fd44e2d7bf32217a02c70fd8977c5ae07a246cfdbd75ea3bf5906e69af5dc1d0f404bca09aa7bf
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-regenerator@npm:^7.24.7, @babel/plugin-transform-regenerator@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-regenerator@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/dafb7bfe8e3be6bb4f4f042b2191e5f635c9715f3b41c104ecc5e3919a0b53889569e37db8ff40463bbceed85a593a5010977051ec13f826861ba99e4da46eed
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-regexp-modifiers@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.29.7"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/bfbc6b898ace99b8412eb6e902b90856188c692e69672d42d48c5e22a5bf9b0d15d35424fda8501bfb06ba0504acc5f1b9e13eacaba232aa58af74472d6068dc
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-reserved-words@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-reserved-words@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/ffd7f86ddce36c6ded2dd9218f81be8cbae35b1ed01100ac0a98623bd0a76c059188b70953ab5accae8f8430451e8ed4779d533ac5e35c523f5004a981208b7c
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-runtime@npm:^7.24.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-runtime@npm:7.29.7"
+ dependencies:
+ "@babel/helper-module-imports": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ babel-plugin-polyfill-corejs2: "npm:^0.4.14"
+ babel-plugin-polyfill-corejs3: "npm:^0.13.0"
+ babel-plugin-polyfill-regenerator: "npm:^0.6.5"
+ semver: "npm:^6.3.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/4b0b4702e523440530cd0d166b73866470609969afb41b62b2ce3b51a007cad509c77ad21a1bdc62732470d212600cbb6604ca3b8ee89c9e3c6af2f0cd1a63bc
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-shorthand-properties@npm:^7.0.0-0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7, @babel/plugin-transform-shorthand-properties@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-shorthand-properties@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/c57ef27853f334a6147da9aa00f8a8f4c3a1c217eb2efa73cba2e118edda10754fa23cec2c0c7f7408279ad28fef92c1f663dfec137a7503813331569c3e02f9
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-spread@npm:^7.24.7, @babel/plugin-transform-spread@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-spread@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/c1a12c24de3c330010901b36d48b49e83288951fd92691111e09c93bdae17b1b6b52c13b0e85bcbb9f5d4c72f61648ea8432af332c7049a67d504892122e5f85
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-sticky-regex@npm:^7.24.7, @babel/plugin-transform-sticky-regex@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-sticky-regex@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/16b570c0270a59c2a29b2118c00e463882e9dda49b51a17dde3ae6b2886995d49f4bf2161a4c743ad1bca39d2aeb3ac963400e095682e105c7f751e6a2156c28
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-template-literals@npm:^7.0.0-0, @babel/plugin-transform-template-literals@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-template-literals@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/d1014dab020f0f802089de17bba82d929eda6ac87fde5f58fb9763885b8d645ce63fc1df97055c06a12d95a8788334a93b559fcaf1da6d7777a191e5f9c5646e
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-typeof-symbol@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-typeof-symbol@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/a22bbe6c46cc4b5dda7aeb907d0263f3c3f93763c0ea6f5cac3c511673ec0be3fc6d9f3d9e65450b14e231cb4ae1cdead29ca9e6b4a94d30485baeab50513f85
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-typescript@npm:^7.25.2, @babel/plugin-transform-typescript@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-typescript@npm:7.29.7"
+ dependencies:
+ "@babel/helper-annotate-as-pure": "npm:^7.29.7"
+ "@babel/helper-create-class-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7"
+ "@babel/plugin-syntax-typescript": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/88d39bcdfee418795ad65097fff88f491e87793b958fe334273a20f74693b64369456a6d666eb0f1e98c9ecb633c99bcccf90562593e64eb92cc9dd040f25c1c
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-unicode-escapes@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-unicode-escapes@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/69ae159d4c7b5518c8009e96e406c5110c8238412d5f120b382c6f4fa2ff1226c3951d3fdc835461b81b29af78fe9131da51100b8fd47ef7eefe27d7d6d18b29
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-unicode-property-regex@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.29.7"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/03ee0b5d27eee08ba71bc09e919eb648094123985b7adc7dc875e4172100596a47ab68337abf6814cbd3140c6552cf1044135eb0ec1ec78345e1270e5e6aabba
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-unicode-regex@npm:^7.0.0-0, @babel/plugin-transform-unicode-regex@npm:^7.24.7, @babel/plugin-transform-unicode-regex@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-unicode-regex@npm:7.29.7"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/1ade0672ae5bbbf2ec1ea0a8de1b5d804ae414283215620097ab21cf7f05dae8916f5b0548a18c6f080ec17135018f5edd2d38f8fa9ca052af570cab5c712786
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-unicode-sets-regex@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.29.7"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/680c22e2a63bffbf6798b0c2f599b06beb7ea4d29ee37a56c9192014143d396c479b12783d9c343e107fa491aeeb65b1ca774fd76825ffb306eef7fb5e7b4b2c
+ languageName: node
+ linkType: hard
+
+"@babel/preset-env@npm:^7.25.3":
+ version: 7.29.7
+ resolution: "@babel/preset-env@npm:7.29.7"
+ dependencies:
+ "@babel/compat-data": "npm:^7.29.7"
+ "@babel/helper-compilation-targets": "npm:^7.29.7"
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-validator-option": "npm:^7.29.7"
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.29.7"
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.29.7"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.29.7"
+ "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "npm:^7.29.7"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.29.7"
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.29.7"
+ "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2"
+ "@babel/plugin-syntax-import-assertions": "npm:^7.29.7"
+ "@babel/plugin-syntax-import-attributes": "npm:^7.29.7"
+ "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6"
+ "@babel/plugin-transform-arrow-functions": "npm:^7.29.7"
+ "@babel/plugin-transform-async-generator-functions": "npm:^7.29.7"
+ "@babel/plugin-transform-async-to-generator": "npm:^7.29.7"
+ "@babel/plugin-transform-block-scoped-functions": "npm:^7.29.7"
+ "@babel/plugin-transform-block-scoping": "npm:^7.29.7"
+ "@babel/plugin-transform-class-properties": "npm:^7.29.7"
+ "@babel/plugin-transform-class-static-block": "npm:^7.29.7"
+ "@babel/plugin-transform-classes": "npm:^7.29.7"
+ "@babel/plugin-transform-computed-properties": "npm:^7.29.7"
+ "@babel/plugin-transform-destructuring": "npm:^7.29.7"
+ "@babel/plugin-transform-dotall-regex": "npm:^7.29.7"
+ "@babel/plugin-transform-duplicate-keys": "npm:^7.29.7"
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.29.7"
+ "@babel/plugin-transform-dynamic-import": "npm:^7.29.7"
+ "@babel/plugin-transform-explicit-resource-management": "npm:^7.29.7"
+ "@babel/plugin-transform-exponentiation-operator": "npm:^7.29.7"
+ "@babel/plugin-transform-export-namespace-from": "npm:^7.29.7"
+ "@babel/plugin-transform-for-of": "npm:^7.29.7"
+ "@babel/plugin-transform-function-name": "npm:^7.29.7"
+ "@babel/plugin-transform-json-strings": "npm:^7.29.7"
+ "@babel/plugin-transform-literals": "npm:^7.29.7"
+ "@babel/plugin-transform-logical-assignment-operators": "npm:^7.29.7"
+ "@babel/plugin-transform-member-expression-literals": "npm:^7.29.7"
+ "@babel/plugin-transform-modules-amd": "npm:^7.29.7"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.29.7"
+ "@babel/plugin-transform-modules-systemjs": "npm:^7.29.7"
+ "@babel/plugin-transform-modules-umd": "npm:^7.29.7"
+ "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.29.7"
+ "@babel/plugin-transform-new-target": "npm:^7.29.7"
+ "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.29.7"
+ "@babel/plugin-transform-numeric-separator": "npm:^7.29.7"
+ "@babel/plugin-transform-object-rest-spread": "npm:^7.29.7"
+ "@babel/plugin-transform-object-super": "npm:^7.29.7"
+ "@babel/plugin-transform-optional-catch-binding": "npm:^7.29.7"
+ "@babel/plugin-transform-optional-chaining": "npm:^7.29.7"
+ "@babel/plugin-transform-parameters": "npm:^7.29.7"
+ "@babel/plugin-transform-private-methods": "npm:^7.29.7"
+ "@babel/plugin-transform-private-property-in-object": "npm:^7.29.7"
+ "@babel/plugin-transform-property-literals": "npm:^7.29.7"
+ "@babel/plugin-transform-regenerator": "npm:^7.29.7"
+ "@babel/plugin-transform-regexp-modifiers": "npm:^7.29.7"
+ "@babel/plugin-transform-reserved-words": "npm:^7.29.7"
+ "@babel/plugin-transform-shorthand-properties": "npm:^7.29.7"
+ "@babel/plugin-transform-spread": "npm:^7.29.7"
+ "@babel/plugin-transform-sticky-regex": "npm:^7.29.7"
+ "@babel/plugin-transform-template-literals": "npm:^7.29.7"
+ "@babel/plugin-transform-typeof-symbol": "npm:^7.29.7"
+ "@babel/plugin-transform-unicode-escapes": "npm:^7.29.7"
+ "@babel/plugin-transform-unicode-property-regex": "npm:^7.29.7"
+ "@babel/plugin-transform-unicode-regex": "npm:^7.29.7"
+ "@babel/plugin-transform-unicode-sets-regex": "npm:^7.29.7"
+ "@babel/preset-modules": "npm:0.1.6-no-external-plugins"
+ babel-plugin-polyfill-corejs2: "npm:^0.4.15"
+ babel-plugin-polyfill-corejs3: "npm:^0.14.0"
+ babel-plugin-polyfill-regenerator: "npm:^0.6.6"
+ core-js-compat: "npm:^3.48.0"
+ semver: "npm:^6.3.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/08df2b7dc47108cdd66f807bc6390caa20e54cc4780a320cf5a8049c37af49f3c03889e10bc7911a51bfd854360e120b9443fa039b51356a805784215b81b451
+ languageName: node
+ linkType: hard
+
+"@babel/preset-flow@npm:^7.13.13":
+ version: 7.29.7
+ resolution: "@babel/preset-flow@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-validator-option": "npm:^7.29.7"
+ "@babel/plugin-transform-flow-strip-types": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/562fe8494d7e8e3a894cb9b1213acdc418b42d54f0fe316e97192bb235c8dfe7cde58d351057b9f7896bdc5ff42b605863c00cf6df952d5789cf3d865ab723ba
+ languageName: node
+ linkType: hard
+
+"@babel/preset-modules@npm:0.1.6-no-external-plugins":
+ version: 0.1.6-no-external-plugins
+ resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.0.0"
+ "@babel/types": "npm:^7.4.4"
+ esutils: "npm:^2.0.2"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0
+ checksum: 10/039aba98a697b920d6440c622aaa6104bb6076d65356b29dad4b3e6627ec0354da44f9621bafbeefd052cd4ac4d7f88c9a2ab094efcb50963cb352781d0c6428
+ languageName: node
+ linkType: hard
+
+"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.7":
+ version: 7.29.7
+ resolution: "@babel/preset-typescript@npm:7.29.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.29.7"
+ "@babel/helper-validator-option": "npm:^7.29.7"
+ "@babel/plugin-syntax-jsx": "npm:^7.29.7"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.29.7"
+ "@babel/plugin-transform-typescript": "npm:^7.29.7"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/487c5b5ee80afd656a8e6254c0638559fa4cd8d11b8d9ef9328cd5c403b8dfd1003690246910681de0f12e879d38fdf91aa2592f51ab9761e5197a3b36508919
+ languageName: node
+ linkType: hard
+
+"@babel/register@npm:^7.13.16":
+ version: 7.29.7
+ resolution: "@babel/register@npm:7.29.7"
+ dependencies:
+ clone-deep: "npm:^4.0.1"
+ find-cache-dir: "npm:^2.0.0"
+ make-dir: "npm:^2.1.0"
+ pirates: "npm:^4.0.6"
+ source-map-support: "npm:^0.5.16"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/c148f6efb40eb4095d1e328963394b41cd39897f132517a0da818a2d8242fca8534376f380cfd1cdffc2d5e055cc19bb6a1d1b37ee973a5d5e292accc88d39a3
+ languageName: node
+ linkType: hard
+
+"@babel/runtime@npm:^7.25.0":
+ version: 7.29.7
+ resolution: "@babel/runtime@npm:7.29.7"
+ checksum: 10/9883b4951787779fd382b121f22f92966d85f19434841f65fb00b2dfec232107e139683f47c6f252891826ad8ee18317b46c3a0e4819116a9885f47b46d7126a
+ languageName: node
+ linkType: hard
+
+"@babel/template@npm:^7.25.0, @babel/template@npm:^7.29.7, @babel/template@npm:^7.3.3":
+ version: 7.29.7
+ resolution: "@babel/template@npm:7.29.7"
+ dependencies:
+ "@babel/code-frame": "npm:^7.29.7"
+ "@babel/parser": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ checksum: 10/da92f7a5b61e05d2fb3934a44f18cec6006ee3c595116c17a3b44cb9756ecd43205c7360dbfa326fa8f4d00aaeb9e777342a881070d11c2305e9c694bc3ca6ff
+ 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.29.7":
+ version: 7.29.7
+ resolution: "@babel/traverse@npm:7.29.7"
+ dependencies:
+ "@babel/code-frame": "npm:^7.29.7"
+ "@babel/generator": "npm:^7.29.7"
+ "@babel/helper-globals": "npm:^7.29.7"
+ "@babel/parser": "npm:^7.29.7"
+ "@babel/template": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ debug: "npm:^4.3.1"
+ checksum: 10/ce24086a7dd8c408cbdb159437d3c8e02464a6d32b320d884fa742e2c5a3344b9342a923c7a371fc1789b4d82a59972a7008b5d8bbc1bc0c5ae42a39b28dc7f6
+ 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.28.2, @babel/types@npm:^7.29.7, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4":
+ version: 7.29.7
+ resolution: "@babel/types@npm:7.29.7"
+ dependencies:
+ "@babel/helper-string-parser": "npm:^7.29.7"
+ "@babel/helper-validator-identifier": "npm:^7.29.7"
+ checksum: 10/bd4f5635db1057bd0abeebf93eb3ae38399e152271cea8dce8288350f0afa13ed3e2db2e16e22bd3303068890eec18965a83420539afbe0dde31432b4cf9636d
+ languageName: node
+ linkType: hard
+
+"@bcoe/v8-coverage@npm:^0.2.3":
+ version: 0.2.3
+ resolution: "@bcoe/v8-coverage@npm:0.2.3"
+ checksum: 10/1a1f0e356a3bb30b5f1ced6f79c413e6ebacf130421f15fac5fcd8be5ddf98aedb4404d7f5624e3285b700e041f9ef938321f3ca4d359d5b716f96afa120d88d
+ languageName: node
+ linkType: hard
+
+"@egjs/hammerjs@npm:^2.0.17":
+ version: 2.0.17
+ resolution: "@egjs/hammerjs@npm:2.0.17"
+ dependencies:
+ "@types/hammerjs": "npm:^2.0.36"
+ checksum: 10/f695129d45edfcfd6c5f2d1d36186da36ffade013991972ce23721a6b7ad7f214ce282abc4023e3f6b63062620852a63e897b523f247804afc7acd188fee9d9d
+ languageName: node
+ linkType: hard
+
+"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
+ version: 4.9.1
+ resolution: "@eslint-community/eslint-utils@npm:4.9.1"
+ dependencies:
+ eslint-visitor-keys: "npm:^3.4.3"
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+ checksum: 10/863b5467868551c9ae34d03eefe634633d08f623fc7b19d860f8f26eb6f303c1a5934253124163bee96181e45ed22bf27473dccc295937c3078493a4a8c9eddd
+ languageName: node
+ linkType: hard
+
+"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1":
+ version: 4.12.2
+ resolution: "@eslint-community/regexpp@npm:4.12.2"
+ checksum: 10/049b280fddf71dd325514e0a520024969431dc3a8b02fa77476e6820e9122f28ab4c9168c11821f91a27982d2453bcd7a66193356ea84e84fb7c8d793be1ba0c
+ languageName: node
+ linkType: hard
+
+"@eslint/eslintrc@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@eslint/eslintrc@npm:2.1.4"
+ dependencies:
+ ajv: "npm:^6.12.4"
+ debug: "npm:^4.3.2"
+ espree: "npm:^9.6.0"
+ globals: "npm:^13.19.0"
+ ignore: "npm:^5.2.0"
+ import-fresh: "npm:^3.2.1"
+ js-yaml: "npm:^4.1.0"
+ minimatch: "npm:^3.1.2"
+ strip-json-comments: "npm:^3.1.1"
+ checksum: 10/7a3b14f4b40fc1a22624c3f84d9f467a3d9ea1ca6e9a372116cb92507e485260359465b58e25bcb6c9981b155416b98c9973ad9b796053fd7b3f776a6946bce8
+ languageName: node
+ linkType: hard
+
+"@eslint/js@npm:8.57.1":
+ version: 8.57.1
+ resolution: "@eslint/js@npm:8.57.1"
+ checksum: 10/7562b21be10c2adbfa4aa5bb2eccec2cb9ac649a3569560742202c8d1cb6c931ce634937a2f0f551e078403a1c1285d6c2c0aa345dafc986149665cd69fe8b59
+ languageName: node
+ linkType: hard
+
+"@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0":
+ version: 9.3.0
+ resolution: "@hapi/hoek@npm:9.3.0"
+ checksum: 10/ad83a223787749f3873bce42bd32a9a19673765bf3edece0a427e138859ff729469e68d5fdf9ff6bbee6fb0c8e21bab61415afa4584f527cfc40b59ea1957e70
+ languageName: node
+ linkType: hard
+
+"@hapi/topo@npm:^5.1.0":
+ version: 5.1.0
+ resolution: "@hapi/topo@npm:5.1.0"
+ dependencies:
+ "@hapi/hoek": "npm:^9.0.0"
+ checksum: 10/084bfa647015f4fd3fdd51fadb2747d09ef2f5e1443d6cbada2988b0c88494f85edf257ec606c790db146ac4e34ff57f3fcb22e3299b8e06ed5c87ba7583495c
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/config-array@npm:^0.13.0":
+ version: 0.13.0
+ resolution: "@humanwhocodes/config-array@npm:0.13.0"
+ dependencies:
+ "@humanwhocodes/object-schema": "npm:^2.0.3"
+ debug: "npm:^4.3.1"
+ minimatch: "npm:^3.0.5"
+ checksum: 10/524df31e61a85392a2433bf5d03164e03da26c03d009f27852e7dcfdafbc4a23f17f021dacf88e0a7a9fe04ca032017945d19b57a16e2676d9114c22a53a9d11
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/module-importer@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@humanwhocodes/module-importer@npm:1.0.1"
+ checksum: 10/e993950e346331e5a32eefb27948ecdee2a2c4ab3f072b8f566cd213ef485dd50a3ca497050608db91006f5479e43f91a439aef68d2a313bd3ded06909c7c5b3
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/object-schema@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "@humanwhocodes/object-schema@npm:2.0.3"
+ checksum: 10/05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3
+ languageName: node
+ linkType: hard
+
+"@isaacs/fs-minipass@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "@isaacs/fs-minipass@npm:4.0.1"
+ dependencies:
+ minipass: "npm:^7.0.4"
+ checksum: 10/4412e9e6713c89c1e66d80bb0bb5a2a93192f10477623a27d08f228ba0316bb880affabc5bfe7f838f58a34d26c2c190da726e576cdfc18c49a72e89adabdcf5
+ languageName: node
+ linkType: hard
+
+"@isaacs/ttlcache@npm:^1.4.1":
+ version: 1.4.1
+ resolution: "@isaacs/ttlcache@npm:1.4.1"
+ checksum: 10/57f2b00b58845d48a173c7668c58c27c3e6f91a56c17d6d4c58b38780a475a858ce3b4fc2cd4304469eee9f49818b79a187f0e13120b3617c4f67e4abc475698
+ languageName: node
+ linkType: hard
+
+"@istanbuljs/load-nyc-config@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "@istanbuljs/load-nyc-config@npm:1.1.0"
+ dependencies:
+ camelcase: "npm:^5.3.1"
+ find-up: "npm:^4.1.0"
+ get-package-type: "npm:^0.1.0"
+ js-yaml: "npm:^3.13.1"
+ resolve-from: "npm:^5.0.0"
+ checksum: 10/b000a5acd8d4fe6e34e25c399c8bdbb5d3a202b4e10416e17bfc25e12bab90bb56d33db6089ae30569b52686f4b35ff28ef26e88e21e69821d2b85884bd055b8
+ languageName: node
+ linkType: hard
+
+"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3":
+ version: 0.1.6
+ resolution: "@istanbuljs/schema@npm:0.1.6"
+ checksum: 10/966e1a80b0e52170d4b3b9fa75e1aa5f2cf01138416c828c249dcfc75706a32b13022dc8d06b7aab6ea6a80b63927d3e546ad04f005188fef20b3d2cbbf2b229
+ languageName: node
+ linkType: hard
+
+"@jest/console@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/console@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ checksum: 10/4a80c750e8a31f344233cb9951dee9b77bf6b89377cb131f8b3cde07ff218f504370133a5963f6a786af4d2ce7f85642db206ff7a15f99fe58df4c38ac04899e
+ languageName: node
+ linkType: hard
+
+"@jest/core@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/core@npm:29.7.0"
+ dependencies:
+ "@jest/console": "npm:^29.7.0"
+ "@jest/reporters": "npm:^29.7.0"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/transform": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ ansi-escapes: "npm:^4.2.1"
+ chalk: "npm:^4.0.0"
+ ci-info: "npm:^3.2.0"
+ exit: "npm:^0.1.2"
+ graceful-fs: "npm:^4.2.9"
+ jest-changed-files: "npm:^29.7.0"
+ jest-config: "npm:^29.7.0"
+ jest-haste-map: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-regex-util: "npm:^29.6.3"
+ jest-resolve: "npm:^29.7.0"
+ jest-resolve-dependencies: "npm:^29.7.0"
+ jest-runner: "npm:^29.7.0"
+ jest-runtime: "npm:^29.7.0"
+ jest-snapshot: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ jest-validate: "npm:^29.7.0"
+ jest-watcher: "npm:^29.7.0"
+ micromatch: "npm:^4.0.4"
+ pretty-format: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ strip-ansi: "npm:^6.0.0"
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ checksum: 10/ab6ac2e562d083faac7d8152ec1cc4eccc80f62e9579b69ed40aedf7211a6b2d57024a6cd53c4e35fd051c39a236e86257d1d99ebdb122291969a0a04563b51e
+ languageName: node
+ linkType: hard
+
+"@jest/create-cache-key-function@npm:^29.6.3":
+ version: 29.7.0
+ resolution: "@jest/create-cache-key-function@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ checksum: 10/061ef63b13ec8c8e5d08e4456f03b5cf8c7f9c1cab4fed8402e1479153cafce6eea80420e308ef62027abb7e29b825fcfa06551856bd021d98e92e381bf91723
+ languageName: node
+ linkType: hard
+
+"@jest/environment@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/environment@npm:29.7.0"
+ dependencies:
+ "@jest/fake-timers": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ jest-mock: "npm:^29.7.0"
+ checksum: 10/90b5844a9a9d8097f2cf107b1b5e57007c552f64315da8c1f51217eeb0a9664889d3f145cdf8acf23a84f4d8309a6675e27d5b059659a004db0ea9546d1c81a8
+ languageName: node
+ linkType: hard
+
+"@jest/expect-utils@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/expect-utils@npm:29.7.0"
+ dependencies:
+ jest-get-type: "npm:^29.6.3"
+ checksum: 10/ef8d379778ef574a17bde2801a6f4469f8022a46a5f9e385191dc73bb1fc318996beaed4513fbd7055c2847227a1bed2469977821866534593a6e52a281499ee
+ languageName: node
+ linkType: hard
+
+"@jest/expect@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/expect@npm:29.7.0"
+ dependencies:
+ expect: "npm:^29.7.0"
+ jest-snapshot: "npm:^29.7.0"
+ checksum: 10/fea6c3317a8da5c840429d90bfe49d928e89c9e89fceee2149b93a11b7e9c73d2f6e4d7cdf647163da938fc4e2169e4490be6bae64952902bc7a701033fd4880
+ languageName: node
+ linkType: hard
+
+"@jest/fake-timers@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/fake-timers@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ "@sinonjs/fake-timers": "npm:^10.0.2"
+ "@types/node": "npm:*"
+ jest-message-util: "npm:^29.7.0"
+ jest-mock: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ checksum: 10/9b394e04ffc46f91725ecfdff34c4e043eb7a16e1d78964094c9db3fde0b1c8803e45943a980e8c740d0a3d45661906de1416ca5891a538b0660481a3a828c27
+ languageName: node
+ linkType: hard
+
+"@jest/globals@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/globals@npm:29.7.0"
+ dependencies:
+ "@jest/environment": "npm:^29.7.0"
+ "@jest/expect": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ jest-mock: "npm:^29.7.0"
+ checksum: 10/97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123
+ languageName: node
+ linkType: hard
+
+"@jest/reporters@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/reporters@npm:29.7.0"
+ dependencies:
+ "@bcoe/v8-coverage": "npm:^0.2.3"
+ "@jest/console": "npm:^29.7.0"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/transform": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@jridgewell/trace-mapping": "npm:^0.3.18"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ collect-v8-coverage: "npm:^1.0.0"
+ exit: "npm:^0.1.2"
+ glob: "npm:^7.1.3"
+ graceful-fs: "npm:^4.2.9"
+ istanbul-lib-coverage: "npm:^3.0.0"
+ istanbul-lib-instrument: "npm:^6.0.0"
+ istanbul-lib-report: "npm:^3.0.0"
+ istanbul-lib-source-maps: "npm:^4.0.0"
+ istanbul-reports: "npm:^3.1.3"
+ jest-message-util: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ jest-worker: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ string-length: "npm:^4.0.1"
+ strip-ansi: "npm:^6.0.0"
+ v8-to-istanbul: "npm:^9.0.1"
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ checksum: 10/a17d1644b26dea14445cedd45567f4ba7834f980be2ef74447204e14238f121b50d8b858fde648083d2cd8f305f81ba434ba49e37a5f4237a6f2a61180cc73dc
+ languageName: node
+ linkType: hard
+
+"@jest/schemas@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/schemas@npm:29.6.3"
+ dependencies:
+ "@sinclair/typebox": "npm:^0.27.8"
+ checksum: 10/910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93
+ languageName: node
+ linkType: hard
+
+"@jest/source-map@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/source-map@npm:29.6.3"
+ dependencies:
+ "@jridgewell/trace-mapping": "npm:^0.3.18"
+ callsites: "npm:^3.0.0"
+ graceful-fs: "npm:^4.2.9"
+ checksum: 10/bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb
+ languageName: node
+ linkType: hard
+
+"@jest/test-result@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/test-result@npm:29.7.0"
+ dependencies:
+ "@jest/console": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/istanbul-lib-coverage": "npm:^2.0.0"
+ collect-v8-coverage: "npm:^1.0.0"
+ checksum: 10/c073ab7dfe3c562bff2b8fee6cc724ccc20aa96bcd8ab48ccb2aa309b4c0c1923a9e703cea386bd6ae9b71133e92810475bb9c7c22328fc63f797ad3324ed189
+ languageName: node
+ linkType: hard
+
+"@jest/test-sequencer@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/test-sequencer@npm:29.7.0"
+ dependencies:
+ "@jest/test-result": "npm:^29.7.0"
+ graceful-fs: "npm:^4.2.9"
+ jest-haste-map: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ checksum: 10/4420c26a0baa7035c5419b0892ff8ffe9a41b1583ec54a10db3037cd46a7e29dd3d7202f8aa9d376e9e53be5f8b1bc0d16e1de6880a6d319b033b01dc4c8f639
+ languageName: node
+ linkType: hard
+
+"@jest/transform@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/transform@npm:29.7.0"
+ dependencies:
+ "@babel/core": "npm:^7.11.6"
+ "@jest/types": "npm:^29.6.3"
+ "@jridgewell/trace-mapping": "npm:^0.3.18"
+ babel-plugin-istanbul: "npm:^6.1.1"
+ chalk: "npm:^4.0.0"
+ convert-source-map: "npm:^2.0.0"
+ fast-json-stable-stringify: "npm:^2.1.0"
+ graceful-fs: "npm:^4.2.9"
+ jest-haste-map: "npm:^29.7.0"
+ jest-regex-util: "npm:^29.6.3"
+ jest-util: "npm:^29.7.0"
+ micromatch: "npm:^4.0.4"
+ pirates: "npm:^4.0.4"
+ slash: "npm:^3.0.0"
+ write-file-atomic: "npm:^4.0.2"
+ checksum: 10/30f42293545ab037d5799c81d3e12515790bb58513d37f788ce32d53326d0d72ebf5b40f989e6896739aa50a5f77be44686e510966370d58511d5ad2637c68c1
+ languageName: node
+ linkType: hard
+
+"@jest/types@npm:^26.6.2":
+ version: 26.6.2
+ resolution: "@jest/types@npm:26.6.2"
+ dependencies:
+ "@types/istanbul-lib-coverage": "npm:^2.0.0"
+ "@types/istanbul-reports": "npm:^3.0.0"
+ "@types/node": "npm:*"
+ "@types/yargs": "npm:^15.0.0"
+ chalk: "npm:^4.0.0"
+ checksum: 10/02d42749c8c6dc7e3184d0ff0293dd91c97233c2e6dc3708d61ef33d3162d4f07ad38d2d8a39abd94cf2fced69b92a87565c7099137c4529809242ca327254af
+ languageName: node
+ linkType: hard
+
+"@jest/types@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/types@npm:29.6.3"
+ dependencies:
+ "@jest/schemas": "npm:^29.6.3"
+ "@types/istanbul-lib-coverage": "npm:^2.0.0"
+ "@types/istanbul-reports": "npm:^3.0.0"
+ "@types/node": "npm:*"
+ "@types/yargs": "npm:^17.0.8"
+ chalk: "npm:^4.0.0"
+ checksum: 10/f74bf512fd09bbe2433a2ad460b04668b7075235eea9a0c77d6a42222c10a79b9747dc2b2a623f140ed40d6865a2ed8f538f3cbb75169120ea863f29a7ed76cd
+ languageName: node
+ linkType: hard
+
+"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.5":
+ version: 0.3.13
+ resolution: "@jridgewell/gen-mapping@npm:0.3.13"
+ dependencies:
+ "@jridgewell/sourcemap-codec": "npm:^1.5.0"
+ "@jridgewell/trace-mapping": "npm:^0.3.24"
+ checksum: 10/902f8261dcf450b4af7b93f9656918e02eec80a2169e155000cb2059f90113dd98f3ccf6efc6072cee1dd84cac48cade51da236972d942babc40e4c23da4d62a
+ languageName: node
+ linkType: hard
+
+"@jridgewell/remapping@npm:^2.3.5":
+ version: 2.3.5
+ resolution: "@jridgewell/remapping@npm:2.3.5"
+ dependencies:
+ "@jridgewell/gen-mapping": "npm:^0.3.5"
+ "@jridgewell/trace-mapping": "npm:^0.3.24"
+ checksum: 10/c2bb01856e65b506d439455f28aceacf130d6c023d1d4e3b48705e88def3571753e1a887daa04b078b562316c92d26ce36408a60534bceca3f830aec88a339ad
+ languageName: node
+ linkType: hard
+
+"@jridgewell/resolve-uri@npm:^3.1.0":
+ version: 3.1.2
+ resolution: "@jridgewell/resolve-uri@npm:3.1.2"
+ checksum: 10/97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d
+ languageName: node
+ linkType: hard
+
+"@jridgewell/source-map@npm:^0.3.3":
+ version: 0.3.11
+ resolution: "@jridgewell/source-map@npm:0.3.11"
+ dependencies:
+ "@jridgewell/gen-mapping": "npm:^0.3.5"
+ "@jridgewell/trace-mapping": "npm:^0.3.25"
+ checksum: 10/847f1177d3d133a0966ef61ca29abea0d79788a0652f90ee1893b3da968c190b7e31c3534cc53701179dd6b14601eef3d78644e727e05b1a08c68d281aedc4ba
+ languageName: node
+ linkType: hard
+
+"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0":
+ version: 1.5.5
+ resolution: "@jridgewell/sourcemap-codec@npm:1.5.5"
+ checksum: 10/5d9d207b462c11e322d71911e55e21a4e2772f71ffe8d6f1221b8eb5ae6774458c1d242f897fb0814e8714ca9a6b498abfa74dfe4f434493342902b1a48b33a5
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.28":
+ version: 0.3.31
+ resolution: "@jridgewell/trace-mapping@npm:0.3.31"
+ dependencies:
+ "@jridgewell/resolve-uri": "npm:^3.1.0"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.14"
+ checksum: 10/da0283270e691bdb5543806077548532791608e52386cfbbf3b9e8fb00457859d1bd01d512851161c886eb3a2f3ce6fd9bcf25db8edf3bddedd275bd4a88d606
+ languageName: node
+ linkType: hard
+
+"@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1":
+ version: 5.1.1-v1
+ resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1"
+ dependencies:
+ eslint-scope: "npm:5.1.1"
+ checksum: 10/f2e3b2d6a6e2d9f163ca22105910c9f850dc4897af0aea3ef0a5886b63d8e1ba6505b71c99cb78a3bba24a09557d601eb21c8dede3f3213753fcfef364eb0e57
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.scandir@npm:2.1.5":
+ version: 2.1.5
+ resolution: "@nodelib/fs.scandir@npm:2.1.5"
+ dependencies:
+ "@nodelib/fs.stat": "npm:2.0.5"
+ run-parallel: "npm:^1.1.9"
+ checksum: 10/6ab2a9b8a1d67b067922c36f259e3b3dfd6b97b219c540877a4944549a4d49ea5ceba5663905ab5289682f1f3c15ff441d02f0447f620a42e1cb5e1937174d4b
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
+ version: 2.0.5
+ resolution: "@nodelib/fs.stat@npm:2.0.5"
+ checksum: 10/012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8":
+ version: 1.2.8
+ resolution: "@nodelib/fs.walk@npm:1.2.8"
+ dependencies:
+ "@nodelib/fs.scandir": "npm:2.1.5"
+ fastq: "npm:^1.6.0"
+ checksum: 10/40033e33e96e97d77fba5a238e4bba4487b8284678906a9f616b5579ddaf868a18874c0054a75402c9fbaaa033a25ceae093af58c9c30278e35c23c9479e79b0
+ languageName: node
+ linkType: hard
+
+"@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: "npm:^3.0.4"
+ peerDependencies:
+ react-native: ^0.0.0-0 || >=0.65 <1.0
+ checksum: 10/625e42134f0c487acfd4ba9b3ba182e6f6f29581485004cc658850ef024372cdb7381b7399393f4416fda39df2d822e3008427d7671d635a7363f9a65430a2dd
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-clean@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli-clean@npm:15.0.1"
+ dependencies:
+ "@react-native-community/cli-tools": "npm:15.0.1"
+ chalk: "npm:^4.1.2"
+ execa: "npm:^5.0.0"
+ fast-glob: "npm:^3.3.2"
+ checksum: 10/a1ff1824a4c1290271aaef48af0bc30ed50503ac062341fb051bb07895890414f4e208eb949b05bce79f90d1a51dd2fb133f9fbcf6c019bb7fec8c03ec4e4419
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-config-apple@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli-config-apple@npm:15.0.1"
+ dependencies:
+ "@react-native-community/cli-tools": "npm:15.0.1"
+ chalk: "npm:^4.1.2"
+ execa: "npm:^5.0.0"
+ fast-glob: "npm:^3.3.2"
+ checksum: 10/3766bb155962d3ad4908b77db6d68e6edb6c8b4130e78c30e8cea3b1e6535e9730dc0bdc7b995b86d145621f4e992e4a2dcaf2be34b045de13d0c68692fd78ed
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-config@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli-config@npm:15.0.1"
+ dependencies:
+ "@react-native-community/cli-tools": "npm:15.0.1"
+ chalk: "npm:^4.1.2"
+ cosmiconfig: "npm:^9.0.0"
+ deepmerge: "npm:^4.3.0"
+ fast-glob: "npm:^3.3.2"
+ joi: "npm:^17.2.1"
+ checksum: 10/7fc4d4f3554ddc6d76534f3063baf8f3631c333a2445038a617c1c5630718bc775ca35fe59a7ceafd40bc1f316d1c4fae00693ea22feb367fdaf91104ead3efe
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-debugger-ui@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli-debugger-ui@npm:15.0.1"
+ dependencies:
+ serve-static: "npm:^1.13.1"
+ checksum: 10/366b87f67c72455a61de4beb05d3b24c5e8f6a4ea4d0d11a7bb660e738f43a26daa9721527a36f8e9596586240875c1a35d5b87a8cdddc2d84b38b6b56a83902
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-doctor@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli-doctor@npm:15.0.1"
+ dependencies:
+ "@react-native-community/cli-config": "npm:15.0.1"
+ "@react-native-community/cli-platform-android": "npm:15.0.1"
+ "@react-native-community/cli-platform-apple": "npm:15.0.1"
+ "@react-native-community/cli-platform-ios": "npm:15.0.1"
+ "@react-native-community/cli-tools": "npm:15.0.1"
+ chalk: "npm:^4.1.2"
+ command-exists: "npm:^1.2.8"
+ deepmerge: "npm:^4.3.0"
+ envinfo: "npm:^7.13.0"
+ execa: "npm:^5.0.0"
+ node-stream-zip: "npm:^1.9.1"
+ ora: "npm:^5.4.1"
+ semver: "npm:^7.5.2"
+ strip-ansi: "npm:^5.2.0"
+ wcwidth: "npm:^1.0.1"
+ yaml: "npm:^2.2.1"
+ checksum: 10/89cb3d2c6610c2316e388adf5efe7f85600d56e2fdc68b3f9fa8842ced44bf7ae89a7d4b733e21bb99f5d31c86112208a12f9a6668f6c99385be4ab415f730ca
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-platform-android@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli-platform-android@npm:15.0.1"
+ dependencies:
+ "@react-native-community/cli-tools": "npm:15.0.1"
+ chalk: "npm:^4.1.2"
+ execa: "npm:^5.0.0"
+ fast-glob: "npm:^3.3.2"
+ fast-xml-parser: "npm:^4.4.1"
+ logkitty: "npm:^0.7.1"
+ checksum: 10/f537ac01ccce117b29020094165e123e84e5baea1bb4d88c1c1db7a5723060871dafab3b7d12f51aa14f94d13d30b59fff052244b14b8a4927b7e16f7e6f0308
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-platform-apple@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli-platform-apple@npm:15.0.1"
+ dependencies:
+ "@react-native-community/cli-config-apple": "npm:15.0.1"
+ "@react-native-community/cli-tools": "npm:15.0.1"
+ chalk: "npm:^4.1.2"
+ execa: "npm:^5.0.0"
+ fast-xml-parser: "npm:^4.4.1"
+ checksum: 10/85a6d39eba5cd474a063d59a12e893ffe77656b522a7adcac9c092f35565fddcf16c2b50c09b63a8d5c7d71f5fbad33069f1a61f23ca3b8f5dd5e4cb284d9bf9
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-platform-ios@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli-platform-ios@npm:15.0.1"
+ dependencies:
+ "@react-native-community/cli-platform-apple": "npm:15.0.1"
+ checksum: 10/17844caec8ed5e4101e35fa42fa12028a99c545f0d86a028b5ed12c19072cd8eeeacf11598a271fef5eea028072dd0521545376f3c50522ac6ca606d841f359d
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-server-api@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli-server-api@npm:15.0.1"
+ dependencies:
+ "@react-native-community/cli-debugger-ui": "npm:15.0.1"
+ "@react-native-community/cli-tools": "npm:15.0.1"
+ compression: "npm:^1.7.1"
+ connect: "npm:^3.6.5"
+ errorhandler: "npm:^1.5.1"
+ nocache: "npm:^3.0.1"
+ pretty-format: "npm:^26.6.2"
+ serve-static: "npm:^1.13.1"
+ ws: "npm:^6.2.3"
+ checksum: 10/22341610387537e5603cb7b6f1d8b761b5439174bbac650081cf5b40377c0108262320e282329f977bef826e6c4569fbaa3e85f2a697631e755a020216a5515a
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-tools@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli-tools@npm:15.0.1"
+ dependencies:
+ appdirsjs: "npm:^1.2.4"
+ chalk: "npm:^4.1.2"
+ execa: "npm:^5.0.0"
+ find-up: "npm:^5.0.0"
+ mime: "npm:^2.4.1"
+ open: "npm:^6.2.0"
+ ora: "npm:^5.4.1"
+ prompts: "npm:^2.4.2"
+ semver: "npm:^7.5.2"
+ shell-quote: "npm:^1.7.3"
+ sudo-prompt: "npm:^9.0.0"
+ checksum: 10/3447257d1650104466b7d59846ddcd45d8432b18d18df71c0606ecfed7892014fa959b917ab435c822b305a9a890bd51e762e941137e29f7824e215beacb42a5
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-types@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli-types@npm:15.0.1"
+ dependencies:
+ joi: "npm:^17.2.1"
+ checksum: 10/77452486158afcf1f03a3596135b6dba16dba5dd10209dacd5a6a4b176df36d37b8e49af61590d5a64df4907cf0575b6f37e0a3893335f961a9380edaee32152
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli@npm:15.0.1":
+ version: 15.0.1
+ resolution: "@react-native-community/cli@npm:15.0.1"
+ dependencies:
+ "@react-native-community/cli-clean": "npm:15.0.1"
+ "@react-native-community/cli-config": "npm:15.0.1"
+ "@react-native-community/cli-debugger-ui": "npm:15.0.1"
+ "@react-native-community/cli-doctor": "npm:15.0.1"
+ "@react-native-community/cli-server-api": "npm:15.0.1"
+ "@react-native-community/cli-tools": "npm:15.0.1"
+ "@react-native-community/cli-types": "npm:15.0.1"
+ chalk: "npm:^4.1.2"
+ commander: "npm:^9.4.1"
+ deepmerge: "npm:^4.3.0"
+ execa: "npm:^5.0.0"
+ find-up: "npm:^5.0.0"
+ fs-extra: "npm:^8.1.0"
+ graceful-fs: "npm:^4.1.3"
+ prompts: "npm:^2.4.2"
+ semver: "npm:^7.5.2"
+ bin:
+ rnc-cli: build/bin.js
+ checksum: 10/7673d01bded6e9a368b238031ce237cebcfba230d860804a8f19aa6b4d5adcf4432e0a3b71ea285650c69b6427310f7db152cee6c2152d3303adb8dee6f60923
+ languageName: node
+ linkType: hard
+
+"@react-native-masked-view/masked-view@npm:^0.3.0":
+ version: 0.3.2
+ resolution: "@react-native-masked-view/masked-view@npm:0.3.2"
+ peerDependencies:
+ react: ">=16"
+ react-native: ">=0.57"
+ checksum: 10/04ffbc01083aa563ca1e2d7ef6759e7b326b8129f5bb1aa5f3142348adab06d5e321a400cf70a5434324dfa906add383f8214640697c48c9e5311b30bfea03d9
+ languageName: node
+ linkType: hard
+
+"@react-native/assets-registry@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/assets-registry@npm:0.76.6"
+ checksum: 10/2eb3a7f9ad5de9b5f136cb123dbb9f31669cc39415d9cb42a1024fb9f7c73abcac82db12356d742ae14c6b053c852816460e68d8c32c2ffbe7e996d8bff1d66d
+ languageName: node
+ linkType: hard
+
+"@react-native/babel-plugin-codegen@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/babel-plugin-codegen@npm:0.76.6"
+ dependencies:
+ "@react-native/codegen": "npm:0.76.6"
+ checksum: 10/866a3036f3a801d71d5215b1f67eae464544cb7027c0ab7387c5cb9f1f335d1716183a39a36909323a27a9421f2ce19a4d6dc628b24ae9dee48c3974e472f6db
+ languageName: node
+ linkType: hard
+
+"@react-native/babel-preset@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/babel-preset@npm:0.76.6"
+ dependencies:
+ "@babel/core": "npm:^7.25.2"
+ "@babel/plugin-proposal-export-default-from": "npm:^7.24.7"
+ "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3"
+ "@babel/plugin-syntax-export-default-from": "npm:^7.24.7"
+ "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
+ "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
+ "@babel/plugin-transform-arrow-functions": "npm:^7.24.7"
+ "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4"
+ "@babel/plugin-transform-async-to-generator": "npm:^7.24.7"
+ "@babel/plugin-transform-block-scoping": "npm:^7.25.0"
+ "@babel/plugin-transform-class-properties": "npm:^7.25.4"
+ "@babel/plugin-transform-classes": "npm:^7.25.4"
+ "@babel/plugin-transform-computed-properties": "npm:^7.24.7"
+ "@babel/plugin-transform-destructuring": "npm:^7.24.8"
+ "@babel/plugin-transform-flow-strip-types": "npm:^7.25.2"
+ "@babel/plugin-transform-for-of": "npm:^7.24.7"
+ "@babel/plugin-transform-function-name": "npm:^7.25.1"
+ "@babel/plugin-transform-literals": "npm:^7.25.2"
+ "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8"
+ "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7"
+ "@babel/plugin-transform-numeric-separator": "npm:^7.24.7"
+ "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7"
+ "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7"
+ "@babel/plugin-transform-optional-chaining": "npm:^7.24.8"
+ "@babel/plugin-transform-parameters": "npm:^7.24.7"
+ "@babel/plugin-transform-private-methods": "npm:^7.24.7"
+ "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7"
+ "@babel/plugin-transform-react-display-name": "npm:^7.24.7"
+ "@babel/plugin-transform-react-jsx": "npm:^7.25.2"
+ "@babel/plugin-transform-react-jsx-self": "npm:^7.24.7"
+ "@babel/plugin-transform-react-jsx-source": "npm:^7.24.7"
+ "@babel/plugin-transform-regenerator": "npm:^7.24.7"
+ "@babel/plugin-transform-runtime": "npm:^7.24.7"
+ "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7"
+ "@babel/plugin-transform-spread": "npm:^7.24.7"
+ "@babel/plugin-transform-sticky-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-typescript": "npm:^7.25.2"
+ "@babel/plugin-transform-unicode-regex": "npm:^7.24.7"
+ "@babel/template": "npm:^7.25.0"
+ "@react-native/babel-plugin-codegen": "npm:0.76.6"
+ babel-plugin-syntax-hermes-parser: "npm:^0.25.1"
+ babel-plugin-transform-flow-enums: "npm:^0.0.2"
+ react-refresh: "npm:^0.14.0"
+ peerDependencies:
+ "@babel/core": "*"
+ checksum: 10/fc320d9f02775c194c791b3602d2ff2b6f72387494fdd58d1c80fbfa9a2f9333af03273e9cf8b97856f892ba7cd47e9272a664207fc8e8accdfc82d695ad0578
+ languageName: node
+ linkType: hard
+
+"@react-native/codegen@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/codegen@npm:0.76.6"
+ dependencies:
+ "@babel/parser": "npm:^7.25.3"
+ glob: "npm:^7.1.1"
+ hermes-parser: "npm:0.23.1"
+ invariant: "npm:^2.2.4"
+ jscodeshift: "npm:^0.14.0"
+ mkdirp: "npm:^0.5.1"
+ nullthrows: "npm:^1.1.1"
+ yargs: "npm:^17.6.2"
+ peerDependencies:
+ "@babel/preset-env": ^7.1.6
+ checksum: 10/d414ebe4e89af8309351ad9d077bb73d337aed39257b6b4c62cfd8ddb4251a182f53dbf93815cb52724e650832c26ca91db7c595a915fb4cc8d5971b8f01c8f3
+ languageName: node
+ linkType: hard
+
+"@react-native/community-cli-plugin@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/community-cli-plugin@npm:0.76.6"
+ dependencies:
+ "@react-native/dev-middleware": "npm:0.76.6"
+ "@react-native/metro-babel-transformer": "npm:0.76.6"
+ chalk: "npm:^4.0.0"
+ execa: "npm:^5.1.1"
+ invariant: "npm:^2.2.4"
+ metro: "npm:^0.81.0"
+ metro-config: "npm:^0.81.0"
+ metro-core: "npm:^0.81.0"
+ node-fetch: "npm:^2.2.0"
+ readline: "npm:^1.3.0"
+ semver: "npm:^7.1.3"
+ peerDependencies:
+ "@react-native-community/cli-server-api": "*"
+ peerDependenciesMeta:
+ "@react-native-community/cli-server-api":
+ optional: true
+ checksum: 10/56e0729410712bd712daf55a72d23aeafa5ff465d1ba0d5935dac35c42fc472a23eba5a9545d506089dd6f7fe4937bf12f1b7fac5aa7350c43997d897124e3a9
+ languageName: node
+ linkType: hard
+
+"@react-native/debugger-frontend@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/debugger-frontend@npm:0.76.6"
+ checksum: 10/f57da89d0443850ac323bbed59987b227bec5b6b4b4509348f4d0c80d59c8d9399335edbaee3a7283273ff52896d2cede465d0d9882c1dadd2c5808ee392e588
+ languageName: node
+ linkType: hard
+
+"@react-native/dev-middleware@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/dev-middleware@npm:0.76.6"
+ dependencies:
+ "@isaacs/ttlcache": "npm:^1.4.1"
+ "@react-native/debugger-frontend": "npm:0.76.6"
+ chrome-launcher: "npm:^0.15.2"
+ chromium-edge-launcher: "npm:^0.2.0"
+ connect: "npm:^3.6.5"
+ debug: "npm:^2.2.0"
+ nullthrows: "npm:^1.1.1"
+ open: "npm:^7.0.3"
+ selfsigned: "npm:^2.4.1"
+ serve-static: "npm:^1.13.1"
+ ws: "npm:^6.2.3"
+ checksum: 10/a3788c0e2cc6938e44803162923b69ef9951efc9cc75b751d1823db07115731a4132ab70604da98821e34210f07d3adc7b42fa15b870a6ed08d04e88ebe107ad
+ languageName: node
+ linkType: hard
+
+"@react-native/eslint-config@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/eslint-config@npm:0.76.6"
+ dependencies:
+ "@babel/core": "npm:^7.25.2"
+ "@babel/eslint-parser": "npm:^7.25.1"
+ "@react-native/eslint-plugin": "npm:0.76.6"
+ "@typescript-eslint/eslint-plugin": "npm:^7.1.1"
+ "@typescript-eslint/parser": "npm:^7.1.1"
+ eslint-config-prettier: "npm:^8.5.0"
+ eslint-plugin-eslint-comments: "npm:^3.2.0"
+ eslint-plugin-ft-flow: "npm:^2.0.1"
+ eslint-plugin-jest: "npm:^27.9.0"
+ eslint-plugin-react: "npm:^7.30.1"
+ eslint-plugin-react-hooks: "npm:^4.6.0"
+ eslint-plugin-react-native: "npm:^4.0.0"
+ peerDependencies:
+ eslint: ">=8"
+ prettier: ">=2"
+ checksum: 10/6be634aa2d35985bf386ae04cf0a5d728d8edff37bf4a9d0f5524175a2641d66199ae4d129ecb15fd0bf90019dc0e40bf915daa0da06b7dea795327bf462e81b
+ languageName: node
+ linkType: hard
+
+"@react-native/eslint-plugin@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/eslint-plugin@npm:0.76.6"
+ checksum: 10/9f67b703af775d53e399e90868c3e09ee3f0cc5bfc33bfbf68fa270f6dfbd2b9c12ae978f33e686d09d692d30b747a2ffc80bbb930a0278d5b7444c40f3649b6
+ languageName: node
+ linkType: hard
+
+"@react-native/gradle-plugin@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/gradle-plugin@npm:0.76.6"
+ checksum: 10/7d9bea6bd913c356cc40e03c8b3388a0dc86c87b3a60c0281ea10ef1451022165c783f25a523b4d199ca5ae259f25dd10f60eb462200c4ee93e692c3089833af
+ languageName: node
+ linkType: hard
+
+"@react-native/js-polyfills@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/js-polyfills@npm:0.76.6"
+ checksum: 10/5c8029a43da9fc091f348235c1ee326f5c67f06d11ea70cb763d35c8692c361f47f2ec49bee605c844c79b218662686f22ef547d1a6393dd135ede44ea6e566d
+ languageName: node
+ linkType: hard
+
+"@react-native/metro-babel-transformer@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/metro-babel-transformer@npm:0.76.6"
+ dependencies:
+ "@babel/core": "npm:^7.25.2"
+ "@react-native/babel-preset": "npm:0.76.6"
+ hermes-parser: "npm:0.23.1"
+ nullthrows: "npm:^1.1.1"
+ peerDependencies:
+ "@babel/core": "*"
+ checksum: 10/f9323e745c01a4caf83b7f888784173fcecaecf7b2b6c253d70c349a7391ab7dd04bbdfc534c3e9bdfb2999730b84f209c6fc469b6301c1d4ce2cf1360e69602
+ languageName: node
+ linkType: hard
+
+"@react-native/metro-config@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/metro-config@npm:0.76.6"
+ dependencies:
+ "@react-native/js-polyfills": "npm:0.76.6"
+ "@react-native/metro-babel-transformer": "npm:0.76.6"
+ metro-config: "npm:^0.81.0"
+ metro-runtime: "npm:^0.81.0"
+ checksum: 10/d617d15f7a7b1665090b1e6070654d389345943eda4d91b2acae2a61343260cca0a1fb28fe74041d5f4a29af9ba63c78d654a0f8444e2bf9c269e416780bec46
+ languageName: node
+ linkType: hard
+
+"@react-native/normalize-colors@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/normalize-colors@npm:0.76.6"
+ checksum: 10/0e28cbdecbba96bd3e26a537623f68b77a77fda481b60dfa11d2a6e532aaae414d07e422d61465e40261d92a835d2f8342780cbe904a19c57e1fe223e4dc4a24
+ languageName: node
+ linkType: hard
+
+"@react-native/typescript-config@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/typescript-config@npm:0.76.6"
+ checksum: 10/02a92e203de57714879e8915aec26d27d22b474b18d0d6cfb4620c3e7c0f8a2e6db8dd30ce4121ab26f16934e2b283e3ed4214e3ddef48802a76a95b324c23a9
+ languageName: node
+ linkType: hard
+
+"@react-native/virtualized-lists@npm:0.76.6":
+ version: 0.76.6
+ resolution: "@react-native/virtualized-lists@npm:0.76.6"
+ dependencies:
+ invariant: "npm:^2.2.4"
+ nullthrows: "npm:^1.1.1"
+ peerDependencies:
+ "@types/react": ^18.2.6
+ react: "*"
+ react-native: "*"
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10/2af9f55d7a1d1fc87f9f83c96b82aab8aafe920cd7afe808578893f33842c70a607c5d1ce35c81d20879017f8ebd50511ca4970b777c96f4456961befb29670a
+ languageName: node
+ linkType: hard
+
+"@react-navigation/core@npm:^6.4.17":
+ version: 6.4.17
+ resolution: "@react-navigation/core@npm:6.4.17"
+ dependencies:
+ "@react-navigation/routers": "npm:^6.1.9"
+ escape-string-regexp: "npm:^4.0.0"
+ nanoid: "npm:^3.1.23"
+ query-string: "npm:^7.1.3"
+ react-is: "npm:^16.13.0"
+ use-latest-callback: "npm:^0.2.1"
+ peerDependencies:
+ react: "*"
+ checksum: 10/481470361c7dd638d8af513ca559265829e8de5a2ff18c207d8d1c9e2d65606318061ffe369afbccfea3c6d027d38ad539ae5bae8863d9cedd8eaeafeb18426c
+ languageName: node
+ linkType: hard
+
+"@react-navigation/drawer@npm:^6.7.2":
+ version: 6.7.2
+ resolution: "@react-navigation/drawer@npm:6.7.2"
+ dependencies:
+ "@react-navigation/elements": "npm:^1.3.31"
+ color: "npm:^4.2.3"
+ warn-once: "npm:^0.1.0"
+ peerDependencies:
+ "@react-navigation/native": ^6.0.0
+ react: "*"
+ react-native: "*"
+ react-native-gesture-handler: ">= 1.0.0"
+ react-native-reanimated: ">= 1.0.0"
+ react-native-safe-area-context: ">= 3.0.0"
+ react-native-screens: ">= 3.0.0"
+ checksum: 10/970da3f2f78458bbbf30aa2c1a2e071c22a63a4404e2f1f4f6c916b0e33c4faec0693da15a9b52d8f3e0c857008a20f57f310eddb8dd0c1958cfa1aa7fa710ae
+ languageName: node
+ linkType: hard
+
+"@react-navigation/elements@npm:^1.3.31":
+ version: 1.3.31
+ resolution: "@react-navigation/elements@npm:1.3.31"
+ peerDependencies:
+ "@react-navigation/native": ^6.0.0
+ react: "*"
+ react-native: "*"
+ react-native-safe-area-context: ">= 3.0.0"
+ checksum: 10/379b3657300f9ab8043979f1ecaea95dce96253903db8d6954468e39dc7cf0710cc08345fa6625071a1505b6442a395e0e20bde39c0b997fd90fea370275fc08
+ languageName: node
+ linkType: hard
+
+"@react-navigation/native@npm:^6.1.18":
+ version: 6.1.18
+ resolution: "@react-navigation/native@npm:6.1.18"
+ dependencies:
+ "@react-navigation/core": "npm:^6.4.17"
+ escape-string-regexp: "npm:^4.0.0"
+ fast-deep-equal: "npm:^3.1.3"
+ nanoid: "npm:^3.1.23"
+ peerDependencies:
+ react: "*"
+ react-native: "*"
+ checksum: 10/1c16813e7d1d796519d0c3a9163de8be6d4af0afa74d9d88ec6729f8c0f533540250f09e39063f4a1eafb9ff71c3f3a9cc9d420ba75aa3eb7f42834f4ba0ee20
+ languageName: node
+ linkType: hard
+
+"@react-navigation/routers@npm:^6.1.9":
+ version: 6.1.9
+ resolution: "@react-navigation/routers@npm:6.1.9"
+ dependencies:
+ nanoid: "npm:^3.1.23"
+ checksum: 10/35af21aa89074b6c4ef8e7a52701694cf393eda4bc3b237e8c908b27468a2f14c04acfaf702acfe833713730e65cac31733e411a3bdf459859e9b1c823d0c06e
+ languageName: node
+ linkType: hard
+
+"@react-navigation/stack@npm:^6.4.1":
+ version: 6.4.1
+ resolution: "@react-navigation/stack@npm:6.4.1"
+ dependencies:
+ "@react-navigation/elements": "npm:^1.3.31"
+ color: "npm:^4.2.3"
+ warn-once: "npm:^0.1.0"
+ peerDependencies:
+ "@react-navigation/native": ^6.0.0
+ react: "*"
+ react-native: "*"
+ react-native-gesture-handler: ">= 1.0.0"
+ react-native-safe-area-context: ">= 3.0.0"
+ react-native-screens: ">= 3.0.0"
+ checksum: 10/8eb7ae7cfffae1963ed4b386165f08517c42ff05a00f9c6d3d28827016810135dd96033f36916e1b58ddd73bf7d8a6f38f3afc782e5f0f84c1d722d3d296968c
+ languageName: node
+ linkType: hard
+
+"@sideway/address@npm:^4.1.5":
+ version: 4.1.5
+ resolution: "@sideway/address@npm:4.1.5"
+ dependencies:
+ "@hapi/hoek": "npm:^9.0.0"
+ checksum: 10/c4c73ac0339504f34e016d3a687118e7ddf197c1c968579572123b67b230be84caa705f0f634efdfdde7f2e07a6e0224b3c70665dc420d8bc95bf400cfc4c998
+ languageName: node
+ linkType: hard
+
+"@sideway/formula@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "@sideway/formula@npm:3.0.1"
+ checksum: 10/8d3ee7f80df4e5204b2cbe92a2a711ca89684965a5c9eb3b316b7051212d3522e332a65a0bb2a07cc708fcd1d0b27fcb30f43ff0bcd5089d7006c7160a89eefe
+ languageName: node
+ linkType: hard
+
+"@sideway/pinpoint@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@sideway/pinpoint@npm:2.0.0"
+ checksum: 10/1ed21800128b2b23280ba4c9db26c8ff6142b97a8683f17639fd7f2128aa09046461574800b30fb407afc5b663c2331795ccf3b654d4b38fa096e41a5c786bf8
+ languageName: node
+ linkType: hard
+
+"@sinclair/typebox@npm:^0.27.8":
+ version: 0.27.10
+ resolution: "@sinclair/typebox@npm:0.27.10"
+ checksum: 10/1498c5ef1375787e6272528615d5c262afb60873191d2441316359817b1c411917063c8be102ef15b0b5c62243a9daa7aefc8426f20eb406b67038b3eaa0695a
+ languageName: node
+ linkType: hard
+
+"@sinonjs/commons@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "@sinonjs/commons@npm:3.0.1"
+ dependencies:
+ type-detect: "npm:4.0.8"
+ checksum: 10/a0af217ba7044426c78df52c23cedede6daf377586f3ac58857c565769358ab1f44ebf95ba04bbe38814fba6e316ca6f02870a009328294fc2c555d0f85a7117
+ languageName: node
+ linkType: hard
+
+"@sinonjs/fake-timers@npm:^10.0.2":
+ version: 10.3.0
+ resolution: "@sinonjs/fake-timers@npm:10.3.0"
+ dependencies:
+ "@sinonjs/commons": "npm:^3.0.0"
+ checksum: 10/78155c7bd866a85df85e22028e046b8d46cf3e840f72260954f5e3ed5bd97d66c595524305a6841ffb3f681a08f6e5cef572a2cce5442a8a232dc29fb409b83e
+ languageName: node
+ linkType: hard
+
+"@types/babel__core@npm:^7.1.14":
+ version: 7.20.5
+ resolution: "@types/babel__core@npm:7.20.5"
+ dependencies:
+ "@babel/parser": "npm:^7.20.7"
+ "@babel/types": "npm:^7.20.7"
+ "@types/babel__generator": "npm:*"
+ "@types/babel__template": "npm:*"
+ "@types/babel__traverse": "npm:*"
+ checksum: 10/c32838d280b5ab59d62557f9e331d3831f8e547ee10b4f85cb78753d97d521270cebfc73ce501e9fb27fe71884d1ba75e18658692c2f4117543f0fc4e3e118b3
+ languageName: node
+ linkType: hard
+
+"@types/babel__generator@npm:*":
+ version: 7.27.0
+ resolution: "@types/babel__generator@npm:7.27.0"
+ dependencies:
+ "@babel/types": "npm:^7.0.0"
+ checksum: 10/f572e67a9a39397664350a4437d8a7fbd34acc83ff4887a8cf08349e39f8aeb5ad2f70fb78a0a0a23a280affe3a5f4c25f50966abdce292bcf31237af1c27b1a
+ languageName: node
+ linkType: hard
+
+"@types/babel__template@npm:*":
+ version: 7.4.4
+ resolution: "@types/babel__template@npm:7.4.4"
+ dependencies:
+ "@babel/parser": "npm:^7.1.0"
+ "@babel/types": "npm:^7.0.0"
+ checksum: 10/d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29
+ languageName: node
+ linkType: hard
+
+"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6":
+ version: 7.28.0
+ resolution: "@types/babel__traverse@npm:7.28.0"
+ dependencies:
+ "@babel/types": "npm:^7.28.2"
+ checksum: 10/371c5e1b40399ef17570e630b2943617b84fafde2860a56f0ebc113d8edb1d0534ade0175af89eda1ae35160903c33057ed42457e165d4aa287fedab2c82abcf
+ languageName: node
+ linkType: hard
+
+"@types/graceful-fs@npm:^4.1.3":
+ version: 4.1.9
+ resolution: "@types/graceful-fs@npm:4.1.9"
+ dependencies:
+ "@types/node": "npm:*"
+ checksum: 10/79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256
+ languageName: node
+ linkType: hard
+
+"@types/hammerjs@npm:^2.0.36":
+ version: 2.0.46
+ resolution: "@types/hammerjs@npm:2.0.46"
+ checksum: 10/1b6502d668f45ca49fb488c01f7938d3aa75e989d70c64801c8feded7d659ca1a118f745c1b604d220efe344c93231767d5cc68c05e00e069c14539b6143cfd9
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1":
+ version: 2.0.6
+ resolution: "@types/istanbul-lib-coverage@npm:2.0.6"
+ checksum: 10/3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-lib-report@npm:*":
+ version: 3.0.3
+ resolution: "@types/istanbul-lib-report@npm:3.0.3"
+ dependencies:
+ "@types/istanbul-lib-coverage": "npm:*"
+ checksum: 10/b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-reports@npm:^3.0.0":
+ version: 3.0.4
+ resolution: "@types/istanbul-reports@npm:3.0.4"
+ dependencies:
+ "@types/istanbul-lib-report": "npm:*"
+ checksum: 10/93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95
+ languageName: node
+ linkType: hard
+
+"@types/jest@npm:^29.5.13":
+ version: 29.5.14
+ resolution: "@types/jest@npm:29.5.14"
+ dependencies:
+ expect: "npm:^29.0.0"
+ pretty-format: "npm:^29.0.0"
+ checksum: 10/59ec7a9c4688aae8ee529316c43853468b6034f453d08a2e1064b281af9c81234cec986be796288f1bbb29efe943bc950e70c8fa8faae1e460d50e3cf9760f9b
+ languageName: node
+ linkType: hard
+
+"@types/json-schema@npm:^7.0.9":
+ version: 7.0.15
+ resolution: "@types/json-schema@npm:7.0.15"
+ checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7
+ languageName: node
+ linkType: hard
+
+"@types/node-forge@npm:^1.3.0":
+ version: 1.3.14
+ resolution: "@types/node-forge@npm:1.3.14"
+ dependencies:
+ "@types/node": "npm:*"
+ checksum: 10/500ce72435285fca145837da079b49a09a5bdf8391b0effc3eb2455783dd81ab129e574a36e1a0374a4823d889d5328177ebfd6fe45b432c0c43d48d790fe39c
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:*":
+ version: 26.0.0
+ resolution: "@types/node@npm:26.0.0"
+ dependencies:
+ undici-types: "npm:~8.3.0"
+ checksum: 10/ed23034d159b58541de1f59d2ae3988d64124f94a50fb9f1825a217b38f034fc9846e2117770a2bc9372e87de1b0d2b3c6f5ec953b4da4ac943b9a6008b2cc2b
+ languageName: node
+ linkType: hard
+
+"@types/prop-types@npm:*":
+ version: 15.7.15
+ resolution: "@types/prop-types@npm:15.7.15"
+ checksum: 10/31aa2f59b28f24da6fb4f1d70807dae2aedfce090ec63eaf9ea01727a9533ef6eaf017de5bff99fbccad7d1c9e644f52c6c2ba30869465dd22b1a7221c29f356
+ languageName: node
+ linkType: hard
+
+"@types/react-test-renderer@npm:^18.0.0":
+ version: 18.3.1
+ resolution: "@types/react-test-renderer@npm:18.3.1"
+ dependencies:
+ "@types/react": "npm:^18"
+ checksum: 10/f8cc23cc8decdb6068cdc8f8c306e189eab8e569443ce97b216e757ee42eb20b18d2280ef41e2955668413f14be92765a3ba86cfcfeeae6b20c965acd9674786
+ languageName: node
+ linkType: hard
+
+"@types/react@npm:^18, @types/react@npm:^18.2.6":
+ version: 18.3.31
+ resolution: "@types/react@npm:18.3.31"
+ dependencies:
+ "@types/prop-types": "npm:*"
+ csstype: "npm:^3.2.2"
+ checksum: 10/0a5d73b1ba3ce73273b28cc50da78d520b1a8d4253075820dc5cf6c9e286ff6cb339b56bd613d05885fec214fbecd8137bddcbdb475612fdcc46e061d88f00fc
+ languageName: node
+ linkType: hard
+
+"@types/semver@npm:^7.3.12":
+ version: 7.7.1
+ resolution: "@types/semver@npm:7.7.1"
+ checksum: 10/8f09e7e6ca3ded67d78ba7a8f7535c8d9cf8ced83c52e7f3ac3c281fe8c689c3fe475d199d94390dc04fc681d51f2358b430bb7b2e21c62de24f2bee2c719068
+ languageName: node
+ linkType: hard
+
+"@types/stack-utils@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "@types/stack-utils@npm:2.0.3"
+ checksum: 10/72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5
+ languageName: node
+ linkType: hard
+
+"@types/yargs-parser@npm:*":
+ version: 21.0.3
+ resolution: "@types/yargs-parser@npm:21.0.3"
+ checksum: 10/a794eb750e8ebc6273a51b12a0002de41343ffe46befef460bdbb57262d187fdf608bc6615b7b11c462c63c3ceb70abe2564c8dd8ee0f7628f38a314f74a9b9b
+ languageName: node
+ linkType: hard
+
+"@types/yargs@npm:^15.0.0":
+ version: 15.0.20
+ resolution: "@types/yargs@npm:15.0.20"
+ dependencies:
+ "@types/yargs-parser": "npm:*"
+ checksum: 10/f348069c4a0cf5b365e72507f67c6569b12a4af44346c08288319d522272dbe1e3f3acde3ff9ab72bd9f894676624d10fff21096d44bad33e390d092cd409aeb
+ languageName: node
+ linkType: hard
+
+"@types/yargs@npm:^17.0.8":
+ version: 17.0.35
+ resolution: "@types/yargs@npm:17.0.35"
+ dependencies:
+ "@types/yargs-parser": "npm:*"
+ checksum: 10/47bcd4476a4194ea11617ea71cba8a1eddf5505fc39c44336c1a08d452a0de4486aedbc13f47a017c8efbcb5a8aa358d976880663732ebcbc6dbcbbecadb0581
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/eslint-plugin@npm:^7.1.1":
+ version: 7.18.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0"
+ dependencies:
+ "@eslint-community/regexpp": "npm:^4.10.0"
+ "@typescript-eslint/scope-manager": "npm:7.18.0"
+ "@typescript-eslint/type-utils": "npm:7.18.0"
+ "@typescript-eslint/utils": "npm:7.18.0"
+ "@typescript-eslint/visitor-keys": "npm:7.18.0"
+ graphemer: "npm:^1.4.0"
+ ignore: "npm:^5.3.1"
+ natural-compare: "npm:^1.4.0"
+ ts-api-utils: "npm:^1.3.0"
+ peerDependencies:
+ "@typescript-eslint/parser": ^7.0.0
+ eslint: ^8.56.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/6ee4c61f145dc05f0a567b8ac01b5399ef9c75f58bc6e9a3ffca8927b15e2be2d4c3fd32a2c1a7041cc0848fdeadac30d9cb0d3bcd3835d301847a88ffd19c4d
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/parser@npm:^7.1.1":
+ version: 7.18.0
+ resolution: "@typescript-eslint/parser@npm:7.18.0"
+ dependencies:
+ "@typescript-eslint/scope-manager": "npm:7.18.0"
+ "@typescript-eslint/types": "npm:7.18.0"
+ "@typescript-eslint/typescript-estree": "npm:7.18.0"
+ "@typescript-eslint/visitor-keys": "npm:7.18.0"
+ debug: "npm:^4.3.4"
+ peerDependencies:
+ eslint: ^8.56.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/36b00e192a96180220ba100fcce3c777fc3e61a6edbdead4e6e75a744d9f0cbe3fabb5f1c94a31cce6b28a4e4d5de148098eec01296026c3c8e16f7f0067cb1e
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/scope-manager@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/scope-manager@npm:5.62.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:5.62.0"
+ "@typescript-eslint/visitor-keys": "npm:5.62.0"
+ checksum: 10/e827770baa202223bc0387e2fd24f630690809e460435b7dc9af336c77322290a770d62bd5284260fa881c86074d6a9fd6c97b07382520b115f6786b8ed499da
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/scope-manager@npm:7.18.0":
+ version: 7.18.0
+ resolution: "@typescript-eslint/scope-manager@npm:7.18.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:7.18.0"
+ "@typescript-eslint/visitor-keys": "npm:7.18.0"
+ checksum: 10/9eb2ae5d69d9f723e706c16b2b97744fc016996a5473bed596035ac4d12429b3d24e7340a8235d704efa57f8f52e1b3b37925ff7c2e3384859d28b23a99b8bcc
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/type-utils@npm:7.18.0":
+ version: 7.18.0
+ resolution: "@typescript-eslint/type-utils@npm:7.18.0"
+ dependencies:
+ "@typescript-eslint/typescript-estree": "npm:7.18.0"
+ "@typescript-eslint/utils": "npm:7.18.0"
+ debug: "npm:^4.3.4"
+ ts-api-utils: "npm:^1.3.0"
+ peerDependencies:
+ eslint: ^8.56.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/bcc7958a4ecdddad8c92e17265175773e7dddf416a654c1a391e69cb16e43960b39d37b6ffa349941bf3635e050f0ca7cd8f56ec9dd774168f2bbe7afedc9676
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/types@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/types@npm:5.62.0"
+ checksum: 10/24e8443177be84823242d6729d56af2c4b47bfc664dd411a1d730506abf2150d6c31bdefbbc6d97c8f91043e3a50e0c698239dcb145b79bb6b0c34469aaf6c45
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/types@npm:7.18.0":
+ version: 7.18.0
+ resolution: "@typescript-eslint/types@npm:7.18.0"
+ checksum: 10/0e30c73a3cc3c67dd06360a5a12fd12cee831e4092750eec3d6c031bdc4feafcb0ab1d882910a73e66b451a4f6e1dd015e9e2c4d45bf6bf716a474e5d123ddf0
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/typescript-estree@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/typescript-estree@npm:5.62.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:5.62.0"
+ "@typescript-eslint/visitor-keys": "npm:5.62.0"
+ debug: "npm:^4.3.4"
+ globby: "npm:^11.1.0"
+ is-glob: "npm:^4.0.3"
+ semver: "npm:^7.3.7"
+ tsutils: "npm:^3.21.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/06c975eb5f44b43bd19fadc2e1023c50cf87038fe4c0dd989d4331c67b3ff509b17fa60a3251896668ab4d7322bdc56162a9926971218d2e1a1874d2bef9a52e
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/typescript-estree@npm:7.18.0":
+ version: 7.18.0
+ resolution: "@typescript-eslint/typescript-estree@npm:7.18.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:7.18.0"
+ "@typescript-eslint/visitor-keys": "npm:7.18.0"
+ debug: "npm:^4.3.4"
+ globby: "npm:^11.1.0"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:^9.0.4"
+ semver: "npm:^7.6.0"
+ ts-api-utils: "npm:^1.3.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/b01e66235a91aa4439d02081d4a5f8b4a7cf9cb24f26b334812f657e3c603493e5f41e5c1e89cf4efae7d64509fa1f73affc16afc5e15cb7f83f724577c82036
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/utils@npm:7.18.0":
+ version: 7.18.0
+ resolution: "@typescript-eslint/utils@npm:7.18.0"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.4.0"
+ "@typescript-eslint/scope-manager": "npm:7.18.0"
+ "@typescript-eslint/types": "npm:7.18.0"
+ "@typescript-eslint/typescript-estree": "npm:7.18.0"
+ peerDependencies:
+ eslint: ^8.56.0
+ checksum: 10/f43fedb4f4d2e3836bdf137889449063a55c0ece74fdb283929cd376197b992313be8ef4df920c1c801b5c3076b92964c84c6c3b9b749d263b648d0011f5926e
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/utils@npm:^5.10.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/utils@npm:5.62.0"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.2.0"
+ "@types/json-schema": "npm:^7.0.9"
+ "@types/semver": "npm:^7.3.12"
+ "@typescript-eslint/scope-manager": "npm:5.62.0"
+ "@typescript-eslint/types": "npm:5.62.0"
+ "@typescript-eslint/typescript-estree": "npm:5.62.0"
+ eslint-scope: "npm:^5.1.1"
+ semver: "npm:^7.3.7"
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ checksum: 10/15ef13e43998a082b15f85db979f8d3ceb1f9ce4467b8016c267b1738d5e7cdb12aa90faf4b4e6dd6486c236cf9d33c463200465cf25ff997dbc0f12358550a1
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/visitor-keys@npm:5.62.0":
+ version: 5.62.0
+ resolution: "@typescript-eslint/visitor-keys@npm:5.62.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:5.62.0"
+ eslint-visitor-keys: "npm:^3.3.0"
+ checksum: 10/dc613ab7569df9bbe0b2ca677635eb91839dfb2ca2c6fa47870a5da4f160db0b436f7ec0764362e756d4164e9445d49d5eb1ff0b87f4c058946ae9d8c92eb388
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/visitor-keys@npm:7.18.0":
+ version: 7.18.0
+ resolution: "@typescript-eslint/visitor-keys@npm:7.18.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:7.18.0"
+ eslint-visitor-keys: "npm:^3.4.3"
+ checksum: 10/b7cfe6fdeae86c507357ac6b2357813c64fb2fbf1aaf844393ba82f73a16e2599b41981b34200d9fc7765d70bc3a8181d76b503051e53f04bcb7c9afef637eab
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260622.1":
+ version: 7.0.0-dev.20260622.1
+ resolution: "@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260622.1"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260622.1":
+ version: 7.0.0-dev.20260622.1
+ resolution: "@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260622.1"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260622.1":
+ version: 7.0.0-dev.20260622.1
+ resolution: "@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260622.1"
+ conditions: os=linux & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260622.1":
+ version: 7.0.0-dev.20260622.1
+ resolution: "@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260622.1"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260622.1":
+ version: 7.0.0-dev.20260622.1
+ resolution: "@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260622.1"
+ conditions: os=linux & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260622.1":
+ version: 7.0.0-dev.20260622.1
+ resolution: "@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260622.1"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260622.1":
+ version: 7.0.0-dev.20260622.1
+ resolution: "@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260622.1"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@typescript/native-preview@npm:^7.0.0-dev.20260301.1":
+ version: 7.0.0-dev.20260622.1
+ resolution: "@typescript/native-preview@npm:7.0.0-dev.20260622.1"
+ dependencies:
+ "@typescript/native-preview-darwin-arm64": "npm:7.0.0-dev.20260622.1"
+ "@typescript/native-preview-darwin-x64": "npm:7.0.0-dev.20260622.1"
+ "@typescript/native-preview-linux-arm": "npm:7.0.0-dev.20260622.1"
+ "@typescript/native-preview-linux-arm64": "npm:7.0.0-dev.20260622.1"
+ "@typescript/native-preview-linux-x64": "npm:7.0.0-dev.20260622.1"
+ "@typescript/native-preview-win32-arm64": "npm:7.0.0-dev.20260622.1"
+ "@typescript/native-preview-win32-x64": "npm:7.0.0-dev.20260622.1"
+ dependenciesMeta:
+ "@typescript/native-preview-darwin-arm64":
+ optional: true
+ "@typescript/native-preview-darwin-x64":
+ optional: true
+ "@typescript/native-preview-linux-arm":
+ optional: true
+ "@typescript/native-preview-linux-arm64":
+ optional: true
+ "@typescript/native-preview-linux-x64":
+ optional: true
+ "@typescript/native-preview-win32-arm64":
+ optional: true
+ "@typescript/native-preview-win32-x64":
+ optional: true
+ bin:
+ tsgo: bin/tsgo.js
+ checksum: 10/8bde4d2ce4eba65e980a38db7cae28ccf388d87ab59dd905c9b9d173aa58f8afe5b8b481fd3cd4d39d3d4a0166dc19c7e05bba991f7fb5dd889e27ea96335871
+ languageName: node
+ linkType: hard
+
+"@ungap/structured-clone@npm:^1.2.0":
+ version: 1.3.1
+ resolution: "@ungap/structured-clone@npm:1.3.1"
+ checksum: 10/64df206f50aef71c176f9059c1b29e1694821419c6728c446ecf39c80a811eeef156668bf51421b676494a12fd0129ccf09a44f0c641f13c27f50d5f0db6de4e
+ languageName: node
+ linkType: hard
+
+"abbrev@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "abbrev@npm:5.0.0"
+ checksum: 10/a32641fb7a8ba0ad6f65efda80a632c965a2567f52c988897bffc47f473c4e9c3f0166de19d939866b1ed58ec50ce36f697d54a476589ca2706f8b5605ed41f0
+ languageName: node
+ linkType: hard
+
+"abort-controller@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "abort-controller@npm:3.0.0"
+ dependencies:
+ event-target-shim: "npm:^5.0.0"
+ checksum: 10/ed84af329f1828327798229578b4fe03a4dd2596ba304083ebd2252666bdc1d7647d66d0b18704477e1f8aa315f055944aa6e859afebd341f12d0a53c37b4b40
+ languageName: node
+ linkType: hard
+
+"accepts@npm:^1.3.7, accepts@npm:~1.3.8":
+ version: 1.3.8
+ resolution: "accepts@npm:1.3.8"
+ dependencies:
+ mime-types: "npm:~2.1.34"
+ negotiator: "npm:0.6.3"
+ checksum: 10/67eaaa90e2917c58418e7a9b89392002d2b1ccd69bcca4799135d0c632f3b082f23f4ae4ddeedbced5aa59bcc7bdf4699c69ebed4593696c922462b7bc5744d6
+ languageName: node
+ linkType: hard
+
+"acorn-jsx@npm:^5.3.2":
+ version: 5.3.2
+ resolution: "acorn-jsx@npm:5.3.2"
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ checksum: 10/d4371eaef7995530b5b5ca4183ff6f062ca17901a6d3f673c9ac011b01ede37e7a1f7f61f8f5cfe709e88054757bb8f3277dc4061087cdf4f2a1f90ccbcdb977
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^8.15.0, acorn@npm:^8.9.0":
+ version: 8.17.0
+ resolution: "acorn@npm:8.17.0"
+ bin:
+ acorn: bin/acorn
+ checksum: 10/2eea1588075124df569b15995423204055c5575ad992283025dddfcb557a0340de7d75cc1bc25dca8df148c60c4222e576e0e519965f0ec7f86f6085c8428824
+ languageName: node
+ linkType: hard
+
+"ajv@npm:^6.12.4":
+ version: 6.15.0
+ resolution: "ajv@npm:6.15.0"
+ dependencies:
+ fast-deep-equal: "npm:^3.1.1"
+ fast-json-stable-stringify: "npm:^2.0.0"
+ json-schema-traverse: "npm:^0.4.1"
+ uri-js: "npm:^4.2.2"
+ checksum: 10/0916dda09c152fb5857bc1cc7ce61718e9cec5b7faeff44a74f5e324eed8a556e1a84856724ea322a067b436ecad9f74ac8295fd395449788cca52f0c25bd5fb
+ languageName: node
+ linkType: hard
+
+"anser@npm:^1.4.9":
+ version: 1.4.10
+ resolution: "anser@npm:1.4.10"
+ checksum: 10/a5a6658ccb2ca8271b25cfb29f53ff7cd042800d8e3daa472cdbde0da99392547baaac6be33cbfe41eb76c48a2e4f1fc6647a8636b33f663ac7dd1ba72e0a199
+ languageName: node
+ linkType: hard
+
+"ansi-escapes@npm:^4.2.1":
+ version: 4.3.2
+ resolution: "ansi-escapes@npm:4.3.2"
+ dependencies:
+ type-fest: "npm:^0.21.3"
+ checksum: 10/8661034456193ffeda0c15c8c564a9636b0c04094b7f78bd01517929c17c504090a60f7a75f949f5af91289c264d3e1001d91492c1bd58efc8e100500ce04de2
+ languageName: node
+ linkType: hard
+
+"ansi-fragments@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "ansi-fragments@npm:0.2.1"
+ dependencies:
+ colorette: "npm:^1.0.7"
+ slice-ansi: "npm:^2.0.0"
+ strip-ansi: "npm:^5.0.0"
+ checksum: 10/2380829941c8884290f65ed0af9ed2e0449efc24d8d15d0bc451f0836f14a70076ddd1322dc2c60372874c4598228ca707edf578ed353f8054cfbf872a7ecac2
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^4.1.0":
+ version: 4.1.1
+ resolution: "ansi-regex@npm:4.1.1"
+ checksum: 10/b1a6ee44cb6ecdabaa770b2ed500542714d4395d71c7e5c25baa631f680fb2ad322eb9ba697548d498a6fd366949fc8b5bfcf48d49a32803611f648005b01888
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^5.0.0, ansi-regex@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "ansi-regex@npm:5.0.1"
+ checksum: 10/2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^3.2.0":
+ version: 3.2.1
+ resolution: "ansi-styles@npm:3.2.1"
+ dependencies:
+ color-convert: "npm:^1.9.0"
+ checksum: 10/d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0":
+ version: 4.3.0
+ resolution: "ansi-styles@npm:4.3.0"
+ dependencies:
+ color-convert: "npm:^2.0.1"
+ checksum: 10/b4494dfbfc7e4591b4711a396bd27e540f8153914123dccb4cdbbcb514015ada63a3809f362b9d8d4f6b17a706f1d7bea3c6f974b15fa5ae76b5b502070889ff
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^5.0.0":
+ version: 5.2.0
+ resolution: "ansi-styles@npm:5.2.0"
+ checksum: 10/d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469
+ languageName: node
+ linkType: hard
+
+"anymatch@npm:^3.0.3":
+ version: 3.1.3
+ resolution: "anymatch@npm:3.1.3"
+ dependencies:
+ normalize-path: "npm:^3.0.0"
+ picomatch: "npm:^2.0.4"
+ checksum: 10/3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2
+ languageName: node
+ linkType: hard
+
+"appdirsjs@npm:^1.2.4":
+ version: 1.2.7
+ resolution: "appdirsjs@npm:1.2.7"
+ checksum: 10/8f6cb9cc18de2b38e2f5efddf764c5f0331aba4168ee28cb7370b98e1dc69316352b9a936acf4d628b4dcc510d77b1645ed4b68ab2231e302f835d35e11348d3
+ languageName: node
+ linkType: hard
+
+"argparse@npm:^1.0.7":
+ version: 1.0.10
+ resolution: "argparse@npm:1.0.10"
+ dependencies:
+ sprintf-js: "npm:~1.0.2"
+ checksum: 10/c6a621343a553ff3779390bb5ee9c2263d6643ebcd7843227bdde6cc7adbed796eb5540ca98db19e3fd7b4714e1faa51551f8849b268bb62df27ddb15cbcd91e
+ languageName: node
+ linkType: hard
+
+"argparse@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "argparse@npm:2.0.1"
+ checksum: 10/18640244e641a417ec75a9bd38b0b2b6b95af5199aa241b131d4b2fb206f334d7ecc600bd194861610a5579084978bfcbb02baa399dbe442d56d0ae5e60dbaef
+ languageName: node
+ linkType: hard
+
+"array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "array-buffer-byte-length@npm:1.0.2"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ is-array-buffer: "npm:^3.0.5"
+ checksum: 10/0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63
+ languageName: node
+ linkType: hard
+
+"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8":
+ version: 3.1.9
+ resolution: "array-includes@npm:3.1.9"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.4"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.24.0"
+ es-object-atoms: "npm:^1.1.1"
+ get-intrinsic: "npm:^1.3.0"
+ is-string: "npm:^1.1.1"
+ math-intrinsics: "npm:^1.1.0"
+ checksum: 10/8bfe9a58df74f326b4a76b04ee05c13d871759e888b4ee8f013145297cf5eb3c02cfa216067ebdaac5d74eb9763ac5cad77cdf2773b8ab475833701e032173aa
+ languageName: node
+ linkType: hard
+
+"array-union@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "array-union@npm:2.1.0"
+ checksum: 10/5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d
+ languageName: node
+ linkType: hard
+
+"array.prototype.findlast@npm:^1.2.5":
+ version: 1.2.5
+ resolution: "array.prototype.findlast@npm:1.2.5"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10/7dffcc665aa965718ad6de7e17ac50df0c5e38798c0a5bf9340cf24feb8594df6ec6f3fcbe714c1577728a1b18b5704b15669474b27bceeca91ef06ce2a23c31
+ languageName: node
+ linkType: hard
+
+"array.prototype.flat@npm:^1.3.1":
+ version: 1.3.3
+ resolution: "array.prototype.flat@npm:1.3.3"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.5"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10/f9b992fa0775d8f7c97abc91eb7f7b2f0ed8430dd9aeb9fdc2967ac4760cdd7fc2ef7ead6528fef40c7261e4d790e117808ce0d3e7e89e91514d4963a531cd01
+ languageName: node
+ linkType: hard
+
+"array.prototype.flatmap@npm:^1.3.3":
+ version: 1.3.3
+ resolution: "array.prototype.flatmap@npm:1.3.3"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.5"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10/473534573aa4b37b1d80705d0ce642f5933cccf5617c9f3e8a56686e9815ba93d469138e86a1f25d2fe8af999c3d24f54d703ec1fc2db2e6778d46d0f4ac951e
+ languageName: node
+ linkType: hard
+
+"array.prototype.tosorted@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "array.prototype.tosorted@npm:1.1.4"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.3"
+ es-errors: "npm:^1.3.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10/874694e5d50e138894ff5b853e639c29b0aa42bbd355acda8e8e9cd337f1c80565f21edc15e8c727fa4c0877fd9d8783c575809e440cc4d2d19acaa048bf967d
+ languageName: node
+ linkType: hard
+
+"arraybuffer.prototype.slice@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "arraybuffer.prototype.slice@npm:1.0.4"
+ dependencies:
+ array-buffer-byte-length: "npm:^1.0.1"
+ call-bind: "npm:^1.0.8"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.5"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.6"
+ is-array-buffer: "npm:^3.0.4"
+ checksum: 10/4821ebdfe7d699f910c7f09bc9fa996f09b96b80bccb4f5dd4b59deae582f6ad6e505ecef6376f8beac1eda06df2dbc89b70e82835d104d6fcabd33c1aed1ae9
+ languageName: node
+ linkType: hard
+
+"asap@npm:~2.0.6":
+ version: 2.0.6
+ resolution: "asap@npm:2.0.6"
+ checksum: 10/b244c0458c571945e4b3be0b14eb001bea5596f9868cc50cc711dc03d58a7e953517d3f0dad81ccde3ff37d1f074701fa76a6f07d41aaa992d7204a37b915dda
+ languageName: node
+ linkType: hard
+
+"ast-types@npm:0.15.2":
+ version: 0.15.2
+ resolution: "ast-types@npm:0.15.2"
+ dependencies:
+ tslib: "npm:^2.0.1"
+ checksum: 10/81680bd5829cdec33524e9aa3434e23f3919c0c388927068a0ff2e8466f55b0f34eae53e0007b3668742910c289481ab4e1d486a5318f618ae2fc93b5e7e863b
+ languageName: node
+ linkType: hard
+
+"astral-regex@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "astral-regex@npm:1.0.0"
+ checksum: 10/93417fc0879531cd95ace2560a54df865c9461a3ac0714c60cbbaa5f1f85d2bee85489e78d82f70b911b71ac25c5f05fc5a36017f44c9bb33c701bee229ff848
+ languageName: node
+ linkType: hard
+
+"async-function@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "async-function@npm:1.0.0"
+ checksum: 10/1a09379937d846f0ce7614e75071c12826945d4e417db634156bf0e4673c495989302f52186dfa9767a1d9181794554717badd193ca2bbab046ef1da741d8efd
+ languageName: node
+ linkType: hard
+
+"async-generator-function@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "async-generator-function@npm:1.0.0"
+ checksum: 10/3d49e7acbeee9e84537f4cb0e0f91893df8eba976759875ae8ee9e3d3c82f6ecdebdb347c2fad9926b92596d93cdfc78ecc988bcdf407e40433e8e8e6fe5d78e
+ languageName: node
+ linkType: hard
+
+"async-limiter@npm:~1.0.0":
+ version: 1.0.1
+ resolution: "async-limiter@npm:1.0.1"
+ checksum: 10/2b849695b465d93ad44c116220dee29a5aeb63adac16c1088983c339b0de57d76e82533e8e364a93a9f997f28bbfc6a92948cefc120652bd07f3b59f8d75cf2b
+ languageName: node
+ linkType: hard
+
+"available-typed-arrays@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "available-typed-arrays@npm:1.0.7"
+ dependencies:
+ possible-typed-array-names: "npm:^1.0.0"
+ checksum: 10/6c9da3a66caddd83c875010a1ca8ef11eac02ba15fb592dc9418b2b5e7b77b645fa7729380a92d9835c2f05f2ca1b6251f39b993e0feb3f1517c74fa1af02cab
+ languageName: node
+ linkType: hard
+
+"babel-core@npm:^7.0.0-bridge.0":
+ version: 7.0.0-bridge.0
+ resolution: "babel-core@npm:7.0.0-bridge.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10/2a1cb879019dffb08d17bec36e13c3a6d74c94773f41c1fd8b14de13f149cc34b705b0a1e07b42fcf35917b49d78db6ff0c5c3b00b202a5235013d517b5c6bbb
+ languageName: node
+ linkType: hard
+
+"babel-jest@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "babel-jest@npm:29.7.0"
+ dependencies:
+ "@jest/transform": "npm:^29.7.0"
+ "@types/babel__core": "npm:^7.1.14"
+ babel-plugin-istanbul: "npm:^6.1.1"
+ babel-preset-jest: "npm:^29.6.3"
+ chalk: "npm:^4.0.0"
+ graceful-fs: "npm:^4.2.9"
+ slash: "npm:^3.0.0"
+ peerDependencies:
+ "@babel/core": ^7.8.0
+ checksum: 10/8a0953bd813b3a8926008f7351611055548869e9a53dd36d6e7e96679001f71e65fd7dbfe253265c3ba6a4e630dc7c845cf3e78b17d758ef1880313ce8fba258
+ languageName: node
+ linkType: hard
+
+"babel-plugin-istanbul@npm:^6.1.1":
+ version: 6.1.1
+ resolution: "babel-plugin-istanbul@npm:6.1.1"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.0.0"
+ "@istanbuljs/load-nyc-config": "npm:^1.0.0"
+ "@istanbuljs/schema": "npm:^0.1.2"
+ istanbul-lib-instrument: "npm:^5.0.4"
+ test-exclude: "npm:^6.0.0"
+ checksum: 10/ffd436bb2a77bbe1942a33245d770506ab2262d9c1b3c1f1da7f0592f78ee7445a95bc2efafe619dd9c1b6ee52c10033d6c7d29ddefe6f5383568e60f31dfe8d
+ languageName: node
+ linkType: hard
+
+"babel-plugin-jest-hoist@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "babel-plugin-jest-hoist@npm:29.6.3"
+ dependencies:
+ "@babel/template": "npm:^7.3.3"
+ "@babel/types": "npm:^7.3.3"
+ "@types/babel__core": "npm:^7.1.14"
+ "@types/babel__traverse": "npm:^7.0.6"
+ checksum: 10/9bfa86ec4170bd805ab8ca5001ae50d8afcb30554d236ba4a7ffc156c1a92452e220e4acbd98daefc12bf0216fccd092d0a2efed49e7e384ec59e0597a926d65
+ languageName: node
+ linkType: hard
+
+"babel-plugin-polyfill-corejs2@npm:^0.4.14, babel-plugin-polyfill-corejs2@npm:^0.4.15":
+ version: 0.4.17
+ resolution: "babel-plugin-polyfill-corejs2@npm:0.4.17"
+ dependencies:
+ "@babel/compat-data": "npm:^7.28.6"
+ "@babel/helper-define-polyfill-provider": "npm:^0.6.8"
+ semver: "npm:^6.3.1"
+ peerDependencies:
+ "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
+ checksum: 10/35796b7f960d2e90ae78e9eb60491550976b839bbb4ce4c060df822cce191e4b5d93f13f0e64c2ba3ffc6ab3d32d3ced3f84ec567cc141088a11fa5a1628265d
+ languageName: node
+ linkType: hard
+
+"babel-plugin-polyfill-corejs3@npm:^0.13.0":
+ version: 0.13.0
+ resolution: "babel-plugin-polyfill-corejs3@npm:0.13.0"
+ dependencies:
+ "@babel/helper-define-polyfill-provider": "npm:^0.6.5"
+ core-js-compat: "npm:^3.43.0"
+ peerDependencies:
+ "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
+ checksum: 10/aa36f9a09521404dd0569a4cbd5f88aa4b9abff59508749abde5d09d66c746012fb94ed1e6e2c8be3710939a2a4c6293ee3be889125d7611c93e5897d9e5babd
+ languageName: node
+ linkType: hard
+
+"babel-plugin-polyfill-corejs3@npm:^0.14.0":
+ version: 0.14.2
+ resolution: "babel-plugin-polyfill-corejs3@npm:0.14.2"
+ dependencies:
+ "@babel/helper-define-polyfill-provider": "npm:^0.6.8"
+ core-js-compat: "npm:^3.48.0"
+ peerDependencies:
+ "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
+ checksum: 10/bb500bfec712eb5e8c9058dc299677a5325af7e09ebd725c89719f2f555eca3f2b1a8644137c8e67d7fc83d7be48a7189a1a385b61ed2cf63dbb64e79461b9ee
+ languageName: node
+ linkType: hard
+
+"babel-plugin-polyfill-regenerator@npm:^0.6.5, babel-plugin-polyfill-regenerator@npm:^0.6.6":
+ version: 0.6.8
+ resolution: "babel-plugin-polyfill-regenerator@npm:0.6.8"
+ dependencies:
+ "@babel/helper-define-polyfill-provider": "npm:^0.6.8"
+ peerDependencies:
+ "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
+ checksum: 10/974464353d6f974e97673385aff616a913c0b76039eab8c5317a2d07c661e080f3dcc213e86f3eae40010172a27ab793cda7a290a8a899716f9a22df9b1d92d2
+ languageName: node
+ linkType: hard
+
+"babel-plugin-syntax-hermes-parser@npm:^0.23.1":
+ version: 0.23.1
+ resolution: "babel-plugin-syntax-hermes-parser@npm:0.23.1"
+ dependencies:
+ hermes-parser: "npm:0.23.1"
+ checksum: 10/5412008e8e85b08cd0d78168f746ade68b8ed69c0068831ce5e3d028f01c644f546ca0e2b7c9a4a8c6b9d5f14aff84c2453ab44b19cbec55e4366b20bbba9040
+ languageName: node
+ linkType: hard
+
+"babel-plugin-syntax-hermes-parser@npm:^0.25.1":
+ version: 0.25.1
+ resolution: "babel-plugin-syntax-hermes-parser@npm:0.25.1"
+ dependencies:
+ hermes-parser: "npm:0.25.1"
+ checksum: 10/dc80fafde1aed8e60cf86ecd2e9920e7f35ffe02b33bd4e772daaa786167bcf508aac3fc1aea425ff4c7a0be94d82528f3fe8619b7f41dac853264272d640c04
+ languageName: node
+ linkType: hard
+
+"babel-plugin-transform-flow-enums@npm:^0.0.2":
+ version: 0.0.2
+ resolution: "babel-plugin-transform-flow-enums@npm:0.0.2"
+ dependencies:
+ "@babel/plugin-syntax-flow": "npm:^7.12.1"
+ checksum: 10/fd52aef54448e01948a9d1cca0c8f87d064970c8682458962b7a222c372704bc2ce26ae8109e0ab2566e7ea5106856460f04c1a5ed794ab3bcd2f42cae1d9845
+ languageName: node
+ linkType: hard
+
+"babel-preset-current-node-syntax@npm:^1.0.0":
+ version: 1.2.0
+ resolution: "babel-preset-current-node-syntax@npm:1.2.0"
+ dependencies:
+ "@babel/plugin-syntax-async-generators": "npm:^7.8.4"
+ "@babel/plugin-syntax-bigint": "npm:^7.8.3"
+ "@babel/plugin-syntax-class-properties": "npm:^7.12.13"
+ "@babel/plugin-syntax-class-static-block": "npm:^7.14.5"
+ "@babel/plugin-syntax-import-attributes": "npm:^7.24.7"
+ "@babel/plugin-syntax-import-meta": "npm:^7.10.4"
+ "@babel/plugin-syntax-json-strings": "npm:^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
+ "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3"
+ "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
+ "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5"
+ "@babel/plugin-syntax-top-level-await": "npm:^7.14.5"
+ peerDependencies:
+ "@babel/core": ^7.0.0 || ^8.0.0-0
+ checksum: 10/3608fa671cfa46364ea6ec704b8fcdd7514b7b70e6ec09b1199e13ae73ed346c51d5ce2cb6d4d5b295f6a3f2cad1fdeec2308aa9e037002dd7c929194cc838ea
+ languageName: node
+ linkType: hard
+
+"babel-preset-jest@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "babel-preset-jest@npm:29.6.3"
+ dependencies:
+ babel-plugin-jest-hoist: "npm:^29.6.3"
+ babel-preset-current-node-syntax: "npm:^1.0.0"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "balanced-match@npm:1.0.2"
+ checksum: 10/9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65
+ languageName: node
+ linkType: hard
+
+"baresampleapp@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "baresampleapp@workspace:."
+ dependencies:
+ "@adobe/react-native-aepassurance": "npm:^7.0.0"
+ "@adobe/react-native-aepcampaignclassic": "npm:^7.0.0"
+ "@adobe/react-native-aepcore": "npm:^7.0.0"
+ "@adobe/react-native-aepedge": "npm:^7.0.0"
+ "@adobe/react-native-aepedgebridge": "npm:^7.0.1"
+ "@adobe/react-native-aepedgeconsent": "npm:^7.0.0"
+ "@adobe/react-native-aepedgeidentity": "npm:^7.0.0"
+ "@adobe/react-native-aepmessaging": "npm:^7.4.0"
+ "@adobe/react-native-aepoptimize": "portal:../../packages/optimize"
+ "@adobe/react-native-aepplaces": "npm:^7.0.1"
+ "@adobe/react-native-aeptarget": "npm:^7.0.0"
+ "@adobe/react-native-aepuserprofile": "npm:^7.0.0"
+ "@babel/core": "npm:^7.25.2"
+ "@babel/preset-env": "npm:^7.25.3"
+ "@babel/runtime": "npm:^7.25.0"
+ "@react-native-async-storage/async-storage": "npm:^2.1.2"
+ "@react-native-community/cli": "npm:15.0.1"
+ "@react-native-community/cli-platform-android": "npm:15.0.1"
+ "@react-native-community/cli-platform-ios": "npm:15.0.1"
+ "@react-native-masked-view/masked-view": "npm:^0.3.0"
+ "@react-native/babel-preset": "npm:0.76.6"
+ "@react-native/eslint-config": "npm:0.76.6"
+ "@react-native/metro-config": "npm:0.76.6"
+ "@react-native/typescript-config": "npm:0.76.6"
+ "@react-navigation/drawer": "npm:^6.7.2"
+ "@react-navigation/native": "npm:^6.1.18"
+ "@react-navigation/stack": "npm:^6.4.1"
+ "@types/jest": "npm:^29.5.13"
+ "@types/react": "npm:^18.2.6"
+ "@types/react-test-renderer": "npm:^18.0.0"
+ eslint: "npm:^8.19.0"
+ jest: "npm:^29.6.3"
+ lodash.isequal: "npm:^4.5.0"
+ prettier: "npm:2.8.8"
+ react: "npm:18.3.1"
+ react-native: "npm:0.76.6"
+ react-native-gesture-handler: "npm:2.20.2"
+ react-native-reanimated: "npm:3.16.7"
+ react-native-safe-area-context: "npm:^4.14.0"
+ react-native-screens: "npm:~3.34.0"
+ react-native-webview: "npm:^13.12.5"
+ react-test-renderer: "npm:18.3.1"
+ recyclerlistview: "npm:^4.2.0"
+ ts-object-utils: "npm:0.0.5"
+ tslib: "npm:^2.6.0"
+ typescript: "npm:5.0.4"
+ languageName: unknown
+ linkType: soft
+
+"base64-js@npm:^1.3.1, base64-js@npm:^1.5.1":
+ version: 1.5.1
+ resolution: "base64-js@npm:1.5.1"
+ checksum: 10/669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005
+ languageName: node
+ linkType: hard
+
+"baseline-browser-mapping@npm:^2.10.38":
+ version: 2.10.38
+ resolution: "baseline-browser-mapping@npm:2.10.38"
+ bin:
+ baseline-browser-mapping: dist/cli.cjs
+ checksum: 10/cb6c9913df1e8f0f9040cdacd3af0371f2daf2b16563d86d3b208c14a392b4783a6be434b9e7cf5dc413d6e40548b7b719e1a12e59789fb4b3db37146fb9e6b2
+ languageName: node
+ linkType: hard
+
+"bl@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "bl@npm:4.1.0"
+ dependencies:
+ buffer: "npm:^5.5.0"
+ inherits: "npm:^2.0.4"
+ readable-stream: "npm:^3.4.0"
+ checksum: 10/b7904e66ed0bdfc813c06ea6c3e35eafecb104369dbf5356d0f416af90c1546de3b74e5b63506f0629acf5e16a6f87c3798f16233dcff086e9129383aa02ab55
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^1.1.7":
+ version: 1.1.15
+ resolution: "brace-expansion@npm:1.1.15"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ concat-map: "npm:0.0.1"
+ checksum: 10/f2a950034e670523cc186da61aabe3beab74b1b8a7c74a756bf6b172dad1917312f255d9ec46906c9f0cab530868095d8c143918576930dd0e1323c3803850f1
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^2.0.2":
+ version: 2.1.1
+ resolution: "brace-expansion@npm:2.1.1"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ checksum: 10/4681c533dc4e6c77b3ad795b38683d297fd03c739a17bfb2a338529fa7dcf4540683a79dcd662905f4c5b0db7cfda18daafcd18dd1bbf7c3b076fe0c9c3487eb
+ languageName: node
+ linkType: hard
+
+"braces@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "braces@npm:3.0.3"
+ dependencies:
+ fill-range: "npm:^7.1.1"
+ checksum: 10/fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6
+ languageName: node
+ linkType: hard
+
+"browserslist@npm:^4.24.0, browserslist@npm:^4.28.1":
+ version: 4.28.4
+ resolution: "browserslist@npm:4.28.4"
+ dependencies:
+ baseline-browser-mapping: "npm:^2.10.38"
+ caniuse-lite: "npm:^1.0.30001799"
+ electron-to-chromium: "npm:^1.5.376"
+ node-releases: "npm:^2.0.48"
+ update-browserslist-db: "npm:^1.2.3"
+ bin:
+ browserslist: cli.js
+ checksum: 10/beb030f5b301b6af3fc7df3291d56f9edb34b7e4bd3cdc50d379c84c3410ad1ba013602952bcec1d98af940cf6596609fc81ef09d200f7f2e25e9f84d9d38201
+ languageName: node
+ linkType: hard
+
+"bser@npm:2.1.1":
+ version: 2.1.1
+ resolution: "bser@npm:2.1.1"
+ dependencies:
+ node-int64: "npm:^0.4.0"
+ checksum: 10/edba1b65bae682450be4117b695997972bd9a3c4dfee029cab5bcb72ae5393a79a8f909b8bc77957eb0deec1c7168670f18f4d5c556f46cdd3bca5f3b3a8d020
+ languageName: node
+ linkType: hard
+
+"buffer-from@npm:^1.0.0":
+ version: 1.1.2
+ resolution: "buffer-from@npm:1.1.2"
+ checksum: 10/0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb
+ languageName: node
+ linkType: hard
+
+"buffer@npm:^5.5.0":
+ version: 5.7.1
+ resolution: "buffer@npm:5.7.1"
+ dependencies:
+ base64-js: "npm:^1.3.1"
+ ieee754: "npm:^1.1.13"
+ checksum: 10/997434d3c6e3b39e0be479a80288875f71cd1c07d75a3855e6f08ef848a3c966023f79534e22e415ff3a5112708ce06127277ab20e527146d55c84566405c7c6
+ languageName: node
+ linkType: hard
+
+"bytes@npm:3.1.2":
+ version: 3.1.2
+ resolution: "bytes@npm:3.1.2"
+ checksum: 10/a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388
+ languageName: node
+ linkType: hard
+
+"call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "call-bind-apply-helpers@npm:1.0.2"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ function-bind: "npm:^1.1.2"
+ checksum: 10/00482c1f6aa7cfb30fb1dbeb13873edf81cfac7c29ed67a5957d60635a56b2a4a480f1016ddbdb3395cc37900d46037fb965043a51c5c789ffeab4fc535d18b5
+ languageName: node
+ linkType: hard
+
+"call-bind@npm:^1.0.7, call-bind@npm:^1.0.8, call-bind@npm:^1.0.9":
+ version: 1.0.9
+ resolution: "call-bind@npm:1.0.9"
+ dependencies:
+ call-bind-apply-helpers: "npm:^1.0.2"
+ es-define-property: "npm:^1.0.1"
+ get-intrinsic: "npm:^1.3.0"
+ set-function-length: "npm:^1.2.2"
+ checksum: 10/25b1a98d6158f0adf9fface594ca82be4e3ed481d8ff7f36ad1fccb0c8377e38c6a04ff3248693723222d378677e93077c739defc8a6741c82b7e00bcee1245d
+ languageName: node
+ linkType: hard
+
+"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3, call-bound@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "call-bound@npm:1.0.4"
+ dependencies:
+ call-bind-apply-helpers: "npm:^1.0.2"
+ get-intrinsic: "npm:^1.3.0"
+ checksum: 10/ef2b96e126ec0e58a7ff694db43f4d0d44f80e641370c21549ed911fecbdbc2df3ebc9bddad918d6bbdefeafb60bb3337902006d5176d72bcd2da74820991af7
+ languageName: node
+ linkType: hard
+
+"caller-callsite@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "caller-callsite@npm:2.0.0"
+ dependencies:
+ callsites: "npm:^2.0.0"
+ checksum: 10/b685e9d126d9247b320cfdfeb3bc8da0c4be28d8fb98c471a96bc51aab3130099898a2fe3bf0308f0fe048d64c37d6d09f563958b9afce1a1e5e63d879c128a2
+ languageName: node
+ linkType: hard
+
+"caller-path@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "caller-path@npm:2.0.0"
+ dependencies:
+ caller-callsite: "npm:^2.0.0"
+ checksum: 10/3e12ccd0c71ec10a057aac69e3ec175b721ca858c640df021ef0d25999e22f7c1d864934b596b7d47038e9b56b7ec315add042abbd15caac882998b50102fb12
+ languageName: node
+ linkType: hard
+
+"callsites@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "callsites@npm:2.0.0"
+ checksum: 10/be2f67b247df913732b7dec1ec0bbfcdbaea263e5a95968b19ec7965affae9496b970e3024317e6d4baa8e28dc6ba0cec03f46fdddc2fdcc51396600e53c2623
+ languageName: node
+ linkType: hard
+
+"callsites@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "callsites@npm:3.1.0"
+ checksum: 10/072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3
+ languageName: node
+ linkType: hard
+
+"camelcase@npm:^5.0.0, camelcase@npm:^5.3.1":
+ version: 5.3.1
+ resolution: "camelcase@npm:5.3.1"
+ checksum: 10/e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b
+ languageName: node
+ linkType: hard
+
+"camelcase@npm:^6.2.0":
+ version: 6.3.0
+ resolution: "camelcase@npm:6.3.0"
+ checksum: 10/8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d
+ languageName: node
+ linkType: hard
+
+"caniuse-lite@npm:^1.0.30001799":
+ version: 1.0.30001799
+ resolution: "caniuse-lite@npm:1.0.30001799"
+ checksum: 10/eb90443f1e4e4ac7cfe3686d43f0d132c0b552d0d896c0520e7306f2ddf743b4dd5380a7b8adc5ca8d250247966a6cf32cb042930dbc1df452e8623ad92c57e2
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2":
+ version: 4.1.2
+ resolution: "chalk@npm:4.1.2"
+ dependencies:
+ ansi-styles: "npm:^4.1.0"
+ supports-color: "npm:^7.1.0"
+ checksum: 10/cb3f3e594913d63b1814d7ca7c9bafbf895f75fbf93b92991980610dfd7b48500af4e3a5d4e3a8f337990a96b168d7eb84ee55efdce965e2ee8efc20f8c8f139
+ languageName: node
+ linkType: hard
+
+"char-regex@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "char-regex@npm:1.0.2"
+ checksum: 10/1ec5c2906adb9f84e7f6732a40baef05d7c85401b82ffcbc44b85fbd0f7a2b0c2a96f2eb9cf55cae3235dc12d4023003b88f09bcae8be9ae894f52ed746f4d48
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "chownr@npm:3.0.0"
+ checksum: 10/b63cb1f73d171d140a2ed8154ee6566c8ab775d3196b0e03a2a94b5f6a0ce7777ee5685ca56849403c8d17bd457a6540672f9a60696a6137c7a409097495b82c
+ languageName: node
+ linkType: hard
+
+"chrome-launcher@npm:^0.15.2":
+ version: 0.15.2
+ resolution: "chrome-launcher@npm:0.15.2"
+ dependencies:
+ "@types/node": "npm:*"
+ escape-string-regexp: "npm:^4.0.0"
+ is-wsl: "npm:^2.2.0"
+ lighthouse-logger: "npm:^1.0.0"
+ bin:
+ print-chrome-path: bin/print-chrome-path.js
+ checksum: 10/6faa189950790e63356113a08c4dbb25d9ef7d1ffc778f9fcf5967895ea8968aa3e711f6e7a55dadb42aa7a329d77721abf929a589b87e9e19e6e8c084b87e0d
+ languageName: node
+ linkType: hard
+
+"chromium-edge-launcher@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "chromium-edge-launcher@npm:0.2.0"
+ dependencies:
+ "@types/node": "npm:*"
+ escape-string-regexp: "npm:^4.0.0"
+ is-wsl: "npm:^2.2.0"
+ lighthouse-logger: "npm:^1.0.0"
+ mkdirp: "npm:^1.0.4"
+ rimraf: "npm:^3.0.2"
+ checksum: 10/9c58094cb6f149f8b9aae6937c5e60fee3cdf7e43a6902d8d70d2bc18878a0479f1637a5b44f6fbec5c84aa52972fc3ccba61b9984a584f3d98700e247d4ad94
+ languageName: node
+ linkType: hard
+
+"ci-info@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "ci-info@npm:2.0.0"
+ checksum: 10/3b374666a85ea3ca43fa49aa3a048d21c9b475c96eb13c133505d2324e7ae5efd6a454f41efe46a152269e9b6a00c9edbe63ec7fa1921957165aae16625acd67
+ languageName: node
+ linkType: hard
+
+"ci-info@npm:^3.2.0":
+ version: 3.9.0
+ resolution: "ci-info@npm:3.9.0"
+ checksum: 10/75bc67902b4d1c7b435497adeb91598f6d52a3389398e44294f6601b20cfef32cf2176f7be0eb961d9e085bb333a8a5cae121cb22f81cf238ae7f58eb80e9397
+ languageName: node
+ linkType: hard
+
+"cjs-module-lexer@npm:^1.0.0":
+ version: 1.4.3
+ resolution: "cjs-module-lexer@npm:1.4.3"
+ checksum: 10/d2b92f919a2dedbfd61d016964fce8da0035f827182ed6839c97cac56e8a8077cfa6a59388adfe2bc588a19cef9bbe830d683a76a6e93c51f65852062cfe2591
+ languageName: node
+ linkType: hard
+
+"cli-cursor@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "cli-cursor@npm:3.1.0"
+ dependencies:
+ restore-cursor: "npm:^3.1.0"
+ checksum: 10/2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29
+ languageName: node
+ linkType: hard
+
+"cli-spinners@npm:^2.5.0":
+ version: 2.9.2
+ resolution: "cli-spinners@npm:2.9.2"
+ checksum: 10/a0a863f442df35ed7294424f5491fa1756bd8d2e4ff0c8736531d886cec0ece4d85e8663b77a5afaf1d296e3cbbebff92e2e99f52bbea89b667cbe789b994794
+ languageName: node
+ linkType: hard
+
+"cliui@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "cliui@npm:6.0.0"
+ dependencies:
+ string-width: "npm:^4.2.0"
+ strip-ansi: "npm:^6.0.0"
+ wrap-ansi: "npm:^6.2.0"
+ checksum: 10/44afbcc29df0899e87595590792a871cd8c4bc7d6ce92832d9ae268d141a77022adafca1aeaeccff618b62a613b8354e57fe22a275c199ec04baf00d381ef6ab
+ languageName: node
+ linkType: hard
+
+"cliui@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "cliui@npm:8.0.1"
+ dependencies:
+ string-width: "npm:^4.2.0"
+ strip-ansi: "npm:^6.0.1"
+ wrap-ansi: "npm:^7.0.0"
+ checksum: 10/eaa5561aeb3135c2cddf7a3b3f562fc4238ff3b3fc666869ef2adf264be0f372136702f16add9299087fb1907c2e4ec5dbfe83bd24bce815c70a80c6c1a2e950
+ languageName: node
+ linkType: hard
+
+"clone-deep@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "clone-deep@npm:4.0.1"
+ dependencies:
+ is-plain-object: "npm:^2.0.4"
+ kind-of: "npm:^6.0.2"
+ shallow-clone: "npm:^3.0.0"
+ checksum: 10/770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2
+ languageName: node
+ linkType: hard
+
+"clone@npm:^1.0.2":
+ version: 1.0.4
+ resolution: "clone@npm:1.0.4"
+ checksum: 10/d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd
+ languageName: node
+ linkType: hard
+
+"co@npm:^4.6.0":
+ version: 4.6.0
+ resolution: "co@npm:4.6.0"
+ checksum: 10/a5d9f37091c70398a269e625cedff5622f200ed0aa0cff22ee7b55ed74a123834b58711776eb0f1dc58eb6ebbc1185aa7567b57bd5979a948c6e4f85073e2c05
+ languageName: node
+ linkType: hard
+
+"collect-v8-coverage@npm:^1.0.0":
+ version: 1.0.3
+ resolution: "collect-v8-coverage@npm:1.0.3"
+ checksum: 10/656443261fb7b79cf79e89cba4b55622b07c1d4976c630829d7c5c585c73cda1c2ff101f316bfb19bb9e2c58d724c7db1f70a21e213dcd14099227c5e6019860
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^1.9.0":
+ version: 1.9.3
+ resolution: "color-convert@npm:1.9.3"
+ dependencies:
+ color-name: "npm:1.1.3"
+ checksum: 10/ffa319025045f2973919d155f25e7c00d08836b6b33ea2d205418c59bd63a665d713c52d9737a9e0fe467fb194b40fbef1d849bae80d674568ee220a31ef3d10
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "color-convert@npm:2.0.1"
+ dependencies:
+ color-name: "npm:~1.1.4"
+ checksum: 10/fa00c91b4332b294de06b443923246bccebe9fab1b253f7fe1772d37b06a2269b4039a85e309abe1fe11b267b11c08d1d0473fda3badd6167f57313af2887a64
+ languageName: node
+ linkType: hard
+
+"color-name@npm:1.1.3":
+ version: 1.1.3
+ resolution: "color-name@npm:1.1.3"
+ checksum: 10/09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d
+ languageName: node
+ linkType: hard
+
+"color-name@npm:^1.0.0, color-name@npm:~1.1.4":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: 10/b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610
+ languageName: node
+ linkType: hard
+
+"color-string@npm:^1.9.0":
+ version: 1.9.1
+ resolution: "color-string@npm:1.9.1"
+ dependencies:
+ color-name: "npm:^1.0.0"
+ simple-swizzle: "npm:^0.2.2"
+ checksum: 10/72aa0b81ee71b3f4fb1ac9cd839cdbd7a011a7d318ef58e6cb13b3708dca75c7e45029697260488709f1b1c7ac4e35489a87e528156c1e365917d1c4ccb9b9cd
+ languageName: node
+ linkType: hard
+
+"color@npm:^4.2.3":
+ version: 4.2.3
+ resolution: "color@npm:4.2.3"
+ dependencies:
+ color-convert: "npm:^2.0.1"
+ color-string: "npm:^1.9.0"
+ checksum: 10/b23f5e500a79ea22428db43d1a70642d983405c0dd1f95ef59dbdb9ba66afbb4773b334fa0b75bb10b0552fd7534c6b28d4db0a8b528f91975976e70973c0152
+ languageName: node
+ linkType: hard
+
+"colorette@npm:^1.0.7":
+ version: 1.4.0
+ resolution: "colorette@npm:1.4.0"
+ checksum: 10/c8d6c8c3ef5a99acfc3dd9a68f48019f1479ec347551387e4a1762e40f69e98ce19d4dc321ffb4919d1f28a7bdc90c39d4e9a901f4c474fd2124ad93a00c0454
+ languageName: node
+ linkType: hard
+
+"command-exists@npm:^1.2.8":
+ version: 1.2.9
+ resolution: "command-exists@npm:1.2.9"
+ checksum: 10/46fb3c4d626ca5a9d274f8fe241230817496abc34d12911505370b7411999e183c11adff7078dd8a03ec4cf1391290facda40c6a4faac8203ae38c985eaedd63
+ languageName: node
+ linkType: hard
+
+"commander@npm:^12.0.0":
+ version: 12.1.0
+ resolution: "commander@npm:12.1.0"
+ checksum: 10/cdaeb672d979816853a4eed7f1310a9319e8b976172485c2a6b437ed0db0a389a44cfb222bfbde772781efa9f215bdd1b936f80d6b249485b465c6cb906e1f93
+ languageName: node
+ linkType: hard
+
+"commander@npm:^2.20.0":
+ version: 2.20.3
+ resolution: "commander@npm:2.20.3"
+ checksum: 10/90c5b6898610cd075984c58c4f88418a4fb44af08c1b1415e9854c03171bec31b336b7f3e4cefe33de994b3f12b03c5e2d638da4316df83593b9e82554e7e95b
+ languageName: node
+ linkType: hard
+
+"commander@npm:^9.4.1":
+ version: 9.5.0
+ resolution: "commander@npm:9.5.0"
+ checksum: 10/41c49b3d0f94a1fbeb0463c85b13f15aa15a9e0b4d5e10a49c0a1d58d4489b549d62262b052ae0aa6cfda53299bee487bfe337825df15e342114dde543f82906
+ languageName: node
+ linkType: hard
+
+"commondir@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "commondir@npm:1.0.1"
+ checksum: 10/4620bc4936a4ef12ce7dfcd272bb23a99f2ad68889a4e4ad766c9f8ad21af982511934d6f7050d4a8bde90011b1c15d56e61a1b4576d9913efbf697a20172d6c
+ languageName: node
+ linkType: hard
+
+"compressible@npm:~2.0.18":
+ version: 2.0.18
+ resolution: "compressible@npm:2.0.18"
+ dependencies:
+ mime-db: "npm:>= 1.43.0 < 2"
+ checksum: 10/58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0
+ languageName: node
+ linkType: hard
+
+"compression@npm:^1.7.1":
+ version: 1.8.1
+ resolution: "compression@npm:1.8.1"
+ dependencies:
+ bytes: "npm:3.1.2"
+ compressible: "npm:~2.0.18"
+ debug: "npm:2.6.9"
+ negotiator: "npm:~0.6.4"
+ on-headers: "npm:~1.1.0"
+ safe-buffer: "npm:5.2.1"
+ vary: "npm:~1.1.2"
+ checksum: 10/e7552bfbd780f2003c6fe8decb44561f5cc6bc82f0c61e81122caff5ec656f37824084f52155b1e8ef31d7656cecbec9a2499b7a68e92e20780ffb39b479abb7
+ languageName: node
+ linkType: hard
+
+"concat-map@npm:0.0.1":
+ version: 0.0.1
+ resolution: "concat-map@npm:0.0.1"
+ checksum: 10/9680699c8e2b3af0ae22592cb764acaf973f292a7b71b8a06720233011853a58e256c89216a10cbe889727532fd77f8bcd49a760cedfde271b8e006c20e079f2
+ languageName: node
+ linkType: hard
+
+"connect@npm:^3.6.5":
+ version: 3.7.0
+ resolution: "connect@npm:3.7.0"
+ dependencies:
+ debug: "npm:2.6.9"
+ finalhandler: "npm:1.1.2"
+ parseurl: "npm:~1.3.3"
+ utils-merge: "npm:1.0.1"
+ checksum: 10/f94818b198cc662092276ef6757dd825c59c8469c8064583525e7b81d39a3af86a01c7cb76107dfa0295dfc52b27a7ae1c40ea0e0a10189c3f8776cf08ce3a4e
+ languageName: node
+ linkType: hard
+
+"convert-source-map@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "convert-source-map@npm:2.0.0"
+ checksum: 10/c987be3ec061348cdb3c2bfb924bec86dea1eacad10550a85ca23edb0fe3556c3a61c7399114f3331ccb3499d7fd0285ab24566e5745929412983494c3926e15
+ languageName: node
+ linkType: hard
+
+"core-js-compat@npm:^3.43.0, core-js-compat@npm:^3.48.0":
+ version: 3.49.0
+ resolution: "core-js-compat@npm:3.49.0"
+ dependencies:
+ browserslist: "npm:^4.28.1"
+ checksum: 10/eb35ad9b31a613092d32e5eb0c9fecb695e680bb29509fe04ae297ef790cea47d06864ef8939c8f5f189cce0bd2807fef8b2d6450f7eeb917ffaaf38a775dece
+ languageName: node
+ linkType: hard
+
+"cosmiconfig@npm:^5.0.5":
+ version: 5.2.1
+ resolution: "cosmiconfig@npm:5.2.1"
+ dependencies:
+ import-fresh: "npm:^2.0.0"
+ is-directory: "npm:^0.3.1"
+ js-yaml: "npm:^3.13.1"
+ parse-json: "npm:^4.0.0"
+ checksum: 10/1d617668e1367b8d66617fb8a1bd8c13e9598534959ac0cc86195b1b0cbe7afbba2b9faa300c60b9d9d35409cf4f064b0f6e377f4ea036434e5250c69c76932f
+ languageName: node
+ linkType: hard
+
+"cosmiconfig@npm:^9.0.0":
+ version: 9.0.2
+ resolution: "cosmiconfig@npm:9.0.2"
+ dependencies:
+ env-paths: "npm:^2.2.1"
+ import-fresh: "npm:^3.3.0"
+ js-yaml: "npm:^4.1.0"
+ parse-json: "npm:^5.2.0"
+ peerDependencies:
+ typescript: ">=4.9.5"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/e7b08c9c6ed862852bf0ed88c8fa49c57276d976901c9332c87d831926f332c32df3f5ff6a87f3823c3b7c5d6f857a7fd34336e0c2c596fa2d73e6cccbb7bf58
+ languageName: node
+ linkType: hard
+
+"create-jest@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "create-jest@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ chalk: "npm:^4.0.0"
+ exit: "npm:^0.1.2"
+ graceful-fs: "npm:^4.2.9"
+ jest-config: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ prompts: "npm:^2.0.1"
+ bin:
+ create-jest: bin/create-jest.js
+ checksum: 10/847b4764451672b4174be4d5c6d7d63442ec3aa5f3de52af924e4d996d87d7801c18e125504f25232fc75840f6625b3ac85860fac6ce799b5efae7bdcaf4a2b7
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
+ version: 7.0.6
+ resolution: "cross-spawn@npm:7.0.6"
+ dependencies:
+ path-key: "npm:^3.1.0"
+ shebang-command: "npm:^2.0.0"
+ which: "npm:^2.0.1"
+ checksum: 10/0d52657d7ae36eb130999dffff1168ec348687b48dd38e2ff59992ed916c88d328cf1d07ff4a4a10bc78de5e1c23f04b306d569e42f7a2293915c081e4dfee86
+ languageName: node
+ linkType: hard
+
+"csstype@npm:^3.2.2":
+ version: 3.2.3
+ resolution: "csstype@npm:3.2.3"
+ checksum: 10/ad41baf7e2ffac65ab544d79107bf7cd1a4bb9bab9ac3302f59ab4ba655d5e30942a8ae46e10ba160c6f4ecea464cc95b975ca2fefbdeeacd6ac63f12f99fe1f
+ languageName: node
+ linkType: hard
+
+"data-view-buffer@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "data-view-buffer@npm:1.0.2"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.2"
+ checksum: 10/c10b155a4e93999d3a215d08c23eea95f865e1f510b2e7748fcae1882b776df1afe8c99f483ace7fc0e5a3193ab08da138abebc9829d12003746c5a338c4d644
+ languageName: node
+ linkType: hard
+
+"data-view-byte-length@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "data-view-byte-length@npm:1.0.2"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.2"
+ checksum: 10/2a47055fcf1ab3ec41b00b6f738c6461a841391a643c9ed9befec1117c1765b4d492661d97fb7cc899200c328949dca6ff189d2c6537d96d60e8a02dfe3c95f7
+ languageName: node
+ linkType: hard
+
+"data-view-byte-offset@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "data-view-byte-offset@npm:1.0.1"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10/fa3bdfa0968bea6711ee50375094b39f561bce3f15f9e558df59de9c25f0bdd4cddc002d9c1d70ac7772ebd36854a7e22d1761e7302a934e6f1c2263bcf44aa2
+ languageName: node
+ linkType: hard
+
+"dayjs@npm:^1.8.15":
+ version: 1.11.21
+ resolution: "dayjs@npm:1.11.21"
+ checksum: 10/dd16f9f2706b61b90e3c346a3211ac3afd9e26193136ce0e87f70bf74d1c17a447bceb230a88b175467fc9f5e3243d8c1544b9897092a12d9c80ee44d338dcb6
+ languageName: node
+ linkType: hard
+
+"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.6.9":
+ version: 2.6.9
+ resolution: "debug@npm:2.6.9"
+ dependencies:
+ ms: "npm:2.0.0"
+ checksum: 10/e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14
+ languageName: node
+ linkType: hard
+
+"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.3":
+ version: 4.4.3
+ resolution: "debug@npm:4.4.3"
+ dependencies:
+ ms: "npm:^2.1.3"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 10/9ada3434ea2993800bd9a1e320bd4aa7af69659fb51cca685d390949434bc0a8873c21ed7c9b852af6f2455a55c6d050aa3937d52b3c69f796dab666f762acad
+ languageName: node
+ linkType: hard
+
+"decamelize@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "decamelize@npm:1.2.0"
+ checksum: 10/ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa
+ languageName: node
+ linkType: hard
+
+"decode-uri-component@npm:^0.2.2":
+ version: 0.2.2
+ resolution: "decode-uri-component@npm:0.2.2"
+ checksum: 10/17a0e5fa400bf9ea84432226e252aa7b5e72793e16bf80b907c99b46a799aeacc139ec20ea57121e50c7bd875a1a4365928f884e92abf02e21a5a13790a0f33e
+ languageName: node
+ linkType: hard
+
+"dedent@npm:^1.0.0":
+ version: 1.7.2
+ resolution: "dedent@npm:1.7.2"
+ peerDependencies:
+ babel-plugin-macros: ^3.1.0
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
+ checksum: 10/30b9062290dca72b0f5a6cd3667633448cef8cd0dec602eab61015741269ad49df90cabf0521f9a32d134ceab4e21aa7f097258c55cc3baadef94874686d6480
+ languageName: node
+ linkType: hard
+
+"deep-is@npm:^0.1.3":
+ version: 0.1.4
+ resolution: "deep-is@npm:0.1.4"
+ checksum: 10/ec12d074aef5ae5e81fa470b9317c313142c9e8e2afe3f8efa124db309720db96d1d222b82b84c834e5f87e7a614b44a4684b6683583118b87c833b3be40d4d8
+ languageName: node
+ linkType: hard
+
+"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.0":
+ version: 4.3.1
+ resolution: "deepmerge@npm:4.3.1"
+ checksum: 10/058d9e1b0ff1a154468bf3837aea436abcfea1ba1d165ddaaf48ca93765fdd01a30d33c36173da8fbbed951dd0a267602bc782fe288b0fc4b7e1e7091afc4529
+ languageName: node
+ linkType: hard
+
+"defaults@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "defaults@npm:1.0.4"
+ dependencies:
+ clone: "npm:^1.0.2"
+ checksum: 10/3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a
+ languageName: node
+ linkType: hard
+
+"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "define-data-property@npm:1.1.4"
+ dependencies:
+ es-define-property: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
+ gopd: "npm:^1.0.1"
+ checksum: 10/abdcb2505d80a53524ba871273e5da75e77e52af9e15b3aa65d8aad82b8a3a424dad7aee2cc0b71470ac7acf501e08defac362e8b6a73cdb4309f028061df4ae
+ languageName: node
+ linkType: hard
+
+"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "define-properties@npm:1.2.1"
+ dependencies:
+ define-data-property: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.0"
+ object-keys: "npm:^1.1.1"
+ checksum: 10/b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12
+ languageName: node
+ linkType: hard
+
+"depd@npm:2.0.0, depd@npm:~2.0.0":
+ version: 2.0.0
+ resolution: "depd@npm:2.0.0"
+ checksum: 10/c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca
+ languageName: node
+ linkType: hard
+
+"destroy@npm:1.2.0":
+ version: 1.2.0
+ resolution: "destroy@npm:1.2.0"
+ checksum: 10/0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38
+ languageName: node
+ linkType: hard
+
+"detect-newline@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "detect-newline@npm:3.1.0"
+ checksum: 10/ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7
+ languageName: node
+ linkType: hard
+
+"diff-sequences@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "diff-sequences@npm:29.6.3"
+ checksum: 10/179daf9d2f9af5c57ad66d97cb902a538bcf8ed64963fa7aa0c329b3de3665ce2eb6ffdc2f69f29d445fa4af2517e5e55e5b6e00c00a9ae4f43645f97f7078cb
+ languageName: node
+ linkType: hard
+
+"dir-glob@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "dir-glob@npm:3.0.1"
+ dependencies:
+ path-type: "npm:^4.0.0"
+ checksum: 10/fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615
+ languageName: node
+ linkType: hard
+
+"doctrine@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "doctrine@npm:2.1.0"
+ dependencies:
+ esutils: "npm:^2.0.2"
+ checksum: 10/555684f77e791b17173ea86e2eea45ef26c22219cb64670669c4f4bebd26dbc95cd90ec1f4159e9349a6bb9eb892ce4dde8cd0139e77bedd8bf4518238618474
+ languageName: node
+ linkType: hard
+
+"doctrine@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "doctrine@npm:3.0.0"
+ dependencies:
+ esutils: "npm:^2.0.2"
+ checksum: 10/b4b28f1df5c563f7d876e7461254a4597b8cabe915abe94d7c5d1633fed263fcf9a85e8d3836591fc2d040108e822b0d32758e5ec1fe31c590dc7e08086e3e48
+ languageName: node
+ linkType: hard
+
+"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "dunder-proto@npm:1.0.1"
+ dependencies:
+ call-bind-apply-helpers: "npm:^1.0.1"
+ es-errors: "npm:^1.3.0"
+ gopd: "npm:^1.2.0"
+ checksum: 10/5add88a3d68d42d6e6130a0cac450b7c2edbe73364bbd2fc334564418569bea97c6943a8fcd70e27130bf32afc236f30982fc4905039b703f23e9e0433c29934
+ languageName: node
+ linkType: hard
+
+"ee-first@npm:1.1.1":
+ version: 1.1.1
+ resolution: "ee-first@npm:1.1.1"
+ checksum: 10/1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f
+ languageName: node
+ linkType: hard
+
+"electron-to-chromium@npm:^1.5.376":
+ version: 1.5.376
+ resolution: "electron-to-chromium@npm:1.5.376"
+ checksum: 10/7a9ee4c1bb189471be1cb6165fe8c305fe0024ac7425c782fd3bd9a0eb0094d1ca2d161e6886f8c7e691901d76b489700f5c5ae229469fe215f02569a2e9a040
+ languageName: node
+ linkType: hard
+
+"emittery@npm:^0.13.1":
+ version: 0.13.1
+ resolution: "emittery@npm:0.13.1"
+ checksum: 10/fbe214171d878b924eedf1757badf58a5dce071cd1fa7f620fa841a0901a80d6da47ff05929d53163105e621ce11a71b9d8acb1148ffe1745e045145f6e69521
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "emoji-regex@npm:8.0.0"
+ checksum: 10/c72d67a6821be15ec11997877c437491c313d924306b8da5d87d2a2bcc2cec9903cb5b04ee1a088460501d8e5b44f10df82fdc93c444101a7610b80c8b6938e1
+ languageName: node
+ linkType: hard
+
+"encodeurl@npm:~1.0.2":
+ version: 1.0.2
+ resolution: "encodeurl@npm:1.0.2"
+ checksum: 10/e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c
+ languageName: node
+ linkType: hard
+
+"encodeurl@npm:~2.0.0":
+ version: 2.0.0
+ resolution: "encodeurl@npm:2.0.0"
+ checksum: 10/abf5cd51b78082cf8af7be6785813c33b6df2068ce5191a40ca8b1afe6a86f9230af9a9ce694a5ce4665955e5c1120871826df9c128a642e09c58d592e2807fe
+ languageName: node
+ linkType: hard
+
+"env-paths@npm:^2.2.0, env-paths@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "env-paths@npm:2.2.1"
+ checksum: 10/65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e
+ languageName: node
+ linkType: hard
+
+"envinfo@npm:^7.13.0":
+ version: 7.21.0
+ resolution: "envinfo@npm:7.21.0"
+ bin:
+ envinfo: dist/cli.js
+ checksum: 10/2469a72802ded4e43c007dcd1c5dd44d8049b7d18276874dcc3f3f14a54bc72806fa35e82760974ca1442d82f5f9df3651048204e72791f81bcdd5f07422a561
+ languageName: node
+ linkType: hard
+
+"error-ex@npm:^1.3.1":
+ version: 1.3.4
+ resolution: "error-ex@npm:1.3.4"
+ dependencies:
+ is-arrayish: "npm:^0.2.1"
+ checksum: 10/ae3939fd4a55b1404e877df2080c6b59acc516d5b7f08a181040f78f38b4e2399633bfed2d9a21b91c803713fff7295ac70bebd8f3657ef352a95c2cd9aa2e4b
+ languageName: node
+ linkType: hard
+
+"error-stack-parser@npm:^2.0.6":
+ version: 2.1.4
+ resolution: "error-stack-parser@npm:2.1.4"
+ dependencies:
+ stackframe: "npm:^1.3.4"
+ checksum: 10/23db33135bfc6ba701e5eee45e1bb9bd2fe33c5d4f9927440d9a499c7ac538f91f455fcd878611361269893c56734419252c40d8105eb3b023cf8b0fc2ebb64e
+ languageName: node
+ linkType: hard
+
+"errorhandler@npm:^1.5.1":
+ version: 1.5.2
+ resolution: "errorhandler@npm:1.5.2"
+ dependencies:
+ accepts: "npm:~1.3.8"
+ escape-html: "npm:~1.0.3"
+ checksum: 10/7ce0a598cc2c52840e32b46d2da8c7b0a4594aa67e93db46112cf791d4c8a4a1299af7f7aa65253d2e9d42af4d275c96387c0d186427df5ee93d33670bdac541
+ languageName: node
+ linkType: hard
+
+"es-abstract-get@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-abstract-get@npm:1.0.0"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.1.2"
+ is-callable: "npm:^1.2.7"
+ object-inspect: "npm:^1.13.4"
+ checksum: 10/a2bfa7536529a21c8590670a69c0c4583e531f92dbc420c13f680bf906215f510d9d14b18e2e4a26e8b07100ab28719811dbce822e43fe87305a5a9069cda24e
+ 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, es-abstract@npm:^1.24.0, es-abstract@npm:^1.24.2":
+ version: 1.24.2
+ resolution: "es-abstract@npm:1.24.2"
+ dependencies:
+ array-buffer-byte-length: "npm:^1.0.2"
+ arraybuffer.prototype.slice: "npm:^1.0.4"
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.4"
+ data-view-buffer: "npm:^1.0.2"
+ data-view-byte-length: "npm:^1.0.2"
+ data-view-byte-offset: "npm:^1.0.1"
+ es-define-property: "npm:^1.0.1"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.1.1"
+ es-set-tostringtag: "npm:^2.1.0"
+ es-to-primitive: "npm:^1.3.0"
+ function.prototype.name: "npm:^1.1.8"
+ get-intrinsic: "npm:^1.3.0"
+ get-proto: "npm:^1.0.1"
+ get-symbol-description: "npm:^1.1.0"
+ globalthis: "npm:^1.0.4"
+ gopd: "npm:^1.2.0"
+ has-property-descriptors: "npm:^1.0.2"
+ has-proto: "npm:^1.2.0"
+ has-symbols: "npm:^1.1.0"
+ hasown: "npm:^2.0.2"
+ internal-slot: "npm:^1.1.0"
+ is-array-buffer: "npm:^3.0.5"
+ is-callable: "npm:^1.2.7"
+ is-data-view: "npm:^1.0.2"
+ is-negative-zero: "npm:^2.0.3"
+ is-regex: "npm:^1.2.1"
+ is-set: "npm:^2.0.3"
+ is-shared-array-buffer: "npm:^1.0.4"
+ is-string: "npm:^1.1.1"
+ is-typed-array: "npm:^1.1.15"
+ is-weakref: "npm:^1.1.1"
+ math-intrinsics: "npm:^1.1.0"
+ object-inspect: "npm:^1.13.4"
+ object-keys: "npm:^1.1.1"
+ object.assign: "npm:^4.1.7"
+ own-keys: "npm:^1.0.1"
+ regexp.prototype.flags: "npm:^1.5.4"
+ safe-array-concat: "npm:^1.1.3"
+ safe-push-apply: "npm:^1.0.0"
+ safe-regex-test: "npm:^1.1.0"
+ set-proto: "npm:^1.0.0"
+ stop-iteration-iterator: "npm:^1.1.0"
+ string.prototype.trim: "npm:^1.2.10"
+ string.prototype.trimend: "npm:^1.0.9"
+ string.prototype.trimstart: "npm:^1.0.8"
+ typed-array-buffer: "npm:^1.0.3"
+ typed-array-byte-length: "npm:^1.0.3"
+ typed-array-byte-offset: "npm:^1.0.4"
+ typed-array-length: "npm:^1.0.7"
+ unbox-primitive: "npm:^1.1.0"
+ which-typed-array: "npm:^1.1.19"
+ checksum: 10/e2c97263d87b7faf65102d887074af421db7e48cd92b8b3cd308216cdd2547b647e8f61bf51429bdb13adc463bb7f421989544cbfd2e7f7469ef7a69ae8a4205
+ languageName: node
+ linkType: hard
+
+"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "es-define-property@npm:1.0.1"
+ checksum: 10/f8dc9e660d90919f11084db0a893128f3592b781ce967e4fccfb8f3106cb83e400a4032c559184ec52ee1dbd4b01e7776c7cd0b3327b1961b1a4a7008920fe78
+ languageName: node
+ linkType: hard
+
+"es-errors@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "es-errors@npm:1.3.0"
+ checksum: 10/96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5
+ languageName: node
+ linkType: hard
+
+"es-iterator-helpers@npm:^1.2.1":
+ version: 1.3.3
+ resolution: "es-iterator-helpers@npm:1.3.3"
+ dependencies:
+ call-bind: "npm:^1.0.9"
+ call-bound: "npm:^1.0.4"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.24.2"
+ es-errors: "npm:^1.3.0"
+ es-set-tostringtag: "npm:^2.1.0"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.3.0"
+ globalthis: "npm:^1.0.4"
+ gopd: "npm:^1.2.0"
+ has-property-descriptors: "npm:^1.0.2"
+ has-proto: "npm:^1.2.0"
+ has-symbols: "npm:^1.1.0"
+ internal-slot: "npm:^1.1.0"
+ iterator.prototype: "npm:^1.1.5"
+ math-intrinsics: "npm:^1.1.0"
+ checksum: 10/53a45f693088f51d8aeda4034f1be9d7d4fc8505ee58f70bbb237a63729efccf2f96225e15e2b2ac7815104739e6d244019637609ee7c9ee171b8248585ecfae
+ languageName: node
+ linkType: hard
+
+"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1, es-object-atoms@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "es-object-atoms@npm:1.1.2"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ checksum: 10/70041de72ab8996df74c17775cdedb8a0c36eb09a4111921d974f7d018af963023bb035a328b5772c2851daa40fb49f52313be0418763a975cb42cb6fe723255
+ languageName: node
+ linkType: hard
+
+"es-set-tostringtag@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "es-set-tostringtag@npm:2.1.0"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.6"
+ has-tostringtag: "npm:^1.0.2"
+ hasown: "npm:^2.0.2"
+ checksum: 10/86814bf8afbcd8966653f731415888019d4bc4aca6b6c354132a7a75bb87566751e320369654a101d23a91c87a85c79b178bcf40332839bd347aff437c4fb65f
+ languageName: node
+ linkType: hard
+
+"es-shim-unscopables@npm:^1.0.2":
+ version: 1.1.0
+ resolution: "es-shim-unscopables@npm:1.1.0"
+ dependencies:
+ hasown: "npm:^2.0.2"
+ checksum: 10/c351f586c30bbabc62355be49564b2435468b52c3532b8a1663672e3d10dc300197e69c247869dd173e56d86423ab95fc0c10b0939cdae597094e0fdca078cba
+ languageName: node
+ linkType: hard
+
+"es-to-primitive@npm:^1.3.0":
+ version: 1.3.1
+ resolution: "es-to-primitive@npm:1.3.1"
+ dependencies:
+ es-abstract-get: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
+ is-callable: "npm:^1.2.7"
+ is-date-object: "npm:^1.1.0"
+ is-symbol: "npm:^1.1.1"
+ checksum: 10/f8ec95e7425583211d7940a455d507832daa04579db50738340b6c59fcf1b9aa832cf6a69891fdafff88b740457c420bdc95867211808f06ae0338d67b09b032
+ languageName: node
+ linkType: hard
+
+"escalade@npm:^3.1.1, escalade@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "escalade@npm:3.2.0"
+ checksum: 10/9d7169e3965b2f9ae46971afa392f6e5a25545ea30f2e2dd99c9b0a95a3f52b5653681a84f5b2911a413ddad2d7a93d3514165072f349b5ffc59c75a899970d6
+ languageName: node
+ linkType: hard
+
+"escape-html@npm:~1.0.3":
+ version: 1.0.3
+ resolution: "escape-html@npm:1.0.3"
+ checksum: 10/6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "escape-string-regexp@npm:1.0.5"
+ checksum: 10/6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "escape-string-regexp@npm:2.0.0"
+ checksum: 10/9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "escape-string-regexp@npm:4.0.0"
+ checksum: 10/98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5
+ languageName: node
+ linkType: hard
+
+"eslint-config-prettier@npm:^8.5.0":
+ version: 8.10.2
+ resolution: "eslint-config-prettier@npm:8.10.2"
+ peerDependencies:
+ eslint: ">=7.0.0"
+ bin:
+ eslint-config-prettier: bin/cli.js
+ checksum: 10/9818f26eebf32c5698bcc68d9b05e985ccaa6862488a32305681f9f025248c4b9192e587969594b3e79a814f965f808f513f63921dbb14639501fa61d6e6560d
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-eslint-comments@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "eslint-plugin-eslint-comments@npm:3.2.0"
+ dependencies:
+ escape-string-regexp: "npm:^1.0.5"
+ ignore: "npm:^5.0.5"
+ peerDependencies:
+ eslint: ">=4.19.1"
+ checksum: 10/4aa0d31a78ac7746002e37ca0cb436f3e5b481a97d28be07bad831e161a2ffcc4dedff44820edef9a1e80f6a0ab1ef44ed9a46e3a4c4a050350438451908972b
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-ft-flow@npm:^2.0.1":
+ version: 2.0.3
+ resolution: "eslint-plugin-ft-flow@npm:2.0.3"
+ dependencies:
+ lodash: "npm:^4.17.21"
+ string-natural-compare: "npm:^3.0.1"
+ peerDependencies:
+ "@babel/eslint-parser": ^7.12.0
+ eslint: ^8.1.0
+ checksum: 10/ea03496d247b9de915f0c5cee3724d4cbec8c0ab22029e4c06301c524bd8a7cbc20598971bed792304c5b3a17c1a1004a1bf7c7f59b55d3887aa7581e00ad0e1
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-jest@npm:^27.9.0":
+ version: 27.9.0
+ resolution: "eslint-plugin-jest@npm:27.9.0"
+ dependencies:
+ "@typescript-eslint/utils": "npm:^5.10.0"
+ peerDependencies:
+ "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 || ^7.0.0
+ eslint: ^7.0.0 || ^8.0.0
+ jest: "*"
+ peerDependenciesMeta:
+ "@typescript-eslint/eslint-plugin":
+ optional: true
+ jest:
+ optional: true
+ checksum: 10/bca54347280c06c56516faea76042134dd74355c2de6c23361ba0e8736ecc01c62b144eea7eda7570ea4f4ee511c583bb8dab00d7153a1bd1740eb77b0038fd4
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react-hooks@npm:^4.6.0":
+ version: 4.6.2
+ resolution: "eslint-plugin-react-hooks@npm:4.6.2"
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+ checksum: 10/5a0680941f34e70cf505bcb6082df31a3e445d193ee95a88ff3483041eb944f4cefdaf7e81b0eb1feb4eeceee8c7c6ddb8a2a6e8c4c0388514a42e16ac7b7a69
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react-native-globals@npm:^0.1.1":
+ version: 0.1.2
+ resolution: "eslint-plugin-react-native-globals@npm:0.1.2"
+ checksum: 10/ab91e8ecbb51718fb0763f29226b1c2d402251ab2c4730a8bf85f38b805e32d4243da46d07ccdb12cb9dcce9e7514364a1706142cf970f58dcc9a820bcf4b732
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react-native@npm:^4.0.0":
+ version: 4.1.0
+ resolution: "eslint-plugin-react-native@npm:4.1.0"
+ dependencies:
+ eslint-plugin-react-native-globals: "npm:^0.1.1"
+ peerDependencies:
+ eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8
+ checksum: 10/fb2d65a3faca9bf775a0fa430eb7e86b7c27d0b256916d4f79a94def9ad353c8a10605f1f0dc9a5fb10e446b003341d53af9d8cbca4dd7ba394350355efa30c6
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react@npm:^7.30.1":
+ version: 7.37.5
+ resolution: "eslint-plugin-react@npm:7.37.5"
+ dependencies:
+ array-includes: "npm:^3.1.8"
+ array.prototype.findlast: "npm:^1.2.5"
+ array.prototype.flatmap: "npm:^1.3.3"
+ array.prototype.tosorted: "npm:^1.1.4"
+ doctrine: "npm:^2.1.0"
+ es-iterator-helpers: "npm:^1.2.1"
+ estraverse: "npm:^5.3.0"
+ hasown: "npm:^2.0.2"
+ jsx-ast-utils: "npm:^2.4.1 || ^3.0.0"
+ minimatch: "npm:^3.1.2"
+ object.entries: "npm:^1.1.9"
+ object.fromentries: "npm:^2.0.8"
+ object.values: "npm:^1.2.1"
+ prop-types: "npm:^15.8.1"
+ resolve: "npm:^2.0.0-next.5"
+ semver: "npm:^6.3.1"
+ string.prototype.matchall: "npm:^4.0.12"
+ string.prototype.repeat: "npm:^1.0.0"
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
+ checksum: 10/ee1bd4e0ec64f29109d5a625bb703d179c82e0159c86c3f1b52fc1209d2994625a137dae303c333fb308a2e38315e44066d5204998177e31974382f9fda25d5c
+ languageName: node
+ linkType: hard
+
+"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1":
+ version: 5.1.1
+ resolution: "eslint-scope@npm:5.1.1"
+ dependencies:
+ esrecurse: "npm:^4.3.0"
+ estraverse: "npm:^4.1.1"
+ checksum: 10/c541ef384c92eb5c999b7d3443d80195fcafb3da335500946f6db76539b87d5826c8f2e1d23bf6afc3154ba8cd7c8e566f8dc00f1eea25fdf3afc8fb9c87b238
+ languageName: node
+ linkType: hard
+
+"eslint-scope@npm:^7.2.2":
+ version: 7.2.2
+ resolution: "eslint-scope@npm:7.2.2"
+ dependencies:
+ esrecurse: "npm:^4.3.0"
+ estraverse: "npm:^5.2.0"
+ checksum: 10/5c660fb905d5883ad018a6fea2b49f3cb5b1cbf2cd4bd08e98646e9864f9bc2c74c0839bed2d292e90a4a328833accc197c8f0baed89cbe8d605d6f918465491
+ languageName: node
+ linkType: hard
+
+"eslint-visitor-keys@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "eslint-visitor-keys@npm:2.1.0"
+ checksum: 10/db4547eef5039122d518fa307e938ceb8589da5f6e8f5222efaf14dd62f748ce82e2d2becd3ff9412a50350b726bda95dbea8515a471074547daefa58aee8735
+ languageName: node
+ linkType: hard
+
+"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3":
+ version: 3.4.3
+ resolution: "eslint-visitor-keys@npm:3.4.3"
+ checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b
+ languageName: node
+ linkType: hard
+
+"eslint@npm:^8.19.0":
+ version: 8.57.1
+ resolution: "eslint@npm:8.57.1"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.2.0"
+ "@eslint-community/regexpp": "npm:^4.6.1"
+ "@eslint/eslintrc": "npm:^2.1.4"
+ "@eslint/js": "npm:8.57.1"
+ "@humanwhocodes/config-array": "npm:^0.13.0"
+ "@humanwhocodes/module-importer": "npm:^1.0.1"
+ "@nodelib/fs.walk": "npm:^1.2.8"
+ "@ungap/structured-clone": "npm:^1.2.0"
+ ajv: "npm:^6.12.4"
+ chalk: "npm:^4.0.0"
+ cross-spawn: "npm:^7.0.2"
+ debug: "npm:^4.3.2"
+ doctrine: "npm:^3.0.0"
+ escape-string-regexp: "npm:^4.0.0"
+ eslint-scope: "npm:^7.2.2"
+ eslint-visitor-keys: "npm:^3.4.3"
+ espree: "npm:^9.6.1"
+ esquery: "npm:^1.4.2"
+ esutils: "npm:^2.0.2"
+ fast-deep-equal: "npm:^3.1.3"
+ file-entry-cache: "npm:^6.0.1"
+ find-up: "npm:^5.0.0"
+ glob-parent: "npm:^6.0.2"
+ globals: "npm:^13.19.0"
+ graphemer: "npm:^1.4.0"
+ ignore: "npm:^5.2.0"
+ imurmurhash: "npm:^0.1.4"
+ is-glob: "npm:^4.0.0"
+ is-path-inside: "npm:^3.0.3"
+ js-yaml: "npm:^4.1.0"
+ json-stable-stringify-without-jsonify: "npm:^1.0.1"
+ levn: "npm:^0.4.1"
+ lodash.merge: "npm:^4.6.2"
+ minimatch: "npm:^3.1.2"
+ natural-compare: "npm:^1.4.0"
+ optionator: "npm:^0.9.3"
+ strip-ansi: "npm:^6.0.1"
+ text-table: "npm:^0.2.0"
+ bin:
+ eslint: bin/eslint.js
+ checksum: 10/5504fa24879afdd9f9929b2fbfc2ee9b9441a3d464efd9790fbda5f05738858530182029f13323add68d19fec749d3ab4a70320ded091ca4432b1e9cc4ed104c
+ languageName: node
+ linkType: hard
+
+"espree@npm:^9.6.0, espree@npm:^9.6.1":
+ version: 9.6.1
+ resolution: "espree@npm:9.6.1"
+ dependencies:
+ acorn: "npm:^8.9.0"
+ acorn-jsx: "npm:^5.3.2"
+ eslint-visitor-keys: "npm:^3.4.1"
+ checksum: 10/255ab260f0d711a54096bdeda93adff0eadf02a6f9b92f02b323e83a2b7fc258797919437ad331efec3930475feb0142c5ecaaf3cdab4befebd336d47d3f3134
+ languageName: node
+ linkType: hard
+
+"esprima@npm:^4.0.0, esprima@npm:~4.0.0":
+ version: 4.0.1
+ resolution: "esprima@npm:4.0.1"
+ bin:
+ esparse: ./bin/esparse.js
+ esvalidate: ./bin/esvalidate.js
+ checksum: 10/f1d3c622ad992421362294f7acf866aa9409fbad4eb2e8fa230bd33944ce371d32279667b242d8b8907ec2b6ad7353a717f3c0e60e748873a34a7905174bc0eb
+ languageName: node
+ linkType: hard
+
+"esquery@npm:^1.4.2":
+ version: 1.7.0
+ resolution: "esquery@npm:1.7.0"
+ dependencies:
+ estraverse: "npm:^5.1.0"
+ checksum: 10/4afaf3089367e1f5885caa116ef386dffd8bfd64da21fd3d0e56e938d2667cfb2e5400ab4a825aa70e799bb3741e5b5d63c0b94d86e2d4cf3095c9e64b2f5a15
+ languageName: node
+ linkType: hard
+
+"esrecurse@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "esrecurse@npm:4.3.0"
+ dependencies:
+ estraverse: "npm:^5.2.0"
+ checksum: 10/44ffcd89e714ea6b30143e7f119b104fc4d75e77ee913f34d59076b40ef2d21967f84e019f84e1fd0465b42cdbf725db449f232b5e47f29df29ed76194db8e16
+ languageName: node
+ linkType: hard
+
+"estraverse@npm:^4.1.1":
+ version: 4.3.0
+ resolution: "estraverse@npm:4.3.0"
+ checksum: 10/3f67ad02b6dbfaddd9ea459cf2b6ef4ecff9a6082a7af9d22e445b9abc082ad9ca47e1825557b293fcdae477f4714e561123e30bb6a5b2f184fb2bad4a9497eb
+ languageName: node
+ linkType: hard
+
+"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0":
+ version: 5.3.0
+ resolution: "estraverse@npm:5.3.0"
+ checksum: 10/37cbe6e9a68014d34dbdc039f90d0baf72436809d02edffcc06ba3c2a12eb298048f877511353b130153e532aac8d68ba78430c0dd2f44806ebc7c014b01585e
+ languageName: node
+ linkType: hard
+
+"esutils@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "esutils@npm:2.0.3"
+ checksum: 10/b23acd24791db11d8f65be5ea58fd9a6ce2df5120ae2da65c16cfc5331ff59d5ac4ef50af66cd4bde238881503ec839928a0135b99a036a9cdfa22d17fd56cdb
+ languageName: node
+ linkType: hard
+
+"etag@npm:~1.8.1":
+ version: 1.8.1
+ resolution: "etag@npm:1.8.1"
+ checksum: 10/571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff
+ languageName: node
+ linkType: hard
+
+"event-target-shim@npm:^5.0.0, event-target-shim@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "event-target-shim@npm:5.0.1"
+ checksum: 10/49ff46c3a7facbad3decb31f597063e761785d7fdb3920d4989d7b08c97a61c2f51183e2f3a03130c9088df88d4b489b1b79ab632219901f184f85158508f4c8
+ languageName: node
+ linkType: hard
+
+"execa@npm:^5.0.0, execa@npm:^5.1.1":
+ version: 5.1.1
+ resolution: "execa@npm:5.1.1"
+ dependencies:
+ cross-spawn: "npm:^7.0.3"
+ get-stream: "npm:^6.0.0"
+ human-signals: "npm:^2.1.0"
+ is-stream: "npm:^2.0.0"
+ merge-stream: "npm:^2.0.0"
+ npm-run-path: "npm:^4.0.1"
+ onetime: "npm:^5.1.2"
+ signal-exit: "npm:^3.0.3"
+ strip-final-newline: "npm:^2.0.0"
+ checksum: 10/8ada91f2d70f7dff702c861c2c64f21dfdc1525628f3c0454fd6f02fce65f7b958616cbd2b99ca7fa4d474e461a3d363824e91b3eb881705231abbf387470597
+ languageName: node
+ linkType: hard
+
+"exit@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "exit@npm:0.1.2"
+ checksum: 10/387555050c5b3c10e7a9e8df5f43194e95d7737c74532c409910e585d5554eaff34960c166643f5e23d042196529daad059c292dcf1fb61b8ca878d3677f4b87
+ languageName: node
+ linkType: hard
+
+"expect@npm:^29.0.0, expect@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "expect@npm:29.7.0"
+ dependencies:
+ "@jest/expect-utils": "npm:^29.7.0"
+ jest-get-type: "npm:^29.6.3"
+ jest-matcher-utils: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ checksum: 10/63f97bc51f56a491950fb525f9ad94f1916e8a014947f8d8445d3847a665b5471b768522d659f5e865db20b6c2033d2ac10f35fcbd881a4d26407a4f6f18451a
+ languageName: node
+ linkType: hard
+
+"exponential-backoff@npm:^3.1.1":
+ version: 3.1.3
+ resolution: "exponential-backoff@npm:3.1.3"
+ checksum: 10/ca25962b4bbab943b7c4ed0b5228e263833a5063c65e1cdeac4be9afad350aae5466e8e619b5051f4f8d37b2144a2d6e8fcc771b6cc82934f7dade2f964f652c
+ languageName: node
+ linkType: hard
+
+"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
+ version: 3.1.3
+ resolution: "fast-deep-equal@npm:3.1.3"
+ checksum: 10/e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d
+ languageName: node
+ linkType: hard
+
+"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2":
+ version: 3.3.3
+ resolution: "fast-glob@npm:3.3.3"
+ dependencies:
+ "@nodelib/fs.stat": "npm:^2.0.2"
+ "@nodelib/fs.walk": "npm:^1.2.3"
+ glob-parent: "npm:^5.1.2"
+ merge2: "npm:^1.3.0"
+ micromatch: "npm:^4.0.8"
+ checksum: 10/dcc6432b269762dd47381d8b8358bf964d8f4f60286ac6aa41c01ade70bda459ff2001b516690b96d5365f68a49242966112b5d5cc9cd82395fa8f9d017c90ad
+ languageName: node
+ linkType: hard
+
+"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "fast-json-stable-stringify@npm:2.1.0"
+ checksum: 10/2c20055c1fa43c922428f16ca8bb29f2807de63e5c851f665f7ac9790176c01c3b40335257736b299764a8d383388dabc73c8083b8e1bc3d99f0a941444ec60e
+ languageName: node
+ linkType: hard
+
+"fast-levenshtein@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "fast-levenshtein@npm:2.0.6"
+ checksum: 10/eb7e220ecf2bab5159d157350b81d01f75726a4382f5a9266f42b9150c4523b9795f7f5d9fbbbeaeac09a441b2369f05ee02db48ea938584205530fe5693cfe1
+ languageName: node
+ linkType: hard
+
+"fast-xml-parser@npm:^4.4.1":
+ version: 4.5.6
+ resolution: "fast-xml-parser@npm:4.5.6"
+ dependencies:
+ strnum: "npm:^1.0.5"
+ bin:
+ fxparser: src/cli/cli.js
+ checksum: 10/dd77cce4b1b322400339147b72b2d315bddc12c6ed3ca82bfc87543ced6dd8d81a6e0b429489e2f048f39258aa2023580654c8934881c633b9d58a6e79672349
+ languageName: node
+ linkType: hard
+
+"fastq@npm:^1.6.0":
+ version: 1.20.1
+ resolution: "fastq@npm:1.20.1"
+ dependencies:
+ reusify: "npm:^1.0.4"
+ checksum: 10/ab2fe3a7a108112e7752cfe7fc11683c21e595913a6a593ad0b4415f31dddbfc283775ab66f2c8ccea6ab7cfc116157cbddcfae9798d9de98d08fe0a2c3e97b2
+ languageName: node
+ linkType: hard
+
+"fb-watchman@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "fb-watchman@npm:2.0.2"
+ dependencies:
+ bser: "npm:2.1.1"
+ checksum: 10/4f95d336fb805786759e383fd7fff342ceb7680f53efcc0ef82f502eb479ce35b98e8b207b6dfdfeea0eba845862107dc73813775fc6b56b3098c6e90a2dad77
+ languageName: node
+ linkType: hard
+
+"fdir@npm:^6.5.0":
+ version: 6.5.0
+ resolution: "fdir@npm:6.5.0"
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+ checksum: 10/14ca1c9f0a0e8f4f2e9bf4e8551065a164a09545dae548c12a18d238b72e51e5a7b39bd8e5494b56463a0877672d0a6c1ef62c6fa0677db1b0c847773be939b1
+ languageName: node
+ linkType: hard
+
+"file-entry-cache@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "file-entry-cache@npm:6.0.1"
+ dependencies:
+ flat-cache: "npm:^3.0.4"
+ checksum: 10/099bb9d4ab332cb93c48b14807a6918a1da87c45dce91d4b61fd40e6505d56d0697da060cb901c729c90487067d93c9243f5da3dc9c41f0358483bfdebca736b
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "fill-range@npm:7.1.1"
+ dependencies:
+ to-regex-range: "npm:^5.0.1"
+ checksum: 10/a7095cb39e5bc32fada2aa7c7249d3f6b01bd1ce461a61b0adabacccabd9198500c6fb1f68a7c851a657e273fce2233ba869638897f3d7ed2e87a2d89b4436ea
+ languageName: node
+ linkType: hard
+
+"filter-obj@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "filter-obj@npm:1.1.0"
+ checksum: 10/9d681939eec2b4b129cb4f307b7e93d954a0657421d4e5357d86093b26d3f4f570909ed43717dcfd62428b3cf8cddd9841b35f9d40d12ac62cfabaa677942593
+ languageName: node
+ linkType: hard
+
+"finalhandler@npm:1.1.2":
+ version: 1.1.2
+ resolution: "finalhandler@npm:1.1.2"
+ dependencies:
+ debug: "npm:2.6.9"
+ encodeurl: "npm:~1.0.2"
+ escape-html: "npm:~1.0.3"
+ on-finished: "npm:~2.3.0"
+ parseurl: "npm:~1.3.3"
+ statuses: "npm:~1.5.0"
+ unpipe: "npm:~1.0.0"
+ checksum: 10/351e99a889abf149eb3edb24568586469feeb3019f5eafb9b31e632a5ad886f12a5595a221508245e6a37da69ae866c9fb411eb541a844238e2c900f63ac1576
+ languageName: node
+ linkType: hard
+
+"find-cache-dir@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "find-cache-dir@npm:2.1.0"
+ dependencies:
+ commondir: "npm:^1.0.1"
+ make-dir: "npm:^2.0.0"
+ pkg-dir: "npm:^3.0.0"
+ checksum: 10/60ad475a6da9f257df4e81900f78986ab367d4f65d33cf802c5b91e969c28a8762f098693d7a571b6e4dd4c15166c2da32ae2d18b6766a18e2071079448fdce4
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "find-up@npm:3.0.0"
+ dependencies:
+ locate-path: "npm:^3.0.0"
+ checksum: 10/38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^4.0.0, find-up@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "find-up@npm:4.1.0"
+ dependencies:
+ locate-path: "npm:^5.0.0"
+ path-exists: "npm:^4.0.0"
+ checksum: 10/4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "find-up@npm:5.0.0"
+ dependencies:
+ locate-path: "npm:^6.0.0"
+ path-exists: "npm:^4.0.0"
+ checksum: 10/07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095
+ languageName: node
+ linkType: hard
+
+"flat-cache@npm:^3.0.4":
+ version: 3.2.0
+ resolution: "flat-cache@npm:3.2.0"
+ dependencies:
+ flatted: "npm:^3.2.9"
+ keyv: "npm:^4.5.3"
+ rimraf: "npm:^3.0.2"
+ checksum: 10/02381c6ece5e9fa5b826c9bbea481d7fd77645d96e4b0b1395238124d581d10e56f17f723d897b6d133970f7a57f0fab9148cbbb67237a0a0ffe794ba60c0c70
+ languageName: node
+ linkType: hard
+
+"flatted@npm:^3.2.9":
+ version: 3.4.2
+ resolution: "flatted@npm:3.4.2"
+ checksum: 10/a9e78fe5c2c1fcd98209a015ccee3a6caa953e01729778e83c1fe92e68601a63e1e69cd4e573010ca99eaf585a581b80ccf1018b99283e6cbc2117bcba1e030f
+ languageName: node
+ linkType: hard
+
+"flow-enums-runtime@npm:^0.0.6":
+ version: 0.0.6
+ resolution: "flow-enums-runtime@npm:0.0.6"
+ checksum: 10/df54ec17f6edbe2bcf17cb1e681faf3bac86e65490e819fdf29713e701eed0448c7db6d42606bf0f7044ce6909ee052920f930bbc251999e4f74e258f1d8790e
+ languageName: node
+ linkType: hard
+
+"flow-estree@npm:0.320.0":
+ version: 0.320.0
+ resolution: "flow-estree@npm:0.320.0"
+ checksum: 10/e520c3045be7aaf969694190983076c4b5131f42eed0d808d8c08c3afd38ac7f4e3c8f71bbce720babc8dee847c649666fd12edf100bfc1eb6db6b0117470189
+ languageName: node
+ linkType: hard
+
+"flow-parser@npm:0.*":
+ version: 0.320.0
+ resolution: "flow-parser@npm:0.320.0"
+ dependencies:
+ flow-estree: "npm:0.320.0"
+ checksum: 10/7ad8653fafeee295a5400ee26bf501dc510f056c3b28c5794cff0f0870c05ad60b3ceb9f8de743a24d0969aebfc261627d624e747743553984b50d02ab00d2f8
+ languageName: node
+ linkType: hard
+
+"for-each@npm:^0.3.3, for-each@npm:^0.3.5":
+ version: 0.3.5
+ resolution: "for-each@npm:0.3.5"
+ dependencies:
+ is-callable: "npm:^1.2.7"
+ checksum: 10/330cc2439f85c94f4609de3ee1d32c5693ae15cdd7fe3d112c4fd9efd4ce7143f2c64ef6c2c9e0cfdb0058437f33ef05b5bdae5b98fcc903fb2143fbaf0fea0f
+ languageName: node
+ linkType: hard
+
+"fresh@npm:~0.5.2":
+ version: 0.5.2
+ resolution: "fresh@npm:0.5.2"
+ checksum: 10/64c88e489b5d08e2f29664eb3c79c705ff9a8eb15d3e597198ef76546d4ade295897a44abb0abd2700e7ef784b2e3cbf1161e4fbf16f59129193fd1030d16da1
+ languageName: node
+ linkType: hard
+
+"fs-extra@npm:^8.1.0":
+ version: 8.1.0
+ resolution: "fs-extra@npm:8.1.0"
+ dependencies:
+ graceful-fs: "npm:^4.2.0"
+ jsonfile: "npm:^4.0.0"
+ universalify: "npm:^0.1.0"
+ checksum: 10/6fb12449f5349be724a138b4a7b45fe6a317d2972054517f5971959c26fbd17c0e145731a11c7324460262baa33e0a799b183ceace98f7a372c95fbb6f20f5de
+ languageName: node
+ linkType: hard
+
+"fs.realpath@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "fs.realpath@npm:1.0.0"
+ checksum: 10/e703107c28e362d8d7b910bbcbfd371e640a3bb45ae157a362b5952c0030c0b6d4981140ec319b347bce7adc025dd7813da1ff908a945ac214d64f5402a51b96
+ languageName: node
+ linkType: hard
+
+"fsevents@npm:^2.3.2":
+ version: 2.3.3
+ resolution: "fsevents@npm:2.3.3"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 10/4c1ade961ded57cdbfbb5cac5106ec17bc8bccd62e16343c569a0ceeca83b9dfef87550b4dc5cbb89642da412b20c5071f304c8c464b80415446e8e155a038c0
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin":
+ version: 2.3.3
+ resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
+ dependencies:
+ node-gyp: "npm:latest"
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"function-bind@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "function-bind@npm:1.1.2"
+ checksum: 10/185e20d20f10c8d661d59aac0f3b63b31132d492e1b11fcc2a93cb2c47257ebaee7407c38513efd2b35cafdf972d9beb2ea4593c1e0f3bf8f2744836928d7454
+ languageName: node
+ linkType: hard
+
+"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8":
+ version: 1.2.0
+ resolution: "function.prototype.name@npm:1.2.0"
+ dependencies:
+ call-bind: "npm:^1.0.9"
+ call-bound: "npm:^1.0.4"
+ es-define-property: "npm:^1.0.1"
+ es-errors: "npm:^1.3.0"
+ functions-have-names: "npm:^1.2.3"
+ has-property-descriptors: "npm:^1.0.2"
+ hasown: "npm:^2.0.4"
+ is-callable: "npm:^1.2.7"
+ is-document.all: "npm:^1.0.0"
+ checksum: 10/ad662230bc2b9e971625222b462142b34aa23c70ca58fb4fa72e226bb9106a5752be5c7d8986de7ce5cfb959e5317200d70d88d96359605a165ed1c8cb515223
+ languageName: node
+ linkType: hard
+
+"functions-have-names@npm:^1.2.3":
+ version: 1.2.3
+ resolution: "functions-have-names@npm:1.2.3"
+ checksum: 10/0ddfd3ed1066a55984aaecebf5419fbd9344a5c38dd120ffb0739fac4496758dcf371297440528b115e4367fc46e3abc86a2cc0ff44612181b175ae967a11a05
+ languageName: node
+ linkType: hard
+
+"generator-function@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "generator-function@npm:2.0.1"
+ checksum: 10/eb7e7eb896c5433f3d40982b2ccacdb3dd990dd3499f14040e002b5d54572476513be8a2e6f9609f6e41ab29f2c4469307611ddbfc37ff4e46b765c326663805
+ languageName: node
+ linkType: hard
+
+"gensync@npm:^1.0.0-beta.2":
+ version: 1.0.0-beta.2
+ resolution: "gensync@npm:1.0.0-beta.2"
+ checksum: 10/17d8333460204fbf1f9160d067e1e77f908a5447febb49424b8ab043026049835c9ef3974445c57dbd39161f4d2b04356d7de12b2eecaa27a7a7ea7d871cbedd
+ languageName: node
+ linkType: hard
+
+"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5":
+ version: 2.0.5
+ resolution: "get-caller-file@npm:2.0.5"
+ checksum: 10/b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9
+ languageName: node
+ linkType: hard
+
+"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0":
+ version: 1.3.1
+ resolution: "get-intrinsic@npm:1.3.1"
+ dependencies:
+ async-function: "npm:^1.0.0"
+ async-generator-function: "npm:^1.0.0"
+ call-bind-apply-helpers: "npm:^1.0.2"
+ es-define-property: "npm:^1.0.1"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.1.1"
+ function-bind: "npm:^1.1.2"
+ generator-function: "npm:^2.0.0"
+ get-proto: "npm:^1.0.1"
+ gopd: "npm:^1.2.0"
+ has-symbols: "npm:^1.1.0"
+ hasown: "npm:^2.0.2"
+ math-intrinsics: "npm:^1.1.0"
+ checksum: 10/bb579dda84caa4a3a41611bdd483dade7f00f246f2a7992eb143c5861155290df3fdb48a8406efa3dfb0b434e2c8fafa4eebd469e409d0439247f85fc3fa2cc1
+ languageName: node
+ linkType: hard
+
+"get-package-type@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "get-package-type@npm:0.1.0"
+ checksum: 10/bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148
+ languageName: node
+ linkType: hard
+
+"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "get-proto@npm:1.0.1"
+ dependencies:
+ dunder-proto: "npm:^1.0.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10/4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b
+ languageName: node
+ linkType: hard
+
+"get-stream@npm:^6.0.0":
+ version: 6.0.1
+ resolution: "get-stream@npm:6.0.1"
+ checksum: 10/781266d29725f35c59f1d214aedc92b0ae855800a980800e2923b3fbc4e56b3cb6e462c42e09a1cf1a00c64e056a78fa407cbe06c7c92b7e5cd49b4b85c2a497
+ languageName: node
+ linkType: hard
+
+"get-symbol-description@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "get-symbol-description@npm:1.1.0"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.6"
+ checksum: 10/a353e3a9595a74720b40fb5bae3ba4a4f826e186e83814d93375182384265676f59e49998b9cdfac4a2225ce95a3d32a68f502a2c5619303987f1c183ab80494
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "glob-parent@npm:5.1.2"
+ dependencies:
+ is-glob: "npm:^4.0.1"
+ checksum: 10/32cd106ce8c0d83731966d31517adb766d02c3812de49c30cfe0675c7c0ae6630c11214c54a5ae67aca882cf738d27fd7768f21aa19118b9245950554be07247
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "glob-parent@npm:6.0.2"
+ dependencies:
+ is-glob: "npm:^4.0.3"
+ checksum: 10/c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8
+ languageName: node
+ linkType: hard
+
+"glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4":
+ version: 7.2.3
+ resolution: "glob@npm:7.2.3"
+ dependencies:
+ fs.realpath: "npm:^1.0.0"
+ inflight: "npm:^1.0.4"
+ inherits: "npm:2"
+ minimatch: "npm:^3.1.1"
+ once: "npm:^1.3.0"
+ path-is-absolute: "npm:^1.0.0"
+ checksum: 10/59452a9202c81d4508a43b8af7082ca5c76452b9fcc4a9ab17655822e6ce9b21d4f8fbadabe4fe3faef448294cec249af305e2cd824b7e9aaf689240e5e96a7b
+ languageName: node
+ linkType: hard
+
+"globals@npm:^13.19.0":
+ version: 13.24.0
+ resolution: "globals@npm:13.24.0"
+ dependencies:
+ type-fest: "npm:^0.20.2"
+ checksum: 10/62c5b1997d06674fc7191d3e01e324d3eda4d65ac9cc4e78329fa3b5c4fd42a0e1c8722822497a6964eee075255ce21ccf1eec2d83f92ef3f06653af4d0ee28e
+ languageName: node
+ linkType: hard
+
+"globalthis@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "globalthis@npm:1.0.4"
+ dependencies:
+ define-properties: "npm:^1.2.1"
+ gopd: "npm:^1.0.1"
+ checksum: 10/1f1fd078fb2f7296306ef9dd51019491044ccf17a59ed49d375b576ca108ff37e47f3d29aead7add40763574a992f16a5367dd1e2173b8634ef18556ab719ac4
+ languageName: node
+ linkType: hard
+
+"globby@npm:^11.1.0":
+ version: 11.1.0
+ resolution: "globby@npm:11.1.0"
+ dependencies:
+ array-union: "npm:^2.1.0"
+ dir-glob: "npm:^3.0.1"
+ fast-glob: "npm:^3.2.9"
+ ignore: "npm:^5.2.0"
+ merge2: "npm:^1.4.1"
+ slash: "npm:^3.0.0"
+ checksum: 10/288e95e310227bbe037076ea81b7c2598ccbc3122d87abc6dab39e1eec309aa14f0e366a98cdc45237ffcfcbad3db597778c0068217dcb1950fef6249104e1b1
+ languageName: node
+ linkType: hard
+
+"gopd@npm:^1.0.1, gopd@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "gopd@npm:1.2.0"
+ checksum: 10/94e296d69f92dc1c0768fcfeecfb3855582ab59a7c75e969d5f96ce50c3d201fd86d5a2857c22565764d5bb8a816c7b1e58f133ec318cd56274da36c5e3fb1a1
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2
+ languageName: node
+ linkType: hard
+
+"graphemer@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "graphemer@npm:1.4.0"
+ checksum: 10/6dd60dba97007b21e3a829fab3f771803cc1292977fe610e240ea72afd67e5690ac9eeaafc4a99710e78962e5936ab5a460787c2a1180f1cb0ccfac37d29f897
+ languageName: node
+ linkType: hard
+
+"has-bigints@npm:^1.0.2":
+ version: 1.1.0
+ resolution: "has-bigints@npm:1.1.0"
+ checksum: 10/90fb1b24d40d2472bcd1c8bd9dd479037ec240215869bdbff97b2be83acef57d28f7e96bdd003a21bed218d058b49097f4acc8821c05b1629cc5d48dd7bfcccd
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "has-flag@npm:4.0.0"
+ checksum: 10/261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad
+ languageName: node
+ linkType: hard
+
+"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-property-descriptors@npm:1.0.2"
+ dependencies:
+ es-define-property: "npm:^1.0.0"
+ checksum: 10/2d8c9ab8cebb572e3362f7d06139a4592105983d4317e68f7adba320fe6ddfc8874581e0971e899e633fd5f72e262830edce36d5a0bc863dad17ad20572484b2
+ languageName: node
+ linkType: hard
+
+"has-proto@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "has-proto@npm:1.2.0"
+ dependencies:
+ dunder-proto: "npm:^1.0.0"
+ checksum: 10/7eaed07728eaa28b77fadccabce53f30de467ff186a766872669a833ac2e87d8922b76a22cc58339d7e0277aefe98d6d00762113b27a97cdf65adcf958970935
+ languageName: node
+ linkType: hard
+
+"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "has-symbols@npm:1.1.0"
+ checksum: 10/959385c98696ebbca51e7534e0dc723ada325efa3475350951363cce216d27373e0259b63edb599f72eb94d6cde8577b4b2375f080b303947e560f85692834fa
+ languageName: node
+ linkType: hard
+
+"has-tostringtag@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-tostringtag@npm:1.0.2"
+ dependencies:
+ has-symbols: "npm:^1.0.3"
+ checksum: 10/c74c5f5ceee3c8a5b8bc37719840dc3749f5b0306d818974141dda2471a1a2ca6c8e46b9d6ac222c5345df7a901c9b6f350b1e6d62763fec877e26609a401bfe
+ languageName: node
+ linkType: hard
+
+"hasown@npm:^2.0.2, hasown@npm:^2.0.3, hasown@npm:^2.0.4":
+ version: 2.0.4
+ resolution: "hasown@npm:2.0.4"
+ dependencies:
+ function-bind: "npm:^1.1.2"
+ checksum: 10/13823863ae48161068b4c51606a3128451c66f14545a5169d667fe9fca168dcd38c27570c7a299e32ef844b8da3d55def7fe88602f8970d4311fb543ee88001a
+ languageName: node
+ linkType: hard
+
+"hermes-estree@npm:0.23.1":
+ version: 0.23.1
+ resolution: "hermes-estree@npm:0.23.1"
+ checksum: 10/b7ad78f53044d53ec1c77e93036c16e34f6f0985c895540876301e4791d4db08da828870977140f5cf1ae34532bbb9d9d013a0a1a4a5a0da05177225648d5295
+ languageName: node
+ linkType: hard
+
+"hermes-estree@npm:0.25.1":
+ version: 0.25.1
+ resolution: "hermes-estree@npm:0.25.1"
+ checksum: 10/7b1eca98b264a25632064cffa5771360d30cf452e77db1e191f9913ee45cf78c292b2dbca707e92fb71b0870abb97e94b506a5ab80abd96ba237fee169b601fe
+ languageName: node
+ linkType: hard
+
+"hermes-parser@npm:0.23.1":
+ version: 0.23.1
+ resolution: "hermes-parser@npm:0.23.1"
+ dependencies:
+ hermes-estree: "npm:0.23.1"
+ checksum: 10/de88df4f23bd8dc2ffa89c8a317445320af8c7705a2aeeb05c4dd171f037a747982be153a0a237b1c9c7337b79bceaeb5052934cb8a25fe2e2473294a5343334
+ languageName: node
+ linkType: hard
+
+"hermes-parser@npm:0.25.1":
+ version: 0.25.1
+ resolution: "hermes-parser@npm:0.25.1"
+ dependencies:
+ hermes-estree: "npm:0.25.1"
+ checksum: 10/805efc05691420f236654349872c70731121791fa54de521c7ee51059eae34f84dd19f22ee846741dcb60372f8fb5335719b96b4ecb010d2aed7d872f2eff9cc
+ languageName: node
+ linkType: hard
+
+"hoist-non-react-statics@npm:^3.3.0":
+ version: 3.3.2
+ resolution: "hoist-non-react-statics@npm:3.3.2"
+ dependencies:
+ react-is: "npm:^16.7.0"
+ checksum: 10/1acbe85f33e5a39f90c822ad4d28b24daeb60f71c545279431dc98c312cd28a54f8d64788e477fe21dc502b0e3cf58589ebe5c1ad22af27245370391c2d24ea6
+ languageName: node
+ linkType: hard
+
+"html-escaper@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "html-escaper@npm:2.0.2"
+ checksum: 10/034d74029dcca544a34fb6135e98d427acd73019796ffc17383eaa3ec2fe1c0471dcbbc8f8ed39e46e86d43ccd753a160631615e4048285e313569609b66d5b7
+ languageName: node
+ linkType: hard
+
+"http-errors@npm:~2.0.1":
+ version: 2.0.1
+ resolution: "http-errors@npm:2.0.1"
+ dependencies:
+ depd: "npm:~2.0.0"
+ inherits: "npm:~2.0.4"
+ setprototypeof: "npm:~1.2.0"
+ statuses: "npm:~2.0.2"
+ toidentifier: "npm:~1.0.1"
+ checksum: 10/9fe31bc0edf36566c87048aed1d3d0cbe03552564adc3541626a0613f542d753fbcb13bdfcec0a3a530dbe1714bb566c89d46244616b66bddd26ac413b06a207
+ languageName: node
+ linkType: hard
+
+"human-signals@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "human-signals@npm:2.1.0"
+ checksum: 10/df59be9e0af479036798a881d1f136c4a29e0b518d4abb863afbd11bf30efa3eeb1d0425fc65942dcc05ab3bf40205ea436b0ff389f2cd20b75b8643d539bf86
+ languageName: node
+ linkType: hard
+
+"ieee754@npm:^1.1.13":
+ version: 1.2.1
+ resolution: "ieee754@npm:1.2.1"
+ checksum: 10/d9f2557a59036f16c282aaeb107832dc957a93d73397d89bbad4eb1130560560eb695060145e8e6b3b498b15ab95510226649a0b8f52ae06583575419fe10fc4
+ languageName: node
+ linkType: hard
+
+"ignore@npm:^5.0.5, ignore@npm:^5.2.0, ignore@npm:^5.3.1":
+ version: 5.3.2
+ resolution: "ignore@npm:5.3.2"
+ checksum: 10/cceb6a457000f8f6a50e1196429750d782afce5680dd878aa4221bd79972d68b3a55b4b1458fc682be978f4d3c6a249046aa0880637367216444ab7b014cfc98
+ languageName: node
+ linkType: hard
+
+"image-size@npm:^1.0.2":
+ version: 1.2.1
+ resolution: "image-size@npm:1.2.1"
+ dependencies:
+ queue: "npm:6.0.2"
+ bin:
+ image-size: bin/image-size.js
+ checksum: 10/b290c6cc5635565b1da51991472eb6522808430dbe3415823649723dc5f5fd8263f0f98f9bdec46184274ea24fe4f3f7a297c84b647b412e14d2208703dd8a19
+ languageName: node
+ linkType: hard
+
+"import-fresh@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "import-fresh@npm:2.0.0"
+ dependencies:
+ caller-path: "npm:^2.0.0"
+ resolve-from: "npm:^3.0.0"
+ checksum: 10/610255f9753cc6775df00be08e9f43691aa39f7703e3636c45afe22346b8b545e600ccfe100c554607546fc8e861fa149a0d1da078c8adedeea30fff326eef79
+ languageName: node
+ linkType: hard
+
+"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0":
+ version: 3.3.1
+ resolution: "import-fresh@npm:3.3.1"
+ dependencies:
+ parent-module: "npm:^1.0.0"
+ resolve-from: "npm:^4.0.0"
+ checksum: 10/a06b19461b4879cc654d46f8a6244eb55eb053437afd4cbb6613cad6be203811849ed3e4ea038783092879487299fda24af932b86bdfff67c9055ba3612b8c87
+ languageName: node
+ linkType: hard
+
+"import-local@npm:^3.0.2":
+ version: 3.2.0
+ resolution: "import-local@npm:3.2.0"
+ dependencies:
+ pkg-dir: "npm:^4.2.0"
+ resolve-cwd: "npm:^3.0.0"
+ bin:
+ import-local-fixture: fixtures/cli.js
+ checksum: 10/0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004
+ languageName: node
+ linkType: hard
+
+"imurmurhash@npm:^0.1.4":
+ version: 0.1.4
+ resolution: "imurmurhash@npm:0.1.4"
+ checksum: 10/2d30b157a91fe1c1d7c6f653cbf263f039be6c5bfa959245a16d4ee191fc0f2af86c08545b6e6beeb041c56b574d2d5b9f95343d378ab49c0f37394d541e7fc8
+ languageName: node
+ linkType: hard
+
+"inflight@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "inflight@npm:1.0.6"
+ dependencies:
+ once: "npm:^1.3.0"
+ wrappy: "npm:1"
+ checksum: 10/d2ebd65441a38c8336c223d1b80b921b9fa737e37ea466fd7e253cb000c64ae1f17fa59e68130ef5bda92cfd8d36b83d37dab0eb0a4558bcfec8e8cdfd2dcb67
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4":
+ version: 2.0.4
+ resolution: "inherits@npm:2.0.4"
+ checksum: 10/cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521
+ languageName: node
+ linkType: hard
+
+"internal-slot@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "internal-slot@npm:1.1.0"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ hasown: "npm:^2.0.2"
+ side-channel: "npm:^1.1.0"
+ checksum: 10/1d5219273a3dab61b165eddf358815eefc463207db33c20fcfca54717da02e3f492003757721f972fd0bf21e4b426cab389c5427b99ceea4b8b670dc88ee6d4a
+ languageName: node
+ linkType: hard
+
+"invariant@npm:2.2.4, invariant@npm:^2.2.4":
+ version: 2.2.4
+ resolution: "invariant@npm:2.2.4"
+ dependencies:
+ loose-envify: "npm:^1.0.0"
+ checksum: 10/cc3182d793aad82a8d1f0af697b462939cb46066ec48bbf1707c150ad5fad6406137e91a262022c269702e01621f35ef60269f6c0d7fd178487959809acdfb14
+ languageName: node
+ linkType: hard
+
+"is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5":
+ version: 3.0.5
+ resolution: "is-array-buffer@npm:3.0.5"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.3"
+ get-intrinsic: "npm:^1.2.6"
+ checksum: 10/ef1095c55b963cd0dcf6f88a113e44a0aeca91e30d767c475e7d746d28d1195b10c5076b94491a7a0cd85020ca6a4923070021d74651d093dc909e9932cf689b
+ languageName: node
+ linkType: hard
+
+"is-arrayish@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "is-arrayish@npm:0.2.1"
+ checksum: 10/73ced84fa35e59e2c57da2d01e12cd01479f381d7f122ce41dcbb713f09dbfc651315832cd2bf8accba7681a69e4d6f1e03941d94dd10040d415086360e7005e
+ languageName: node
+ linkType: hard
+
+"is-arrayish@npm:^0.3.1":
+ version: 0.3.4
+ resolution: "is-arrayish@npm:0.3.4"
+ checksum: 10/bf31677cee9fa4086f660b1920c22cf924872e6853cc4021f37ca9ca9d8ac7f098ab75b3c7bf4900e2058c83526a9ead3bf8bc352a657156eba5b4b0792b6dae
+ languageName: node
+ linkType: hard
+
+"is-async-function@npm:^2.0.0":
+ version: 2.1.1
+ resolution: "is-async-function@npm:2.1.1"
+ dependencies:
+ async-function: "npm:^1.0.0"
+ call-bound: "npm:^1.0.3"
+ get-proto: "npm:^1.0.1"
+ has-tostringtag: "npm:^1.0.2"
+ safe-regex-test: "npm:^1.1.0"
+ checksum: 10/7c2ac7efdf671e03265e74a043bcb1c0a32e226bc2a42dfc5ec8644667df668bbe14b91c08e6c1414f392f8cf86cd1d489b3af97756e2c7a49dd1ba63fd40ca6
+ languageName: node
+ linkType: hard
+
+"is-bigint@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "is-bigint@npm:1.1.0"
+ dependencies:
+ has-bigints: "npm:^1.0.2"
+ checksum: 10/10cf327310d712fe227cfaa32d8b11814c214392b6ac18c827f157e1e85363cf9c8e2a22df526689bd5d25e53b58cc110894787afb54e138e7c504174dba15fd
+ languageName: node
+ linkType: hard
+
+"is-boolean-object@npm:^1.2.1":
+ version: 1.2.2
+ resolution: "is-boolean-object@npm:1.2.2"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10/051fa95fdb99d7fbf653165a7e6b2cba5d2eb62f7ffa81e793a790f3fb5366c91c1b7b6af6820aa2937dd86c73aa3ca9d9ca98f500988457b1c59692c52ba911
+ languageName: node
+ linkType: hard
+
+"is-callable@npm:^1.2.7":
+ version: 1.2.7
+ resolution: "is-callable@npm:1.2.7"
+ checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.16.1, is-core-module@npm:^2.16.2":
+ version: 2.16.2
+ resolution: "is-core-module@npm:2.16.2"
+ dependencies:
+ hasown: "npm:^2.0.3"
+ checksum: 10/6ee7535d82bbe457685799c5f145daf4b7c6be3afbd8e90788429d557f663d6dee72a8e4b9a45d0d756c243fcb5028095999243df090e5f04c02b153786bc8c6
+ languageName: node
+ linkType: hard
+
+"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-data-view@npm:1.0.2"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ get-intrinsic: "npm:^1.2.6"
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10/357e9a48fa38f369fd6c4c3b632a3ab2b8adca14997db2e4b3fe94c4cd0a709af48e0fb61b02c64a90c0dd542fd489d49c2d03157b05ae6c07f5e4dec9e730a8
+ languageName: node
+ linkType: hard
+
+"is-date-object@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "is-date-object@npm:1.1.0"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10/3a811b2c3176fb31abee1d23d3dc78b6c65fd9c07d591fcb67553cab9e7f272728c3dd077d2d738b53f9a2103255b0a6e8dfc9568a7805c56a78b2563e8d1dec
+ languageName: node
+ linkType: hard
+
+"is-directory@npm:^0.3.1":
+ version: 0.3.1
+ resolution: "is-directory@npm:0.3.1"
+ checksum: 10/dce9a9d3981e38f2ded2a80848734824c50ee8680cd09aa477bef617949715cfc987197a2ca0176c58a9fb192a1a0d69b535c397140d241996a609d5906ae524
+ languageName: node
+ linkType: hard
+
+"is-docker@npm:^2.0.0":
+ version: 2.2.1
+ resolution: "is-docker@npm:2.2.1"
+ bin:
+ is-docker: cli.js
+ checksum: 10/3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56
+ languageName: node
+ linkType: hard
+
+"is-document.all@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "is-document.all@npm:1.0.0"
+ dependencies:
+ call-bound: "npm:^1.0.4"
+ checksum: 10/c76fa391105f180e9d34bf219ab1db325b4f883d2d82c789dbf9a628e4213c97411f038f36b7d096d85f5ddc1fda6e22e9d8d7c65b89ad1ee5d4d1e5a2a4c077
+ languageName: node
+ linkType: hard
+
+"is-extglob@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "is-extglob@npm:2.1.1"
+ checksum: 10/df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85
+ languageName: node
+ linkType: hard
+
+"is-finalizationregistry@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "is-finalizationregistry@npm:1.1.1"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ checksum: 10/0bfb145e9a1ba852ddde423b0926d2169ae5fe9e37882cde9e8f69031281a986308df4d982283e152396e88b86562ed2256cbaa5e6390fb840a4c25ab54b8a80
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "is-fullwidth-code-point@npm:2.0.0"
+ checksum: 10/eef9c6e15f68085fec19ff6a978a6f1b8f48018fd1265035552078ee945573594933b09bbd6f562553e2a241561439f1ef5339276eba68d272001343084cfab8
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-fullwidth-code-point@npm:3.0.0"
+ checksum: 10/44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348
+ languageName: node
+ linkType: hard
+
+"is-generator-fn@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "is-generator-fn@npm:2.1.0"
+ checksum: 10/a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215
+ languageName: node
+ linkType: hard
+
+"is-generator-function@npm:^1.0.10":
+ version: 1.1.2
+ resolution: "is-generator-function@npm:1.1.2"
+ dependencies:
+ call-bound: "npm:^1.0.4"
+ generator-function: "npm:^2.0.0"
+ get-proto: "npm:^1.0.1"
+ has-tostringtag: "npm:^1.0.2"
+ safe-regex-test: "npm:^1.1.0"
+ checksum: 10/cc50fa01034356bdfda26983c5457103240f201f4663c0de1257802714e40d36bcff7aee21091d37bbba4be962fa5c6475ce7ddbc0abfa86d6bef466e41e50a5
+ languageName: node
+ linkType: hard
+
+"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3":
+ version: 4.0.3
+ resolution: "is-glob@npm:4.0.3"
+ dependencies:
+ is-extglob: "npm:^2.1.1"
+ checksum: 10/3ed74f2b0cdf4f401f38edb0442ddfde3092d79d7d35c9919c86641efdbcbb32e45aa3c0f70ce5eecc946896cd5a0f26e4188b9f2b881876f7cb6c505b82da11
+ languageName: node
+ linkType: hard
+
+"is-interactive@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "is-interactive@npm:1.0.0"
+ checksum: 10/824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9
+ languageName: node
+ linkType: hard
+
+"is-map@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-map@npm:2.0.3"
+ checksum: 10/8de7b41715b08bcb0e5edb0fb9384b80d2d5bcd10e142188f33247d19ff078abaf8e9b6f858e2302d8d05376a26a55cd23a3c9f8ab93292b02fcd2cc9e4e92bb
+ languageName: node
+ linkType: hard
+
+"is-negative-zero@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-negative-zero@npm:2.0.3"
+ checksum: 10/8fe5cffd8d4fb2ec7b49d657e1691889778d037494c6f40f4d1a524cadd658b4b53ad7b6b73a59bcb4b143ae9a3d15829af864b2c0f9d65ac1e678c4c80f17e5
+ languageName: node
+ linkType: hard
+
+"is-number-object@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "is-number-object@npm:1.1.1"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10/a5922fb8779ab1ea3b8a9c144522b3d0bea5d9f8f23f7a72470e61e1e4df47714e28e0154ac011998b709cce260c3c9447ad3cd24a96c2f2a0abfdb2cbdc76c8
+ languageName: node
+ linkType: hard
+
+"is-number@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "is-number@npm:7.0.0"
+ checksum: 10/6a6c3383f68afa1e05b286af866017c78f1226d43ac8cb064e115ff9ed85eb33f5c4f7216c96a71e4dfea289ef52c5da3aef5bbfade8ffe47a0465d70c0c8e86
+ languageName: node
+ linkType: hard
+
+"is-path-inside@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "is-path-inside@npm:3.0.3"
+ checksum: 10/abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9
+ languageName: node
+ linkType: hard
+
+"is-plain-obj@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "is-plain-obj@npm:2.1.0"
+ checksum: 10/cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa
+ languageName: node
+ linkType: hard
+
+"is-plain-object@npm:^2.0.4":
+ version: 2.0.4
+ resolution: "is-plain-object@npm:2.0.4"
+ dependencies:
+ isobject: "npm:^3.0.1"
+ checksum: 10/2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca
+ languageName: node
+ linkType: hard
+
+"is-regex@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "is-regex@npm:1.2.1"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ gopd: "npm:^1.2.0"
+ has-tostringtag: "npm:^1.0.2"
+ hasown: "npm:^2.0.2"
+ checksum: 10/c42b7efc5868a5c9a4d8e6d3e9816e8815c611b09535c00fead18a1138455c5cb5e1887f0023a467ad3f9c419d62ba4dc3d9ba8bafe55053914d6d6454a945d2
+ languageName: node
+ linkType: hard
+
+"is-set@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-set@npm:2.0.3"
+ checksum: 10/5685df33f0a4a6098a98c72d94d67cad81b2bc72f1fb2091f3d9283c4a1c582123cd709145b02a9745f0ce6b41e3e43f1c944496d1d74d4ea43358be61308669
+ languageName: node
+ linkType: hard
+
+"is-shared-array-buffer@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "is-shared-array-buffer@npm:1.0.4"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ checksum: 10/0380d7c60cc692856871526ffcd38a8133818a2ee42d47bb8008248a0cd2121d8c8b5f66b6da3cac24bc5784553cacb6faaf678f66bc88c6615b42af2825230e
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-stream@npm:2.0.1"
+ checksum: 10/b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66
+ languageName: node
+ linkType: hard
+
+"is-string@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "is-string@npm:1.1.1"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10/5277cb9e225a7cc8a368a72623b44a99f2cfa139659c6b203553540681ad4276bfc078420767aad0e73eef5f0bd07d4abf39a35d37ec216917879d11cebc1f8b
+ languageName: node
+ linkType: hard
+
+"is-symbol@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "is-symbol@npm:1.1.1"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ has-symbols: "npm:^1.1.0"
+ safe-regex-test: "npm:^1.1.0"
+ checksum: 10/db495c0d8cd0a7a66b4f4ef7fccee3ab5bd954cb63396e8ac4d32efe0e9b12fdfceb851d6c501216a71f4f21e5ff20fc2ee845a3d52d455e021c466ac5eb2db2
+ languageName: node
+ linkType: hard
+
+"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15":
+ version: 1.1.15
+ resolution: "is-typed-array@npm:1.1.15"
+ dependencies:
+ which-typed-array: "npm:^1.1.16"
+ checksum: 10/e8cf60b9ea85667097a6ad68c209c9722cfe8c8edf04d6218366469e51944c5cc25bae45ffb845c23f811d262e4314d3b0168748eb16711aa34d12724cdf0735
+ languageName: node
+ linkType: hard
+
+"is-unicode-supported@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "is-unicode-supported@npm:0.1.0"
+ checksum: 10/a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52
+ languageName: node
+ linkType: hard
+
+"is-weakmap@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "is-weakmap@npm:2.0.2"
+ checksum: 10/a7b7e23206c542dcf2fa0abc483142731788771527e90e7e24f658c0833a0d91948a4f7b30d78f7a65255a48512e41a0288b778ba7fc396137515c12e201fd11
+ languageName: node
+ linkType: hard
+
+"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "is-weakref@npm:1.1.1"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ checksum: 10/543506fd8259038b371bb083aac25b16cb4fd8b12fc58053aa3d45ac28dfd001cd5c6dffbba7aeea4213c74732d46b6cb2cfb5b412eed11f2db524f3f97d09a0
+ languageName: node
+ linkType: hard
+
+"is-weakset@npm:^2.0.3":
+ version: 2.0.4
+ resolution: "is-weakset@npm:2.0.4"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ get-intrinsic: "npm:^1.2.6"
+ checksum: 10/1d5e1d0179beeed3661125a6faa2e59bfb48afda06fc70db807f178aa0ebebc3758fb6358d76b3d528090d5ef85148c345dcfbf90839592fe293e3e5e82f2134
+ languageName: node
+ linkType: hard
+
+"is-wsl@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "is-wsl@npm:1.1.0"
+ checksum: 10/ea157d232351e68c92bd62fc541771096942fe72f69dff452dd26dcc31466258c570a3b04b8cda2e01cd2968255b02951b8670d08ea4ed76d6b1a646061ac4fe
+ languageName: node
+ linkType: hard
+
+"is-wsl@npm:^2.1.1, is-wsl@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "is-wsl@npm:2.2.0"
+ dependencies:
+ is-docker: "npm:^2.0.0"
+ checksum: 10/20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8
+ languageName: node
+ linkType: hard
+
+"isarray@npm:^2.0.5":
+ version: 2.0.5
+ resolution: "isarray@npm:2.0.5"
+ checksum: 10/1d8bc7911e13bb9f105b1b3e0b396c787a9e63046af0b8fe0ab1414488ab06b2b099b87a2d8a9e31d21c9a6fad773c7fc8b257c4880f2d957274479d28ca3414
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 10/7c9f715c03aff08f35e98b1fadae1b9267b38f0615d501824f9743f3aab99ef10e303ce7db3f186763a0b70a19de5791ebfc854ff884d5a8c4d92211f642ec92
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "isexe@npm:4.0.0"
+ checksum: 10/2ead327ef596042ef9c9ec5f236b316acfaedb87f4bb61b3c3d574fb2e9c8a04b67305e04733bde52c24d9622fdebd3270aadb632adfbf9cadef88fe30f479e5
+ languageName: node
+ linkType: hard
+
+"isobject@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "isobject@npm:3.0.1"
+ checksum: 10/db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703
+ languageName: node
+ linkType: hard
+
+"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: 10/40bbdd1e937dfd8c830fa286d0f665e81b7a78bdabcd4565f6d5667c99828bda3db7fb7ac6b96a3e2e8a2461ddbc5452d9f8bc7d00cb00075fa6a3e99f5b6a81
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-instrument@npm:^5.0.4":
+ version: 5.2.1
+ resolution: "istanbul-lib-instrument@npm:5.2.1"
+ dependencies:
+ "@babel/core": "npm:^7.12.3"
+ "@babel/parser": "npm:^7.14.7"
+ "@istanbuljs/schema": "npm:^0.1.2"
+ istanbul-lib-coverage: "npm:^3.2.0"
+ semver: "npm:^6.3.0"
+ checksum: 10/bbc4496c2f304d799f8ec22202ab38c010ac265c441947f075c0f7d46bd440b45c00e46017cf9053453d42182d768b1d6ed0e70a142c95ab00df9843aa5ab80e
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-instrument@npm:^6.0.0":
+ version: 6.0.3
+ resolution: "istanbul-lib-instrument@npm:6.0.3"
+ dependencies:
+ "@babel/core": "npm:^7.23.9"
+ "@babel/parser": "npm:^7.23.9"
+ "@istanbuljs/schema": "npm:^0.1.3"
+ istanbul-lib-coverage: "npm:^3.2.0"
+ semver: "npm:^7.5.4"
+ checksum: 10/aa5271c0008dfa71b6ecc9ba1e801bf77b49dc05524e8c30d58aaf5b9505e0cd12f25f93165464d4266a518c5c75284ecb598fbd89fec081ae77d2c9d3327695
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-report@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "istanbul-lib-report@npm:3.0.1"
+ dependencies:
+ istanbul-lib-coverage: "npm:^3.0.0"
+ make-dir: "npm:^4.0.0"
+ supports-color: "npm:^7.1.0"
+ checksum: 10/86a83421ca1cf2109a9f6d193c06c31ef04a45e72a74579b11060b1e7bb9b6337a4e6f04abfb8857e2d569c271273c65e855ee429376a0d7c91ad91db42accd1
+ languageName: node
+ linkType: hard
+
+"istanbul-lib-source-maps@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "istanbul-lib-source-maps@npm:4.0.1"
+ dependencies:
+ debug: "npm:^4.1.1"
+ istanbul-lib-coverage: "npm:^3.0.0"
+ source-map: "npm:^0.6.1"
+ checksum: 10/5526983462799aced011d776af166e350191b816821ea7bcf71cab3e5272657b062c47dc30697a22a43656e3ced78893a42de677f9ccf276a28c913190953b82
+ languageName: node
+ linkType: hard
+
+"istanbul-reports@npm:^3.1.3":
+ version: 3.2.0
+ resolution: "istanbul-reports@npm:3.2.0"
+ dependencies:
+ html-escaper: "npm:^2.0.0"
+ istanbul-lib-report: "npm:^3.0.0"
+ checksum: 10/6773a1d5c7d47eeec75b317144fe2a3b1da84a44b6282bebdc856e09667865e58c9b025b75b3d87f5bc62939126cbba4c871ee84254537d934ba5da5d4c4ec4e
+ languageName: node
+ linkType: hard
+
+"iterator.prototype@npm:^1.1.5":
+ version: 1.1.5
+ resolution: "iterator.prototype@npm:1.1.5"
+ dependencies:
+ define-data-property: "npm:^1.1.4"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.6"
+ get-proto: "npm:^1.0.0"
+ has-symbols: "npm:^1.1.0"
+ set-function-name: "npm:^2.0.2"
+ checksum: 10/352bcf333f42189e65cc8cb2dcb94a5c47cf0a9110ce12aba788d405a980b5f5f3a06c79bf915377e1d480647169babd842ded0d898bed181bf6686e8e6823f6
+ languageName: node
+ linkType: hard
+
+"jest-changed-files@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-changed-files@npm:29.7.0"
+ dependencies:
+ execa: "npm:^5.0.0"
+ jest-util: "npm:^29.7.0"
+ p-limit: "npm:^3.1.0"
+ checksum: 10/3d93742e56b1a73a145d55b66e96711fbf87ef89b96c2fab7cfdfba8ec06612591a982111ca2b712bb853dbc16831ec8b43585a2a96b83862d6767de59cbf83d
+ languageName: node
+ linkType: hard
+
+"jest-circus@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-circus@npm:29.7.0"
+ dependencies:
+ "@jest/environment": "npm:^29.7.0"
+ "@jest/expect": "npm:^29.7.0"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ co: "npm:^4.6.0"
+ dedent: "npm:^1.0.0"
+ is-generator-fn: "npm:^2.0.0"
+ jest-each: "npm:^29.7.0"
+ jest-matcher-utils: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-runtime: "npm:^29.7.0"
+ jest-snapshot: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ p-limit: "npm:^3.1.0"
+ pretty-format: "npm:^29.7.0"
+ pure-rand: "npm:^6.0.0"
+ slash: "npm:^3.0.0"
+ stack-utils: "npm:^2.0.3"
+ checksum: 10/716a8e3f40572fd0213bcfc1da90274bf30d856e5133af58089a6ce45089b63f4d679bd44e6be9d320e8390483ebc3ae9921981993986d21639d9019b523123d
+ languageName: node
+ linkType: hard
+
+"jest-cli@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-cli@npm:29.7.0"
+ dependencies:
+ "@jest/core": "npm:^29.7.0"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ chalk: "npm:^4.0.0"
+ create-jest: "npm:^29.7.0"
+ exit: "npm:^0.1.2"
+ import-local: "npm:^3.0.2"
+ jest-config: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ jest-validate: "npm:^29.7.0"
+ yargs: "npm:^17.3.1"
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ bin:
+ jest: bin/jest.js
+ checksum: 10/6cc62b34d002c034203065a31e5e9a19e7c76d9e8ef447a6f70f759c0714cb212c6245f75e270ba458620f9c7b26063cd8cf6cd1f7e3afd659a7cc08add17307
+ languageName: node
+ linkType: hard
+
+"jest-config@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-config@npm:29.7.0"
+ dependencies:
+ "@babel/core": "npm:^7.11.6"
+ "@jest/test-sequencer": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ babel-jest: "npm:^29.7.0"
+ chalk: "npm:^4.0.0"
+ ci-info: "npm:^3.2.0"
+ deepmerge: "npm:^4.2.2"
+ glob: "npm:^7.1.3"
+ graceful-fs: "npm:^4.2.9"
+ jest-circus: "npm:^29.7.0"
+ jest-environment-node: "npm:^29.7.0"
+ jest-get-type: "npm:^29.6.3"
+ jest-regex-util: "npm:^29.6.3"
+ jest-resolve: "npm:^29.7.0"
+ jest-runner: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ jest-validate: "npm:^29.7.0"
+ micromatch: "npm:^4.0.4"
+ parse-json: "npm:^5.2.0"
+ pretty-format: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ strip-json-comments: "npm:^3.1.1"
+ peerDependencies:
+ "@types/node": "*"
+ ts-node: ">=9.0.0"
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ ts-node:
+ optional: true
+ checksum: 10/6bdf570e9592e7d7dd5124fc0e21f5fe92bd15033513632431b211797e3ab57eaa312f83cc6481b3094b72324e369e876f163579d60016677c117ec4853cf02b
+ languageName: node
+ linkType: hard
+
+"jest-diff@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-diff@npm:29.7.0"
+ dependencies:
+ chalk: "npm:^4.0.0"
+ diff-sequences: "npm:^29.6.3"
+ jest-get-type: "npm:^29.6.3"
+ pretty-format: "npm:^29.7.0"
+ checksum: 10/6f3a7eb9cd9de5ea9e5aa94aed535631fa6f80221832952839b3cb59dd419b91c20b73887deb0b62230d06d02d6b6cf34ebb810b88d904bb4fe1e2e4f0905c98
+ languageName: node
+ linkType: hard
+
+"jest-docblock@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-docblock@npm:29.7.0"
+ dependencies:
+ detect-newline: "npm:^3.0.0"
+ checksum: 10/8d48818055bc96c9e4ec2e217a5a375623c0d0bfae8d22c26e011074940c202aa2534a3362294c81d981046885c05d304376afba9f2874143025981148f3e96d
+ languageName: node
+ linkType: hard
+
+"jest-each@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-each@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ chalk: "npm:^4.0.0"
+ jest-get-type: "npm:^29.6.3"
+ jest-util: "npm:^29.7.0"
+ pretty-format: "npm:^29.7.0"
+ checksum: 10/bd1a077654bdaa013b590deb5f7e7ade68f2e3289180a8c8f53bc8a49f3b40740c0ec2d3a3c1aee906f682775be2bebbac37491d80b634d15276b0aa0f2e3fda
+ languageName: node
+ linkType: hard
+
+"jest-environment-node@npm:^29.6.3, jest-environment-node@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-environment-node@npm:29.7.0"
+ dependencies:
+ "@jest/environment": "npm:^29.7.0"
+ "@jest/fake-timers": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ jest-mock: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ checksum: 10/9cf7045adf2307cc93aed2f8488942e39388bff47ec1df149a997c6f714bfc66b2056768973770d3f8b1bf47396c19aa564877eb10ec978b952c6018ed1bd637
+ languageName: node
+ linkType: hard
+
+"jest-get-type@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "jest-get-type@npm:29.6.3"
+ checksum: 10/88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205
+ languageName: node
+ linkType: hard
+
+"jest-haste-map@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-haste-map@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ "@types/graceful-fs": "npm:^4.1.3"
+ "@types/node": "npm:*"
+ anymatch: "npm:^3.0.3"
+ fb-watchman: "npm:^2.0.0"
+ fsevents: "npm:^2.3.2"
+ graceful-fs: "npm:^4.2.9"
+ jest-regex-util: "npm:^29.6.3"
+ jest-util: "npm:^29.7.0"
+ jest-worker: "npm:^29.7.0"
+ micromatch: "npm:^4.0.4"
+ walker: "npm:^1.0.8"
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: 10/8531b42003581cb18a69a2774e68c456fb5a5c3280b1b9b77475af9e346b6a457250f9d756bfeeae2fe6cbc9ef28434c205edab9390ee970a919baddfa08bb85
+ languageName: node
+ linkType: hard
+
+"jest-leak-detector@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-leak-detector@npm:29.7.0"
+ dependencies:
+ jest-get-type: "npm:^29.6.3"
+ pretty-format: "npm:^29.7.0"
+ checksum: 10/e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605
+ languageName: node
+ linkType: hard
+
+"jest-matcher-utils@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-matcher-utils@npm:29.7.0"
+ dependencies:
+ chalk: "npm:^4.0.0"
+ jest-diff: "npm:^29.7.0"
+ jest-get-type: "npm:^29.6.3"
+ pretty-format: "npm:^29.7.0"
+ checksum: 10/981904a494299cf1e3baed352f8a3bd8b50a8c13a662c509b6a53c31461f94ea3bfeffa9d5efcfeb248e384e318c87de7e3baa6af0f79674e987482aa189af40
+ languageName: node
+ linkType: hard
+
+"jest-message-util@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-message-util@npm:29.7.0"
+ dependencies:
+ "@babel/code-frame": "npm:^7.12.13"
+ "@jest/types": "npm:^29.6.3"
+ "@types/stack-utils": "npm:^2.0.0"
+ chalk: "npm:^4.0.0"
+ graceful-fs: "npm:^4.2.9"
+ micromatch: "npm:^4.0.4"
+ pretty-format: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ stack-utils: "npm:^2.0.3"
+ checksum: 10/31d53c6ed22095d86bab9d14c0fa70c4a92c749ea6ceece82cf30c22c9c0e26407acdfbdb0231435dc85a98d6d65ca0d9cbcd25cd1abb377fe945e843fb770b9
+ languageName: node
+ linkType: hard
+
+"jest-mock@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-mock@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ jest-util: "npm:^29.7.0"
+ checksum: 10/ae51d1b4f898724be5e0e52b2268a68fcd876d9b20633c864a6dd6b1994cbc48d62402b0f40f3a1b669b30ebd648821f086c26c08ffde192ced951ff4670d51c
+ languageName: node
+ linkType: hard
+
+"jest-pnp-resolver@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "jest-pnp-resolver@npm:1.2.3"
+ peerDependencies:
+ jest-resolve: "*"
+ peerDependenciesMeta:
+ jest-resolve:
+ optional: true
+ checksum: 10/db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2
+ languageName: node
+ linkType: hard
+
+"jest-regex-util@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "jest-regex-util@npm:29.6.3"
+ checksum: 10/0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a
+ languageName: node
+ linkType: hard
+
+"jest-resolve-dependencies@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-resolve-dependencies@npm:29.7.0"
+ dependencies:
+ jest-regex-util: "npm:^29.6.3"
+ jest-snapshot: "npm:^29.7.0"
+ checksum: 10/1e206f94a660d81e977bcfb1baae6450cb4a81c92e06fad376cc5ea16b8e8c6ea78c383f39e95591a9eb7f925b6a1021086c38941aa7c1b8a6a813c2f6e93675
+ languageName: node
+ linkType: hard
+
+"jest-resolve@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-resolve@npm:29.7.0"
+ dependencies:
+ chalk: "npm:^4.0.0"
+ graceful-fs: "npm:^4.2.9"
+ jest-haste-map: "npm:^29.7.0"
+ jest-pnp-resolver: "npm:^1.2.2"
+ jest-util: "npm:^29.7.0"
+ jest-validate: "npm:^29.7.0"
+ resolve: "npm:^1.20.0"
+ resolve.exports: "npm:^2.0.0"
+ slash: "npm:^3.0.0"
+ checksum: 10/faa466fd9bc69ea6c37a545a7c6e808e073c66f46ab7d3d8a6ef084f8708f201b85d5fe1799789578b8b47fa1de47b9ee47b414d1863bc117a49e032ba77b7c7
+ languageName: node
+ linkType: hard
+
+"jest-runner@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-runner@npm:29.7.0"
+ dependencies:
+ "@jest/console": "npm:^29.7.0"
+ "@jest/environment": "npm:^29.7.0"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/transform": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ emittery: "npm:^0.13.1"
+ graceful-fs: "npm:^4.2.9"
+ jest-docblock: "npm:^29.7.0"
+ jest-environment-node: "npm:^29.7.0"
+ jest-haste-map: "npm:^29.7.0"
+ jest-leak-detector: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-resolve: "npm:^29.7.0"
+ jest-runtime: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ jest-watcher: "npm:^29.7.0"
+ jest-worker: "npm:^29.7.0"
+ p-limit: "npm:^3.1.0"
+ source-map-support: "npm:0.5.13"
+ checksum: 10/9d8748a494bd90f5c82acea99be9e99f21358263ce6feae44d3f1b0cd90991b5df5d18d607e73c07be95861ee86d1cbab2a3fc6ca4b21805f07ac29d47c1da1e
+ languageName: node
+ linkType: hard
+
+"jest-runtime@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-runtime@npm:29.7.0"
+ dependencies:
+ "@jest/environment": "npm:^29.7.0"
+ "@jest/fake-timers": "npm:^29.7.0"
+ "@jest/globals": "npm:^29.7.0"
+ "@jest/source-map": "npm:^29.6.3"
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/transform": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ cjs-module-lexer: "npm:^1.0.0"
+ collect-v8-coverage: "npm:^1.0.0"
+ glob: "npm:^7.1.3"
+ graceful-fs: "npm:^4.2.9"
+ jest-haste-map: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-mock: "npm:^29.7.0"
+ jest-regex-util: "npm:^29.6.3"
+ jest-resolve: "npm:^29.7.0"
+ jest-snapshot: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ strip-bom: "npm:^4.0.0"
+ checksum: 10/59eb58eb7e150e0834a2d0c0d94f2a0b963ae7182cfa6c63f2b49b9c6ef794e5193ef1634e01db41420c36a94cefc512cdd67a055cd3e6fa2f41eaf0f82f5a20
+ languageName: node
+ linkType: hard
+
+"jest-snapshot@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-snapshot@npm:29.7.0"
+ dependencies:
+ "@babel/core": "npm:^7.11.6"
+ "@babel/generator": "npm:^7.7.2"
+ "@babel/plugin-syntax-jsx": "npm:^7.7.2"
+ "@babel/plugin-syntax-typescript": "npm:^7.7.2"
+ "@babel/types": "npm:^7.3.3"
+ "@jest/expect-utils": "npm:^29.7.0"
+ "@jest/transform": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ babel-preset-current-node-syntax: "npm:^1.0.0"
+ chalk: "npm:^4.0.0"
+ expect: "npm:^29.7.0"
+ graceful-fs: "npm:^4.2.9"
+ jest-diff: "npm:^29.7.0"
+ jest-get-type: "npm:^29.6.3"
+ jest-matcher-utils: "npm:^29.7.0"
+ jest-message-util: "npm:^29.7.0"
+ jest-util: "npm:^29.7.0"
+ natural-compare: "npm:^1.4.0"
+ pretty-format: "npm:^29.7.0"
+ semver: "npm:^7.5.3"
+ checksum: 10/cb19a3948256de5f922d52f251821f99657339969bf86843bd26cf3332eae94883e8260e3d2fba46129a27c3971c1aa522490e460e16c7fad516e82d10bbf9f8
+ languageName: node
+ linkType: hard
+
+"jest-util@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-util@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ ci-info: "npm:^3.2.0"
+ graceful-fs: "npm:^4.2.9"
+ picomatch: "npm:^2.2.3"
+ checksum: 10/30d58af6967e7d42bd903ccc098f3b4d3859ed46238fbc88d4add6a3f10bea00c226b93660285f058bc7a65f6f9529cf4eb80f8d4707f79f9e3a23686b4ab8f3
+ languageName: node
+ linkType: hard
+
+"jest-validate@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-validate@npm:29.7.0"
+ dependencies:
+ "@jest/types": "npm:^29.6.3"
+ camelcase: "npm:^6.2.0"
+ chalk: "npm:^4.0.0"
+ jest-get-type: "npm:^29.6.3"
+ leven: "npm:^3.1.0"
+ pretty-format: "npm:^29.7.0"
+ checksum: 10/8ee1163666d8eaa16d90a989edba2b4a3c8ab0ffaa95ad91b08ca42b015bfb70e164b247a5b17f9de32d096987cada63ed8491ab82761bfb9a28bc34b27ae161
+ languageName: node
+ linkType: hard
+
+"jest-watcher@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-watcher@npm:29.7.0"
+ dependencies:
+ "@jest/test-result": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ "@types/node": "npm:*"
+ ansi-escapes: "npm:^4.2.1"
+ chalk: "npm:^4.0.0"
+ emittery: "npm:^0.13.1"
+ jest-util: "npm:^29.7.0"
+ string-length: "npm:^4.0.1"
+ checksum: 10/4f616e0345676631a7034b1d94971aaa719f0cd4a6041be2aa299be437ea047afd4fe05c48873b7963f5687a2f6c7cbf51244be8b14e313b97bfe32b1e127e55
+ languageName: node
+ linkType: hard
+
+"jest-worker@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-worker@npm:29.7.0"
+ dependencies:
+ "@types/node": "npm:*"
+ jest-util: "npm:^29.7.0"
+ merge-stream: "npm:^2.0.0"
+ supports-color: "npm:^8.0.0"
+ checksum: 10/364cbaef00d8a2729fc760227ad34b5e60829e0869bd84976bdfbd8c0d0f9c2f22677b3e6dd8afa76ed174765351cd12bae3d4530c62eefb3791055127ca9745
+ languageName: node
+ linkType: hard
+
+"jest@npm:^29.6.3":
+ version: 29.7.0
+ resolution: "jest@npm:29.7.0"
+ dependencies:
+ "@jest/core": "npm:^29.7.0"
+ "@jest/types": "npm:^29.6.3"
+ import-local: "npm:^3.0.2"
+ jest-cli: "npm:^29.7.0"
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ bin:
+ jest: bin/jest.js
+ checksum: 10/97023d78446098c586faaa467fbf2c6b07ff06e2c85a19e3926adb5b0effe9ac60c4913ae03e2719f9c01ae8ffd8d92f6b262cedb9555ceeb5d19263d8c6362a
+ languageName: node
+ linkType: hard
+
+"joi@npm:^17.2.1":
+ version: 17.13.4
+ resolution: "joi@npm:17.13.4"
+ dependencies:
+ "@hapi/hoek": "npm:^9.3.0"
+ "@hapi/topo": "npm:^5.1.0"
+ "@sideway/address": "npm:^4.1.5"
+ "@sideway/formula": "npm:^3.0.1"
+ "@sideway/pinpoint": "npm:^2.0.0"
+ checksum: 10/0e407d4cc6cb0830b93c2d107f8b85113338473296025c31a931589359b58883e61fd183dd7532d3ab1ee014a01a20830a8fca90d9f0217d0c0894ee2cbf9ff5
+ languageName: node
+ linkType: hard
+
+"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "js-tokens@npm:4.0.0"
+ checksum: 10/af37d0d913fb56aec6dc0074c163cc71cd23c0b8aad5c2350747b6721d37ba118af35abdd8b33c47ec2800de07dedb16a527ca9c530ee004093e04958bd0cbf2
+ languageName: node
+ linkType: hard
+
+"js-yaml@npm:^3.13.1":
+ version: 3.14.2
+ resolution: "js-yaml@npm:3.14.2"
+ dependencies:
+ argparse: "npm:^1.0.7"
+ esprima: "npm:^4.0.0"
+ bin:
+ js-yaml: bin/js-yaml.js
+ checksum: 10/172e0b6007b0bf0fc8d2469c94424f7dd765c64a047d2b790831fecef2204a4054eabf4d911eb73ab8c9a3256ab8ba1ee8d655b789bf24bf059c772acc2075a1
+ languageName: node
+ linkType: hard
+
+"js-yaml@npm:^4.1.0":
+ version: 4.2.0
+ resolution: "js-yaml@npm:4.2.0"
+ dependencies:
+ argparse: "npm:^2.0.1"
+ bin:
+ js-yaml: bin/js-yaml.js
+ checksum: 10/51de2067a2b44b07ba5206132e56005f8b568ff279bb4d2f645068958c56fa4827d40a6841c983234671fa0a134bf094d0b0717873c2a3d319185297af145a6d
+ languageName: node
+ linkType: hard
+
+"jsc-android@npm:^250231.0.0":
+ version: 250231.0.0
+ resolution: "jsc-android@npm:250231.0.0"
+ checksum: 10/aa5cf773f5d6c4c6ecec42bfd9958b5bd5ec33db7ec87f66152fae96f142220b91b84e54b409ca643a9493dd1b0f273819d46aad8c0d7519c444280815ffb68e
+ languageName: node
+ linkType: hard
+
+"jsc-safe-url@npm:^0.2.2":
+ version: 0.2.4
+ resolution: "jsc-safe-url@npm:0.2.4"
+ checksum: 10/2729b32e694ff7badc38ddaaf11bafa2867b3920fffa865da38c8cc84ca59a319eb681f9ba5ffba5aea942dff7850754f6b8aee01dc0f7ae8ecb1890c61d4442
+ languageName: node
+ linkType: hard
+
+"jscodeshift@npm:^0.14.0":
+ version: 0.14.0
+ resolution: "jscodeshift@npm:0.14.0"
+ dependencies:
+ "@babel/core": "npm:^7.13.16"
+ "@babel/parser": "npm:^7.13.16"
+ "@babel/plugin-proposal-class-properties": "npm:^7.13.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator": "npm:^7.13.8"
+ "@babel/plugin-proposal-optional-chaining": "npm:^7.13.12"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.13.8"
+ "@babel/preset-flow": "npm:^7.13.13"
+ "@babel/preset-typescript": "npm:^7.13.0"
+ "@babel/register": "npm:^7.13.16"
+ babel-core: "npm:^7.0.0-bridge.0"
+ chalk: "npm:^4.1.2"
+ flow-parser: "npm:0.*"
+ graceful-fs: "npm:^4.2.4"
+ micromatch: "npm:^4.0.4"
+ neo-async: "npm:^2.5.0"
+ node-dir: "npm:^0.1.17"
+ recast: "npm:^0.21.0"
+ temp: "npm:^0.8.4"
+ write-file-atomic: "npm:^2.3.0"
+ peerDependencies:
+ "@babel/preset-env": ^7.1.6
+ bin:
+ jscodeshift: bin/jscodeshift.js
+ checksum: 10/fc355dde2287c026a682e8b38df5d8d1ff5c9ca044dfd558f2b6d17bb28f9257063bd0e47690814612e572804caa5383733c9d8ca8bc18e70bcee43e0458df59
+ languageName: node
+ linkType: hard
+
+"jsesc@npm:^3.0.2, jsesc@npm:~3.1.0":
+ version: 3.1.0
+ resolution: "jsesc@npm:3.1.0"
+ bin:
+ jsesc: bin/jsesc
+ checksum: 10/20bd37a142eca5d1794f354db8f1c9aeb54d85e1f5c247b371de05d23a9751ecd7bd3a9c4fc5298ea6fa09a100dafb4190fa5c98c6610b75952c3487f3ce7967
+ languageName: node
+ linkType: hard
+
+"json-buffer@npm:3.0.1":
+ version: 3.0.1
+ resolution: "json-buffer@npm:3.0.1"
+ checksum: 10/82876154521b7b68ba71c4f969b91572d1beabadd87bd3a6b236f85fbc7dc4695089191ed60bb59f9340993c51b33d479f45b6ba9f3548beb519705281c32c3c
+ languageName: node
+ linkType: hard
+
+"json-parse-better-errors@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "json-parse-better-errors@npm:1.0.2"
+ checksum: 10/5553232045359b767b0f2039a6777fede1a8d7dca1a0ffb1f9ef73a7519489ae7f566b2e040f2b4c38edb8e35e37ae07af7f0a52420902f869ee0dbf5dc6c784
+ languageName: node
+ linkType: hard
+
+"json-parse-even-better-errors@npm:^2.3.0":
+ version: 2.3.1
+ resolution: "json-parse-even-better-errors@npm:2.3.1"
+ checksum: 10/5f3a99009ed5f2a5a67d06e2f298cc97bc86d462034173308156f15b43a6e850be8511dc204b9b94566305da2947f7d90289657237d210351a39059ff9d666cf
+ languageName: node
+ linkType: hard
+
+"json-schema-traverse@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "json-schema-traverse@npm:0.4.1"
+ checksum: 10/7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b
+ languageName: node
+ linkType: hard
+
+"json-stable-stringify-without-jsonify@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "json-stable-stringify-without-jsonify@npm:1.0.1"
+ checksum: 10/12786c2e2f22c27439e6db0532ba321f1d0617c27ad8cb1c352a0e9249a50182fd1ba8b52a18899291604b0c32eafa8afd09e51203f19109a0537f68db2b652d
+ languageName: node
+ linkType: hard
+
+"json5@npm:^2.2.3":
+ version: 2.2.3
+ resolution: "json5@npm:2.2.3"
+ bin:
+ json5: lib/cli.js
+ checksum: 10/1db67b853ff0de3534085d630691d3247de53a2ed1390ba0ddff681ea43e9b3e30ecbdb65c5e9aab49435e44059c23dbd6fee8ee619419ba37465bb0dd7135da
+ languageName: node
+ linkType: hard
+
+"jsonfile@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "jsonfile@npm:4.0.0"
+ dependencies:
+ graceful-fs: "npm:^4.1.6"
+ dependenciesMeta:
+ graceful-fs:
+ optional: true
+ checksum: 10/17796f0ab1be8479827d3683433f97ebe0a1c6932c3360fa40348eac36904d69269aab26f8b16da311882d94b42e9208e8b28e490bf926364f3ac9bff134c226
+ languageName: node
+ linkType: hard
+
+"jsx-ast-utils@npm:^2.4.1 || ^3.0.0":
+ version: 3.3.5
+ resolution: "jsx-ast-utils@npm:3.3.5"
+ dependencies:
+ array-includes: "npm:^3.1.6"
+ array.prototype.flat: "npm:^1.3.1"
+ object.assign: "npm:^4.1.4"
+ object.values: "npm:^1.1.6"
+ checksum: 10/b61d44613687dfe4cc8ad4b4fbf3711bf26c60b8d5ed1f494d723e0808415c59b24a7c0ed8ab10736a40ff84eef38cbbfb68b395e05d31117b44ffc59d31edfc
+ languageName: node
+ linkType: hard
+
+"keyv@npm:^4.5.3":
+ version: 4.5.4
+ resolution: "keyv@npm:4.5.4"
+ dependencies:
+ json-buffer: "npm:3.0.1"
+ checksum: 10/167eb6ef64cc84b6fa0780ee50c9de456b422a1e18802209234f7c2cf7eae648c7741f32e50d7e24ccb22b24c13154070b01563d642755b156c357431a191e75
+ languageName: node
+ linkType: hard
+
+"kind-of@npm:^6.0.2":
+ version: 6.0.3
+ resolution: "kind-of@npm:6.0.3"
+ checksum: 10/5873d303fb36aad875b7538798867da2ae5c9e328d67194b0162a3659a627d22f742fc9c4ae95cd1704132a24b00cae5041fc00c0f6ef937dc17080dc4dbb962
+ languageName: node
+ linkType: hard
+
+"kleur@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "kleur@npm:3.0.3"
+ checksum: 10/0c0ecaf00a5c6173d25059c7db2113850b5457016dfa1d0e3ef26da4704fbb186b4938d7611246d86f0ddf1bccf26828daa5877b1f232a65e7373d0122a83e7f
+ languageName: node
+ linkType: hard
+
+"leven@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "leven@npm:3.1.0"
+ checksum: 10/638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55
+ languageName: node
+ linkType: hard
+
+"levn@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "levn@npm:0.4.1"
+ dependencies:
+ prelude-ls: "npm:^1.2.1"
+ type-check: "npm:~0.4.0"
+ checksum: 10/2e4720ff79f21ae08d42374b0a5c2f664c5be8b6c8f565bb4e1315c96ed3a8acaa9de788ffed82d7f2378cf36958573de07ef92336cb5255ed74d08b8318c9ee
+ languageName: node
+ linkType: hard
+
+"lighthouse-logger@npm:^1.0.0":
+ version: 1.4.2
+ resolution: "lighthouse-logger@npm:1.4.2"
+ dependencies:
+ debug: "npm:^2.6.9"
+ marky: "npm:^1.2.2"
+ checksum: 10/ffcedbf6878cc8b3289649ad60f42e3def7212b79eac6a21be2408724a2a7f65f9cfc3fbef6c0618ae4f476834949e1a56235e02ffa6b4e5019d2643d9d5977c
+ languageName: node
+ linkType: hard
+
+"lines-and-columns@npm:^1.1.6":
+ version: 1.2.4
+ resolution: "lines-and-columns@npm:1.2.4"
+ checksum: 10/0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5
+ languageName: node
+ linkType: hard
+
+"locate-path@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "locate-path@npm:3.0.0"
+ dependencies:
+ p-locate: "npm:^3.0.0"
+ path-exists: "npm:^3.0.0"
+ checksum: 10/53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11
+ languageName: node
+ linkType: hard
+
+"locate-path@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "locate-path@npm:5.0.0"
+ dependencies:
+ p-locate: "npm:^4.1.0"
+ checksum: 10/83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30
+ languageName: node
+ linkType: hard
+
+"locate-path@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "locate-path@npm:6.0.0"
+ dependencies:
+ p-locate: "npm:^5.0.0"
+ checksum: 10/72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a
+ languageName: node
+ linkType: hard
+
+"lodash.debounce@npm:4.0.8, lodash.debounce@npm:^4.0.8":
+ version: 4.0.8
+ resolution: "lodash.debounce@npm:4.0.8"
+ checksum: 10/cd0b2819786e6e80cb9f5cda26b1a8fc073daaf04e48d4cb462fa4663ec9adb3a5387aa22d7129e48eed1afa05b482e2a6b79bfc99b86886364449500cbb00fd
+ languageName: node
+ linkType: hard
+
+"lodash.isequal@npm:^4.5.0":
+ version: 4.5.0
+ resolution: "lodash.isequal@npm:4.5.0"
+ checksum: 10/82fc58a83a1555f8df34ca9a2cd300995ff94018ac12cc47c349655f0ae1d4d92ba346db4c19bbfc90510764e0c00ddcc985a358bdcd4b3b965abf8f2a48a214
+ languageName: node
+ linkType: hard
+
+"lodash.merge@npm:^4.6.2":
+ version: 4.6.2
+ resolution: "lodash.merge@npm:4.6.2"
+ checksum: 10/d0ea2dd0097e6201be083865d50c3fb54fbfbdb247d9cc5950e086c991f448b7ab0cdab0d57eacccb43473d3f2acd21e134db39f22dac2d6c9ba6bf26978e3d6
+ languageName: node
+ linkType: hard
+
+"lodash.throttle@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "lodash.throttle@npm:4.1.1"
+ checksum: 10/9be9fb2ffd686c20543167883305542f4564062a5f712a40e8c6f2f0d9fd8254a6e9d801c2470b1b24e0cdf2ae83c1277b55aa0fb4799a2db6daf545f53820e1
+ languageName: node
+ linkType: hard
+
+"lodash@npm:^4.17.21":
+ version: 4.18.1
+ resolution: "lodash@npm:4.18.1"
+ checksum: 10/306fea53dfd39dad1f03d45ba654a2405aebd35797b673077f401edb7df2543623dc44b9effbb98f69b32152295fff725a4cec99c684098947430600c6af0c3f
+ languageName: node
+ linkType: hard
+
+"log-symbols@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "log-symbols@npm:4.1.0"
+ dependencies:
+ chalk: "npm:^4.1.0"
+ is-unicode-supported: "npm:^0.1.0"
+ checksum: 10/fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74
+ languageName: node
+ linkType: hard
+
+"logkitty@npm:^0.7.1":
+ version: 0.7.1
+ resolution: "logkitty@npm:0.7.1"
+ dependencies:
+ ansi-fragments: "npm:^0.2.1"
+ dayjs: "npm:^1.8.15"
+ yargs: "npm:^15.1.0"
+ bin:
+ logkitty: bin/logkitty.js
+ checksum: 10/1b9ab873198f31d42f353ab05cee93678b66788de159ea8ff2425afb20bf929eb021cbd2890d7dbdea59ddacdc029e8d8d0d485a35af0583435ff36daeef180c
+ languageName: node
+ linkType: hard
+
+"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "loose-envify@npm:1.4.0"
+ dependencies:
+ js-tokens: "npm:^3.0.0 || ^4.0.0"
+ bin:
+ loose-envify: cli.js
+ checksum: 10/6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^5.1.1":
+ version: 5.1.1
+ resolution: "lru-cache@npm:5.1.1"
+ dependencies:
+ yallist: "npm:^3.0.2"
+ checksum: 10/951d2673dcc64a7fb888bf3d13bc2fdf923faca97d89cdb405ba3dfff77e2b26e5798d405e78fcd7094c9e7b8b4dab2ddc5a4f8a11928af24a207b7c738ca3f8
+ languageName: node
+ linkType: hard
+
+"make-dir@npm:^2.0.0, make-dir@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "make-dir@npm:2.1.0"
+ dependencies:
+ pify: "npm:^4.0.1"
+ semver: "npm:^5.6.0"
+ checksum: 10/043548886bfaf1820323c6a2997e6d2fa51ccc2586ac14e6f14634f7458b4db2daf15f8c310e2a0abd3e0cddc64df1890d8fc7263033602c47bb12cbfcf86aab
+ languageName: node
+ linkType: hard
+
+"make-dir@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "make-dir@npm:4.0.0"
+ dependencies:
+ semver: "npm:^7.5.3"
+ checksum: 10/bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a
+ languageName: node
+ linkType: hard
+
+"makeerror@npm:1.0.12":
+ version: 1.0.12
+ resolution: "makeerror@npm:1.0.12"
+ dependencies:
+ tmpl: "npm:1.0.5"
+ checksum: 10/4c66ddfc654537333da952c084f507fa4c30c707b1635344eb35be894d797ba44c901a9cebe914aa29a7f61357543ba09b09dddbd7f65b4aee756b450f169f40
+ languageName: node
+ linkType: hard
+
+"marky@npm:^1.2.2":
+ version: 1.3.0
+ resolution: "marky@npm:1.3.0"
+ checksum: 10/c90687e18dbcfbe501e4161c3dbddfe0dcc715ad7643b5b06f17cebcb3c8cc8c12f34ddc3a2a1c0432b74b207a6ebaac6466a240794e0e04b0afb287cfed4933
+ languageName: node
+ linkType: hard
+
+"math-intrinsics@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "math-intrinsics@npm:1.1.0"
+ checksum: 10/11df2eda46d092a6035479632e1ec865b8134bdfc4bd9e571a656f4191525404f13a283a515938c3a8de934dbfd9c09674d9da9fa831e6eb7e22b50b197d2edd
+ languageName: node
+ linkType: hard
+
+"memoize-one@npm:^5.0.0":
+ version: 5.2.1
+ resolution: "memoize-one@npm:5.2.1"
+ checksum: 10/b7141dc148b5c6fdd51e77ecf0421fd2581681eb8756e0b3dfbd4fe765b5e2b5a6bc90214bb6f19a96b6aed44de17eda3407142a7be9e24ccd0774bbd9874d1b
+ languageName: node
+ linkType: hard
+
+"merge-options@npm:^3.0.4":
+ version: 3.0.4
+ resolution: "merge-options@npm:3.0.4"
+ dependencies:
+ is-plain-obj: "npm:^2.1.0"
+ checksum: 10/d86ddb3dd6e85d558dbf25dc944f3527b6bacb944db3fdda6e84a3f59c4e4b85231095f58b835758b9a57708342dee0f8de0dffa352974a48221487fe9f4584f
+ languageName: node
+ linkType: hard
+
+"merge-stream@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "merge-stream@npm:2.0.0"
+ checksum: 10/6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4
+ languageName: node
+ linkType: hard
+
+"merge2@npm:^1.3.0, merge2@npm:^1.4.1":
+ version: 1.4.1
+ resolution: "merge2@npm:1.4.1"
+ checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2
+ languageName: node
+ linkType: hard
+
+"metro-babel-transformer@npm:0.81.5":
+ version: 0.81.5
+ resolution: "metro-babel-transformer@npm:0.81.5"
+ dependencies:
+ "@babel/core": "npm:^7.25.2"
+ flow-enums-runtime: "npm:^0.0.6"
+ hermes-parser: "npm:0.25.1"
+ nullthrows: "npm:^1.1.1"
+ checksum: 10/331c079508418378294534e6a7da228dc6b271827c8622a148c1e0dfdd18729f16eeea84e96541e95e7eee126d49180f92540cd39b37a2f96bf5c015456f49a1
+ languageName: node
+ linkType: hard
+
+"metro-cache-key@npm:0.81.5":
+ version: 0.81.5
+ resolution: "metro-cache-key@npm:0.81.5"
+ dependencies:
+ flow-enums-runtime: "npm:^0.0.6"
+ checksum: 10/d5656bc8906ff4366d8093d19304d6ac386c59429e3e7e24050f4bc9f93ca4e04d8062af6bdd28874a5e4b9bcc84f248855933ffa80af56aeed8be5ff02c85bf
+ languageName: node
+ linkType: hard
+
+"metro-cache@npm:0.81.5":
+ version: 0.81.5
+ resolution: "metro-cache@npm:0.81.5"
+ dependencies:
+ exponential-backoff: "npm:^3.1.1"
+ flow-enums-runtime: "npm:^0.0.6"
+ metro-core: "npm:0.81.5"
+ checksum: 10/6ffc8283ca9002c2a99a9e787e59c764399218459f9db352b9cb7543bf0f38de973130dfc9587997b6fd206c0b87b7c33def754814505c282286f12938c606d0
+ 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"
+ dependencies:
+ connect: "npm:^3.6.5"
+ cosmiconfig: "npm:^5.0.5"
+ flow-enums-runtime: "npm:^0.0.6"
+ jest-validate: "npm:^29.7.0"
+ metro: "npm:0.81.5"
+ metro-cache: "npm:0.81.5"
+ metro-core: "npm:0.81.5"
+ metro-runtime: "npm:0.81.5"
+ checksum: 10/181775bdb3676f9ecd81387a31ca5ceda42f982f7871029e3f606d21aa2d62416bbd61df5e2fd0f13a7242a0144bbf10c7fd4af65839058271a1f823f2970c9b
+ 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"
+ dependencies:
+ flow-enums-runtime: "npm:^0.0.6"
+ lodash.throttle: "npm:^4.1.1"
+ metro-resolver: "npm:0.81.5"
+ checksum: 10/9ecf5b646ec7cc3d5de7d2ebd21e37713d7b86b68a6e94ec911b2c73a20d7abd972406e2ffa2084f2d156ed5f767fe5658c5c2cc3343f3ed10fc276fe385aa84
+ languageName: node
+ linkType: hard
+
+"metro-file-map@npm:0.81.5":
+ version: 0.81.5
+ resolution: "metro-file-map@npm:0.81.5"
+ dependencies:
+ debug: "npm:^2.2.0"
+ fb-watchman: "npm:^2.0.0"
+ flow-enums-runtime: "npm:^0.0.6"
+ graceful-fs: "npm:^4.2.4"
+ invariant: "npm:^2.2.4"
+ jest-worker: "npm:^29.7.0"
+ micromatch: "npm:^4.0.4"
+ nullthrows: "npm:^1.1.1"
+ walker: "npm:^1.0.7"
+ checksum: 10/70ce4447c9eae21a7f06081e3999241f21476817f0dd242fcb9591696cf93b0aabbf30dd5542b9b3fd9bfbdf5a7c02d863e0e0a4206175fd621cd7e476f8b16d
+ languageName: node
+ linkType: hard
+
+"metro-minify-terser@npm:0.81.5":
+ version: 0.81.5
+ resolution: "metro-minify-terser@npm:0.81.5"
+ dependencies:
+ flow-enums-runtime: "npm:^0.0.6"
+ terser: "npm:^5.15.0"
+ checksum: 10/4623743676e2bb8bb74b99bd2b2c26feb2509a8db5596f265e21042b43e84611f9025977ae298b8271644cb27e8da8a60b8dff791f57517b4bd2f5ae366f2945
+ languageName: node
+ linkType: hard
+
+"metro-resolver@npm:0.81.5":
+ version: 0.81.5
+ resolution: "metro-resolver@npm:0.81.5"
+ dependencies:
+ flow-enums-runtime: "npm:^0.0.6"
+ checksum: 10/3f20592755ac52db973a8c111adddad7430322b0b27c5d3d2cf2e2ff73e0693922f98b32a9a46941abc97b604cfb116b0e42c64f005e5c002460fe141a4e5847
+ 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"
+ dependencies:
+ "@babel/runtime": "npm:^7.25.0"
+ flow-enums-runtime: "npm:^0.0.6"
+ checksum: 10/86523a8fb5e1016d886f13f470e2aa0c3cd8f69ccab7094fb07676c05a7115f6e9af1f5fa377e80f426023816afcbf31468fb6a483181b054868358a25e4e59c
+ 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"
+ dependencies:
+ "@babel/traverse": "npm:^7.25.3"
+ "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3"
+ "@babel/types": "npm:^7.25.2"
+ flow-enums-runtime: "npm:^0.0.6"
+ invariant: "npm:^2.2.4"
+ metro-symbolicate: "npm:0.81.5"
+ nullthrows: "npm:^1.1.1"
+ ob1: "npm:0.81.5"
+ source-map: "npm:^0.5.6"
+ vlq: "npm:^1.0.0"
+ checksum: 10/6c77706ac5720a18dc7e25fc8b209de6fa386fcd2b9f79e3d88dbf360f5a0f4d4684950ee2243b1418b8e048a0aeb33c257875d1502a5813c1b330331c5b0eba
+ languageName: node
+ linkType: hard
+
+"metro-symbolicate@npm:0.81.5":
+ version: 0.81.5
+ resolution: "metro-symbolicate@npm:0.81.5"
+ dependencies:
+ flow-enums-runtime: "npm:^0.0.6"
+ invariant: "npm:^2.2.4"
+ metro-source-map: "npm:0.81.5"
+ nullthrows: "npm:^1.1.1"
+ source-map: "npm:^0.5.6"
+ vlq: "npm:^1.0.0"
+ bin:
+ metro-symbolicate: src/index.js
+ checksum: 10/184290f49eaa605e84157bc5d3befef219806bd13d14c5bcd4eeaac4e360fc880331b6af5a500980e93db274be1bc550439734849c5d20f384f1e12f3ce4aa28
+ languageName: node
+ linkType: hard
+
+"metro-transform-plugins@npm:0.81.5":
+ version: 0.81.5
+ resolution: "metro-transform-plugins@npm:0.81.5"
+ dependencies:
+ "@babel/core": "npm:^7.25.2"
+ "@babel/generator": "npm:^7.25.0"
+ "@babel/template": "npm:^7.25.0"
+ "@babel/traverse": "npm:^7.25.3"
+ flow-enums-runtime: "npm:^0.0.6"
+ nullthrows: "npm:^1.1.1"
+ checksum: 10/e5108548b5b3cdffb775f929a26df0c6bb804565bda35d1c2221b3ebf4d857002af47969c9b0a08c085f494986832b9f4c8851ab4bce842e7ab99464a5dfa1ca
+ languageName: node
+ linkType: hard
+
+"metro-transform-worker@npm:0.81.5":
+ version: 0.81.5
+ resolution: "metro-transform-worker@npm:0.81.5"
+ dependencies:
+ "@babel/core": "npm:^7.25.2"
+ "@babel/generator": "npm:^7.25.0"
+ "@babel/parser": "npm:^7.25.3"
+ "@babel/types": "npm:^7.25.2"
+ flow-enums-runtime: "npm:^0.0.6"
+ metro: "npm:0.81.5"
+ metro-babel-transformer: "npm:0.81.5"
+ metro-cache: "npm:0.81.5"
+ metro-cache-key: "npm:0.81.5"
+ metro-minify-terser: "npm:0.81.5"
+ metro-source-map: "npm:0.81.5"
+ metro-transform-plugins: "npm:0.81.5"
+ nullthrows: "npm:^1.1.1"
+ checksum: 10/70159c833192afa0c458b566801991034a171c5bc4ce7a0e2aed7a73614689a1a76738597e64d777cb00c9dbb3b21b59ea09473762eaa7a524681698242e8805
+ languageName: node
+ linkType: hard
+
+"metro@npm:0.81.5, metro@npm:^0.81.0":
+ version: 0.81.5
+ resolution: "metro@npm:0.81.5"
+ dependencies:
+ "@babel/code-frame": "npm:^7.24.7"
+ "@babel/core": "npm:^7.25.2"
+ "@babel/generator": "npm:^7.25.0"
+ "@babel/parser": "npm:^7.25.3"
+ "@babel/template": "npm:^7.25.0"
+ "@babel/traverse": "npm:^7.25.3"
+ "@babel/types": "npm:^7.25.2"
+ accepts: "npm:^1.3.7"
+ chalk: "npm:^4.0.0"
+ ci-info: "npm:^2.0.0"
+ connect: "npm:^3.6.5"
+ debug: "npm:^2.2.0"
+ error-stack-parser: "npm:^2.0.6"
+ flow-enums-runtime: "npm:^0.0.6"
+ graceful-fs: "npm:^4.2.4"
+ hermes-parser: "npm:0.25.1"
+ image-size: "npm:^1.0.2"
+ invariant: "npm:^2.2.4"
+ jest-worker: "npm:^29.7.0"
+ jsc-safe-url: "npm:^0.2.2"
+ lodash.throttle: "npm:^4.1.1"
+ metro-babel-transformer: "npm:0.81.5"
+ metro-cache: "npm:0.81.5"
+ metro-cache-key: "npm:0.81.5"
+ metro-config: "npm:0.81.5"
+ metro-core: "npm:0.81.5"
+ metro-file-map: "npm:0.81.5"
+ metro-resolver: "npm:0.81.5"
+ metro-runtime: "npm:0.81.5"
+ metro-source-map: "npm:0.81.5"
+ metro-symbolicate: "npm:0.81.5"
+ metro-transform-plugins: "npm:0.81.5"
+ metro-transform-worker: "npm:0.81.5"
+ mime-types: "npm:^2.1.27"
+ nullthrows: "npm:^1.1.1"
+ serialize-error: "npm:^2.1.0"
+ source-map: "npm:^0.5.6"
+ throat: "npm:^5.0.0"
+ ws: "npm:^7.5.10"
+ yargs: "npm:^17.6.2"
+ bin:
+ metro: src/cli.js
+ checksum: 10/c0f44bf151e1a9f7be7946047e638d03f9e42a67b6707a49ba4d737678c91fbca980732033ff0c6f0636e7fd7f127ad4bb22b62283c71ea6c2a3bb6f5d7545e9
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.4, micromatch@npm:^4.0.8":
+ version: 4.0.8
+ resolution: "micromatch@npm:4.0.8"
+ dependencies:
+ braces: "npm:^3.0.3"
+ picomatch: "npm:^2.3.1"
+ checksum: 10/6bf2a01672e7965eb9941d1f02044fad2bd12486b5553dc1116ff24c09a8723157601dc992e74c911d896175918448762df3b3fd0a6b61037dd1a9766ddfbf58
+ languageName: node
+ linkType: hard
+
+"mime-db@npm:1.52.0":
+ version: 1.52.0
+ resolution: "mime-db@npm:1.52.0"
+ checksum: 10/54bb60bf39e6f8689f6622784e668a3d7f8bed6b0d886f5c3c446cb3284be28b30bf707ed05d0fe44a036f8469976b2629bbea182684977b084de9da274694d7
+ languageName: node
+ linkType: hard
+
+"mime-db@npm:>= 1.43.0 < 2":
+ version: 1.54.0
+ resolution: "mime-db@npm:1.54.0"
+ checksum: 10/9e7834be3d66ae7f10eaa69215732c6d389692b194f876198dca79b2b90cbf96688d9d5d05ef7987b20f749b769b11c01766564264ea5f919c88b32a29011311
+ languageName: node
+ linkType: hard
+
+"mime-types@npm:^2.1.27, mime-types@npm:~2.1.34":
+ version: 2.1.35
+ resolution: "mime-types@npm:2.1.35"
+ dependencies:
+ mime-db: "npm:1.52.0"
+ checksum: 10/89aa9651b67644035de2784a6e665fc685d79aba61857e02b9c8758da874a754aed4a9aced9265f5ed1171fd934331e5516b84a7f0218031b6fa0270eca1e51a
+ languageName: node
+ linkType: hard
+
+"mime@npm:1.6.0":
+ version: 1.6.0
+ resolution: "mime@npm:1.6.0"
+ bin:
+ mime: cli.js
+ checksum: 10/b7d98bb1e006c0e63e2c91b590fe1163b872abf8f7ef224d53dd31499c2197278a6d3d0864c45239b1a93d22feaf6f9477e9fc847eef945838150b8c02d03170
+ languageName: node
+ linkType: hard
+
+"mime@npm:^2.4.1":
+ version: 2.6.0
+ resolution: "mime@npm:2.6.0"
+ bin:
+ mime: cli.js
+ checksum: 10/7da117808b5cd0203bb1b5e33445c330fe213f4d8ee2402a84d62adbde9716ca4fb90dd6d9ab4e77a4128c6c5c24a9c4c9f6a4d720b095b1b342132d02dba58d
+ languageName: node
+ linkType: hard
+
+"mimic-fn@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "mimic-fn@npm:2.1.0"
+ checksum: 10/d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
+ version: 3.1.5
+ resolution: "minimatch@npm:3.1.5"
+ dependencies:
+ brace-expansion: "npm:^1.1.7"
+ checksum: 10/b11a7ee5773cd34c1a0c8436cdbe910901018fb4b6cb47aa508a18d567f6efd2148507959e35fba798389b161b8604a2d704ccef751ea36bd4582f9852b7d63f
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^9.0.4":
+ version: 9.0.9
+ resolution: "minimatch@npm:9.0.9"
+ dependencies:
+ brace-expansion: "npm:^2.0.2"
+ checksum: 10/b91fad937deaffb68a45a2cb731ff3cff1c3baf9b6469c879477ed16f15c8f4ce39d63a3f75c2455107c2fdff0f3ab597d97dc09e2e93b883aafcf926ef0c8f9
+ languageName: node
+ linkType: hard
+
+"minimist@npm:^1.2.6":
+ version: 1.2.8
+ resolution: "minimist@npm:1.2.8"
+ checksum: 10/908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^7.0.4, minipass@npm:^7.1.2":
+ version: 7.1.3
+ resolution: "minipass@npm:7.1.3"
+ checksum: 10/175e4d5e20980c3cd316ae82d2c031c42f6c746467d8b1905b51060a0ba4461441a0c25bb67c025fd9617f9a3873e152c7b543c6b5ac83a1846be8ade80dffd6
+ languageName: node
+ linkType: hard
+
+"minizlib@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "minizlib@npm:3.1.0"
+ dependencies:
+ minipass: "npm:^7.1.2"
+ checksum: 10/f47365cc2cb7f078cbe7e046eb52655e2e7e97f8c0a9a674f4da60d94fb0624edfcec9b5db32e8ba5a99a5f036f595680ae6fe02a262beaa73026e505cc52f99
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:^0.5.1":
+ version: 0.5.6
+ resolution: "mkdirp@npm:0.5.6"
+ dependencies:
+ minimist: "npm:^1.2.6"
+ bin:
+ mkdirp: bin/cmd.js
+ checksum: 10/0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "mkdirp@npm:1.0.4"
+ bin:
+ mkdirp: bin/cmd.js
+ checksum: 10/d71b8dcd4b5af2fe13ecf3bd24070263489404fe216488c5ba7e38ece1f54daf219e72a833a3a2dc404331e870e9f44963a33399589490956bff003a3404d3b2
+ languageName: node
+ linkType: hard
+
+"ms@npm:2.0.0":
+ version: 2.0.0
+ resolution: "ms@npm:2.0.0"
+ checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4
+ languageName: node
+ linkType: hard
+
+"ms@npm:2.1.3, ms@npm:^2.1.3":
+ version: 2.1.3
+ resolution: "ms@npm:2.1.3"
+ checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
+ languageName: node
+ linkType: hard
+
+"nanoid@npm:^3.1.23":
+ version: 3.3.15
+ resolution: "nanoid@npm:3.3.15"
+ bin:
+ nanoid: bin/nanoid.cjs
+ checksum: 10/13c74a5208d455286f7af46f42ac9f3d7b821b8a719aff8dbd5ad3fb80399c0c63cdd1e92d046ea576e403bec05262fbb7e116beb4cfcd5b5483550372bd94b1
+ languageName: node
+ linkType: hard
+
+"natural-compare@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "natural-compare@npm:1.4.0"
+ checksum: 10/23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d
+ languageName: node
+ linkType: hard
+
+"negotiator@npm:0.6.3":
+ version: 0.6.3
+ resolution: "negotiator@npm:0.6.3"
+ checksum: 10/2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837
+ languageName: node
+ linkType: hard
+
+"negotiator@npm:~0.6.4":
+ version: 0.6.4
+ resolution: "negotiator@npm:0.6.4"
+ checksum: 10/d98c04a136583afd055746168f1067d58ce4bfe6e4c73ca1d339567f81ea1f7e665b5bd1e81f4771c67b6c2ea89b21cb2adaea2b16058c7dc31317778f931dab
+ languageName: node
+ linkType: hard
+
+"neo-async@npm:^2.5.0":
+ version: 2.6.2
+ resolution: "neo-async@npm:2.6.2"
+ checksum: 10/1a7948fea86f2b33ec766bc899c88796a51ba76a4afc9026764aedc6e7cde692a09067031e4a1bf6db4f978ccd99e7f5b6c03fe47ad9865c3d4f99050d67e002
+ languageName: node
+ linkType: hard
+
+"nocache@npm:^3.0.1":
+ version: 3.0.4
+ resolution: "nocache@npm:3.0.4"
+ checksum: 10/e980eac3c6c81ff6336728e10e798a251b48866822a3fbf98f74b800cafe2b1a8ac8f676a48ac454d4db9509cd501d72ffb9d5509c30b054b5d8800117a079fc
+ languageName: node
+ linkType: hard
+
+"node-dir@npm:^0.1.17":
+ version: 0.1.17
+ resolution: "node-dir@npm:0.1.17"
+ dependencies:
+ minimatch: "npm:^3.0.2"
+ checksum: 10/281fdea12d9c080a7250e5b5afefa3ab39426d40753ec8126a2d1e67f189b8824723abfed74f5d8549c5d78352d8c489fe08d0b067d7684c87c07283d38374a5
+ languageName: node
+ linkType: hard
+
+"node-exports-info@npm:^1.6.0":
+ version: 1.6.0
+ resolution: "node-exports-info@npm:1.6.0"
+ dependencies:
+ array.prototype.flatmap: "npm:^1.3.3"
+ es-errors: "npm:^1.3.0"
+ object.entries: "npm:^1.1.9"
+ semver: "npm:^6.3.1"
+ checksum: 10/0a1667d535f499ac1fe6c6d22f8146bc8b68abc76fa355856219202f6cf5f386027e0ff054e66a22d08be02acbc63fcdc9f98d0fbc97993f5eabc66408fdadad
+ languageName: node
+ linkType: hard
+
+"node-fetch@npm:^2.2.0":
+ version: 2.7.0
+ resolution: "node-fetch@npm:2.7.0"
+ dependencies:
+ whatwg-url: "npm:^5.0.0"
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ checksum: 10/b24f8a3dc937f388192e59bcf9d0857d7b6940a2496f328381641cb616efccc9866e89ec43f2ec956bbd6c3d3ee05524ce77fe7b29ccd34692b3a16f237d6676
+ languageName: node
+ linkType: hard
+
+"node-forge@npm:^1":
+ version: 1.4.0
+ resolution: "node-forge@npm:1.4.0"
+ checksum: 10/d70fd769768e646eda73343d4d4105ccb6869315d975905a22117431c04ae5b6df6c488e34ed275b1a66b50195a09b84b5c8aeca3b8605c20605fcb8e9f109d9
+ languageName: node
+ linkType: hard
+
+"node-gyp@npm:latest":
+ version: 13.0.0
+ resolution: "node-gyp@npm:13.0.0"
+ dependencies:
+ env-paths: "npm:^2.2.0"
+ exponential-backoff: "npm:^3.1.1"
+ graceful-fs: "npm:^4.2.6"
+ nopt: "npm:^10.0.0"
+ proc-log: "npm:^7.0.0"
+ semver: "npm:^7.3.5"
+ tar: "npm:^7.5.4"
+ tinyglobby: "npm:^0.2.12"
+ undici: "npm:^6.25.0"
+ which: "npm:^7.0.0"
+ bin:
+ node-gyp: bin/node-gyp.js
+ checksum: 10/12b7b0204d07493c347f59734aaee7531f41540c820ad0e40604e96838ab277f33fb1d70500283dbb66ee02182ebad231b6a13c75644d83e6c94c1ef28009c6a
+ languageName: node
+ linkType: hard
+
+"node-int64@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "node-int64@npm:0.4.0"
+ checksum: 10/b7afc2b65e56f7035b1a2eec57ae0fbdee7d742b1cdcd0f4387562b6527a011ab1cbe9f64cc8b3cca61e3297c9637c8bf61cec2e6b8d3a711d4b5267dfafbe02
+ languageName: node
+ linkType: hard
+
+"node-releases@npm:^2.0.48":
+ version: 2.0.48
+ resolution: "node-releases@npm:2.0.48"
+ checksum: 10/775cdbd4cfa7dbf663b70d51b1d0d03fd019ff942f9a6a40f2ea0ce62abb82c92b2b120c0b52d1b5143f73bf49691983fed4f6e4d6c5a3d872092a60336096ff
+ languageName: node
+ linkType: hard
+
+"node-stream-zip@npm:^1.9.1":
+ version: 1.15.0
+ resolution: "node-stream-zip@npm:1.15.0"
+ checksum: 10/3fb56144d23456e1b42fe9d24656999e4ef6aeccce3cae43fc97ba6c341ee448aeceb4dc8fb57ee78eab1a6da49dd46c9650fdb2f16b137630a335df9560c647
+ languageName: node
+ linkType: hard
+
+"nopt@npm:^10.0.0":
+ version: 10.0.1
+ resolution: "nopt@npm:10.0.1"
+ dependencies:
+ abbrev: "npm:^5.0.0"
+ bin:
+ nopt: bin/nopt.js
+ checksum: 10/8021371365e78a2cbab015cac50d8449aa2cc411f0b8f2edb466c1336c3dfee4e61c5bf5bde22ee7dcea80d5f4510a7a8705ed3646c8d782f28b550c62bc4fdf
+ languageName: node
+ linkType: hard
+
+"normalize-path@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "normalize-path@npm:3.0.0"
+ checksum: 10/88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20
+ languageName: node
+ linkType: hard
+
+"npm-run-path@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "npm-run-path@npm:4.0.1"
+ dependencies:
+ path-key: "npm:^3.0.0"
+ checksum: 10/5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23
+ languageName: node
+ linkType: hard
+
+"nullthrows@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "nullthrows@npm:1.1.1"
+ checksum: 10/c7cf377a095535dc301d81cf7959d3784d090a609a2a4faa40b6121a0c1d7f70d3a3aa534a34ab852e8553b66848ec503c28f2c19efd617ed564dc07dfbb6d33
+ languageName: node
+ linkType: hard
+
+"ob1@npm:0.81.5":
+ version: 0.81.5
+ resolution: "ob1@npm:0.81.5"
+ dependencies:
+ flow-enums-runtime: "npm:^0.0.6"
+ checksum: 10/249ad576be69151a3099207b35b2f6da5c6bb39dfacb9295028ebdc182c2f61f6544d1f6f167af759a77174ab19d8997d1ae6aecdbd9bdc293b2826067e66c5b
+ languageName: node
+ linkType: hard
+
+"object-assign@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "object-assign@npm:4.1.1"
+ checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
+ languageName: node
+ linkType: hard
+
+"object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4":
+ version: 1.13.4
+ resolution: "object-inspect@npm:1.13.4"
+ checksum: 10/aa13b1190ad3e366f6c83ad8a16ed37a19ed57d267385aa4bfdccda833d7b90465c057ff6c55d035a6b2e52c1a2295582b294217a0a3a1ae7abdd6877ef781fb
+ languageName: node
+ linkType: hard
+
+"object-keys@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "object-keys@npm:1.1.1"
+ checksum: 10/3d81d02674115973df0b7117628ea4110d56042e5326413e4b4313f0bcdf7dd78d4a3acef2c831463fa3796a66762c49daef306f4a0ea1af44877d7086d73bde
+ languageName: node
+ linkType: hard
+
+"object.assign@npm:^4.1.4, object.assign@npm:^4.1.7":
+ version: 4.1.7
+ resolution: "object.assign@npm:4.1.7"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.3"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ has-symbols: "npm:^1.1.0"
+ object-keys: "npm:^1.1.1"
+ checksum: 10/3fe28cdd779f2a728a9a66bd688679ba231a2b16646cd1e46b528fe7c947494387dda4bc189eff3417f3717ef4f0a8f2439347cf9a9aa3cef722fbfd9f615587
+ languageName: node
+ linkType: hard
+
+"object.entries@npm:^1.1.9":
+ version: 1.1.9
+ resolution: "object.entries@npm:1.1.9"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.4"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.1.1"
+ checksum: 10/24163ab1e1e013796693fc5f5d349e8b3ac0b6a34a7edb6c17d3dd45c6a8854145780c57d302a82512c1582f63720f4b4779d6c1cfba12cbb1420b978802d8a3
+ languageName: node
+ linkType: hard
+
+"object.fromentries@npm:^2.0.8":
+ version: 2.0.8
+ resolution: "object.fromentries@npm:2.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10/5b2e80f7af1778b885e3d06aeb335dcc86965e39464671adb7167ab06ac3b0f5dd2e637a90d8ebd7426d69c6f135a4753ba3dd7d0fe2a7030cf718dcb910fd92
+ languageName: node
+ linkType: hard
+
+"object.values@npm:^1.1.6, object.values@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "object.values@npm:1.2.1"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.3"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10/f5ec9eccdefeaaa834b089c525663436812a65ff13de7964a1c3a9110f32054f2d58aa476a645bb14f75a79f3fe1154fb3e7bfdae7ac1e80affe171b2ef74bce
+ languageName: node
+ linkType: hard
+
+"on-finished@npm:~2.3.0":
+ version: 2.3.0
+ resolution: "on-finished@npm:2.3.0"
+ dependencies:
+ ee-first: "npm:1.1.1"
+ checksum: 10/1db595bd963b0124d6fa261d18320422407b8f01dc65863840f3ddaaf7bcad5b28ff6847286703ca53f4ec19595bd67a2f1253db79fc4094911ec6aa8df1671b
+ languageName: node
+ linkType: hard
+
+"on-finished@npm:~2.4.1":
+ version: 2.4.1
+ resolution: "on-finished@npm:2.4.1"
+ dependencies:
+ ee-first: "npm:1.1.1"
+ checksum: 10/8e81472c5028125c8c39044ac4ab8ba51a7cdc19a9fbd4710f5d524a74c6d8c9ded4dd0eed83f28d3d33ac1d7a6a439ba948ccb765ac6ce87f30450a26bfe2ea
+ languageName: node
+ linkType: hard
+
+"on-headers@npm:~1.1.0":
+ version: 1.1.0
+ resolution: "on-headers@npm:1.1.0"
+ checksum: 10/98aa64629f986fb8cc4517dd8bede73c980e31208cba97f4442c330959f60ced3dc6214b83420491f5111fc7c4f4343abe2ea62c85f505cf041d67850f238776
+ languageName: node
+ linkType: hard
+
+"once@npm:^1.3.0":
+ version: 1.4.0
+ resolution: "once@npm:1.4.0"
+ dependencies:
+ wrappy: "npm:1"
+ checksum: 10/cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68
+ languageName: node
+ linkType: hard
+
+"onetime@npm:^5.1.0, onetime@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "onetime@npm:5.1.2"
+ dependencies:
+ mimic-fn: "npm:^2.1.0"
+ checksum: 10/e9fd0695a01cf226652f0385bf16b7a24153dbbb2039f764c8ba6d2306a8506b0e4ce570de6ad99c7a6eb49520743afdb66edd95ee979c1a342554ed49a9aadd
+ languageName: node
+ linkType: hard
+
+"open@npm:^6.2.0":
+ version: 6.4.0
+ resolution: "open@npm:6.4.0"
+ dependencies:
+ is-wsl: "npm:^1.1.0"
+ checksum: 10/9b1cfda7a649f432c8bfa281796d28b5a49f7afcb470d9054ca94c7d0b1e8273432f55134dd953eb593ffce244de1b701ee89e6fe9c25ea8215eb1ca1ae8a1a9
+ languageName: node
+ linkType: hard
+
+"open@npm:^7.0.3":
+ version: 7.4.2
+ resolution: "open@npm:7.4.2"
+ dependencies:
+ is-docker: "npm:^2.0.0"
+ is-wsl: "npm:^2.1.1"
+ checksum: 10/4fc02ed3368dcd5d7247ad3566433ea2695b0713b041ebc0eeb2f0f9e5d4e29fc2068f5cdd500976b3464e77fe8b61662b1b059c73233ccc601fe8b16d6c1cd6
+ languageName: node
+ linkType: hard
+
+"optionator@npm:^0.9.3":
+ version: 0.9.4
+ resolution: "optionator@npm:0.9.4"
+ dependencies:
+ deep-is: "npm:^0.1.3"
+ fast-levenshtein: "npm:^2.0.6"
+ levn: "npm:^0.4.1"
+ prelude-ls: "npm:^1.2.1"
+ type-check: "npm:^0.4.0"
+ word-wrap: "npm:^1.2.5"
+ checksum: 10/a8398559c60aef88d7f353a4f98dcdff6090a4e70f874c827302bf1213d9106a1c4d5fcb68dacb1feb3c30a04c4102f41047aa55d4c576b863d6fc876e001af6
+ languageName: node
+ linkType: hard
+
+"ora@npm:^5.4.1":
+ version: 5.4.1
+ resolution: "ora@npm:5.4.1"
+ dependencies:
+ bl: "npm:^4.1.0"
+ chalk: "npm:^4.1.0"
+ cli-cursor: "npm:^3.1.0"
+ cli-spinners: "npm:^2.5.0"
+ is-interactive: "npm:^1.0.0"
+ is-unicode-supported: "npm:^0.1.0"
+ log-symbols: "npm:^4.1.0"
+ strip-ansi: "npm:^6.0.0"
+ wcwidth: "npm:^1.0.1"
+ checksum: 10/8d071828f40090a8e1c6e8f350c6eb065808e9ab2b3e57fa37e0d5ae78cb46dac00117c8f12c3c8b8da2923454afbd8265e08c10b69881170c5b269f451e7fef
+ languageName: node
+ linkType: hard
+
+"own-keys@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "own-keys@npm:1.0.1"
+ dependencies:
+ get-intrinsic: "npm:^1.2.6"
+ object-keys: "npm:^1.1.1"
+ safe-push-apply: "npm:^1.0.0"
+ checksum: 10/ab4bb3b8636908554fc19bf899e225444195092864cb61503a0d048fdaf662b04be2605b636a4ffeaf6e8811f6fcfa8cbb210ec964c0eb1a41eb853e1d5d2f41
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0":
+ version: 2.3.0
+ resolution: "p-limit@npm:2.3.0"
+ dependencies:
+ p-try: "npm:^2.0.0"
+ checksum: 10/84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "p-limit@npm:3.1.0"
+ dependencies:
+ yocto-queue: "npm:^0.1.0"
+ checksum: 10/7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360
+ languageName: node
+ linkType: hard
+
+"p-locate@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "p-locate@npm:3.0.0"
+ dependencies:
+ p-limit: "npm:^2.0.0"
+ checksum: 10/83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae
+ languageName: node
+ linkType: hard
+
+"p-locate@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "p-locate@npm:4.1.0"
+ dependencies:
+ p-limit: "npm:^2.2.0"
+ checksum: 10/513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870
+ languageName: node
+ linkType: hard
+
+"p-locate@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "p-locate@npm:5.0.0"
+ dependencies:
+ p-limit: "npm:^3.0.2"
+ checksum: 10/1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3
+ languageName: node
+ linkType: hard
+
+"p-try@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "p-try@npm:2.2.0"
+ checksum: 10/f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae
+ languageName: node
+ linkType: hard
+
+"parent-module@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "parent-module@npm:1.0.1"
+ dependencies:
+ callsites: "npm:^3.0.0"
+ checksum: 10/6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff
+ languageName: node
+ linkType: hard
+
+"parse-json@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "parse-json@npm:4.0.0"
+ dependencies:
+ error-ex: "npm:^1.3.1"
+ json-parse-better-errors: "npm:^1.0.1"
+ checksum: 10/0fe227d410a61090c247e34fa210552b834613c006c2c64d9a05cfe9e89cf8b4246d1246b1a99524b53b313e9ac024438d0680f67e33eaed7e6f38db64cfe7b5
+ languageName: node
+ linkType: hard
+
+"parse-json@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "parse-json@npm:5.2.0"
+ dependencies:
+ "@babel/code-frame": "npm:^7.0.0"
+ error-ex: "npm:^1.3.1"
+ json-parse-even-better-errors: "npm:^2.3.0"
+ lines-and-columns: "npm:^1.1.6"
+ checksum: 10/62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2
+ languageName: node
+ linkType: hard
+
+"parseurl@npm:~1.3.3":
+ version: 1.3.3
+ resolution: "parseurl@npm:1.3.3"
+ checksum: 10/407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "path-exists@npm:3.0.0"
+ checksum: 10/96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-exists@npm:4.0.0"
+ checksum: 10/505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1
+ languageName: node
+ linkType: hard
+
+"path-is-absolute@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "path-is-absolute@npm:1.0.1"
+ checksum: 10/060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^3.0.0, path-key@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "path-key@npm:3.1.1"
+ checksum: 10/55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020
+ languageName: node
+ linkType: hard
+
+"path-parse@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 10/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a
+ languageName: node
+ linkType: hard
+
+"path-type@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-type@npm:4.0.0"
+ checksum: 10/5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45
+ languageName: node
+ linkType: hard
+
+"picocolors@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "picocolors@npm:1.1.1"
+ checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
+ version: 2.3.2
+ resolution: "picomatch@npm:2.3.2"
+ checksum: 10/b788ef8148a2415b9dec12f0bb350ae6a5830f8f1950e472abc2f5225494debf7d1b75eb031df0ceaea9e8ec3e7bad599e8dbf3c60d61b42be429ba41bff4426
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^4.0.4":
+ version: 4.0.4
+ resolution: "picomatch@npm:4.0.4"
+ checksum: 10/f6ef80a3590827ce20378ae110ac78209cc4f74d39236370f1780f957b7ee41c12acde0e4651b90f39983506fd2f5e449994716f516db2e9752924aff8de93ce
+ languageName: node
+ linkType: hard
+
+"pify@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "pify@npm:4.0.1"
+ checksum: 10/8b97cbf9dc6d4c1320cc238a2db0fc67547f9dc77011729ff353faf34f1936ea1a4d7f3c63b2f4980b253be77bcc72ea1e9e76ee3fd53cce2aafb6a8854d07ec
+ languageName: node
+ linkType: hard
+
+"pirates@npm:^4.0.4, pirates@npm:^4.0.6":
+ version: 4.0.7
+ resolution: "pirates@npm:4.0.7"
+ checksum: 10/2427f371366081ae42feb58214f04805d6b41d6b84d74480ebcc9e0ddbd7105a139f7c653daeaf83ad8a1a77214cf07f64178e76de048128fec501eab3305a96
+ languageName: node
+ linkType: hard
+
+"pkg-dir@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "pkg-dir@npm:3.0.0"
+ dependencies:
+ find-up: "npm:^3.0.0"
+ checksum: 10/70c9476ffefc77552cc6b1880176b71ad70bfac4f367604b2b04efd19337309a4eec985e94823271c7c0e83946fa5aeb18cd360d15d10a5d7533e19344bfa808
+ languageName: node
+ linkType: hard
+
+"pkg-dir@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "pkg-dir@npm:4.2.0"
+ dependencies:
+ find-up: "npm:^4.0.0"
+ checksum: 10/9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6
+ languageName: node
+ linkType: hard
+
+"possible-typed-array-names@npm:^1.0.0, possible-typed-array-names@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "possible-typed-array-names@npm:1.1.0"
+ checksum: 10/2f44137b8d3dd35f4a7ba7469eec1cd9cfbb46ec164b93a5bc1f4c3d68599c9910ee3b91da1d28b4560e9cc8414c3cd56fedc07259c67e52cc774476270d3302
+ languageName: node
+ linkType: hard
+
+"prelude-ls@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "prelude-ls@npm:1.2.1"
+ checksum: 10/0b9d2c76801ca652a7f64892dd37b7e3fab149a37d2424920099bf894acccc62abb4424af2155ab36dea8744843060a2d8ddc983518d0b1e22265a22324b72ed
+ languageName: node
+ linkType: hard
+
+"prettier@npm:2.8.8":
+ version: 2.8.8
+ resolution: "prettier@npm:2.8.8"
+ bin:
+ prettier: bin-prettier.js
+ checksum: 10/00cdb6ab0281f98306cd1847425c24cbaaa48a5ff03633945ab4c701901b8e96ad558eb0777364ffc312f437af9b5a07d0f45346266e8245beaf6247b9c62b24
+ languageName: node
+ linkType: hard
+
+"pretty-format@npm:^26.6.2":
+ version: 26.6.2
+ resolution: "pretty-format@npm:26.6.2"
+ dependencies:
+ "@jest/types": "npm:^26.6.2"
+ ansi-regex: "npm:^5.0.0"
+ ansi-styles: "npm:^4.0.0"
+ react-is: "npm:^17.0.1"
+ checksum: 10/94a4c661bf77ed7c448d064c5af35796acbd972a33cff8a38030547ac396087bcd47f2f6e530824486cf4c8e9d9342cc8dd55fd068f135b19325b51e0cd06f87
+ languageName: node
+ linkType: hard
+
+"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "pretty-format@npm:29.7.0"
+ dependencies:
+ "@jest/schemas": "npm:^29.6.3"
+ ansi-styles: "npm:^5.0.0"
+ react-is: "npm:^18.0.0"
+ checksum: 10/dea96bc83c83cd91b2bfc55757b6b2747edcaac45b568e46de29deee80742f17bc76fe8898135a70d904f4928eafd8bb693cd1da4896e8bdd3c5e82cadf1d2bb
+ languageName: node
+ linkType: hard
+
+"proc-log@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "proc-log@npm:7.0.0"
+ checksum: 10/97cd9f4a8a0d84e42ee91e106e5ba5edcb954521e8dbe26ee6ad31396e5c12cc2be5e5b6be7b53fa5a69959afbacd32719106e2d6f45802e34b31d9a3a01ec20
+ languageName: node
+ linkType: hard
+
+"promise@npm:^8.3.0":
+ version: 8.3.0
+ resolution: "promise@npm:8.3.0"
+ dependencies:
+ asap: "npm:~2.0.6"
+ checksum: 10/55e9d0d723c66810966bc055c6c77a3658c0af7e4a8cc88ea47aeaf2949ca0bd1de327d9c631df61236f5406ad478384fa19a77afb3f88c0303eba9e5eb0a8d8
+ languageName: node
+ linkType: hard
+
+"prompts@npm:^2.0.1, prompts@npm:^2.4.2":
+ version: 2.4.2
+ resolution: "prompts@npm:2.4.2"
+ dependencies:
+ kleur: "npm:^3.0.3"
+ sisteransi: "npm:^1.0.5"
+ checksum: 10/c52536521a4d21eff4f2f2aa4572446cad227464066365a7167e52ccf8d9839c099f9afec1aba0eed3d5a2514b3e79e0b3e7a1dc326b9acde6b75d27ed74b1a9
+ languageName: node
+ linkType: hard
+
+"prop-types@npm:15.8.1, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1":
+ version: 15.8.1
+ resolution: "prop-types@npm:15.8.1"
+ dependencies:
+ loose-envify: "npm:^1.4.0"
+ object-assign: "npm:^4.1.1"
+ react-is: "npm:^16.13.1"
+ checksum: 10/7d959caec002bc964c86cdc461ec93108b27337dabe6192fb97d69e16a0c799a03462713868b40749bfc1caf5f57ef80ac3e4ffad3effa636ee667582a75e2c0
+ languageName: node
+ linkType: hard
+
+"punycode@npm:^2.1.0":
+ version: 2.3.1
+ resolution: "punycode@npm:2.3.1"
+ checksum: 10/febdc4362bead22f9e2608ff0171713230b57aff9dddc1c273aa2a651fbd366f94b7d6a71d78342a7c0819906750351ca7f2edd26ea41b626d87d6a13d1bd059
+ languageName: node
+ linkType: hard
+
+"pure-rand@npm:^6.0.0":
+ version: 6.1.0
+ resolution: "pure-rand@npm:6.1.0"
+ checksum: 10/256aa4bcaf9297256f552914e03cbdb0039c8fe1db11fa1e6d3f80790e16e563eb0a859a1e61082a95e224fc0c608661839439f8ecc6a3db4e48d46d99216ee4
+ languageName: node
+ linkType: hard
+
+"query-string@npm:^7.1.3":
+ version: 7.1.3
+ resolution: "query-string@npm:7.1.3"
+ dependencies:
+ decode-uri-component: "npm:^0.2.2"
+ filter-obj: "npm:^1.1.0"
+ split-on-first: "npm:^1.0.0"
+ strict-uri-encode: "npm:^2.0.0"
+ checksum: 10/3b6f2c167e76ca4094c5f1a9eb276efcbb9ebfd8b1a28c413f3c4e4e7d6428c8187bf46c8cbc9f92a229369dd0015de10a7fd712c8cee98d5d84c2ac6140357e
+ languageName: node
+ linkType: hard
+
+"queue-microtask@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "queue-microtask@npm:1.2.3"
+ checksum: 10/72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b
+ languageName: node
+ linkType: hard
+
+"queue@npm:6.0.2":
+ version: 6.0.2
+ resolution: "queue@npm:6.0.2"
+ dependencies:
+ inherits: "npm:~2.0.3"
+ checksum: 10/3437954ef1442c86ff01a0fbe3dc6222838823b1ca97f37eff651bc20b868c0c2904424ef2c0d44cba46055f54b578f92866e573125dc9a5e8823d751e4d1585
+ languageName: node
+ linkType: hard
+
+"range-parser@npm:~1.2.1":
+ version: 1.2.1
+ resolution: "range-parser@npm:1.2.1"
+ checksum: 10/ce21ef2a2dd40506893157970dc76e835c78cf56437e26e19189c48d5291e7279314477b06ac38abd6a401b661a6840f7b03bd0b1249da9b691deeaa15872c26
+ languageName: node
+ linkType: hard
+
+"react-devtools-core@npm:^5.3.1":
+ version: 5.3.2
+ resolution: "react-devtools-core@npm:5.3.2"
+ dependencies:
+ shell-quote: "npm:^1.6.1"
+ ws: "npm:^7"
+ checksum: 10/640123f775daeb2176ebc9caf85b1cb9dbb147cbb607f221254ac4967530ddf96332a582d5b169c840984220596a23780ed6f9b37c37461160e9b623f5f4caee
+ languageName: node
+ linkType: hard
+
+"react-freeze@npm:^1.0.0":
+ version: 1.0.4
+ resolution: "react-freeze@npm:1.0.4"
+ peerDependencies:
+ react: ">=17.0.0"
+ checksum: 10/1dc433319341ec3dca84513c4197ef4f4c8232604d35f83546a8abfb41d9591f934b66aaaa4dc3dc8b1b65f488705a2a48ae6c1d9792660119a9cdedeab4ca8f
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^16.12.0 || ^17.0.0 || ^18.0.0, react-is@npm:^18.0.0, react-is@npm:^18.3.1":
+ version: 18.3.1
+ resolution: "react-is@npm:18.3.1"
+ checksum: 10/d5f60c87d285af24b1e1e7eaeb123ec256c3c8bdea7061ab3932e3e14685708221bf234ec50b21e10dd07f008f1b966a2730a0ce4ff67905b3872ff2042aec22
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^16.13.0, react-is@npm:^16.13.1, react-is@npm:^16.7.0":
+ version: 16.13.1
+ resolution: "react-is@npm:16.13.1"
+ checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^17.0.1":
+ version: 17.0.2
+ resolution: "react-is@npm:17.0.2"
+ checksum: 10/73b36281e58eeb27c9cc6031301b6ae19ecdc9f18ae2d518bdb39b0ac564e65c5779405d623f1df9abf378a13858b79442480244bd579968afc1faf9a2ce5e05
+ languageName: node
+ linkType: hard
+
+"react-native-gesture-handler@npm:2.20.2":
+ version: 2.20.2
+ resolution: "react-native-gesture-handler@npm:2.20.2"
+ dependencies:
+ "@egjs/hammerjs": "npm:^2.0.17"
+ hoist-non-react-statics: "npm:^3.3.0"
+ invariant: "npm:^2.2.4"
+ prop-types: "npm:^15.7.2"
+ peerDependencies:
+ react: "*"
+ react-native: "*"
+ checksum: 10/64ab125c539ca8c275f5d305f5e11d366e6098d9e24e3cab25cbfd46a8d618fc3925ea86219972ccc63364e578384bb0120a72562312e596894a04ee0518a363
+ languageName: node
+ linkType: hard
+
+"react-native-reanimated@npm:3.16.7":
+ version: 3.16.7
+ resolution: "react-native-reanimated@npm:3.16.7"
+ dependencies:
+ "@babel/plugin-transform-arrow-functions": "npm:^7.0.0-0"
+ "@babel/plugin-transform-class-properties": "npm:^7.0.0-0"
+ "@babel/plugin-transform-classes": "npm:^7.0.0-0"
+ "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.0.0-0"
+ "@babel/plugin-transform-optional-chaining": "npm:^7.0.0-0"
+ "@babel/plugin-transform-shorthand-properties": "npm:^7.0.0-0"
+ "@babel/plugin-transform-template-literals": "npm:^7.0.0-0"
+ "@babel/plugin-transform-unicode-regex": "npm:^7.0.0-0"
+ "@babel/preset-typescript": "npm:^7.16.7"
+ convert-source-map: "npm:^2.0.0"
+ invariant: "npm:^2.2.4"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ react: "*"
+ react-native: "*"
+ checksum: 10/37099178efca335ea74bb0fc1b50ad898c2b24b1ed99e67bfb90e8898e1fadace2d2765a275d7d23b9c141d19fc673bb4b78dcb9f47d08921dd911c76b5040aa
+ languageName: node
+ linkType: hard
+
+"react-native-safe-area-context@npm:^4.14.0":
+ version: 4.14.1
+ resolution: "react-native-safe-area-context@npm:4.14.1"
+ peerDependencies:
+ react: "*"
+ react-native: "*"
+ checksum: 10/20f744176b22b67b08b061ac8ea4d56c11539da672e80f766e48a8304a0a19c9ba0c9a903d92b94631888dd827701785b5ac49cec61c2994262708a479701a8d
+ languageName: node
+ linkType: hard
+
+"react-native-screens@npm:~3.34.0":
+ version: 3.34.1
+ resolution: "react-native-screens@npm:3.34.1"
+ dependencies:
+ react-freeze: "npm:^1.0.0"
+ warn-once: "npm:^0.1.0"
+ peerDependencies:
+ react: "*"
+ react-native: "*"
+ checksum: 10/13128ddca9d58683fb1de84905c06bd03b40091acaeebc66dc51a6e2c5ec5bba906a3d699b86f48154fed583e1a277b124953fab7f7b39d124ab546de0698978
+ languageName: node
+ linkType: hard
+
+"react-native-webview@npm:^13.12.5":
+ version: 13.17.0
+ resolution: "react-native-webview@npm:13.17.0"
+ dependencies:
+ "@typescript/native-preview": "npm:^7.0.0-dev.20260301.1"
+ escape-string-regexp: "npm:^4.0.0"
+ invariant: "npm:2.2.4"
+ peerDependencies:
+ react: "*"
+ react-native: "*"
+ checksum: 10/60ebb1f2519f554babce01c72d308cac9cbb1f86d5bfd7e9a8d2b89e26aa2adec3f514a296142f3020357ded3203009d716fbed204e89298449bb3b78bda955d
+ languageName: node
+ linkType: hard
+
+"react-native@npm:0.76.6":
+ version: 0.76.6
+ resolution: "react-native@npm:0.76.6"
+ dependencies:
+ "@jest/create-cache-key-function": "npm:^29.6.3"
+ "@react-native/assets-registry": "npm:0.76.6"
+ "@react-native/codegen": "npm:0.76.6"
+ "@react-native/community-cli-plugin": "npm:0.76.6"
+ "@react-native/gradle-plugin": "npm:0.76.6"
+ "@react-native/js-polyfills": "npm:0.76.6"
+ "@react-native/normalize-colors": "npm:0.76.6"
+ "@react-native/virtualized-lists": "npm:0.76.6"
+ abort-controller: "npm:^3.0.0"
+ anser: "npm:^1.4.9"
+ ansi-regex: "npm:^5.0.0"
+ babel-jest: "npm:^29.7.0"
+ babel-plugin-syntax-hermes-parser: "npm:^0.23.1"
+ base64-js: "npm:^1.5.1"
+ chalk: "npm:^4.0.0"
+ commander: "npm:^12.0.0"
+ event-target-shim: "npm:^5.0.1"
+ flow-enums-runtime: "npm:^0.0.6"
+ glob: "npm:^7.1.1"
+ invariant: "npm:^2.2.4"
+ jest-environment-node: "npm:^29.6.3"
+ jsc-android: "npm:^250231.0.0"
+ memoize-one: "npm:^5.0.0"
+ metro-runtime: "npm:^0.81.0"
+ metro-source-map: "npm:^0.81.0"
+ mkdirp: "npm:^0.5.1"
+ nullthrows: "npm:^1.1.1"
+ pretty-format: "npm:^29.7.0"
+ promise: "npm:^8.3.0"
+ react-devtools-core: "npm:^5.3.1"
+ react-refresh: "npm:^0.14.0"
+ regenerator-runtime: "npm:^0.13.2"
+ scheduler: "npm:0.24.0-canary-efb381bbf-20230505"
+ semver: "npm:^7.1.3"
+ stacktrace-parser: "npm:^0.1.10"
+ whatwg-fetch: "npm:^3.0.0"
+ ws: "npm:^6.2.3"
+ yargs: "npm:^17.6.2"
+ peerDependencies:
+ "@types/react": ^18.2.6
+ react: ^18.2.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ bin:
+ react-native: cli.js
+ checksum: 10/81a613fb10e5277d1a780dc6dd6b43ebb1bb6a5e576b3334a844b57fa80f8cc45fec35b47e05d168786345def0a9f31b953a151bd79d0e9af1651beb9e7ab9ee
+ languageName: node
+ linkType: hard
+
+"react-refresh@npm:^0.14.0":
+ version: 0.14.2
+ resolution: "react-refresh@npm:0.14.2"
+ checksum: 10/512abf97271ab8623486061be04b608c39d932e3709f9af1720b41573415fa4993d0009fa5138b6705b60a98f4102f744d4e26c952b14f41a0e455521c6be4cc
+ languageName: node
+ linkType: hard
+
+"react-shallow-renderer@npm:^16.15.0":
+ version: 16.15.0
+ resolution: "react-shallow-renderer@npm:16.15.0"
+ dependencies:
+ object-assign: "npm:^4.1.1"
+ react-is: "npm:^16.12.0 || ^17.0.0 || ^18.0.0"
+ peerDependencies:
+ react: ^16.0.0 || ^17.0.0 || ^18.0.0
+ checksum: 10/06457fe5bcaa44aeca998905b6849304742ea1cc2d3841e4a0964c745ff392bc4dec07f8c779f317faacce3a0bf6f84e15020ac0fa81adb931067dbb0baf707b
+ languageName: node
+ linkType: hard
+
+"react-test-renderer@npm:18.3.1":
+ version: 18.3.1
+ resolution: "react-test-renderer@npm:18.3.1"
+ dependencies:
+ react-is: "npm:^18.3.1"
+ react-shallow-renderer: "npm:^16.15.0"
+ scheduler: "npm:^0.23.2"
+ peerDependencies:
+ react: ^18.3.1
+ checksum: 10/d53137315c677bdfba702a7179a69828233fc7635ae1e0c03b203923d643400ace72b343cb3dd3dafba8911c20bef53f55bff7aa2e4ddff3ccc423fdd9deeee2
+ languageName: node
+ linkType: hard
+
+"react@npm:18.3.1":
+ version: 18.3.1
+ resolution: "react@npm:18.3.1"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ checksum: 10/261137d3f3993eaa2368a83110466fc0e558bc2c7f7ae7ca52d94f03aac945f45146bd85e5f481044db1758a1dbb57879e2fcdd33924e2dde1bdc550ce73f7bf
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:^3.4.0":
+ version: 3.6.2
+ resolution: "readable-stream@npm:3.6.2"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ string_decoder: "npm:^1.1.1"
+ util-deprecate: "npm:^1.0.1"
+ checksum: 10/d9e3e53193adcdb79d8f10f2a1f6989bd4389f5936c6f8b870e77570853561c362bee69feca2bbb7b32368ce96a85504aa4cedf7cf80f36e6a9de30d64244048
+ languageName: node
+ linkType: hard
+
+"readline@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "readline@npm:1.3.0"
+ checksum: 10/2cb7c274333fe1ed55e1bd06c670a32bd9eae5324d8e1fafb9af5c128dfde85601d59defe47947788b0682d5e9efeae6b88ea5fe233d5236a02f382a0b0ad4c3
+ languageName: node
+ linkType: hard
+
+"recast@npm:^0.21.0":
+ version: 0.21.5
+ resolution: "recast@npm:0.21.5"
+ dependencies:
+ ast-types: "npm:0.15.2"
+ esprima: "npm:~4.0.0"
+ source-map: "npm:~0.6.1"
+ tslib: "npm:^2.0.1"
+ checksum: 10/b41da2bcf7e705511db2f27d17420ace027de8dd167de9f19190d4988a1f80d112f60c095101ac2f145c8657ddde0c5133eb71df20504efaf3fd9d76ad07e15d
+ languageName: node
+ linkType: hard
+
+"recyclerlistview@npm:^4.2.0":
+ version: 4.2.3
+ resolution: "recyclerlistview@npm:4.2.3"
+ dependencies:
+ lodash.debounce: "npm:4.0.8"
+ prop-types: "npm:15.8.1"
+ ts-object-utils: "npm:0.0.5"
+ peerDependencies:
+ react: ">= 15.2.1"
+ react-native: ">= 0.30.0"
+ checksum: 10/a759db18297cb2dde362c448763983d84130b25b2bead2db4da525c0b79ce67ae8a6433f83a6f6cd32c42bbe7d78bc29a4d5f8b59da6eda27a49968588d9433b
+ languageName: node
+ linkType: hard
+
+"reflect.getprototypeof@npm:^1.0.10, reflect.getprototypeof@npm:^1.0.9":
+ version: 1.0.10
+ resolution: "reflect.getprototypeof@npm:1.0.10"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.9"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.7"
+ get-proto: "npm:^1.0.1"
+ which-builtin-type: "npm:^1.2.1"
+ checksum: 10/80a4e2be716f4fe46a89a08ccad0863b47e8ce0f49616cab2d65dab0fbd53c6fdba0f52935fd41d37a2e4e22355c272004f920d63070de849f66eea7aeb4a081
+ languageName: node
+ linkType: hard
+
+"regenerate-unicode-properties@npm:^10.2.2":
+ version: 10.2.2
+ resolution: "regenerate-unicode-properties@npm:10.2.2"
+ dependencies:
+ regenerate: "npm:^1.4.2"
+ checksum: 10/5041ee31185c4700de9dd76783fab9def51c412751190d523d621db5b8e35a6c2d91f1642c12247e7d94f84b8ae388d044baac1e88fc2ba0ac215ca8dc7bed38
+ languageName: node
+ linkType: hard
+
+"regenerate@npm:^1.4.2":
+ version: 1.4.2
+ resolution: "regenerate@npm:1.4.2"
+ checksum: 10/dc6c95ae4b3ba6adbd7687cafac260eee4640318c7a95239d5ce847d9b9263979758389e862fe9c93d633b5792ea4ada5708df75885dc5aa05a309fa18140a87
+ languageName: node
+ linkType: hard
+
+"regenerator-runtime@npm:^0.13.2":
+ version: 0.13.11
+ resolution: "regenerator-runtime@npm:0.13.11"
+ checksum: 10/d493e9e118abef5b099c78170834f18540c4933cedf9bfabc32d3af94abfb59a7907bd7950259cbab0a929ebca7db77301e8024e5121e6482a82f78283dfd20c
+ languageName: node
+ linkType: hard
+
+"regexp.prototype.flags@npm:^1.5.3, regexp.prototype.flags@npm:^1.5.4":
+ version: 1.5.4
+ resolution: "regexp.prototype.flags@npm:1.5.4"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ define-properties: "npm:^1.2.1"
+ es-errors: "npm:^1.3.0"
+ get-proto: "npm:^1.0.1"
+ gopd: "npm:^1.2.0"
+ set-function-name: "npm:^2.0.2"
+ checksum: 10/8ab897ca445968e0b96f6237641510f3243e59c180ee2ee8d83889c52ff735dd1bf3657fcd36db053e35e1d823dd53f2565d0b8021ea282c9fe62401c6c3bd6d
+ languageName: node
+ linkType: hard
+
+"regexpu-core@npm:^6.3.1":
+ version: 6.4.0
+ resolution: "regexpu-core@npm:6.4.0"
+ dependencies:
+ regenerate: "npm:^1.4.2"
+ regenerate-unicode-properties: "npm:^10.2.2"
+ regjsgen: "npm:^0.8.0"
+ regjsparser: "npm:^0.13.0"
+ unicode-match-property-ecmascript: "npm:^2.0.0"
+ unicode-match-property-value-ecmascript: "npm:^2.2.1"
+ checksum: 10/bf5f85a502a17f127a1f922270e2ecc1f0dd071ff76a3ec9afcd6b1c2bf7eae1486d1e3b1a6d621aee8960c8b15139e6b5058a84a68e518e1a92b52e9322faf9
+ languageName: node
+ linkType: hard
+
+"regjsgen@npm:^0.8.0":
+ version: 0.8.0
+ resolution: "regjsgen@npm:0.8.0"
+ checksum: 10/b930f03347e4123c917d7b40436b4f87f625b8dd3e705b447ddd44804e4616c3addb7453f0902d6e914ab0446c30e816e445089bb641a4714237fe8141a0ef9d
+ languageName: node
+ linkType: hard
+
+"regjsparser@npm:^0.13.0":
+ version: 0.13.2
+ resolution: "regjsparser@npm:0.13.2"
+ dependencies:
+ jsesc: "npm:~3.1.0"
+ bin:
+ regjsparser: bin/parser
+ checksum: 10/291aecbd47371cee347a96c47ccaae729ba50b7b2cb2a5de7e088e2ab835fe133569422f06ae28f5ff0830ac03f3196a35ba493f23ecda086d82e3e326f14074
+ languageName: node
+ linkType: hard
+
+"require-directory@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "require-directory@npm:2.1.1"
+ checksum: 10/a72468e2589270d91f06c7d36ec97a88db53ae5d6fe3787fadc943f0b0276b10347f89b363b2a82285f650bdcc135ad4a257c61bdd4d00d6df1fa24875b0ddaf
+ languageName: node
+ linkType: hard
+
+"require-main-filename@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "require-main-filename@npm:2.0.0"
+ checksum: 10/8604a570c06a69c9d939275becc33a65676529e1c3e5a9f42d58471674df79357872b96d70bb93a0380a62d60dc9031c98b1a9dad98c946ffdd61b7ac0c8cedd
+ languageName: node
+ linkType: hard
+
+"resolve-cwd@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "resolve-cwd@npm:3.0.0"
+ dependencies:
+ resolve-from: "npm:^5.0.0"
+ checksum: 10/546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81
+ languageName: node
+ linkType: hard
+
+"resolve-from@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "resolve-from@npm:3.0.0"
+ checksum: 10/c4189f1592a777f7d51c1ff6153df18b5d062c831fb0c623b4b87736c8a73c08e4eaab19e807399287040791f3e7aa0877f05f9d86739d3ef1ef0c727e9fe06c
+ languageName: node
+ linkType: hard
+
+"resolve-from@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "resolve-from@npm:4.0.0"
+ checksum: 10/91eb76ce83621eea7bbdd9b55121a5c1c4a39e54a9ce04a9ad4517f102f8b5131c2cf07622c738a6683991bf54f2ce178f5a42803ecbd527ddc5105f362cc9e3
+ languageName: node
+ linkType: hard
+
+"resolve-from@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "resolve-from@npm:5.0.0"
+ checksum: 10/be18a5e4d76dd711778664829841cde690971d02b6cbae277735a09c1c28f407b99ef6ef3cd585a1e6546d4097b28df40ed32c4a287b9699dcf6d7f208495e23
+ languageName: node
+ linkType: hard
+
+"resolve.exports@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "resolve.exports@npm:2.0.3"
+ checksum: 10/536efee0f30a10fac8604e6cdc7844dbc3f4313568d09f06db4f7ed8a5b8aeb8585966fe975083d1f2dfbc87cf5f8bc7ab65a5c23385c14acbb535ca79f8398a
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.20.0, resolve@npm:^1.22.11":
+ version: 1.22.12
+ resolution: "resolve@npm:1.22.12"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ is-core-module: "npm:^2.16.1"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10/1d2a081e4b7198e2a70abd7bbbf8aea5380c2d074b6c870035aab50ebfb7312b6492b3588e752faef83a75147862a3d3e09b222bc9afd536804181fd3a515ef9
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^2.0.0-next.5":
+ version: 2.0.0-next.7
+ resolution: "resolve@npm:2.0.0-next.7"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ is-core-module: "npm:^2.16.2"
+ node-exports-info: "npm:^1.6.0"
+ object-keys: "npm:^1.1.1"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10/0a6fbd452518c128355a72e3773e65d047128bbc5045d954eca7f911683abfb1b0177494ff8734ca74f2a7a4e3a6bfad9cd6d19a2bde0fe9851025a2734d4a0f
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.11#optional!builtin":
+ version: 1.22.12
+ resolution: "resolve@patch:resolve@npm%3A1.22.12#optional!builtin::version=1.22.12&hash=c3c19d"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ is-core-module: "npm:^2.16.1"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10/f80ad2c2b6820331cbe079198a184ffce322cfeca140065118066276bc08b03d5fa2c1ce652aeb584ec74050d1f656f46f034cc0dd9300452c5ab7866907f8c0
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin":
+ version: 2.0.0-next.7
+ resolution: "resolve@patch:resolve@npm%3A2.0.0-next.7#optional!builtin::version=2.0.0-next.7&hash=c3c19d"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ is-core-module: "npm:^2.16.2"
+ node-exports-info: "npm:^1.6.0"
+ object-keys: "npm:^1.1.1"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10/2c6dd4194c8aa900db299020fcad253239c670ea82a65c8387f1d2885e8dcf6742b64c439e3c811e046a5252eba94f2092b7867e34b7f895e733be48d575192b
+ languageName: node
+ linkType: hard
+
+"restore-cursor@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "restore-cursor@npm:3.1.0"
+ dependencies:
+ onetime: "npm:^5.1.0"
+ signal-exit: "npm:^3.0.2"
+ checksum: 10/f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630
+ languageName: node
+ linkType: hard
+
+"reusify@npm:^1.0.4":
+ version: 1.1.0
+ resolution: "reusify@npm:1.1.0"
+ checksum: 10/af47851b547e8a8dc89af144fceee17b80d5beaf5e6f57ed086432d79943434ff67ca526e92275be6f54b6189f6920a24eace75c2657eed32d02c400312b21ec
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "rimraf@npm:3.0.2"
+ dependencies:
+ glob: "npm:^7.1.3"
+ bin:
+ rimraf: bin.js
+ checksum: 10/063ffaccaaaca2cfd0ef3beafb12d6a03dd7ff1260d752d62a6077b5dfff6ae81bea571f655bb6b589d366930ec1bdd285d40d560c0dae9b12f125e54eb743d5
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:~2.6.2":
+ version: 2.6.3
+ resolution: "rimraf@npm:2.6.3"
+ dependencies:
+ glob: "npm:^7.1.3"
+ bin:
+ rimraf: ./bin.js
+ checksum: 10/756419f2fa99aa119c46a9fc03e09d84ecf5421a80a72d1944c5088c9e4671e77128527a900a313ed9d3fdbdd37e2ae05486cd7e9116d5812d8c31f2399d7c86
+ languageName: node
+ linkType: hard
+
+"run-parallel@npm:^1.1.9":
+ version: 1.2.0
+ resolution: "run-parallel@npm:1.2.0"
+ dependencies:
+ queue-microtask: "npm:^1.2.2"
+ checksum: 10/cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d
+ languageName: node
+ linkType: hard
+
+"safe-array-concat@npm:^1.1.3":
+ version: 1.1.4
+ resolution: "safe-array-concat@npm:1.1.4"
+ dependencies:
+ call-bind: "npm:^1.0.9"
+ call-bound: "npm:^1.0.4"
+ get-intrinsic: "npm:^1.3.0"
+ has-symbols: "npm:^1.1.0"
+ isarray: "npm:^2.0.5"
+ checksum: 10/89e6a4d2759225515e5ea6b9f21a62dfad74c3aef45c769c9bf000b1c681f15568183e62935711ec9d10c35712c4f21f0d6acb094bd35138608b4a57fa64667d
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:5.2.1, safe-buffer@npm:~5.2.0":
+ version: 5.2.1
+ resolution: "safe-buffer@npm:5.2.1"
+ checksum: 10/32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451
+ languageName: node
+ linkType: hard
+
+"safe-push-apply@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "safe-push-apply@npm:1.0.0"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ isarray: "npm:^2.0.5"
+ checksum: 10/2bd4e53b6694f7134b9cf93631480e7fafc8637165f0ee91d5a4af5e7f33d37de9562d1af5021178dd4217d0230cde8d6530fa28cfa1ebff9a431bf8fff124b4
+ languageName: node
+ linkType: hard
+
+"safe-regex-test@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "safe-regex-test@npm:1.1.0"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ es-errors: "npm:^1.3.0"
+ is-regex: "npm:^1.2.1"
+ checksum: 10/ebdb61f305bf4756a5b023ad86067df5a11b26898573afe9e52a548a63c3bd594825d9b0e2dde2eb3c94e57e0e04ac9929d4107c394f7b8e56a4613bed46c69a
+ languageName: node
+ linkType: hard
+
+"scheduler@npm:0.24.0-canary-efb381bbf-20230505":
+ version: 0.24.0-canary-efb381bbf-20230505
+ resolution: "scheduler@npm:0.24.0-canary-efb381bbf-20230505"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ checksum: 10/862881c8d3ece854331516cc048e26a86af461e896ab412506a5b1ffcc82990a08445e0127545ab524df15f88c2a691d8505fc2226a9bddf99bf8a8425bdcc0e
+ languageName: node
+ linkType: hard
+
+"scheduler@npm:^0.23.2":
+ version: 0.23.2
+ resolution: "scheduler@npm:0.23.2"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ checksum: 10/e8d68b89d18d5b028223edf090092846868a765a591944760942b77ea1f69b17235f7e956696efbb62c8130ab90af7e0949bfb8eba7896335507317236966bc9
+ languageName: node
+ linkType: hard
+
+"selfsigned@npm:^2.4.1":
+ version: 2.4.1
+ resolution: "selfsigned@npm:2.4.1"
+ dependencies:
+ "@types/node-forge": "npm:^1.3.0"
+ node-forge: "npm:^1"
+ checksum: 10/52536623f1cfdeb2f8b9198377f2ce7931c677ea69421238d1dc1ea2983bbe258e56c19e7d1af87035cad7270f19b7e996eaab1212e724d887722502f68e17f2
+ languageName: node
+ linkType: hard
+
+"semver@npm:^5.6.0":
+ version: 5.7.2
+ resolution: "semver@npm:5.7.2"
+ bin:
+ semver: bin/semver
+ checksum: 10/fca14418a174d4b4ef1fecb32c5941e3412d52a4d3d85165924ce3a47fbc7073372c26faf7484ceb4bbc2bde25880c6b97e492473dc7e9708fdfb1c6a02d546e
+ languageName: node
+ linkType: hard
+
+"semver@npm:^6.3.0, semver@npm:^6.3.1":
+ version: 6.3.1
+ resolution: "semver@npm:6.3.1"
+ bin:
+ semver: bin/semver.js
+ checksum: 10/1ef3a85bd02a760c6ef76a45b8c1ce18226de40831e02a00bad78485390b98b6ccaa31046245fc63bba4a47a6a592b6c7eedc65cc47126e60489f9cc1ce3ed7e
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.1.3, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0":
+ version: 7.8.5
+ resolution: "semver@npm:7.8.5"
+ bin:
+ semver: bin/semver.js
+ checksum: 10/9b01d2ff11e6e4a4539b7ca3c5f280c8704cb397a28504469f2ed4f00ad2194748d756647362a9712fff30984d15772ab7f083108c2fb508e2096ae9e708f22c
+ languageName: node
+ linkType: hard
+
+"send@npm:~0.19.1":
+ version: 0.19.2
+ resolution: "send@npm:0.19.2"
+ dependencies:
+ debug: "npm:2.6.9"
+ depd: "npm:2.0.0"
+ destroy: "npm:1.2.0"
+ encodeurl: "npm:~2.0.0"
+ escape-html: "npm:~1.0.3"
+ etag: "npm:~1.8.1"
+ fresh: "npm:~0.5.2"
+ http-errors: "npm:~2.0.1"
+ mime: "npm:1.6.0"
+ ms: "npm:2.1.3"
+ on-finished: "npm:~2.4.1"
+ range-parser: "npm:~1.2.1"
+ statuses: "npm:~2.0.2"
+ checksum: 10/e932a592f62c58560b608a402d52333a8ae98a5ada076feb5db1d03adaa77c3ca32a7befa1c4fd6dedc186e88f342725b0cb4b3d86835eaf834688b259bef18d
+ languageName: node
+ linkType: hard
+
+"serialize-error@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "serialize-error@npm:2.1.0"
+ checksum: 10/28464a6f65e6becd6e49fb782aff06573fdbf3d19f161a20228179842fed05c75a34110e54c3ee020b00240f9e11d8bee9b9fee5d04e0bc0bef1fdbf2baa297e
+ languageName: node
+ linkType: hard
+
+"serve-static@npm:^1.13.1":
+ version: 1.16.3
+ resolution: "serve-static@npm:1.16.3"
+ dependencies:
+ encodeurl: "npm:~2.0.0"
+ escape-html: "npm:~1.0.3"
+ parseurl: "npm:~1.3.3"
+ send: "npm:~0.19.1"
+ checksum: 10/149d6718dd9e53166784d0a65535e21a7c01249d9c51f57224b786a7306354c6807e7811a9f6c143b45c863b1524721fca2f52b5c81a8b5194e3dde034a03b9c
+ languageName: node
+ linkType: hard
+
+"set-blocking@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "set-blocking@npm:2.0.0"
+ checksum: 10/8980ebf7ae9eb945bb036b6e283c547ee783a1ad557a82babf758a065e2fb6ea337fd82cac30dd565c1e606e423f30024a19fff7afbf4977d784720c4026a8ef
+ languageName: node
+ linkType: hard
+
+"set-function-length@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "set-function-length@npm:1.2.2"
+ dependencies:
+ define-data-property: "npm:^1.1.4"
+ es-errors: "npm:^1.3.0"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.2.4"
+ gopd: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.2"
+ checksum: 10/505d62b8e088468917ca4e3f8f39d0e29f9a563b97dbebf92f4bd2c3172ccfb3c5b8e4566d5fcd00784a00433900e7cb8fbc404e2dbd8c3818ba05bb9d4a8a6d
+ languageName: node
+ linkType: hard
+
+"set-function-name@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "set-function-name@npm:2.0.2"
+ dependencies:
+ define-data-property: "npm:^1.1.4"
+ es-errors: "npm:^1.3.0"
+ functions-have-names: "npm:^1.2.3"
+ has-property-descriptors: "npm:^1.0.2"
+ checksum: 10/c7614154a53ebf8c0428a6c40a3b0b47dac30587c1a19703d1b75f003803f73cdfa6a93474a9ba678fa565ef5fbddc2fae79bca03b7d22ab5fd5163dbe571a74
+ languageName: node
+ linkType: hard
+
+"set-proto@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "set-proto@npm:1.0.0"
+ dependencies:
+ dunder-proto: "npm:^1.0.1"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10/b87f8187bca595ddc3c0721ece4635015fd9d7cb294e6dd2e394ce5186a71bbfa4dc8a35010958c65e43ad83cde09642660e61a952883c24fd6b45ead15f045c
+ languageName: node
+ linkType: hard
+
+"setprototypeof@npm:~1.2.0":
+ version: 1.2.0
+ resolution: "setprototypeof@npm:1.2.0"
+ checksum: 10/fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e
+ languageName: node
+ linkType: hard
+
+"shallow-clone@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "shallow-clone@npm:3.0.1"
+ dependencies:
+ kind-of: "npm:^6.0.2"
+ checksum: 10/e066bd540cfec5e1b0f78134853e0d892d1c8945fb9a926a579946052e7cb0c70ca4fc34f875a8083aa7910d751805d36ae64af250a6de6f3d28f9fa7be6c21b
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "shebang-command@npm:2.0.0"
+ dependencies:
+ shebang-regex: "npm:^3.0.0"
+ checksum: 10/6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "shebang-regex@npm:3.0.0"
+ checksum: 10/1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222
+ languageName: node
+ linkType: hard
+
+"shell-quote@npm:^1.6.1, shell-quote@npm:^1.7.3":
+ version: 1.8.4
+ resolution: "shell-quote@npm:1.8.4"
+ checksum: 10/a3e3796385f2cd5cf0b78207a4439f0c7395c0833fc75b2473084b5d298c109c5c0fa687fcd1c04e4b4484866e5bb8eaae7efae443b80fff71ea7e29baf11f0c
+ languageName: node
+ linkType: hard
+
+"side-channel-list@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "side-channel-list@npm:1.0.1"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ object-inspect: "npm:^1.13.4"
+ checksum: 10/3499671cd52adaee739eac1e14d07530b8e3530192741aeb05e7fe4ad1b51d1368ceea2cd3c21b0f62b05410a5c70a7c4d997ba4b143303ef73d0c65dfd1c252
+ languageName: node
+ linkType: hard
+
+"side-channel-map@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "side-channel-map@npm:1.0.1"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.5"
+ object-inspect: "npm:^1.13.3"
+ checksum: 10/5771861f77feefe44f6195ed077a9e4f389acc188f895f570d56445e251b861754b547ea9ef73ecee4e01fdada6568bfe9020d2ec2dfc5571e9fa1bbc4a10615
+ languageName: node
+ linkType: hard
+
+"side-channel-weakmap@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "side-channel-weakmap@npm:1.0.2"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.5"
+ object-inspect: "npm:^1.13.3"
+ side-channel-map: "npm:^1.0.1"
+ checksum: 10/a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736
+ languageName: node
+ linkType: hard
+
+"side-channel@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "side-channel@npm:1.1.1"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ object-inspect: "npm:^1.13.4"
+ side-channel-list: "npm:^1.0.1"
+ side-channel-map: "npm:^1.0.1"
+ side-channel-weakmap: "npm:^1.0.2"
+ checksum: 10/5fa6393ff6ad25d8b4a38e9ba095481e498c8ebe5ab78481c1455146255a3d18ca37a6f936595cc671a6149134cdc295bbd2fa017620bdc73cbc7380634fa2fc
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7":
+ version: 3.0.7
+ resolution: "signal-exit@npm:3.0.7"
+ checksum: 10/a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318
+ languageName: node
+ linkType: hard
+
+"simple-swizzle@npm:^0.2.2":
+ version: 0.2.4
+ resolution: "simple-swizzle@npm:0.2.4"
+ dependencies:
+ is-arrayish: "npm:^0.3.1"
+ checksum: 10/f114785cc1b57cd79d8463af04b20f53483be5f22e66ac775218e5587f4591790da500126cd0434f1d523d81015c3c87835f99c8fee8a657c90a875c25e88f76
+ languageName: node
+ linkType: hard
+
+"sisteransi@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "sisteransi@npm:1.0.5"
+ checksum: 10/aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4
+ languageName: node
+ linkType: hard
+
+"slash@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "slash@npm:3.0.0"
+ checksum: 10/94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c
+ languageName: node
+ linkType: hard
+
+"slice-ansi@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "slice-ansi@npm:2.1.0"
+ dependencies:
+ ansi-styles: "npm:^3.2.0"
+ astral-regex: "npm:^1.0.0"
+ is-fullwidth-code-point: "npm:^2.0.0"
+ checksum: 10/4e82995aa59cef7eb03ef232d73c2239a15efa0ace87a01f3012ebb942e963fbb05d448ce7391efcd52ab9c32724164aba2086f5143e0445c969221dde3b6b1e
+ languageName: node
+ linkType: hard
+
+"source-map-support@npm:0.5.13":
+ version: 0.5.13
+ resolution: "source-map-support@npm:0.5.13"
+ dependencies:
+ buffer-from: "npm:^1.0.0"
+ source-map: "npm:^0.6.0"
+ checksum: 10/d1514a922ac9c7e4786037eeff6c3322f461cd25da34bb9fefb15387b3490531774e6e31d95ab6d5b84a3e139af9c3a570ccaee6b47bd7ea262691ed3a8bc34e
+ languageName: node
+ linkType: hard
+
+"source-map-support@npm:^0.5.16, source-map-support@npm:~0.5.20":
+ version: 0.5.21
+ resolution: "source-map-support@npm:0.5.21"
+ dependencies:
+ buffer-from: "npm:^1.0.0"
+ source-map: "npm:^0.6.0"
+ checksum: 10/8317e12d84019b31e34b86d483dd41d6f832f389f7417faf8fc5c75a66a12d9686e47f589a0554a868b8482f037e23df9d040d29387eb16fa14cb85f091ba207
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.5.6":
+ version: 0.5.7
+ resolution: "source-map@npm:0.5.7"
+ checksum: 10/9b4ac749ec5b5831cad1f8cc4c19c4298ebc7474b24a0acf293e2f040f03f8eeccb3d01f12aa0f90cf46d555c887e03912b83a042c627f419bda5152d89c5269
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1":
+ version: 0.6.1
+ resolution: "source-map@npm:0.6.1"
+ checksum: 10/59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff
+ languageName: node
+ linkType: hard
+
+"split-on-first@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "split-on-first@npm:1.1.0"
+ checksum: 10/16ff85b54ddcf17f9147210a4022529b343edbcbea4ce977c8f30e38408b8d6e0f25f92cd35b86a524d4797f455e29ab89eb8db787f3c10708e0b47ebf528d30
+ languageName: node
+ linkType: hard
+
+"sprintf-js@npm:~1.0.2":
+ version: 1.0.3
+ resolution: "sprintf-js@npm:1.0.3"
+ checksum: 10/c34828732ab8509c2741e5fd1af6b767c3daf2c642f267788f933a65b1614943c282e74c4284f4fa749c264b18ee016a0d37a3e5b73aee446da46277d3a85daa
+ languageName: node
+ linkType: hard
+
+"stack-utils@npm:^2.0.3":
+ version: 2.0.6
+ resolution: "stack-utils@npm:2.0.6"
+ dependencies:
+ escape-string-regexp: "npm:^2.0.0"
+ checksum: 10/cdc988acbc99075b4b036ac6014e5f1e9afa7e564482b687da6384eee6a1909d7eaffde85b0a17ffbe186c5247faf6c2b7544e802109f63b72c7be69b13151bb
+ languageName: node
+ linkType: hard
+
+"stackframe@npm:^1.3.4":
+ version: 1.3.4
+ resolution: "stackframe@npm:1.3.4"
+ checksum: 10/29ca71c1fd17974c1c178df0236b1407bc65f6ea389cc43dec000def6e42ff548d4453de9a85b76469e2ae2b2abdd802c6b6f3db947c05794efbd740d1cf4121
+ languageName: node
+ linkType: hard
+
+"stacktrace-parser@npm:^0.1.10":
+ version: 0.1.11
+ resolution: "stacktrace-parser@npm:0.1.11"
+ dependencies:
+ type-fest: "npm:^0.7.1"
+ checksum: 10/1120cf716606ec6a8e25cc9b6ada79d7b91e6a599bba1a6664e6badc8b5f37987d7df7d9ad0344f717a042781fd8e1e999de08614a5afea451b68902421036b5
+ languageName: node
+ linkType: hard
+
+"statuses@npm:~1.5.0":
+ version: 1.5.0
+ resolution: "statuses@npm:1.5.0"
+ checksum: 10/c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c
+ languageName: node
+ linkType: hard
+
+"statuses@npm:~2.0.2":
+ version: 2.0.2
+ resolution: "statuses@npm:2.0.2"
+ checksum: 10/6927feb50c2a75b2a4caab2c565491f7a93ad3d8dbad7b1398d52359e9243a20e2ebe35e33726dee945125ef7a515e9097d8a1b910ba2bbd818265a2f6c39879
+ 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: "npm:^1.3.0"
+ internal-slot: "npm:^1.1.0"
+ checksum: 10/ff36c4db171ee76c936ccfe9541946b77017f12703d4c446652017356816862d3aa029a64e7d4c4ceb484e00ed4a81789333896390d808458638f3a216aa1f41
+ languageName: node
+ linkType: hard
+
+"strict-uri-encode@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "strict-uri-encode@npm:2.0.0"
+ checksum: 10/eaac4cf978b6fbd480f1092cab8b233c9b949bcabfc9b598dd79a758f7243c28765ef7639c876fa72940dac687181b35486ea01ff7df3e65ce3848c64822c581
+ languageName: node
+ linkType: hard
+
+"string-length@npm:^4.0.1":
+ version: 4.0.2
+ resolution: "string-length@npm:4.0.2"
+ dependencies:
+ char-regex: "npm:^1.0.2"
+ strip-ansi: "npm:^6.0.0"
+ checksum: 10/ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505
+ languageName: node
+ linkType: hard
+
+"string-natural-compare@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "string-natural-compare@npm:3.0.1"
+ checksum: 10/bc1fd0ee196466489e121bbe11844094ddcdee5a687dca9dbb18ba2ace73b1f6c96c9b448df2dfed0879b781b6b12e329ca1c1fc0a86d70b00c7823b76109b1e
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3":
+ version: 4.2.3
+ resolution: "string-width@npm:4.2.3"
+ dependencies:
+ emoji-regex: "npm:^8.0.0"
+ is-fullwidth-code-point: "npm:^3.0.0"
+ strip-ansi: "npm:^6.0.1"
+ checksum: 10/e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb
+ languageName: node
+ linkType: hard
+
+"string.prototype.matchall@npm:^4.0.12":
+ version: 4.0.12
+ resolution: "string.prototype.matchall@npm:4.0.12"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.3"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.6"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.6"
+ gopd: "npm:^1.2.0"
+ has-symbols: "npm:^1.1.0"
+ internal-slot: "npm:^1.1.0"
+ regexp.prototype.flags: "npm:^1.5.3"
+ set-function-name: "npm:^2.0.2"
+ side-channel: "npm:^1.1.0"
+ checksum: 10/e4ab34b9e7639211e6c5e9759adb063028c5c5c4fc32ad967838b2bd1e5ce83a66ae8ec755d24a79302849f090b59194571b2c33471e86e7821b21c0f56df316
+ languageName: node
+ linkType: hard
+
+"string.prototype.repeat@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "string.prototype.repeat@npm:1.0.0"
+ dependencies:
+ define-properties: "npm:^1.1.3"
+ es-abstract: "npm:^1.17.5"
+ checksum: 10/4b1bd91b75fa8fdf0541625184ebe80e445a465ce4253c19c3bccd633898005dadae0f74b85ae72662a53aafb8035bf48f8f5c0755aec09bc106a7f13959d05e
+ languageName: node
+ linkType: hard
+
+"string.prototype.trim@npm:^1.2.10":
+ version: 1.2.11
+ resolution: "string.prototype.trim@npm:1.2.11"
+ dependencies:
+ call-bind: "npm:^1.0.9"
+ call-bound: "npm:^1.0.4"
+ define-data-property: "npm:^1.1.4"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.24.2"
+ es-object-atoms: "npm:^1.1.2"
+ has-property-descriptors: "npm:^1.0.2"
+ safe-regex-test: "npm:^1.1.0"
+ checksum: 10/77c2301fe9f2f2e2085c2a9ab048f9f86b1b95609944e1f16d067186b7ac9121db2dd5bf8d165835891876d750ed325314e3181b8b6829d533f5214d472b3fc4
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimend@npm:^1.0.9":
+ version: 1.0.10
+ resolution: "string.prototype.trimend@npm:1.0.10"
+ dependencies:
+ call-bind: "npm:^1.0.9"
+ call-bound: "npm:^1.0.4"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.1.2"
+ checksum: 10/f8a85346be853bbe34490c03f4c3f7adb0b4d5dedb206e4a48a006839fece0843fa97fe9c3222be5fd91ba33cdc7d495970af7a4707d15a62591555bfe5a5e20
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimstart@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "string.prototype.trimstart@npm:1.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10/160167dfbd68e6f7cb9f51a16074eebfce1571656fc31d40c3738ca9e30e35496f2c046fe57b6ad49f65f238a152be8c86fd9a2dd58682b5eba39dad995b3674
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:^1.1.1":
+ version: 1.3.0
+ resolution: "string_decoder@npm:1.3.0"
+ dependencies:
+ safe-buffer: "npm:~5.2.0"
+ checksum: 10/54d23f4a6acae0e93f999a585e673be9e561b65cd4cca37714af1e893ab8cd8dfa52a9e4f58f48f87b4a44918d3a9254326cb80ed194bf2e4c226e2b21767e56
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^5.0.0, strip-ansi@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "strip-ansi@npm:5.2.0"
+ dependencies:
+ ansi-regex: "npm:^4.1.0"
+ checksum: 10/bdb5f76ade97062bd88e7723aa019adbfacdcba42223b19ccb528ffb9fb0b89a5be442c663c4a3fb25268eaa3f6ea19c7c3fbae830bd1562d55adccae1fcec46
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "strip-ansi@npm:6.0.1"
+ dependencies:
+ ansi-regex: "npm:^5.0.1"
+ checksum: 10/ae3b5436d34fadeb6096367626ce987057713c566e1e7768818797e00ac5d62023d0f198c4e681eae9e20701721980b26a64a8f5b91238869592a9c6800719a2
+ languageName: node
+ linkType: hard
+
+"strip-bom@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "strip-bom@npm:4.0.0"
+ checksum: 10/9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3
+ languageName: node
+ linkType: hard
+
+"strip-final-newline@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "strip-final-newline@npm:2.0.0"
+ checksum: 10/69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64
+ languageName: node
+ linkType: hard
+
+"strip-json-comments@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "strip-json-comments@npm:3.1.1"
+ checksum: 10/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443
+ languageName: node
+ linkType: hard
+
+"strnum@npm:^1.0.5":
+ version: 1.1.2
+ resolution: "strnum@npm:1.1.2"
+ checksum: 10/ccd6297a1fdaf0fc8ea0ea904acdae76878d49a4b0d98a70155df4bc081fd88eac5ec99fb150f3d1d1af065c1898d38420705259ba6c39aa850c671bcd54e35d
+ languageName: node
+ linkType: hard
+
+"sudo-prompt@npm:^9.0.0":
+ version: 9.2.1
+ resolution: "sudo-prompt@npm:9.2.1"
+ checksum: 10/0557d0eecebf8db8212df4a9816509c875ca65ad9ee26a55240848820f9bdbdbbd9e5a1bdb5aa052fb1f748cba4ef90c8da9b40628f59e6dc79ca986e80740de
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^7.1.0":
+ version: 7.2.0
+ resolution: "supports-color@npm:7.2.0"
+ dependencies:
+ has-flag: "npm:^4.0.0"
+ checksum: 10/c8bb7afd564e3b26b50ca6ee47572c217526a1389fe018d00345856d4a9b08ffbd61fadaf283a87368d94c3dcdb8f5ffe2650a5a65863e21ad2730ca0f05210a
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^8.0.0":
+ version: 8.1.1
+ resolution: "supports-color@npm:8.1.1"
+ dependencies:
+ has-flag: "npm:^4.0.0"
+ checksum: 10/157b534df88e39c5518c5e78c35580c1eca848d7dbaf31bbe06cdfc048e22c7ff1a9d046ae17b25691128f631a51d9ec373c1b740c12ae4f0de6e292037e4282
+ languageName: node
+ linkType: hard
+
+"supports-preserve-symlinks-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
+ checksum: 10/a9dc19ae2220c952bd2231d08ddeecb1b0328b61e72071ff4000c8384e145cc07c1c0bdb3b5a1cb06e186a7b2790f1dee793418b332f6ddf320de25d9125be7e
+ languageName: node
+ linkType: hard
+
+"tar@npm:^7.5.4":
+ version: 7.5.16
+ resolution: "tar@npm:7.5.16"
+ dependencies:
+ "@isaacs/fs-minipass": "npm:^4.0.0"
+ chownr: "npm:^3.0.0"
+ minipass: "npm:^7.1.2"
+ minizlib: "npm:^3.1.0"
+ yallist: "npm:^5.0.0"
+ checksum: 10/fafa22efceb9f056bf29ddc47d9bd90bb82fe3ce57b8d1242fc45771251741964cebba69d4e14a24fd1643f3c7f68478e945a19def534703cf370c2d9dca2e09
+ languageName: node
+ linkType: hard
+
+"temp@npm:^0.8.4":
+ version: 0.8.4
+ resolution: "temp@npm:0.8.4"
+ dependencies:
+ rimraf: "npm:~2.6.2"
+ checksum: 10/0a7f76b49637415bc391c3f6e69377cc4c38afac95132b4158fa711e77b70b082fe56fd886f9d11ffab9d148df181a105a93c8b618fb72266eeaa5e5ddbfe37f
+ languageName: node
+ linkType: hard
+
+"terser@npm:^5.15.0":
+ version: 5.48.0
+ resolution: "terser@npm:5.48.0"
+ dependencies:
+ "@jridgewell/source-map": "npm:^0.3.3"
+ acorn: "npm:^8.15.0"
+ commander: "npm:^2.20.0"
+ source-map-support: "npm:~0.5.20"
+ bin:
+ terser: bin/terser
+ checksum: 10/dfbb121823b703bed2f36b7464e2ee5c7a9147fcebdb0c40e372318796b9a13e34b0610fd8af983e4d849a5b060262e08e2601d16032849086afa831fbf7f690
+ languageName: node
+ linkType: hard
+
+"test-exclude@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "test-exclude@npm:6.0.0"
+ dependencies:
+ "@istanbuljs/schema": "npm:^0.1.2"
+ glob: "npm:^7.1.4"
+ minimatch: "npm:^3.0.4"
+ checksum: 10/8fccb2cb6c8fcb6bb4115394feb833f8b6cf4b9503ec2485c2c90febf435cac62abe882a0c5c51a37b9bbe70640cdd05acf5f45e486ac4583389f4b0855f69e5
+ languageName: node
+ linkType: hard
+
+"text-table@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "text-table@npm:0.2.0"
+ checksum: 10/4383b5baaeffa9bb4cda2ac33a4aa2e6d1f8aaf811848bf73513a9b88fd76372dc461f6fd6d2e9cb5100f48b473be32c6f95bd983509b7d92bb4d92c10747452
+ languageName: node
+ linkType: hard
+
+"throat@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "throat@npm:5.0.0"
+ checksum: 10/00f7197977d433d1c960edfaa6465c1217652999170ef3ecd8dbefa6add6e2304b321480523ae87354df285474ba2c5feff03842e9f398b4bcdd95cfa18cff9c
+ languageName: node
+ linkType: hard
+
+"tinyglobby@npm:^0.2.12":
+ version: 0.2.17
+ resolution: "tinyglobby@npm:0.2.17"
+ dependencies:
+ fdir: "npm:^6.5.0"
+ picomatch: "npm:^4.0.4"
+ checksum: 10/f85e8a217d675c3f78d5f0ad25ea4557e7e023ed13ddc2b014da10bd0312eea53a34cd52356af07ccdff777f1243012547656282a4ca70936f68bf5065fbaa71
+ languageName: node
+ linkType: hard
+
+"tmpl@npm:1.0.5":
+ version: 1.0.5
+ resolution: "tmpl@npm:1.0.5"
+ checksum: 10/cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873
+ languageName: node
+ linkType: hard
+
+"to-regex-range@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "to-regex-range@npm:5.0.1"
+ dependencies:
+ is-number: "npm:^7.0.0"
+ checksum: 10/10dda13571e1f5ad37546827e9b6d4252d2e0bc176c24a101252153ef435d83696e2557fe128c4678e4e78f5f01e83711c703eef9814eb12dab028580d45980a
+ languageName: node
+ linkType: hard
+
+"toidentifier@npm:~1.0.1":
+ version: 1.0.1
+ resolution: "toidentifier@npm:1.0.1"
+ checksum: 10/952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45
+ languageName: node
+ linkType: hard
+
+"tr46@npm:~0.0.3":
+ version: 0.0.3
+ resolution: "tr46@npm:0.0.3"
+ checksum: 10/8f1f5aa6cb232f9e1bdc86f485f916b7aa38caee8a778b378ffec0b70d9307873f253f5cbadbe2955ece2ac5c83d0dc14a77513166ccd0a0c7fe197e21396695
+ languageName: node
+ linkType: hard
+
+"ts-api-utils@npm:^1.3.0":
+ version: 1.4.3
+ resolution: "ts-api-utils@npm:1.4.3"
+ peerDependencies:
+ typescript: ">=4.2.0"
+ checksum: 10/713c51e7392323305bd4867422ba130fbf70873ef6edbf80ea6d7e9c8f41eeeb13e40e8e7fe7cd321d74e4864777329797077268c9f570464303a1723f1eed39
+ languageName: node
+ linkType: hard
+
+"ts-object-utils@npm:0.0.5":
+ version: 0.0.5
+ resolution: "ts-object-utils@npm:0.0.5"
+ checksum: 10/83c48fbdaba392fb2c01cea53b267ed5538d2bb44fc6c3eecc10bcfabc1780bfa6ec8569b52bbf0140d9b521d9049d5f15884e12286918244d463d854dbc73cb
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^1.8.1":
+ version: 1.14.1
+ resolution: "tslib@npm:1.14.1"
+ checksum: 10/7dbf34e6f55c6492637adb81b555af5e3b4f9cc6b998fb440dac82d3b42bdc91560a35a5fb75e20e24a076c651438234da6743d139e4feabf0783f3cdfe1dddb
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.0.1, tslib@npm:^2.6.0":
+ version: 2.8.1
+ resolution: "tslib@npm:2.8.1"
+ checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7
+ languageName: node
+ linkType: hard
+
+"tsutils@npm:^3.21.0":
+ version: 3.21.0
+ resolution: "tsutils@npm:3.21.0"
+ dependencies:
+ tslib: "npm:^1.8.1"
+ peerDependencies:
+ typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ checksum: 10/ea036bec1dd024e309939ffd49fda7a351c0e87a1b8eb049570dd119d447250e2c56e0e6c00554e8205760e7417793fdebff752a46e573fbe07d4f375502a5b2
+ languageName: node
+ linkType: hard
+
+"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
+ version: 0.4.0
+ resolution: "type-check@npm:0.4.0"
+ dependencies:
+ prelude-ls: "npm:^1.2.1"
+ checksum: 10/14687776479d048e3c1dbfe58a2409e00367810d6960c0f619b33793271ff2a27f81b52461f14a162f1f89a9b1d8da1b237fc7c99b0e1fdcec28ec63a86b1fec
+ languageName: node
+ linkType: hard
+
+"type-detect@npm:4.0.8":
+ version: 4.0.8
+ resolution: "type-detect@npm:4.0.8"
+ checksum: 10/5179e3b8ebc51fce1b13efb75fdea4595484433f9683bbc2dca6d99789dba4e602ab7922d2656f2ce8383987467f7770131d4a7f06a26287db0615d2f4c4ce7d
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.20.2":
+ version: 0.20.2
+ resolution: "type-fest@npm:0.20.2"
+ checksum: 10/8907e16284b2d6cfa4f4817e93520121941baba36b39219ea36acfe64c86b9dbc10c9941af450bd60832c8f43464974d51c0957f9858bc66b952b66b6914cbb9
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.21.3":
+ version: 0.21.3
+ resolution: "type-fest@npm:0.21.3"
+ checksum: 10/f4254070d9c3d83a6e573bcb95173008d73474ceadbbf620dd32d273940ca18734dff39c2b2480282df9afe5d1675ebed5499a00d791758748ea81f61a38961f
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.7.1":
+ version: 0.7.1
+ resolution: "type-fest@npm:0.7.1"
+ checksum: 10/0699b6011bb3f7fac5fd5385e2e09432cde08fa89283f24084f29db00ec69a5445cd3aa976438ec74fc552a9a96f4a04ed390b5cb62eb7483aa4b6e5b935e059
+ languageName: node
+ linkType: hard
+
+"typed-array-buffer@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "typed-array-buffer@npm:1.0.3"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ es-errors: "npm:^1.3.0"
+ is-typed-array: "npm:^1.1.14"
+ checksum: 10/3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-length@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "typed-array-byte-length@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.2.0"
+ has-proto: "npm:^1.2.0"
+ is-typed-array: "npm:^1.1.14"
+ checksum: 10/269dad101dda73e3110117a9b84db86f0b5c07dad3a9418116fd38d580cab7fc628a4fc167e29b6d7c39da2f53374b78e7cb578b3c5ec7a556689d985d193519
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-offset@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "typed-array-byte-offset@npm:1.0.4"
+ dependencies:
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.8"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.2.0"
+ has-proto: "npm:^1.2.0"
+ is-typed-array: "npm:^1.1.15"
+ reflect.getprototypeof: "npm:^1.0.9"
+ checksum: 10/c2869aa584cdae24ecfd282f20a0f556b13a49a9d5bca1713370bb3c89dff0ccbc5ceb45cb5b784c98f4579e5e3e2a07e438c3a5b8294583e2bd4abbd5104fb5
+ languageName: node
+ linkType: hard
+
+"typed-array-length@npm:^1.0.7":
+ version: 1.0.8
+ resolution: "typed-array-length@npm:1.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.9"
+ for-each: "npm:^0.3.5"
+ gopd: "npm:^1.2.0"
+ is-typed-array: "npm:^1.1.15"
+ possible-typed-array-names: "npm:^1.1.0"
+ reflect.getprototypeof: "npm:^1.0.10"
+ checksum: 10/c044c644eee13fe8814d4c2401146103efd49bfd1e40412104f04c4d67f76b373da7e93026fbd99aaef1fdaa9c81d0886f34772d045472be9704157f4e1d0164
+ languageName: node
+ linkType: hard
+
+"typescript@npm:5.0.4":
+ version: 5.0.4
+ resolution: "typescript@npm:5.0.4"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10/e5c3adff09a138c0e27d13b5bb2b106ca17a162ffa945d66161669c265c65436309c5817358a2af1abb69d07440d358f8c1ed7cbb63a2c8680e19b9c268fe4ef
+ languageName: node
+ linkType: hard
+
+"typescript@patch:typescript@npm%3A5.0.4#optional!builtin":
+ version: 5.0.4
+ resolution: "typescript@patch:typescript@npm%3A5.0.4#optional!builtin::version=5.0.4&hash=b5f058"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10/b1b62606c7ec75efe9edc61e195d9e69f0440cac1bcd111dfa864f839255f0d9a7b79869f2823559c608826fc0c9894d2917ae4063e0aa06f5d0784a35170497
+ languageName: node
+ linkType: hard
+
+"unbox-primitive@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "unbox-primitive@npm:1.1.0"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ has-bigints: "npm:^1.0.2"
+ has-symbols: "npm:^1.1.0"
+ which-boxed-primitive: "npm:^1.1.1"
+ checksum: 10/fadb347020f66b2c8aeacf8b9a79826fa34cc5e5457af4eb0bbc4e79bd87fed0fa795949825df534320f7c13f199259516ad30abc55a6e7b91d8d996ca069e50
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~8.3.0":
+ version: 8.3.0
+ resolution: "undici-types@npm:8.3.0"
+ checksum: 10/6681d2837ac75a75ac1cc46090aa2b8ddc7c6b8ecc295a6cdb06838752a730da3d8afeecf05e5ab7903160eafad3a8b6ffa1927e5ded260590f4d4fef18646d5
+ languageName: node
+ linkType: hard
+
+"undici@npm:^6.25.0":
+ version: 6.27.0
+ resolution: "undici@npm:6.27.0"
+ checksum: 10/30c18cdb235edf4dd36f8aa3ace1ffaf44060289a7d62ad44c33180d2d74a224015d25574812f62ce9c625b5beb1b0b766495b650fedf356aca11eed7ce2c816
+ languageName: node
+ linkType: hard
+
+"unicode-canonical-property-names-ecmascript@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.1"
+ checksum: 10/3c3dabdb1d22aef4904399f9e810d0b71c0b12b3815169d96fac97e56d5642840c6071cf709adcace2252bc6bb80242396c2ec74b37224eb015c5f7aca40bad7
+ languageName: node
+ linkType: hard
+
+"unicode-match-property-ecmascript@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "unicode-match-property-ecmascript@npm:2.0.0"
+ dependencies:
+ unicode-canonical-property-names-ecmascript: "npm:^2.0.0"
+ unicode-property-aliases-ecmascript: "npm:^2.0.0"
+ checksum: 10/1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a
+ languageName: node
+ linkType: hard
+
+"unicode-match-property-value-ecmascript@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "unicode-match-property-value-ecmascript@npm:2.2.1"
+ checksum: 10/a42bebebab4c82ea6d8363e487b1fb862f82d1b54af1b67eb3fef43672939b685780f092c4f235266b90225863afa1258d57e7be3578d8986a08d8fc309aabe1
+ languageName: node
+ linkType: hard
+
+"unicode-property-aliases-ecmascript@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "unicode-property-aliases-ecmascript@npm:2.2.0"
+ checksum: 10/0dd0f6e70130c59b4a841bac206758f70227b113145e4afe238161e3e8540e8eb79963e7a228cd90ad13d499e96f7ef4ee8940835404b2181ad9bf9c174818e3
+ languageName: node
+ linkType: hard
+
+"universalify@npm:^0.1.0":
+ version: 0.1.2
+ resolution: "universalify@npm:0.1.2"
+ checksum: 10/40cdc60f6e61070fe658ca36016a8f4ec216b29bf04a55dce14e3710cc84c7448538ef4dad3728d0bfe29975ccd7bfb5f414c45e7b78883567fb31b246f02dff
+ languageName: node
+ linkType: hard
+
+"unpipe@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "unpipe@npm:1.0.0"
+ checksum: 10/4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2
+ languageName: node
+ linkType: hard
+
+"update-browserslist-db@npm:^1.2.3":
+ version: 1.2.3
+ resolution: "update-browserslist-db@npm:1.2.3"
+ dependencies:
+ escalade: "npm:^3.2.0"
+ picocolors: "npm:^1.1.1"
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+ bin:
+ update-browserslist-db: cli.js
+ checksum: 10/059f774300efb4b084a49293143c511f3ae946d40397b5c30914e900cd5691a12b8e61b41dd54ed73d3b56c8204165a0333107dd784ccf8f8c81790bcc423175
+ languageName: node
+ linkType: hard
+
+"uri-js@npm:^4.2.2":
+ version: 4.4.1
+ resolution: "uri-js@npm:4.4.1"
+ dependencies:
+ punycode: "npm:^2.1.0"
+ checksum: 10/b271ca7e3d46b7160222e3afa3e531505161c9a4e097febae9664e4b59912f4cbe94861361a4175edac3a03fee99d91e44b6a58c17a634bc5a664b19fc76fbcb
+ languageName: node
+ linkType: hard
+
+"use-latest-callback@npm:^0.2.1":
+ version: 0.2.6
+ resolution: "use-latest-callback@npm:0.2.6"
+ peerDependencies:
+ react: ">=16.8"
+ checksum: 10/67a245bf91b23ef0d2d2c8a52845da62e006867bd9d93a99ca4d2f859101fcd54c7afd4f5a3b8bb5d24283f516e7e41bd8226250ee39affc33bd1cfd622a5cfb
+ languageName: node
+ linkType: hard
+
+"util-deprecate@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "util-deprecate@npm:1.0.2"
+ checksum: 10/474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2
+ languageName: node
+ linkType: hard
+
+"utils-merge@npm:1.0.1":
+ version: 1.0.1
+ resolution: "utils-merge@npm:1.0.1"
+ checksum: 10/5d6949693d58cb2e636a84f3ee1c6e7b2f9c16cb1d42d0ecb386d8c025c69e327205aa1c69e2868cc06a01e5e20681fbba55a4e0ed0cce913d60334024eae798
+ languageName: node
+ linkType: hard
+
+"v8-to-istanbul@npm:^9.0.1":
+ version: 9.3.0
+ resolution: "v8-to-istanbul@npm:9.3.0"
+ dependencies:
+ "@jridgewell/trace-mapping": "npm:^0.3.12"
+ "@types/istanbul-lib-coverage": "npm:^2.0.1"
+ convert-source-map: "npm:^2.0.0"
+ checksum: 10/fb1d70f1176cb9dc46cabbb3fd5c52c8f3e8738b61877b6e7266029aed0870b04140e3f9f4550ac32aebcfe1d0f38b0bac57e1e8fb97d68fec82f2b416148166
+ languageName: node
+ linkType: hard
+
+"vary@npm:~1.1.2":
+ version: 1.1.2
+ resolution: "vary@npm:1.1.2"
+ checksum: 10/31389debef15a480849b8331b220782230b9815a8e0dbb7b9a8369559aed2e9a7800cd904d4371ea74f4c3527db456dc8e7ac5befce5f0d289014dbdf47b2242
+ languageName: node
+ linkType: hard
+
+"vlq@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "vlq@npm:1.0.1"
+ checksum: 10/0f4270cb3c498077a7ddd343e07ea164ac65cf05f3efd4332948fcb3d48e655538558e3fcdca7c78bb3c6790e0ef43c953efc7d9256c50415c3a5313f1e4192c
+ languageName: node
+ linkType: hard
+
+"walker@npm:^1.0.7, walker@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "walker@npm:1.0.8"
+ dependencies:
+ makeerror: "npm:1.0.12"
+ checksum: 10/ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c
+ languageName: node
+ linkType: hard
+
+"warn-once@npm:^0.1.0":
+ version: 0.1.1
+ resolution: "warn-once@npm:0.1.1"
+ checksum: 10/e6a5a1f5a8dba7744399743d3cfb571db4c3947897875d4962a7c5b1bf2195ab4518c838cb4cea652e71729f21bba2e98dc75686f5fccde0fabbd894e2ed0c0d
+ languageName: node
+ linkType: hard
+
+"wcwidth@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "wcwidth@npm:1.0.1"
+ dependencies:
+ defaults: "npm:^1.0.3"
+ checksum: 10/182ebac8ca0b96845fae6ef44afd4619df6987fe5cf552fdee8396d3daa1fb9b8ec5c6c69855acb7b3c1231571393bd1f0a4cdc4028d421575348f64bb0a8817
+ languageName: node
+ linkType: hard
+
+"webidl-conversions@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "webidl-conversions@npm:3.0.1"
+ checksum: 10/b65b9f8d6854572a84a5c69615152b63371395f0c5dcd6729c45789052296df54314db2bc3e977df41705eacb8bc79c247cee139a63fa695192f95816ed528ad
+ languageName: node
+ linkType: hard
+
+"whatwg-fetch@npm:^3.0.0":
+ version: 3.6.20
+ resolution: "whatwg-fetch@npm:3.6.20"
+ checksum: 10/2b4ed92acd6a7ad4f626a6cb18b14ec982bbcaf1093e6fe903b131a9c6decd14d7f9c9ca3532663c2759d1bdf01d004c77a0adfb2716a5105465c20755a8c57c
+ languageName: node
+ linkType: hard
+
+"whatwg-url@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "whatwg-url@npm:5.0.0"
+ dependencies:
+ tr46: "npm:~0.0.3"
+ webidl-conversions: "npm:^3.0.0"
+ checksum: 10/f95adbc1e80820828b45cc671d97da7cd5e4ef9deb426c31bcd5ab00dc7103042291613b3ef3caec0a2335ed09e0d5ed026c940755dbb6d404e2b27f940fdf07
+ languageName: node
+ linkType: hard
+
+"which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "which-boxed-primitive@npm:1.1.1"
+ dependencies:
+ is-bigint: "npm:^1.1.0"
+ is-boolean-object: "npm:^1.2.1"
+ is-number-object: "npm:^1.1.1"
+ is-string: "npm:^1.1.1"
+ is-symbol: "npm:^1.1.1"
+ checksum: 10/a877c0667bc089518c83ad4d845cf8296b03efe3565c1de1940c646e00a2a1ae9ed8a185bcfa27cbf352de7906f0616d83b9d2f19ca500ee02a551fb5cf40740
+ languageName: node
+ linkType: hard
+
+"which-builtin-type@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "which-builtin-type@npm:1.2.1"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ function.prototype.name: "npm:^1.1.6"
+ has-tostringtag: "npm:^1.0.2"
+ is-async-function: "npm:^2.0.0"
+ is-date-object: "npm:^1.1.0"
+ is-finalizationregistry: "npm:^1.1.0"
+ is-generator-function: "npm:^1.0.10"
+ is-regex: "npm:^1.2.1"
+ is-weakref: "npm:^1.0.2"
+ isarray: "npm:^2.0.5"
+ which-boxed-primitive: "npm:^1.1.0"
+ which-collection: "npm:^1.0.2"
+ which-typed-array: "npm:^1.1.16"
+ checksum: 10/22c81c5cb7a896c5171742cd30c90d992ff13fb1ea7693e6cf80af077791613fb3f89aa9b4b7f890bd47b6ce09c6322c409932359580a2a2a54057f7b52d1cbe
+ languageName: node
+ linkType: hard
+
+"which-collection@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "which-collection@npm:1.0.2"
+ dependencies:
+ is-map: "npm:^2.0.3"
+ is-set: "npm:^2.0.3"
+ is-weakmap: "npm:^2.0.2"
+ is-weakset: "npm:^2.0.3"
+ checksum: 10/674bf659b9bcfe4055f08634b48a8588e879161b9fefed57e9ec4ff5601e4d50a05ccd76cf10f698ef5873784e5df3223336d56c7ce88e13bcf52ebe582fc8d7
+ languageName: node
+ linkType: hard
+
+"which-module@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "which-module@npm:2.0.1"
+ checksum: 10/1967b7ce17a2485544a4fdd9063599f0f773959cca24176dbe8f405e55472d748b7c549cd7920ff6abb8f1ab7db0b0f1b36de1a21c57a8ff741f4f1e792c52be
+ languageName: node
+ linkType: hard
+
+"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19":
+ version: 1.1.22
+ resolution: "which-typed-array@npm:1.1.22"
+ dependencies:
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.9"
+ call-bound: "npm:^1.0.4"
+ for-each: "npm:^0.3.5"
+ get-proto: "npm:^1.0.1"
+ gopd: "npm:^1.2.0"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10/59b0383347e2f3b0bc5be570c2dfae551b172a9c83e0a6b03c6e17401d6161dfa1d912c7657062fe9add254a0d3c25ef70593dbaec8fefa8714715ff69e0a3fc
+ languageName: node
+ linkType: hard
+
+"which@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "which@npm:2.0.2"
+ dependencies:
+ isexe: "npm:^2.0.0"
+ bin:
+ node-which: ./bin/node-which
+ checksum: 10/4782f8a1d6b8fc12c65e968fea49f59752bf6302dc43036c3bf87da718a80710f61a062516e9764c70008b487929a73546125570acea95c5b5dcc8ac3052c70f
+ languageName: node
+ linkType: hard
+
+"which@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "which@npm:7.0.0"
+ dependencies:
+ isexe: "npm:^4.0.0"
+ bin:
+ node-which: bin/which.js
+ checksum: 10/913a43ac10df37602ba9795a004dd7ab12ba7dd592aca1f08ec333be1fdd6a49bbf119a88c3f8d0ea70eeb6251726e77069251424d73000299a0a840ed000732
+ languageName: node
+ linkType: hard
+
+"word-wrap@npm:^1.2.5":
+ version: 1.2.5
+ resolution: "word-wrap@npm:1.2.5"
+ checksum: 10/1ec6f6089f205f83037be10d0c4b34c9183b0b63fca0834a5b3cee55dd321429d73d40bb44c8fc8471b5203d6e8f8275717f49a8ff4b2b0ab41d7e1b563e0854
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^6.2.0":
+ version: 6.2.0
+ resolution: "wrap-ansi@npm:6.2.0"
+ dependencies:
+ ansi-styles: "npm:^4.0.0"
+ string-width: "npm:^4.1.0"
+ strip-ansi: "npm:^6.0.0"
+ checksum: 10/0d64f2d438e0b555e693b95aee7b2689a12c3be5ac458192a1ce28f542a6e9e59ddfecc37520910c2c88eb1f82a5411260566dba5064e8f9895e76e169e76187
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "wrap-ansi@npm:7.0.0"
+ dependencies:
+ ansi-styles: "npm:^4.0.0"
+ string-width: "npm:^4.1.0"
+ strip-ansi: "npm:^6.0.0"
+ checksum: 10/cebdaeca3a6880da410f75209e68cd05428580de5ad24535f22696d7d9cab134d1f8498599f344c3cf0fb37c1715807a183778d8c648d6cc0cb5ff2bb4236540
+ languageName: node
+ linkType: hard
+
+"wrappy@npm:1":
+ version: 1.0.2
+ resolution: "wrappy@npm:1.0.2"
+ checksum: 10/159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5
+ languageName: node
+ linkType: hard
+
+"write-file-atomic@npm:^2.3.0":
+ version: 2.4.3
+ resolution: "write-file-atomic@npm:2.4.3"
+ dependencies:
+ graceful-fs: "npm:^4.1.11"
+ imurmurhash: "npm:^0.1.4"
+ signal-exit: "npm:^3.0.2"
+ checksum: 10/15ce863dce07075d0decedd7c9094f4461e46139d28a758c53162f24c0791c16cd2e7a76baa5b47b1a851fbb51e16f2fab739afb156929b22628f3225437135c
+ languageName: node
+ linkType: hard
+
+"write-file-atomic@npm:^4.0.2":
+ version: 4.0.2
+ resolution: "write-file-atomic@npm:4.0.2"
+ dependencies:
+ imurmurhash: "npm:^0.1.4"
+ signal-exit: "npm:^3.0.7"
+ checksum: 10/3be1f5508a46c190619d5386b1ac8f3af3dbe951ed0f7b0b4a0961eed6fc626bd84b50cf4be768dabc0a05b672f5d0c5ee7f42daa557b14415d18c3a13c7d246
+ languageName: node
+ linkType: hard
+
+"ws@npm:^6.2.3":
+ version: 6.2.4
+ resolution: "ws@npm:6.2.4"
+ dependencies:
+ async-limiter: "npm:~1.0.0"
+ checksum: 10/5ec88106f4f97fb175837a476e186b889ec8c57a5ee7c511c852fc1d129ad55cd1c1f45092af2df7419c1394f2000f9b1b6f68f2fcfe52d04d8882aafa1b3838
+ languageName: node
+ linkType: hard
+
+"ws@npm:^7, ws@npm:^7.5.10":
+ version: 7.5.11
+ resolution: "ws@npm:7.5.11"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 10/486141e4a01bb75883f9ba39317309c2427e24db1cb75e340fad6e5886b65c03d994a34209f0e4ba06dd6cb9ec95dd1b6a09c52c05eed9a34d6376f4fbbf617c
+ languageName: node
+ linkType: hard
+
+"y18n@npm:^4.0.0":
+ version: 4.0.3
+ resolution: "y18n@npm:4.0.3"
+ checksum: 10/392870b2a100bbc643bc035fe3a89cef5591b719c7bdc8721bcdb3d27ab39fa4870acdca67b0ee096e146d769f311d68eda6b8195a6d970f227795061923013f
+ languageName: node
+ linkType: hard
+
+"y18n@npm:^5.0.5":
+ version: 5.0.8
+ resolution: "y18n@npm:5.0.8"
+ checksum: 10/5f1b5f95e3775de4514edbb142398a2c37849ccfaf04a015be5d75521e9629d3be29bd4432d23c57f37e5b61ade592fb0197022e9993f81a06a5afbdcda9346d
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^3.0.2":
+ version: 3.1.1
+ resolution: "yallist@npm:3.1.1"
+ checksum: 10/9af0a4329c3c6b779ac4736c69fae4190ac03029fa27c1aef4e6bcc92119b73dea6fe5db5fe881fb0ce2a0e9539a42cdf60c7c21eda04d1a0b8c082e38509efb
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "yallist@npm:5.0.0"
+ checksum: 10/1884d272d485845ad04759a255c71775db0fac56308764b4c77ea56a20d56679fad340213054c8c9c9c26fcfd4c4b2a90df993b7e0aaf3cdb73c618d1d1a802a
+ languageName: node
+ linkType: hard
+
+"yaml@npm:^2.2.1":
+ version: 2.9.0
+ resolution: "yaml@npm:2.9.0"
+ bin:
+ yaml: bin.mjs
+ checksum: 10/9a95e8e08651c3d292ab6a5befeb5f57b76801caa097c75bb45c9a70ce19c1b11f57e87a6ef84a579ea070ed2c2c8ac541c88c0ae684d544d5f42c7e77d11b7b
+ languageName: node
+ linkType: hard
+
+"yargs-parser@npm:^18.1.2":
+ version: 18.1.3
+ resolution: "yargs-parser@npm:18.1.3"
+ dependencies:
+ camelcase: "npm:^5.0.0"
+ decamelize: "npm:^1.2.0"
+ checksum: 10/235bcbad5b7ca13e5abc54df61d42f230857c6f83223a38e4ed7b824681875b7f8b6ed52139d88a3ad007050f28dc0324b3c805deac7db22ae3b4815dae0e1bf
+ languageName: node
+ linkType: hard
+
+"yargs-parser@npm:^21.1.1":
+ version: 21.1.1
+ resolution: "yargs-parser@npm:21.1.1"
+ checksum: 10/9dc2c217ea3bf8d858041252d43e074f7166b53f3d010a8c711275e09cd3d62a002969a39858b92bbda2a6a63a585c7127014534a560b9c69ed2d923d113406e
+ languageName: node
+ linkType: hard
+
+"yargs@npm:^15.1.0":
+ version: 15.4.1
+ resolution: "yargs@npm:15.4.1"
+ dependencies:
+ cliui: "npm:^6.0.0"
+ decamelize: "npm:^1.2.0"
+ find-up: "npm:^4.1.0"
+ get-caller-file: "npm:^2.0.1"
+ require-directory: "npm:^2.1.1"
+ require-main-filename: "npm:^2.0.0"
+ set-blocking: "npm:^2.0.0"
+ string-width: "npm:^4.2.0"
+ which-module: "npm:^2.0.0"
+ y18n: "npm:^4.0.0"
+ yargs-parser: "npm:^18.1.2"
+ checksum: 10/bbcc82222996c0982905b668644ca363eebe6ffd6a572fbb52f0c0e8146661d8ce5af2a7df546968779bb03d1e4186f3ad3d55dfaadd1c4f0d5187c0e3a5ba16
+ languageName: node
+ linkType: hard
+
+"yargs@npm:^17.3.1, yargs@npm:^17.6.2":
+ version: 17.7.3
+ resolution: "yargs@npm:17.7.3"
+ dependencies:
+ cliui: "npm:^8.0.1"
+ escalade: "npm:^3.1.1"
+ get-caller-file: "npm:^2.0.5"
+ require-directory: "npm:^2.1.1"
+ string-width: "npm:^4.2.3"
+ y18n: "npm:^5.0.5"
+ yargs-parser: "npm:^21.1.1"
+ checksum: 10/a3826798c03b159e139d0580a3b2733953889a9a1bac8e4e1ca7a1a249b55315b213c323a6a1dbdb305f6e59496a9eaa810742c87e34abcf1a0584d8f59212a1
+ languageName: node
+ linkType: hard
+
+"yocto-queue@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "yocto-queue@npm:0.1.0"
+ checksum: 10/f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700
+ languageName: node
+ linkType: hard
diff --git a/docs/development.md b/docs/development.md
index 078170bc1..1d52a39a8 100644
--- a/docs/development.md
+++ b/docs/development.md
@@ -14,6 +14,21 @@
Run `yarn install` to install the npm dependencies.
+### Sample app lockfiles (`AEPSampleApp`, `BareSampleApp`)
+
+Each sample app has its own `yarn.lock` and links the local Optimize package via **`portal:../../packages/optimize`** (not `file:`). The `portal:` protocol symlinks to the monorepo package **without** a volatile content hash/checksum, so `yarn install --immutable` stays stable across macOS/Linux CI and local `dist/` build output.
+
+After changing `packages/optimize/`:
+
+```bash
+yarn install
+yarn run build
+cd apps/AEPSampleApp && yarn install # repeat for BareSampleApp if needed
+git add apps/AEPSampleApp/yarn.lock apps/BareSampleApp/yarn.lock
+```
+
+CI runs `yarn run build` before sample-app `yarn install --immutable` so native/metro consumers see compiled `dist/` output.
+
## Tests
To run the (Jest) unit tests locally:
@@ -27,6 +42,17 @@ yarn test
> Jest expects to find test files in the sub-packages' `__test__` folder.
+## Optimize extension — manual validation (sample apps)
+
+Beyond Jest, Optimize is validated on devices/simulators through **BareSampleApp** (RN 0.76, old + new architecture) and **AEPSampleApp** (RN 0.85, new architecture only). Each app ships `scripts/build-matrix.sh` to build turbo vs interop cells without hand-editing native config.
+
+| App | Matrix entry | Docs |
+| :--- | :--- | :--- |
+| BareSampleApp | `cd apps/BareSampleApp && yarn build:matrix:list` | [README](../apps/BareSampleApp/README.md#optimize-extension-and-build-matrix) |
+| AEPSampleApp | `cd apps/AEPSampleApp && yarn build:matrix:list` | [README](../apps/AEPSampleApp/README.md#optimize-extension-and-build-matrix) |
+
+June 2026 smoke matrix: **10** cells (platform × arch × turbo/interop), **8** scenarios per cell, **80/80** pass. Summary in [packages/optimize/README.md](../packages/optimize/README.md#validation-matrix-june-2026). UI triggers live in each app's `extensions/OptimizeView.tsx`.
+
## Convention
Due to the [symlinks not working in React Native](https://github.com/facebook/metro/issues/1) issue, the solution (used in this project) is to modify [metro.config.js](../apps/AEPSampleApp/metro.config.js) to manually follow symbolic links:
diff --git a/lerna.json b/lerna.json
index f2572f342..3e04d9021 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,7 +1,6 @@
{
"packages": [
- "packages/*",
- "apps/*"
+ "packages/*"
],
"npmClient": "yarn",
"version": "independent"
diff --git a/package.json b/package.json
index 2189a2a8a..6bc19e624 100644
--- a/package.json
+++ b/package.json
@@ -9,8 +9,8 @@
],
"scripts": {
"clean": "rm yarn.lock & find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +",
- "prebuild": "npx lerna exec --ignore aepsampleapp -- rm -rf dist",
- "build": "npx lerna exec --ignore aepsampleapp --ignore aepsampleappnewarchenabled -- tsc",
+ "prebuild": "npx lerna exec --ignore aepsampleapp --ignore baresampleapp -- rm -rf dist",
+ "build": "npx lerna exec --ignore aepsampleapp --ignore aepsampleappnewarchenabled --ignore baresampleapp -- tsc",
"test": "jest",
"test:ui": "npx lerna run test:ui --scope @adobe/react-native-aepmessaging",
"sampleapp:ios:pod:update": "cd apps/AEPSampleApp/ios && pod update",
diff --git a/packages/optimize/RCTAEPOptimize.podspec b/packages/optimize/RCTAEPOptimize.podspec
index b3b947f7e..83a96aa6e 100644
--- a/packages/optimize/RCTAEPOptimize.podspec
+++ b/packages/optimize/RCTAEPOptimize.podspec
@@ -2,8 +2,8 @@ require "json"
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
# Build-time toggle — mirrors Android's buildConfigField "boolean", "USE_INTEROP_ROOT", "false"
-# USE_INTEROP_ROOT=1 pod install → interop layer (old arch, RCTEventEmitter)
-# USE_INTEROP_ROOT=0 (default) → Turbo Module (new arch, getTurboModule:)
+# USE_INTEROP_ROOT=1 pod install → interop layer (RN 0.76, RCTEventEmitter)
+# USE_INTEROP_ROOT=0 (default) → Turbo Module (RN 0.84+, SpecBase + JSI events)
use_interop_root = ENV.key?('USE_INTEROP_ROOT') ? ENV['USE_INTEROP_ROOT'].to_i : 0
Pod::Spec.new do |s|
@@ -22,14 +22,17 @@ Pod::Spec.new do |s|
s.source_files = 'ios/**/*.{h,m,mm}'
s.requires_arc = true
- s.dependency "React"
- s.dependency "React-Codegen"
s.dependency "AEPOptimize", ">= 5.0.0", "< 6.0.0"
s.pod_target_xcconfig = {
"CLANG_ENABLE_MODULES" => "YES",
- "OTHER_CPLUSPLUSFLAGS" => "$(inherited) -fcxx-modules",
- "HEADER_SEARCH_PATHS" => "$(inherited) \"$(PODS_ROOT)/../build/generated/ios\" \"$(PODS_ROOT)/../build/generated/ios/ReactCodegen\" \"$(PODS_ROOT)/Headers/Public/ReactCodegen\"",
+ "OTHER_CPLUSPLUSFLAGS" => "$(inherited) -fcxx-modules -include $(PODS_TARGET_SRCROOT)/ios/RCTAEPOptimizeCppPrefix.h",
+ "HEADER_SEARCH_PATHS" => "$(inherited) \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-jsinspector/jsinspector_modern.framework/Headers\" \"$(PODS_ROOT)/../build/generated/ios\" \"$(PODS_ROOT)/../build/generated/ios/ReactCodegen\" \"$(PODS_ROOT)/Headers/Public/ReactCodegen\"",
"GCC_PREPROCESSOR_DEFINITIONS" => "$(inherited) USE_INTEROP_ROOT=#{use_interop_root}"
}
+
+ # Codegen TurboModule headers need RCT-Folly + FOLLY_NO_CONFIG even when new arch is off
+ # (interop path on RN 0.76 still implements getTurboModule: / NativeAEPOptimizeSpec).
+ new_arch_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1'
+ install_modules_dependencies(s, new_arch_enabled: new_arch_enabled)
end
diff --git a/packages/optimize/README.md b/packages/optimize/README.md
index e46e811a2..21fb01fa6 100644
--- a/packages/optimize/README.md
+++ b/packages/optimize/README.md
@@ -44,6 +44,56 @@ To initialize the SDK, use the following methods:
Refer to the root [Readme](https://github.com/adobe/aepsdk-react-native/blob/main/README.md) for more information about the SDK setup.
+## React Native New Architecture (Turbo Module)
+
+`@adobe/react-native-aepoptimize` supports both the **Turbo Module** path (Codegen `NativeAEPOptimizeSpec`, JSI events) and an **interop** path (bridge / `RCTEventEmitter`) for apps that have not fully migrated native call sites.
+
+| Platform | Turbo (default) | Interop |
+| :--- | :--- | :--- |
+| **iOS** | `USE_INTEROP_ROOT=0` at `pod install` (default) | `USE_INTEROP_ROOT=1 pod install` |
+| **Android (new arch)** | `USE_INTEROP_ROOT=false` in the app `gradle.properties` (default) | `USE_INTEROP_ROOT=true` |
+| **Android (old arch)** | Bridge module always; `USE_INTEROP_ROOT` only affects `BuildConfig` | Primary path on RN 0.76 |
+
+**iOS** — set the env var when installing pods:
+
+```bash
+# Turbo Module (RN 0.84+, recommended when New Architecture is enabled)
+USE_INTEROP_ROOT=0 pod install
+
+# Interop / bridge events (RN 0.76 legacy bridge, or interop testing)
+USE_INTEROP_ROOT=1 pod install
+```
+
+**Android (new architecture)** — override the optimize package `BuildConfig` from the app root `build.gradle` (see [AEPSampleApp](../../apps/AEPSampleApp/android/build.gradle) for a working example):
+
+```gradle
+def optimizeUseInteropRoot = findProperty("USE_INTEROP_ROOT") ?: "false"
+subprojects { subproject ->
+ subproject.afterEvaluate {
+ if (subproject.name == "adobe_react-native-aepoptimize") {
+ subproject.android {
+ defaultConfig {
+ buildConfigField "boolean", "USE_INTEROP_ROOT", optimizeUseInteropRoot
+ }
+ }
+ }
+ }
+}
+```
+
+Then toggle `USE_INTEROP_ROOT=true|false` in `android/gradle.properties`.
+
+### Validation matrix (June 2026)
+
+Eight Optimize smoke scenarios (extension version, proposition update/listener/callback, get/clear cache, display/tap offer, batch display) were run across sample apps. All **80** executions passed (**10** architecture/mode cells × **8** tests).
+
+| Sample app | React Native | Cells exercised |
+| :--- | :--- | :--- |
+| [BareSampleApp](../../apps/BareSampleApp) | 0.76 | iOS old/new × interop; iOS new turbo; Android old/new × interop; Android new turbo |
+| [AEPSampleApp](../../apps/AEPSampleApp) | 0.85 | iOS/Android new arch × interop and turbo |
+
+Use each app's `yarn build:matrix:list` and `yarn build:*` scripts (see sample app READMEs) to reproduce a cell locally. Optimize API demos live under **Optimize** in the app drawer (`extensions/OptimizeView.tsx`).
+
### Importing the extension:
```typescript
diff --git a/packages/optimize/__tests__/OptimizeTests.ts b/packages/optimize/__tests__/OptimizeTests.ts
index 3d8f528eb..63165b5eb 100644
--- a/packages/optimize/__tests__/OptimizeTests.ts
+++ b/packages/optimize/__tests__/OptimizeTests.ts
@@ -10,12 +10,10 @@ OF ANY KIND, either express or implied. See the License for the specific languag
governing permissions and limitations under the License.
*/
-// Map the TurboModule to the same mock object as NativeModules.AEPOptimize so that
-// existing jest.spyOn(NativeModules.AEPOptimize, ...) calls continue to fire when
-// Optimize.ts routes calls through NativeAEPOptimize (TurboModule path).
+// Route TurboModule resolver to the shared Optimize mock (NativeAEPOptimize + legacy AEPOptimize).
jest.mock('../src/NativeAEPOptimize', () => {
const rn = jest.requireMock('react-native');
- return { __esModule: true, default: rn.NativeModules.AEPOptimize };
+ return { __esModule: true, default: rn.NativeModules.NativeAEPOptimize };
});
import { NativeModules } from 'react-native';
@@ -32,13 +30,11 @@ describe('Optimize', () => {
it('AEPOptimize onPropositionUpdate is called with correct parameters', async () => {
const registerSpy = jest.spyOn(NativeModules.AEPOptimize, 'onPropositionsUpdate');
- const subscribeSpy = jest.spyOn(NativeModules.AEPOptimize, 'onPropositionsUpdated');
let adobeCallback = {
call(_: Map): void {}
};
await Optimize.onPropositionUpdate(adobeCallback);
- expect(subscribeSpy).toHaveBeenCalled();
expect(registerSpy).toHaveBeenCalled();
});
diff --git a/packages/optimize/android/README.md b/packages/optimize/android/README.md
index 027dc5886..f878e8a23 100644
--- a/packages/optimize/android/README.md
+++ b/packages/optimize/android/README.md
@@ -1,3 +1,43 @@
-# Setup
+# Android — `@adobe/react-native-aepoptimize`
-Open `build.gradle` in Android Studio.
+## Module layout
+
+| New Architecture | Native entry | Notes |
+| :--- | :--- | :--- |
+| **Enabled** (`newArchEnabled=true`) | `NativeAEPOptimizeModule` (Turbo) or interop module when `USE_INTEROP_ROOT=true` | Codegen spec in `specs/NativeAEPOptimize.ts` |
+| **Disabled** | `RCTAEPOptimizeModule` (bridge) | `NativeAEPOptimizeModule.java` excluded in `build.gradle` |
+
+The library default is `USE_INTEROP_ROOT=false` (Turbo path when new arch is on). Consumer apps should override this from the **app** project if they need interop.
+
+## Overriding `USE_INTEROP_ROOT` from your app
+
+In the app root `android/build.gradle`:
+
+```gradle
+def optimizeUseInteropRoot = findProperty("USE_INTEROP_ROOT") ?: "false"
+
+subprojects { subproject ->
+ subproject.afterEvaluate {
+ if (subproject.name == "adobe_react-native-aepoptimize") {
+ subproject.android {
+ defaultConfig {
+ buildConfigField "boolean", "USE_INTEROP_ROOT", optimizeUseInteropRoot
+ }
+ }
+ }
+ }
+}
+```
+
+In `android/gradle.properties`:
+
+```properties
+newArchEnabled=true
+USE_INTEROP_ROOT=false
+```
+
+Set `USE_INTEROP_ROOT=true` for the interop/bridge event path. [BareSampleApp](../../../apps/BareSampleApp/scripts/build-matrix.sh) and [AEPSampleApp](../../../apps/AEPSampleApp/scripts/build-matrix.sh) automate this toggle for smoke testing.
+
+## Local development
+
+Open `build.gradle` in Android Studio, or build from the sample app matrix scripts above.
diff --git a/packages/optimize/android/build.gradle b/packages/optimize/android/build.gradle
index bac81bfb7..ce6a2c4a7 100644
--- a/packages/optimize/android/build.gradle
+++ b/packages/optimize/android/build.gradle
@@ -26,6 +26,7 @@ android {
versionCode 1
versionName "1.0"
buildConfigField "boolean", "USE_INTEROP_ROOT", "false"
+ buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled() ? "true" : "false"
}
buildFeatures {
buildConfig true
@@ -33,6 +34,16 @@ android {
lintOptions {
abortOnError false
}
+
+ sourceSets {
+ main {
+ if (!isNewArchitectureEnabled()) {
+ java {
+ exclude '**/NativeAEPOptimizeModule.java'
+ }
+ }
+ }
+ }
}
repositories {
diff --git a/packages/optimize/android/src/main/java/com/adobe/marketing/mobile/reactnative/optimize/NativeAEPOptimizeModule.java b/packages/optimize/android/src/main/java/com/adobe/marketing/mobile/reactnative/optimize/NativeAEPOptimizeModule.java
index bcee31cb1..0160c071e 100644
--- a/packages/optimize/android/src/main/java/com/adobe/marketing/mobile/reactnative/optimize/NativeAEPOptimizeModule.java
+++ b/packages/optimize/android/src/main/java/com/adobe/marketing/mobile/reactnative/optimize/NativeAEPOptimizeModule.java
@@ -45,6 +45,7 @@ public class NativeAEPOptimizeModule extends NativeAEPOptimizeSpec {
private static final String TAG = "NativeAEPOptimizeModule";
private final Map propositionCache = new ConcurrentHashMap<>();
+ private boolean propositionsUpdateListenerRegistered = false;
public NativeAEPOptimizeModule(ReactApplicationContext reactContext) {
super(reactContext);
@@ -123,6 +124,12 @@ public void call(Map decisionScopePropositio
@Override
public void onPropositionsUpdate() {
+ // AEP SDK stacks listeners on each call — register once per module instance.
+ if (propositionsUpdateListenerRegistered) {
+ Log.d(TAG, "onPropositionsUpdate: AEP listener already registered, skipping duplicate registration.");
+ return;
+ }
+ propositionsUpdateListenerRegistered = true;
Optimize.onPropositionsUpdate(new AdobeCallback