diff --git a/packages/sdk/react-native/README.md b/packages/sdk/react-native/README.md
index da3d52acb..67a208ce0 100644
--- a/packages/sdk/react-native/README.md
+++ b/packages/sdk/react-native/README.md
@@ -1,6 +1,7 @@
# LaunchDarkly React Native SDK
-:warning: UNSUPPORTED This SDK is in pre-release development and is not supported.
+> [!WARNING]
+> UNSUPPORTED This SDK is in pre-release development and is not supported.
[![NPM][sdk-react-native-npm-badge]][sdk-react-native-npm-link]
[![Actions Status][sdk-react-native-ci-badge]][sdk-react-native-ci]
@@ -20,19 +21,80 @@ For more information, see the [complete reference guide for this SDK](https://do
yarn add @launchdarkly/react-native-client-sdk
```
+Additionally, the LaunchDarkly React-Native SDK uses
+[@react-native-async-storage/async-storage](https://github.com/react-native-async-storage/async-storage)
+for bootstrapping. This is a native dependency.
+
+If you are using expo, then installing this package from npm like above and re-running pod install should suffice.
+
+If you are not using expo, you will need to explicitly add
+@react-native-async-storage/async-storage as a dependency to your project
+and re-run pod install for [auto-linking to work](https://github.com/react-native-community/cli/issues/1347).
+
## Quickstart
-TODO
+1. Wrap your application with `LDProvider` passing it an LDClient and
+ an LDContext:
+
+```jsx
+// App.tsx
+import { LDProvider, ReactNativeLDClient } from '@launchdarkly/react-native-client-sdk';
+
+const featureClient = new ReactNativeLDClient('mobile-key');
+const userContext = { kind: 'user', key: 'test-user-1' };
+
+const App = () => (
+
+
+
+);
+
+export default App;
+```
+
+2. Then in a child component, evaluate flags with `useBoolVariation`:
+
+```jsx
+import { useBoolVariation } from '@launchdarkly/react-native-client-sdk';
+
+export default function Welcome() {
+ const flagValue = useBoolVariation('flag-key', false);
-```typescript
-// TODO
+ return (
+
+ Welcome to LaunchDarkly
+ Flag value is {`${flagValue}`}
+
+ );
+}
```
See the full [example app](https://github.com/launchdarkly/js-core/tree/main/packages/sdk/react-native/example).
## Developing this SDK
-:information_source: See the example [README](https://github.com/launchdarkly/js-core/blob/main/packages/sdk/react-native/example/README.md#L1).
+1. Build all the code in the `js-core` repo:
+
+```shell
+# at js-core repo root
+yarn && yarn build
+```
+
+2. The example app uses [react-native-dotenv](https://github.com/goatandsheep/react-native-dotenv)
+ to manage environment variables. Under `packages/sdk/react-native/example`
+ create an `.env` file and add your mobile key:
+
+```shell
+echo "MOBILE_KEY=mob-abc" >> packages/sdk/react-native/example/.env
+```
+
+3. Run the example app. This will link the local react-native sdk code to the
+ example app for development:
+
+```shell
+# in react-native/example
+yarn && yarn ios-go
+```
## About LaunchDarkly
diff --git a/packages/sdk/react-native/example/.gitignore b/packages/sdk/react-native/example/.gitignore
index b252443a3..877c0f430 100644
--- a/packages/sdk/react-native/example/.gitignore
+++ b/packages/sdk/react-native/example/.gitignore
@@ -37,3 +37,5 @@ yarn-error.*
ios
android
+
+!yarn.lock
diff --git a/packages/sdk/react-native/example/App.tsx b/packages/sdk/react-native/example/App.tsx
index 56634e16e..0855d46a7 100644
--- a/packages/sdk/react-native/example/App.tsx
+++ b/packages/sdk/react-native/example/App.tsx
@@ -5,11 +5,10 @@ import { LDProvider, ReactNativeLDClient } from '@launchdarkly/react-native-clie
import Welcome from './src/welcome';
const featureClient = new ReactNativeLDClient(MOBILE_KEY);
-const context = { kind: 'user', key: 'test-user-1' };
const App = () => {
return (
-
+
);
diff --git a/packages/sdk/react-native/example/README.md b/packages/sdk/react-native/example/README.md
index 2307d41b9..8cc13d9f9 100644
--- a/packages/sdk/react-native/example/README.md
+++ b/packages/sdk/react-native/example/README.md
@@ -20,11 +20,11 @@ MOBILE_KEY=abcdef12456
```shell
# Note for android, there's an issue with Flipper interfering with streaming connections
-# so please run the release build. There's no such issue with ios.
-
-# android
-yarn && yarn android-release
+# so please run the release build. There's no such issues with ios.
# ios
yarn && yarn ios-go
+
+# android
+yarn && yarn android-release
```
diff --git a/packages/sdk/react-native/example/package.json b/packages/sdk/react-native/example/package.json
index 113904380..7901a2457 100644
--- a/packages/sdk/react-native/example/package.json
+++ b/packages/sdk/react-native/example/package.json
@@ -5,16 +5,18 @@
"scripts": {
"start": "expo start",
"expo-clean": "expo prebuild --clean",
- "android": "expo run:android",
- "android-release": "expo run:android --variant release",
- "android-go": "expo start --android --clear",
+ "android": "yarn link-dev && expo run:android",
+ "android-release": "yarn link-dev && expo run:android --variant release",
+ "android-go": "yarn link-dev && expo start --android --clear",
"android-log": "react-native log-android",
- "ios": "expo run:ios",
- "ios-release": "expo run:ios --configuration Release",
- "ios-go": "expo start --ios --clear",
+ "ios": "yarn link-dev && expo run:ios",
+ "ios-release": "yarn link-dev && expo run:ios --configuration Release",
+ "ios-go": "yarn link-dev && expo start --ios --clear",
"ios-log": "react-native log-ios",
- "web": "expo start --web --clear",
- "clean": "expo prebuild --clean && yarn cache clean && rm -rf node_modules && rm -rf .expo"
+ "web": "yarn link-dev && expo start --web --clear",
+ "clean": "expo prebuild --clean && yarn cache clean && rm -rf node_modules && rm -rf .expo",
+ "link-dev": "(cd .. && yarn build)",
+ "postinstall": "yarn link-dev"
},
"dependencies": {
"expo": "~49.0.16",
diff --git a/packages/sdk/react-native/example/src/welcome.tsx b/packages/sdk/react-native/example/src/welcome.tsx
index dd42ebbf6..54ec0333b 100644
--- a/packages/sdk/react-native/example/src/welcome.tsx
+++ b/packages/sdk/react-native/example/src/welcome.tsx
@@ -1,28 +1,46 @@
-import { Button, StyleSheet, Text, View } from 'react-native';
+import { useState } from 'react';
+import { StyleSheet, Text, TextInput, TouchableOpacity, View } from 'react-native';
-import {
- useBoolVariation,
- useLDClient,
- useLDDataSourceStatus,
-} from '@launchdarkly/react-native-client-sdk';
+import { useBoolVariation, useLDClient } from '@launchdarkly/react-native-client-sdk';
export default function Welcome() {
- const { error, status } = useLDDataSourceStatus();
- const flag = useBoolVariation('dev-test-flag', false);
+ const [flagKey, setFlagKey] = useState('dev-test-flag');
+ const [userKey, setUserKey] = useState('');
+ const flagValue = useBoolVariation(flagKey, false);
const ldc = useLDClient();
- const login = () => {
- ldc.identify({ kind: 'user', key: 'test-user-2' });
+ const onIdentify = () => {
+ ldc
+ .identify({ kind: 'user', key: userKey })
+ .catch((e: any) => console.error(`error identifying ${userKey}: ${e}`));
};
return (
Welcome to LaunchDarkly
- status: {status ?? 'not connected'}
- {error ? error: {error.message} : null}
- devTestFlag: {`${flag}`}
+
+ {flagKey}: {`${flagValue}`}
+
context: {JSON.stringify(ldc.getContext())}
-
+
+
+ identify
+
+
+
+ get flag value
+
);
}
@@ -33,9 +51,25 @@ const styles = StyleSheet.create({
alignItems: 'center',
justifyContent: 'center',
},
- box: {
- width: 60,
- height: 60,
- marginVertical: 20,
+ input: {
+ height: 40,
+ margin: 12,
+ borderWidth: 1,
+ padding: 10,
+ },
+ buttonContainer: {
+ elevation: 8,
+ backgroundColor: '#009688',
+ borderRadius: 10,
+ paddingVertical: 10,
+ paddingHorizontal: 12,
+ marginBottom: 20,
+ },
+ buttonText: {
+ fontSize: 18,
+ color: '#fff',
+ fontWeight: 'bold',
+ alignSelf: 'center',
+ textTransform: 'uppercase',
},
});
diff --git a/packages/sdk/react-native/example/yarn.lock b/packages/sdk/react-native/example/yarn.lock
new file mode 100644
index 000000000..be764e25d
--- /dev/null
+++ b/packages/sdk/react-native/example/yarn.lock
@@ -0,0 +1,9293 @@
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 6
+ cacheKey: 8
+
+"@0no-co/graphql.web@npm:^1.0.1":
+ version: 1.0.4
+ resolution: "@0no-co/graphql.web@npm:1.0.4"
+ peerDependencies:
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
+ peerDependenciesMeta:
+ graphql:
+ optional: true
+ checksum: d415fb2f063a024e2d382e8dc5e66929d0d9bf94f2c22e03cde201dc2fa03e15d21274dbe5c23a26ce016a4cac3db93ad99fb454de76fd94bc1600fd7062eebe
+ languageName: node
+ linkType: hard
+
+"@ampproject/remapping@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "@ampproject/remapping@npm:2.2.1"
+ dependencies:
+ "@jridgewell/gen-mapping": ^0.3.0
+ "@jridgewell/trace-mapping": ^0.3.9
+ checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079
+ languageName: node
+ linkType: hard
+
+"@babel/code-frame@npm:7.10.4, @babel/code-frame@npm:~7.10.4":
+ version: 7.10.4
+ resolution: "@babel/code-frame@npm:7.10.4"
+ dependencies:
+ "@babel/highlight": ^7.10.4
+ checksum: feb4543c8a509fe30f0f6e8d7aa84f82b41148b963b826cd330e34986f649a85cb63b2f13dd4effdf434ac555d16f14940b8ea5f4433297c2f5ff85486ded019
+ languageName: node
+ linkType: hard
+
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.4":
+ version: 7.23.4
+ resolution: "@babel/code-frame@npm:7.23.4"
+ dependencies:
+ "@babel/highlight": ^7.23.4
+ chalk: ^2.4.2
+ checksum: 29999d08c3dbd803f3c296dae7f4f40af1f9e381d6bbc76e5a75327c4b8b023bcb2e209843d292f5d71c3b5c845df1da959d415ed862d6a68e0ad6c5c9622d37
+ languageName: node
+ linkType: hard
+
+"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/compat-data@npm:7.23.3"
+ checksum: 52fff649d4e25b10e29e8a9b1c9ef117f44d354273c17b5ef056555f8e5db2429b35df4c38bdfb6865d23133e0fba92e558d31be87bb8457db4ac688646fdbf1
+ languageName: node
+ linkType: hard
+
+"@babel/core@npm:^7.13.16, @babel/core@npm:^7.20.0":
+ version: 7.23.3
+ resolution: "@babel/core@npm:7.23.3"
+ dependencies:
+ "@ampproject/remapping": ^2.2.0
+ "@babel/code-frame": ^7.22.13
+ "@babel/generator": ^7.23.3
+ "@babel/helper-compilation-targets": ^7.22.15
+ "@babel/helper-module-transforms": ^7.23.3
+ "@babel/helpers": ^7.23.2
+ "@babel/parser": ^7.23.3
+ "@babel/template": ^7.22.15
+ "@babel/traverse": ^7.23.3
+ "@babel/types": ^7.23.3
+ convert-source-map: ^2.0.0
+ debug: ^4.1.0
+ gensync: ^1.0.0-beta.2
+ json5: ^2.2.3
+ semver: ^6.3.1
+ checksum: d306c1fa68972f4e085e9e7ad165aee80eb801ef331f6f07808c86309f03534d638b82ad00a3bc08f4d3de4860ccd38512b2790a39e6acc2caf9ea21e526afe7
+ languageName: node
+ linkType: hard
+
+"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.23.3, @babel/generator@npm:^7.23.4":
+ version: 7.23.4
+ resolution: "@babel/generator@npm:7.23.4"
+ dependencies:
+ "@babel/types": ^7.23.4
+ "@jridgewell/gen-mapping": ^0.3.2
+ "@jridgewell/trace-mapping": ^0.3.17
+ jsesc: ^2.5.1
+ checksum: 7403717002584eaeb58559f4d0de19b79e924ef2735711278f7cb5206d081428bf3960578566d6fa4102b7b30800d44f70acffea5ecef83f0cb62361c2a23062
+ languageName: node
+ linkType: hard
+
+"@babel/helper-annotate-as-pure@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-annotate-as-pure@npm:7.22.5"
+ dependencies:
+ "@babel/types": ^7.22.5
+ checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d
+ languageName: node
+ linkType: hard
+
+"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15"
+ dependencies:
+ "@babel/types": ^7.22.15
+ checksum: 639c697a1c729f9fafa2dd4c9af2e18568190299b5907bd4c2d0bc818fcbd1e83ffeecc2af24327a7faa7ac4c34edd9d7940510a5e66296c19bad17001cf5c7a
+ languageName: node
+ linkType: hard
+
+"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6":
+ version: 7.22.15
+ resolution: "@babel/helper-compilation-targets@npm:7.22.15"
+ dependencies:
+ "@babel/compat-data": ^7.22.9
+ "@babel/helper-validator-option": ^7.22.15
+ browserslist: ^4.21.9
+ lru-cache: ^5.1.1
+ semver: ^6.3.1
+ checksum: ce85196769e091ae54dd39e4a80c2a9df1793da8588e335c383d536d54f06baf648d0a08fc873044f226398c4ded15c4ae9120ee18e7dfd7c639a68e3cdc9980
+ languageName: node
+ linkType: hard
+
+"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/helper-create-class-features-plugin@npm:7.22.15"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.22.5
+ "@babel/helper-environment-visitor": ^7.22.5
+ "@babel/helper-function-name": ^7.22.5
+ "@babel/helper-member-expression-to-functions": ^7.22.15
+ "@babel/helper-optimise-call-expression": ^7.22.5
+ "@babel/helper-replace-supers": ^7.22.9
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5
+ "@babel/helper-split-export-declaration": ^7.22.6
+ semver: ^6.3.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 52c500d8d164abb3a360b1b7c4b8fff77bc4a5920d3a2b41ae6e1d30617b0dc0b972c1f5db35b1752007e04a748908b4a99bc872b73549ae837e87dcdde005a3
+ languageName: node
+ linkType: hard
+
+"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5":
+ version: 7.22.15
+ resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.22.5
+ regexpu-core: ^5.3.1
+ semver: ^6.3.1
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6
+ languageName: node
+ linkType: hard
+
+"@babel/helper-define-polyfill-provider@npm:^0.4.3":
+ version: 0.4.3
+ resolution: "@babel/helper-define-polyfill-provider@npm:0.4.3"
+ dependencies:
+ "@babel/helper-compilation-targets": ^7.22.6
+ "@babel/helper-plugin-utils": ^7.22.5
+ debug: ^4.1.1
+ lodash.debounce: ^4.0.8
+ resolve: ^1.14.2
+ peerDependencies:
+ "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
+ checksum: 5d21e3f47b320e4b5b644195ec405e7ebc3739e48e65899efc808c5fa9c3bf5b06ce0d8ff5246ca99d1411e368f4557bc66730196c5781a5c4e986ee703bee79
+ languageName: node
+ linkType: hard
+
+"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5":
+ version: 7.22.20
+ resolution: "@babel/helper-environment-visitor@npm:7.22.20"
+ checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69
+ languageName: node
+ linkType: hard
+
+"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0":
+ version: 7.23.0
+ resolution: "@babel/helper-function-name@npm:7.23.0"
+ dependencies:
+ "@babel/template": ^7.22.15
+ "@babel/types": ^7.23.0
+ checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10
+ languageName: node
+ linkType: hard
+
+"@babel/helper-hoist-variables@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-hoist-variables@npm:7.22.5"
+ dependencies:
+ "@babel/types": ^7.22.5
+ checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc
+ languageName: node
+ linkType: hard
+
+"@babel/helper-member-expression-to-functions@npm:^7.22.15":
+ version: 7.23.0
+ resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0"
+ dependencies:
+ "@babel/types": ^7.23.0
+ checksum: 494659361370c979ada711ca685e2efe9460683c36db1b283b446122596602c901e291e09f2f980ecedfe6e0f2bd5386cb59768285446530df10c14df1024e75
+ languageName: node
+ linkType: hard
+
+"@babel/helper-module-imports@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/helper-module-imports@npm:7.22.15"
+ dependencies:
+ "@babel/types": ^7.22.15
+ checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702
+ languageName: node
+ linkType: hard
+
+"@babel/helper-module-transforms@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/helper-module-transforms@npm:7.23.3"
+ dependencies:
+ "@babel/helper-environment-visitor": ^7.22.20
+ "@babel/helper-module-imports": ^7.22.15
+ "@babel/helper-simple-access": ^7.22.5
+ "@babel/helper-split-export-declaration": ^7.22.6
+ "@babel/helper-validator-identifier": ^7.22.20
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 5d0895cfba0e16ae16f3aa92fee108517023ad89a855289c4eb1d46f7aef4519adf8e6f971e1d55ac20c5461610e17213f1144097a8f932e768a9132e2278d71
+ languageName: node
+ linkType: hard
+
+"@babel/helper-optimise-call-expression@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-optimise-call-expression@npm:7.22.5"
+ dependencies:
+ "@babel/types": ^7.22.5
+ checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c
+ 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.18.9, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
+ version: 7.22.5
+ resolution: "@babel/helper-plugin-utils@npm:7.22.5"
+ checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5
+ languageName: node
+ linkType: hard
+
+"@babel/helper-remap-async-to-generator@npm:^7.18.9, @babel/helper-remap-async-to-generator@npm:^7.22.20":
+ version: 7.22.20
+ resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.22.5
+ "@babel/helper-environment-visitor": ^7.22.20
+ "@babel/helper-wrap-function": ^7.22.20
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7
+ languageName: node
+ linkType: hard
+
+"@babel/helper-replace-supers@npm:^7.22.20, @babel/helper-replace-supers@npm:^7.22.9":
+ version: 7.22.20
+ resolution: "@babel/helper-replace-supers@npm:7.22.20"
+ dependencies:
+ "@babel/helper-environment-visitor": ^7.22.20
+ "@babel/helper-member-expression-to-functions": ^7.22.15
+ "@babel/helper-optimise-call-expression": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: a0008332e24daedea2e9498733e3c39b389d6d4512637e000f96f62b797e702ee24a407ccbcd7a236a551590a38f31282829a8ef35c50a3c0457d88218cae639
+ languageName: node
+ linkType: hard
+
+"@babel/helper-simple-access@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-simple-access@npm:7.22.5"
+ dependencies:
+ "@babel/types": ^7.22.5
+ checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2
+ languageName: node
+ linkType: hard
+
+"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5"
+ dependencies:
+ "@babel/types": ^7.22.5
+ checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244
+ languageName: node
+ linkType: hard
+
+"@babel/helper-split-export-declaration@npm:^7.22.6":
+ version: 7.22.6
+ resolution: "@babel/helper-split-export-declaration@npm:7.22.6"
+ dependencies:
+ "@babel/types": ^7.22.5
+ checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921
+ languageName: node
+ linkType: hard
+
+"@babel/helper-string-parser@npm:^7.23.4":
+ version: 7.23.4
+ resolution: "@babel/helper-string-parser@npm:7.23.4"
+ checksum: c0641144cf1a7e7dc93f3d5f16d5327465b6cf5d036b48be61ecba41e1eece161b48f46b7f960951b67f8c3533ce506b16dece576baef4d8b3b49f8c65410f90
+ languageName: node
+ linkType: hard
+
+"@babel/helper-validator-identifier@npm:^7.22.20":
+ version: 7.22.20
+ resolution: "@babel/helper-validator-identifier@npm:7.22.20"
+ checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc
+ languageName: node
+ linkType: hard
+
+"@babel/helper-validator-option@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/helper-validator-option@npm:7.22.15"
+ checksum: 68da52b1e10002a543161494c4bc0f4d0398c8fdf361d5f7f4272e95c45d5b32d974896d44f6a0ea7378c9204988879d73613ca683e13bd1304e46d25ff67a8d
+ languageName: node
+ linkType: hard
+
+"@babel/helper-wrap-function@npm:^7.22.20":
+ version: 7.22.20
+ resolution: "@babel/helper-wrap-function@npm:7.22.20"
+ dependencies:
+ "@babel/helper-function-name": ^7.22.5
+ "@babel/template": ^7.22.15
+ "@babel/types": ^7.22.19
+ checksum: 221ed9b5572612aeb571e4ce6a256f2dee85b3c9536f1dd5e611b0255e5f59a3d0ec392d8d46d4152149156a8109f92f20379b1d6d36abb613176e0e33f05fca
+ languageName: node
+ linkType: hard
+
+"@babel/helpers@npm:^7.23.2":
+ version: 7.23.4
+ resolution: "@babel/helpers@npm:7.23.4"
+ dependencies:
+ "@babel/template": ^7.22.15
+ "@babel/traverse": ^7.23.4
+ "@babel/types": ^7.23.4
+ checksum: 85677834f2698d0a468db59c062b011ebdd65fc12bab96eeaae64084d3ce3268427ce2dbc23c2db2ddb8a305c79ea223c2c9f7bbd1fb3f6d2fa5e978c0eb1cea
+ languageName: node
+ linkType: hard
+
+"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.23.4":
+ version: 7.23.4
+ resolution: "@babel/highlight@npm:7.23.4"
+ dependencies:
+ "@babel/helper-validator-identifier": ^7.22.20
+ chalk: ^2.4.2
+ js-tokens: ^4.0.0
+ checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89
+ languageName: node
+ linkType: hard
+
+"@babel/parser@npm:^7.13.16, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.3, @babel/parser@npm:^7.23.4":
+ version: 7.23.4
+ resolution: "@babel/parser@npm:7.23.4"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 1d90e17d966085b8ea12f357ffcc76568969364481254f0ae3e7ed579e9421d31c7fd3876ccb3b215a5b2ada48251b0c2d0f21ba225ee194f0e18295b49085f2
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: ddbaf2c396b7780f15e80ee01d6dd790db076985f3dfeb6527d1a8d4cacf370e49250396a3aa005b2c40233cac214a106232f83703d5e8491848bde273938232
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5
+ "@babel/plugin-transform-optional-chaining": ^7.23.3
+ peerDependencies:
+ "@babel/core": ^7.13.0
+ checksum: 434b9d710ae856fa1a456678cc304fbc93915af86d581ee316e077af746a709a741ea39d7e1d4f5b98861b629cc7e87f002d3138f5e836775632466d4c74aef2
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.3"
+ dependencies:
+ "@babel/helper-environment-visitor": ^7.22.20
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 4690123f0ef7c11d6bf1a9579e4f463ce363563b75ec3f6ca66cf68687e39d8d747a82c833847653962f79da367eca895d9095c60d8ebb224a1d4277003acc11
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-async-generator-functions@npm:^7.0.0":
+ version: 7.20.7
+ resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7"
+ dependencies:
+ "@babel/helper-environment-visitor": ^7.18.9
+ "@babel/helper-plugin-utils": ^7.20.2
+ "@babel/helper-remap-async-to-generator": ^7.18.9
+ "@babel/plugin-syntax-async-generators": ^7.8.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 111109ee118c9e69982f08d5e119eab04190b36a0f40e22e873802d941956eee66d2aa5a15f5321e51e3f9aa70a91136451b987fe15185ef8cc547ac88937723
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-class-properties@npm:^7.0.0, @babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.18.0":
+ version: 7.18.6
+ resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": ^7.18.6
+ "@babel/helper-plugin-utils": ^7.18.6
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-decorators@npm:^7.12.9":
+ version: 7.23.3
+ resolution: "@babel/plugin-proposal-decorators@npm:7.23.3"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-replace-supers": ^7.22.20
+ "@babel/helper-split-export-declaration": ^7.22.6
+ "@babel/plugin-syntax-decorators": ^7.23.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 5c11da45eafe11105e87f83f48d9eb1c95a5f78c01041729e4a8d1726ee0068ee8d98743aaaa24e30bf8eac446aa3db4a44943cc53e5707b5fdfb50a2189d899
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-export-default-from@npm:^7.0.0":
+ version: 7.23.3
+ resolution: "@babel/plugin-proposal-export-default-from@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-export-default-from": ^7.23.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: f5a438413b8728cbf5a76ef65510418e5e2e1c82292ee4a031a0c941bee488f7e7dec960c1fd314a42bfadf40ffa9a4ef5c1aa1b3c906b9bc140d4530e7bc8be
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-export-namespace-from@npm:^7.18.9":
+ version: 7.18.9
+ resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.18.9"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.18.9
+ "@babel/plugin-syntax-export-namespace-from": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 84ff22bacc5d30918a849bfb7e0e90ae4c5b8d8b65f2ac881803d1cf9068dffbe53bd657b0e4bc4c20b4db301b1c85f1e74183cf29a0dd31e964bd4e97c363ef
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8, @babel/plugin-proposal-nullish-coalescing-operator@npm:^7.18.0":
+ version: 7.18.6
+ resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.18.6
+ "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 949c9ddcdecdaec766ee610ef98f965f928ccc0361dd87cf9f88cf4896a6ccd62fce063d4494778e50da99dea63d270a1be574a62d6ab81cbe9d85884bf55a7d
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-numeric-separator@npm:^7.0.0":
+ version: 7.18.6
+ resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.18.6
+ "@babel/plugin-syntax-numeric-separator": ^7.10.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: f370ea584c55bf4040e1f78c80b4eeb1ce2e6aaa74f87d1a48266493c33931d0b6222d8cee3a082383d6bb648ab8d6b7147a06f974d3296ef3bc39c7851683ec
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-object-rest-spread@npm:^7.0.0, @babel/plugin-proposal-object-rest-spread@npm:^7.12.13, @babel/plugin-proposal-object-rest-spread@npm:^7.20.0":
+ version: 7.20.7
+ resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7"
+ dependencies:
+ "@babel/compat-data": ^7.20.5
+ "@babel/helper-compilation-targets": ^7.20.7
+ "@babel/helper-plugin-utils": ^7.20.2
+ "@babel/plugin-syntax-object-rest-spread": ^7.8.3
+ "@babel/plugin-transform-parameters": ^7.20.7
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 1329db17009964bc644484c660eab717cb3ca63ac0ab0f67c651a028d1bc2ead51dc4064caea283e46994f1b7221670a35cbc0b4beb6273f55e915494b5aa0b2
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-optional-catch-binding@npm:^7.0.0":
+ version: 7.18.6
+ resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.18.6
+ "@babel/plugin-syntax-optional-catch-binding": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 7b5b39fb5d8d6d14faad6cb68ece5eeb2fd550fb66b5af7d7582402f974f5bc3684641f7c192a5a57e0f59acfae4aada6786be1eba030881ddc590666eff4d1e
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-proposal-optional-chaining@npm:^7.13.12, @babel/plugin-proposal-optional-chaining@npm:^7.20.0":
+ version: 7.21.0
+ resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.20.2
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0
+ "@babel/plugin-syntax-optional-chaining": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 11c5449e01b18bb8881e8e005a577fa7be2fe5688e2382c8822d51f8f7005342a301a46af7b273b1f5645f9a7b894c428eee8526342038a275ef6ba4c8d8d746
+ 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: d97745d098b835d55033ff3a7fb2b895b9c5295b08a5759e4f20df325aa385a3e0bc9bd5ad8f2ec554a44d4e6525acfc257b8c5848a1345cb40f26a30e277e91
+ 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": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-class-properties@npm:^7.0.0, @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": ^7.12.13
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 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": ^7.14.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-decorators@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-syntax-decorators@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 07f6e488df0a061428e02629af9a1908b2e8abdcac2e5cfaa267be66dc30897be6e29df7c7f952d33f3679f9585ac9fcf6318f9c827790ab0b0928d5514305cd
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-dynamic-import@npm:^7.8.0, @babel/plugin-syntax-dynamic-import@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-export-default-from@npm:^7.0.0, @babel/plugin-syntax-export-default-from@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-syntax-export-default-from@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 415b752a4c096e1eb65328b5dddde4848178f992356ab058828dfb12267c00f0880b4a4a272edf51f6344af1cc1565ea6dc184063e9454acf3160b9b1a9ef669
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3":
+ version: 7.8.3
+ resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-flow@npm:^7.0.0, @babel/plugin-syntax-flow@npm:^7.12.1, @babel/plugin-syntax-flow@npm:^7.18.0, @babel/plugin-syntax-flow@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-syntax-flow@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: c6e6f355d6ace5f4a9e7bb19f1fed2398aeb9b62c4c671a189d81b124f9f5bb77c4225b6e85e19339268c60a021c1e49104e450375de5e6bb70612190d9678af
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-import-assertions@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-syntax-import-assertions@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 883e6b35b2da205138caab832d54505271a3fee3fc1e8dc0894502434fc2b5d517cbe93bbfbfef8068a0fb6ec48ebc9eef3f605200a489065ba43d8cddc1c9a7
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-import-attributes@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-syntax-import-attributes@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 9aed7661ffb920ca75df9f494757466ca92744e43072e0848d87fa4aa61a3f2ee5a22198ac1959856c036434b5614a8f46f1fb70298835dbe28220cdd1d4c11e
+ 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": ^7.10.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 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": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-syntax-jsx@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 89037694314a74e7f0e7a9c8d3793af5bf6b23d80950c29b360db1c66859d67f60711ea437e70ad6b5b4b29affe17eababda841b6c01107c2b638e0493bafb4e
+ 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": ^7.10.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.0.0, @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": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 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": ^7.10.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-object-rest-spread@npm:^7.0.0, @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": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 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": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-optional-chaining@npm:^7.0.0, @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": ^7.8.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 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": ^7.14.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 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": ^7.14.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-syntax-typescript@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-syntax-typescript@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: abfad3a19290d258b028e285a1f34c9b8a0cbe46ef79eafed4ed7ffce11b5d0720b5e536c82f91cbd8442cde35a3dd8e861fa70366d87ff06fdc0d4756e30876
+ 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": ^7.18.6
+ "@babel/helper-plugin-utils": ^7.18.6
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 1e99118176e5366c2636064d09477016ab5272b2a92e78b8edb571d20bc3eaa881789a905b20042942c3c2d04efc530726cf703f937226db5ebc495f5d067e66
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-async-generator-functions@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4"
+ dependencies:
+ "@babel/helper-environment-visitor": ^7.22.20
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-remap-async-to-generator": ^7.22.20
+ "@babel/plugin-syntax-async-generators": ^7.8.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: e2fc132c9033711d55209f4781e1fc73f0f4da5e0ca80a2da73dec805166b73c92a6e83571a8994cd2c893a28302e24107e90856202b24781bab734f800102bb
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-async-to-generator@npm:^7.20.0, @babel/plugin-transform-async-to-generator@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3"
+ dependencies:
+ "@babel/helper-module-imports": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-remap-async-to-generator": ^7.22.20
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 2e9d9795d4b3b3d8090332104e37061c677f29a1ce65bcbda4099a32d243e5d9520270a44bbabf0fb1fb40d463bd937685b1a1042e646979086c546d55319c3c
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0, @babel/plugin-transform-block-scoped-functions@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: e63b16d94ee5f4d917e669da3db5ea53d1e7e79141a2ec873c1e644678cdafe98daa556d0d359963c827863d6b3665d23d4938a94a4c5053a1619c4ebd01d020
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: fc4b2100dd9f2c47d694b4b35ae8153214ccb4e24ef545c259a9db17211b18b6a430f22799b56db8f6844deaeaa201af45a03331d0c80cc28b0c4e3c814570e4
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-class-properties@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-class-properties@npm:7.23.3"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 9c6f8366f667897541d360246de176dd29efc7a13d80a5b48361882f7173d9173be4646c3b7d9b003ccc0e01e25df122330308f33db921fa553aa17ad544b3fc
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-class-static-block@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-class-static-block": ^7.14.5
+ peerDependencies:
+ "@babel/core": ^7.12.0
+ checksum: c8bfaba19a674fc2eb54edad71e958647360474e3163e8226f1acd63e4e2dbec32a171a0af596c1dc5359aee402cc120fea7abd1fb0e0354b6527f0fc9e8aa1e
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-classes@npm:7.23.3"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.22.5
+ "@babel/helper-compilation-targets": ^7.22.15
+ "@babel/helper-environment-visitor": ^7.22.20
+ "@babel/helper-function-name": ^7.23.0
+ "@babel/helper-optimise-call-expression": ^7.22.5
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-replace-supers": ^7.22.20
+ "@babel/helper-split-export-declaration": ^7.22.6
+ globals: ^11.1.0
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 1b90b40d729d14466415a1de2d427ede6ec0e401e8dc00e84d309f2e6a1f09ef16d43983f378b51d34251f6c36f7275959477cb2e89b04afc7f248356642fc6d
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/template": ^7.22.15
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 80452661dc25a0956f89fe98cb562e8637a9556fb6c00d312c57653ce7df8798f58d138603c7e1aad96614ee9ccd10c47e50ab9ded6b6eded5adeb230d2a982e
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-destructuring@npm:^7.0.0, @babel/plugin-transform-destructuring@npm:^7.20.0, @babel/plugin-transform-destructuring@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-destructuring@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 9e015099877272501162419bfe781689aec5c462cd2aec752ee22288f209eec65969ff11b8fdadca2eaddea71d705d3bba5b9c60752fcc1be67874fcec687105
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-dotall-regex@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: a2dbbf7f1ea16a97948c37df925cb364337668c41a3948b8d91453f140507bd8a3429030c7ce66d09c299987b27746c19a2dd18b6f17dcb474854b14fd9159a3
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-duplicate-keys@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: c2a21c34dc0839590cd945192cbc46fde541a27e140c48fe1808315934664cdbf18db64889e23c4eeb6bad9d3e049482efdca91d29de5734ffc887c4fbabaa16
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-dynamic-import@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-dynamic-import": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 57a722604c430d9f3dacff22001a5f31250e34785d4969527a2ae9160fa86858d0892c5b9ff7a06a04076f8c76c9e6862e0541aadca9c057849961343aab0845
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-exponentiation-operator@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3"
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 00d05ab14ad0f299160fcf9d8f55a1cc1b740e012ab0b5ce30207d2365f091665115557af7d989cd6260d075a252d9e4283de5f2b247dfbbe0e42ae586e6bf66
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-export-namespace-from@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-export-namespace-from": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 9f770a81bfd03b48d6ba155d452946fd56d6ffe5b7d871e9ec2a0b15e0f424273b632f3ed61838b90015b25bbda988896b7a46c7d964fbf8f6feb5820b309f93
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-flow-strip-types@npm:^7.0.0, @babel/plugin-transform-flow-strip-types@npm:^7.20.0, @babel/plugin-transform-flow-strip-types@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-flow-strip-types@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-flow": ^7.23.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: de38cc5cf948bc19405ea041292181527a36f59f08d787a590415fac36e9b0c7992f0d3e2fd3b9402089bafdaa1a893291a0edf15beebfd29bdedbbe582fee9b
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-for-of@npm:^7.0.0, @babel/plugin-transform-for-of@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-for-of@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: a6288122a5091d96c744b9eb23dc1b2d4cce25f109ac1e26a0ea03c4ea60330e6f3cc58530b33ba7369fa07163b71001399a145238b7e92bff6270ef3b9c32a0
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-function-name@npm:7.23.3"
+ dependencies:
+ "@babel/helper-compilation-targets": ^7.22.15
+ "@babel/helper-function-name": ^7.23.0
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 355c6dbe07c919575ad42b2f7e020f320866d72f8b79181a16f8e0cd424a2c761d979f03f47d583d9471b55dcd68a8a9d829b58e1eebcd572145b934b48975a6
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-json-strings@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-json-strings@npm:7.23.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-json-strings": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: f9019820233cf8955d8ba346df709a0683c120fe86a24ed1c9f003f2db51197b979efc88f010d558a12e1491210fc195a43cd1c7fee5e23b92da38f793a875de
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-literals@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 519a544cd58586b9001c4c9b18da25a62f17d23c48600ff7a685d75ca9eb18d2c5e8f5476f067f0a8f1fea2a31107eff950b9864833061e6076dcc4bdc3e71ed
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 2ae1dc9b4ff3bf61a990ff3accdecb2afe3a0ca649b3e74c010078d1cdf29ea490f50ac0a905306a2bcf9ac177889a39ac79bdcc3a0fdf220b3b75fac18d39b5
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-member-expression-literals@npm:^7.0.0, @babel/plugin-transform-member-expression-literals@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 95cec13c36d447c5aa6b8e4c778b897eeba66dcb675edef01e0d2afcec9e8cb9726baf4f81b4bbae7a782595aed72e6a0d44ffb773272c3ca180fada99bf92db
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-modules-amd@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3"
+ dependencies:
+ "@babel/helper-module-transforms": ^7.23.3
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: d163737b6a3d67ea579c9aa3b83d4df4b5c34d9dcdf25f415f027c0aa8cded7bac2750d2de5464081f67a042ad9e1c03930c2fab42acd79f9e57c00cf969ddff
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3"
+ dependencies:
+ "@babel/helper-module-transforms": ^7.23.3
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-simple-access": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 720a231ceade4ae4d2632478db4e7fecf21987d444942b72d523487ac8d715ca97de6c8f415c71e939595e1a4776403e7dc24ed68fe9125ad4acf57753c9bff7
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-modules-systemjs@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.3"
+ dependencies:
+ "@babel/helper-hoist-variables": ^7.22.5
+ "@babel/helper-module-transforms": ^7.23.3
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-validator-identifier": ^7.22.20
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 0d2fdd993c785aecac9e0850cd5ed7f7d448f0fbb42992a950cc0590167144df25d82af5aac9a5c99ef913d2286782afa44e577af30c10901c5ee8984910fa1f
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-modules-umd@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3"
+ dependencies:
+ "@babel/helper-module-transforms": ^7.23.3
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 586a7a2241e8b4e753a37af9466a9ffa8a67b4ba9aa756ad7500712c05d8fa9a8c1ed4f7bd25fae2a8265e6cf8fe781ec85a8ee885dd34cf50d8955ee65f12dc
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.0.0, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.22.5
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-new-target@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-new-target@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: e5053389316fce73ad5201b7777437164f333e24787fbcda4ae489cd2580dbbbdfb5694a7237bad91fabb46b591d771975d69beb1c740b82cb4761625379f00b
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: a27d73ea134d3d9560a6b2e26ab60012fba15f1db95865aa0153c18f5ec82cfef6a7b3d8df74e3c2fca81534fa5efeb6cacaf7b08bdb7d123e3dafdd079886a3
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-numeric-separator@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-numeric-separator": ^7.10.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 6ba0e5db3c620a3ec81f9e94507c821f483c15f196868df13fa454cbac719a5449baf73840f5b6eb7d77311b24a2cf8e45db53700d41727f693d46f7caf3eec3
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-object-rest-spread@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4"
+ dependencies:
+ "@babel/compat-data": ^7.23.3
+ "@babel/helper-compilation-targets": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-object-rest-spread": ^7.8.3
+ "@babel/plugin-transform-parameters": ^7.23.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 73fec495e327ca3959c1c03d07a621be09df00036c69fff0455af9a008291677ee9d368eec48adacdc6feac703269a649747568b4af4c4e9f134aa71cc5b378d
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-object-super@npm:^7.0.0, @babel/plugin-transform-object-super@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-object-super@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-replace-supers": ^7.22.20
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: e495497186f621fa79026e183b4f1fbb172fd9df812cbd2d7f02c05b08adbe58012b1a6eb6dd58d11a30343f6ec80d0f4074f9b501d70aa1c94df76d59164c53
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-optional-catch-binding@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-optional-catch-binding": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: d50b5ee142cdb088d8b5de1ccf7cea85b18b85d85b52f86618f6e45226372f01ad4cdb29abd4fd35ea99a71fefb37009e0107db7a787dcc21d4d402f97470faf
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-optional-chaining@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5
+ "@babel/plugin-syntax-optional-chaining": ^7.8.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: e7a4c08038288057b7a08d68c4d55396ada9278095509ca51ed8dfb72a7f13f26bdd7c5185de21079fe0a9d60d22c227cb32e300d266c1bda40f70eee9f4bc1e
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-parameters@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: a735b3e85316d17ec102e3d3d1b6993b429bdb3b494651c9d754e3b7d270462ee1f1a126ccd5e3d871af5e683727e9ef98c9d34d4a42204fffaabff91052ed16
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-private-methods@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-private-methods@npm:7.23.3"
+ dependencies:
+ "@babel/helper-create-class-features-plugin": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: cedc1285c49b5a6d9a3d0e5e413b756ac40b3ac2f8f68bdfc3ae268bc8d27b00abd8bb0861c72756ff5dd8bf1eb77211b7feb5baf4fdae2ebbaabe49b9adc1d0
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-private-property-in-object@npm:^7.23.3":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.22.5
+ "@babel/helper-create-class-features-plugin": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-private-property-in-object": ^7.14.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: fb7adfe94ea97542f250a70de32bddbc3e0b802381c92be947fec83ebffda57e68533c4d0697152719a3496fdd3ebf3798d451c024cd4ac848fc15ac26b70aa7
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-property-literals@npm:^7.0.0, @babel/plugin-transform-property-literals@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-property-literals@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 16b048c8e87f25095f6d53634ab7912992f78e6997a6ff549edc3cf519db4fca01c7b4e0798530d7f6a05228ceee479251245cdd850a5531c6e6f404104d6cc9
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-display-name@npm:^7.0.0":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-react-display-name@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 7f86964e8434d3ddbd3c81d2690c9b66dbf1cd8bd9512e2e24500e9fa8cf378bc52c0853270b3b82143aba5965aec04721df7abdb768f952b44f5c6e0b198779
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx-self@npm:^7.0.0":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 882bf56bc932d015c2d83214133939ddcf342e5bcafa21f1a93b19f2e052145115e1e0351730897fd66e5f67cad7875b8a8d81ceb12b6e2a886ad0102cb4eb1f
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx-source@npm:^7.0.0":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 92287fb797e522d99bdc77eaa573ce79ff0ad9f1cf4e7df374645e28e51dce0adad129f6f075430b129b5bac8dad843f65021970e12e992d6d6671f0d65bb1e0
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.12.17":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.22.5
+ "@babel/helper-module-imports": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-jsx": ^7.23.3
+ "@babel/types": ^7.23.4
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: d8b8c52e8e22e833bf77c8d1a53b0a57d1fd52ba9596a319d572de79446a8ed9d95521035bc1175c1589d1a6a34600d2e678fa81d81bac8fac121137097f1f0a
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-regenerator@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-regenerator@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ regenerator-transform: ^0.15.2
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 7fdacc7b40008883871b519c9e5cdea493f75495118ccc56ac104b874983569a24edd024f0f5894ba1875c54ee2b442f295d6241c3280e61c725d0dd3317c8e6
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-reserved-words@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 298c4440ddc136784ff920127cea137168e068404e635dc946ddb5d7b2a27b66f1dd4c4acb01f7184478ff7d5c3e7177a127279479926519042948fb7fa0fa48
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-runtime@npm:^7.0.0":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-runtime@npm:7.23.4"
+ dependencies:
+ "@babel/helper-module-imports": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ babel-plugin-polyfill-corejs2: ^0.4.6
+ babel-plugin-polyfill-corejs3: ^0.8.5
+ babel-plugin-polyfill-regenerator: ^0.5.3
+ semver: ^6.3.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: a1693d27cd5ce17d0917280942a62bbf4ee27f6f0fe7beb33789bdc699cda21e5253997663248b32e8e36c01ccd202f96246413b9328b70a05d4cf64faa3191e
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 5d677a03676f9fff969b0246c423d64d77502e90a832665dc872a5a5e05e5708161ce1effd56bb3c0f2c20a1112fca874be57c8a759d8b08152755519281f326
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-spread@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 8fd5cac201e77a0b4825745f4e07a25f923842f282f006b3a79223c00f61075c8868d12eafec86b2642cd0b32077cdd32314e27bcb75ee5e6a68c0144140dcf2
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-sticky-regex@npm:^7.0.0, @babel/plugin-transform-sticky-regex@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 53e55eb2575b7abfdb4af7e503a2bf7ef5faf8bf6b92d2cd2de0700bdd19e934e5517b23e6dfed94ba50ae516b62f3f916773ef7d9bc81f01503f585051e2949
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-template-literals@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: b16c5cb0b8796be0118e9c144d15bdc0d20a7f3f59009c6303a6e9a8b74c146eceb3f05186f5b97afcba7cfa87e34c1585a22186e3d5b22f2fd3d27d959d92b2
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-typeof-symbol@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 0af7184379d43afac7614fc89b1bdecce4e174d52f4efaeee8ec1a4f2c764356c6dba3525c0685231f1cbf435b6dd4ee9e738d7417f3b10ce8bbe869c32f4384
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-typescript@npm:^7.23.3, @babel/plugin-transform-typescript@npm:^7.5.0":
+ version: 7.23.4
+ resolution: "@babel/plugin-transform-typescript@npm:7.23.4"
+ dependencies:
+ "@babel/helper-annotate-as-pure": ^7.22.5
+ "@babel/helper-create-class-features-plugin": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/plugin-syntax-typescript": ^7.23.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 1cd8426763296d27547924022d6aa35ae9c6b93e4f3110af6123d03eec7b7fa319a6965165e13215ba30ac37ef2cca67dadbe15d1f1508b3d1a06423a0592d3a
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-unicode-escapes@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 561c429183a54b9e4751519a3dfba6014431e9cdc1484fad03bdaf96582dfc72c76a4f8661df2aeeae7c34efd0fa4d02d3b83a2f63763ecf71ecc925f9cc1f60
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-unicode-property-regex@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.23.3"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 2298461a194758086d17c23c26c7de37aa533af910f9ebf31ebd0893d4aa317468043d23f73edc782ec21151d3c46cf0ff8098a83b725c49a59de28a1d4d6225
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-unicode-regex@npm:^7.0.0, @babel/plugin-transform-unicode-regex@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: c5f835d17483ba899787f92e313dfa5b0055e3deab332f1d254078a2bba27ede47574b6599fcf34d3763f0c048ae0779dc21d2d8db09295edb4057478dc80a9a
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3":
+ version: 7.23.3
+ resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.23.3"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 79d0b4c951955ca68235c87b91ab2b393c96285f8aeaa34d6db416d2ddac90000c9bd6e8c4d82b60a2b484da69930507245035f28ba63c6cae341cf3ba68fdef
+ languageName: node
+ linkType: hard
+
+"@babel/preset-env@npm:^7.20.0":
+ version: 7.23.3
+ resolution: "@babel/preset-env@npm:7.23.3"
+ dependencies:
+ "@babel/compat-data": ^7.23.3
+ "@babel/helper-compilation-targets": ^7.22.15
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-validator-option": ^7.22.15
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.23.3
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.23.3
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.23.3
+ "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2
+ "@babel/plugin-syntax-async-generators": ^7.8.4
+ "@babel/plugin-syntax-class-properties": ^7.12.13
+ "@babel/plugin-syntax-class-static-block": ^7.14.5
+ "@babel/plugin-syntax-dynamic-import": ^7.8.3
+ "@babel/plugin-syntax-export-namespace-from": ^7.8.3
+ "@babel/plugin-syntax-import-assertions": ^7.23.3
+ "@babel/plugin-syntax-import-attributes": ^7.23.3
+ "@babel/plugin-syntax-import-meta": ^7.10.4
+ "@babel/plugin-syntax-json-strings": ^7.8.3
+ "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4
+ "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3
+ "@babel/plugin-syntax-numeric-separator": ^7.10.4
+ "@babel/plugin-syntax-object-rest-spread": ^7.8.3
+ "@babel/plugin-syntax-optional-catch-binding": ^7.8.3
+ "@babel/plugin-syntax-optional-chaining": ^7.8.3
+ "@babel/plugin-syntax-private-property-in-object": ^7.14.5
+ "@babel/plugin-syntax-top-level-await": ^7.14.5
+ "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6
+ "@babel/plugin-transform-arrow-functions": ^7.23.3
+ "@babel/plugin-transform-async-generator-functions": ^7.23.3
+ "@babel/plugin-transform-async-to-generator": ^7.23.3
+ "@babel/plugin-transform-block-scoped-functions": ^7.23.3
+ "@babel/plugin-transform-block-scoping": ^7.23.3
+ "@babel/plugin-transform-class-properties": ^7.23.3
+ "@babel/plugin-transform-class-static-block": ^7.23.3
+ "@babel/plugin-transform-classes": ^7.23.3
+ "@babel/plugin-transform-computed-properties": ^7.23.3
+ "@babel/plugin-transform-destructuring": ^7.23.3
+ "@babel/plugin-transform-dotall-regex": ^7.23.3
+ "@babel/plugin-transform-duplicate-keys": ^7.23.3
+ "@babel/plugin-transform-dynamic-import": ^7.23.3
+ "@babel/plugin-transform-exponentiation-operator": ^7.23.3
+ "@babel/plugin-transform-export-namespace-from": ^7.23.3
+ "@babel/plugin-transform-for-of": ^7.23.3
+ "@babel/plugin-transform-function-name": ^7.23.3
+ "@babel/plugin-transform-json-strings": ^7.23.3
+ "@babel/plugin-transform-literals": ^7.23.3
+ "@babel/plugin-transform-logical-assignment-operators": ^7.23.3
+ "@babel/plugin-transform-member-expression-literals": ^7.23.3
+ "@babel/plugin-transform-modules-amd": ^7.23.3
+ "@babel/plugin-transform-modules-commonjs": ^7.23.3
+ "@babel/plugin-transform-modules-systemjs": ^7.23.3
+ "@babel/plugin-transform-modules-umd": ^7.23.3
+ "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5
+ "@babel/plugin-transform-new-target": ^7.23.3
+ "@babel/plugin-transform-nullish-coalescing-operator": ^7.23.3
+ "@babel/plugin-transform-numeric-separator": ^7.23.3
+ "@babel/plugin-transform-object-rest-spread": ^7.23.3
+ "@babel/plugin-transform-object-super": ^7.23.3
+ "@babel/plugin-transform-optional-catch-binding": ^7.23.3
+ "@babel/plugin-transform-optional-chaining": ^7.23.3
+ "@babel/plugin-transform-parameters": ^7.23.3
+ "@babel/plugin-transform-private-methods": ^7.23.3
+ "@babel/plugin-transform-private-property-in-object": ^7.23.3
+ "@babel/plugin-transform-property-literals": ^7.23.3
+ "@babel/plugin-transform-regenerator": ^7.23.3
+ "@babel/plugin-transform-reserved-words": ^7.23.3
+ "@babel/plugin-transform-shorthand-properties": ^7.23.3
+ "@babel/plugin-transform-spread": ^7.23.3
+ "@babel/plugin-transform-sticky-regex": ^7.23.3
+ "@babel/plugin-transform-template-literals": ^7.23.3
+ "@babel/plugin-transform-typeof-symbol": ^7.23.3
+ "@babel/plugin-transform-unicode-escapes": ^7.23.3
+ "@babel/plugin-transform-unicode-property-regex": ^7.23.3
+ "@babel/plugin-transform-unicode-regex": ^7.23.3
+ "@babel/plugin-transform-unicode-sets-regex": ^7.23.3
+ "@babel/preset-modules": 0.1.6-no-external-plugins
+ babel-plugin-polyfill-corejs2: ^0.4.6
+ babel-plugin-polyfill-corejs3: ^0.8.5
+ babel-plugin-polyfill-regenerator: ^0.5.3
+ core-js-compat: ^3.31.0
+ semver: ^6.3.1
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: a16780b7d7deeccf70796cd8467e4aa6ad86b33fc86f67e23a606ae6bd6f2f26a952ccd17cf3f6ffb72584ac70d6cd6a936910ee31dbe4ac9622583ad5c2ae30
+ languageName: node
+ linkType: hard
+
+"@babel/preset-flow@npm:^7.13.13":
+ version: 7.23.3
+ resolution: "@babel/preset-flow@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-validator-option": ^7.22.15
+ "@babel/plugin-transform-flow-strip-types": ^7.23.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 60b5dde79621ae89943af459c4dc5b6030795f595a20ca438c8100f8d82c9ebc986881719030521ff5925799518ac5aa7f3fe62af8c33ab96be3681a71f88d03
+ 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": ^7.0.0
+ "@babel/types": ^7.4.4
+ esutils: ^2.0.2
+ peerDependencies:
+ "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0
+ checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375
+ languageName: node
+ linkType: hard
+
+"@babel/preset-typescript@npm:^7.13.0":
+ version: 7.23.3
+ resolution: "@babel/preset-typescript@npm:7.23.3"
+ dependencies:
+ "@babel/helper-plugin-utils": ^7.22.5
+ "@babel/helper-validator-option": ^7.22.15
+ "@babel/plugin-syntax-jsx": ^7.23.3
+ "@babel/plugin-transform-modules-commonjs": ^7.23.3
+ "@babel/plugin-transform-typescript": ^7.23.3
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 105a2d39bbc464da0f7e1ad7f535c77c5f62d6b410219355b20e552e7d29933567a5c55339b5d0aec1a5c7a0a7dfdf1b54aae601a4fe15a157d54dcbfcb3e854
+ languageName: node
+ linkType: hard
+
+"@babel/register@npm:^7.13.16":
+ version: 7.22.15
+ resolution: "@babel/register@npm:7.22.15"
+ dependencies:
+ clone-deep: ^4.0.1
+ find-cache-dir: ^2.0.0
+ make-dir: ^2.1.0
+ pirates: ^4.0.5
+ source-map-support: ^0.5.16
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 5497be6773608cd2d874210edd14499fce464ddbea170219da55955afe4c9173adb591164193458fd639e43b7d1314088a6186f4abf241476c59b3f0da6afd6f
+ languageName: node
+ linkType: hard
+
+"@babel/regjsgen@npm:^0.8.0":
+ version: 0.8.0
+ resolution: "@babel/regjsgen@npm:0.8.0"
+ checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730
+ languageName: node
+ linkType: hard
+
+"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.8.4":
+ version: 7.23.4
+ resolution: "@babel/runtime@npm:7.23.4"
+ dependencies:
+ regenerator-runtime: ^0.14.0
+ checksum: 8eb6a6b2367f7d60e7f7dd83f477cc2e2fdb169e5460694d7614ce5c730e83324bcf29251b70940068e757ad1ee56ff8073a372260d90cad55f18a825caf97cd
+ languageName: node
+ linkType: hard
+
+"@babel/template@npm:^7.0.0, @babel/template@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/template@npm:7.22.15"
+ dependencies:
+ "@babel/code-frame": ^7.22.13
+ "@babel/parser": ^7.22.15
+ "@babel/types": ^7.22.15
+ checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd
+ languageName: node
+ linkType: hard
+
+"@babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.23.3, @babel/traverse@npm:^7.23.4":
+ version: 7.23.4
+ resolution: "@babel/traverse@npm:7.23.4"
+ dependencies:
+ "@babel/code-frame": ^7.23.4
+ "@babel/generator": ^7.23.4
+ "@babel/helper-environment-visitor": ^7.22.20
+ "@babel/helper-function-name": ^7.23.0
+ "@babel/helper-hoist-variables": ^7.22.5
+ "@babel/helper-split-export-declaration": ^7.22.6
+ "@babel/parser": ^7.23.4
+ "@babel/types": ^7.23.4
+ debug: ^4.1.0
+ globals: ^11.1.0
+ checksum: e8c9cd92cfd6fec9cf3969604edea5a58c2d55275b88b9de06f0d94de43b64b04d57168554b617159d62c840a8700e6d4c7954d2e6ed69cfb918202ac01561e9
+ languageName: node
+ linkType: hard
+
+"@babel/types@npm:^7.20.0, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.3, @babel/types@npm:^7.23.4, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
+ version: 7.23.4
+ resolution: "@babel/types@npm:7.23.4"
+ dependencies:
+ "@babel/helper-string-parser": ^7.23.4
+ "@babel/helper-validator-identifier": ^7.22.20
+ to-fast-properties: ^2.0.0
+ checksum: 8a1ab20da663d202b1c090fdef4b157d3c7d8cb1cf60ea548f887d7b674935371409804d6cba52f870c22ced7685fcb41b0578d3edde720990de00cbb328da54
+ languageName: node
+ linkType: hard
+
+"@expo/bunyan@npm:4.0.0, @expo/bunyan@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "@expo/bunyan@npm:4.0.0"
+ dependencies:
+ mv: ~2
+ safe-json-stringify: ~1
+ uuid: ^8.0.0
+ dependenciesMeta:
+ mv:
+ optional: true
+ safe-json-stringify:
+ optional: true
+ checksum: dce0b66fde1c11f987bc31b9afd9b714c4295ba750780ee8861ab8a912b37a2b9dd2ab9c9fbf3a85f3adbe66c6cd85e45bc76fa37c98ee23a7db3ad24601c296
+ languageName: node
+ linkType: hard
+
+"@expo/cli@npm:0.10.15":
+ version: 0.10.15
+ resolution: "@expo/cli@npm:0.10.15"
+ dependencies:
+ "@babel/runtime": ^7.20.0
+ "@expo/code-signing-certificates": 0.0.5
+ "@expo/config": ~8.1.0
+ "@expo/config-plugins": ~7.2.0
+ "@expo/dev-server": 0.5.5
+ "@expo/devcert": ^1.0.0
+ "@expo/env": 0.0.5
+ "@expo/json-file": ^8.2.37
+ "@expo/metro-config": ~0.10.0
+ "@expo/osascript": ^2.0.31
+ "@expo/package-manager": ~1.1.0
+ "@expo/plist": ^0.0.20
+ "@expo/prebuild-config": 6.2.6
+ "@expo/rudder-sdk-node": 1.1.1
+ "@expo/spawn-async": 1.5.0
+ "@expo/xcpretty": ^4.2.1
+ "@urql/core": 2.3.6
+ "@urql/exchange-retry": 0.3.0
+ accepts: ^1.3.8
+ arg: 4.1.0
+ better-opn: ~3.0.2
+ bplist-parser: ^0.3.1
+ cacache: ^15.3.0
+ chalk: ^4.0.0
+ ci-info: ^3.3.0
+ debug: ^4.3.4
+ env-editor: ^0.4.1
+ form-data: ^3.0.1
+ freeport-async: 2.0.0
+ fs-extra: ~8.1.0
+ getenv: ^1.0.0
+ graphql: 15.8.0
+ graphql-tag: ^2.10.1
+ https-proxy-agent: ^5.0.1
+ internal-ip: 4.3.0
+ js-yaml: ^3.13.1
+ json-schema-deref-sync: ^0.13.0
+ md5-file: ^3.2.3
+ md5hex: ^1.0.0
+ minipass: 3.1.6
+ node-fetch: ^2.6.7
+ node-forge: ^1.3.1
+ npm-package-arg: ^7.0.0
+ ora: 3.4.0
+ pretty-bytes: 5.6.0
+ progress: 2.0.3
+ prompts: ^2.3.2
+ qrcode-terminal: 0.11.0
+ require-from-string: ^2.0.2
+ requireg: ^0.2.2
+ resolve-from: ^5.0.0
+ semver: ^7.5.3
+ send: ^0.18.0
+ slugify: ^1.3.4
+ structured-headers: ^0.4.1
+ tar: ^6.0.5
+ tempy: ^0.7.1
+ terminal-link: ^2.1.1
+ text-table: ^0.2.0
+ url-join: 4.0.0
+ wrap-ansi: ^7.0.0
+ ws: ^8.12.1
+ bin:
+ expo-internal: build/bin/cli
+ checksum: 003756d786e4a8e08247b5ebbc73b9f0f221259a01908e6cee33773f299991e606320a2c54fd9d2ddd5294a17222f892372b7c562116da380a325fa81ac799d3
+ languageName: node
+ linkType: hard
+
+"@expo/code-signing-certificates@npm:0.0.5":
+ version: 0.0.5
+ resolution: "@expo/code-signing-certificates@npm:0.0.5"
+ dependencies:
+ node-forge: ^1.2.1
+ nullthrows: ^1.1.1
+ checksum: 4a1c73a6bc74443284a45db698ede874c7d47f6ed58cf44adaa255139490c8754d81dc1556247f3782cdc5034382fb72f23b0033daa2117facad4eb13b841e37
+ languageName: node
+ linkType: hard
+
+"@expo/config-plugins@npm:7.2.5, @expo/config-plugins@npm:~7.2.0":
+ version: 7.2.5
+ resolution: "@expo/config-plugins@npm:7.2.5"
+ dependencies:
+ "@expo/config-types": ^49.0.0-alpha.1
+ "@expo/json-file": ~8.2.37
+ "@expo/plist": ^0.0.20
+ "@expo/sdk-runtime-versions": ^1.0.0
+ "@react-native/normalize-color": ^2.0.0
+ chalk: ^4.1.2
+ debug: ^4.3.1
+ find-up: ~5.0.0
+ getenv: ^1.0.0
+ glob: 7.1.6
+ resolve-from: ^5.0.0
+ semver: ^7.5.3
+ slash: ^3.0.0
+ xcode: ^3.0.1
+ xml2js: 0.6.0
+ checksum: 7ebed343d2109cdb43d03c909845bae5e5a329ee6408acbb4ff09e3dd2a65ed7b80d7b9e09101d20e4c9609f154de8b13c21791e1fa9a30a1875acb5e4be048f
+ languageName: node
+ linkType: hard
+
+"@expo/config-types@npm:^49.0.0-alpha.1":
+ version: 49.0.0
+ resolution: "@expo/config-types@npm:49.0.0"
+ checksum: 5ce8e678495e2e4568f6b502e7f2ef8afd6a8962b28d8e17316249be82321dc5ec5061f8fc467c90d85e330fd3565823cfdc10bab4a78e6b1765296101c8d71d
+ languageName: node
+ linkType: hard
+
+"@expo/config@npm:8.1.2, @expo/config@npm:~8.1.0":
+ version: 8.1.2
+ resolution: "@expo/config@npm:8.1.2"
+ dependencies:
+ "@babel/code-frame": ~7.10.4
+ "@expo/config-plugins": ~7.2.0
+ "@expo/config-types": ^49.0.0-alpha.1
+ "@expo/json-file": ^8.2.37
+ getenv: ^1.0.0
+ glob: 7.1.6
+ require-from-string: ^2.0.2
+ resolve-from: ^5.0.0
+ semver: 7.5.3
+ slugify: ^1.3.4
+ sucrase: ^3.20.0
+ checksum: 95e2f049482f9e20f9bf59975d8d599f5a6ae63e93e8e61e0bf9d7deb8ced121f56a39e5c2fa98570470d51b10f061da2f77c52261e4065270bb9b2629579176
+ languageName: node
+ linkType: hard
+
+"@expo/dev-server@npm:0.5.5":
+ version: 0.5.5
+ resolution: "@expo/dev-server@npm:0.5.5"
+ dependencies:
+ "@expo/bunyan": 4.0.0
+ "@expo/metro-config": ~0.10.0
+ "@expo/osascript": 2.0.33
+ "@expo/spawn-async": ^1.5.0
+ body-parser: ^1.20.1
+ chalk: ^4.0.0
+ connect: ^3.7.0
+ fs-extra: 9.0.0
+ is-docker: ^2.0.0
+ is-wsl: ^2.1.1
+ node-fetch: ^2.6.0
+ open: ^8.3.0
+ resolve-from: ^5.0.0
+ serialize-error: 6.0.0
+ temp-dir: ^2.0.0
+ checksum: 5b13c1a757ed0c41cef20a5d45a024ad78c4086a6fea8e2031883947bc5b2b4512d9c9670f6f2ec9eeb9f83b66428e8a305f1564d0fcb090d081546e7b1fd551
+ languageName: node
+ linkType: hard
+
+"@expo/devcert@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "@expo/devcert@npm:1.1.0"
+ dependencies:
+ application-config-path: ^0.1.0
+ command-exists: ^1.2.4
+ debug: ^3.1.0
+ eol: ^0.9.1
+ get-port: ^3.2.0
+ glob: ^7.1.2
+ lodash: ^4.17.4
+ mkdirp: ^0.5.1
+ password-prompt: ^1.0.4
+ rimraf: ^2.6.2
+ sudo-prompt: ^8.2.0
+ tmp: ^0.0.33
+ tslib: ^2.4.0
+ checksum: bb99996d7fc31c5269afbd9ab43066090ea986006d14c8c393165f813d90c21ff9fc40f16b247778a7026714c2a743ce6e8b0df25e135711e991fa0bbfb3555b
+ languageName: node
+ linkType: hard
+
+"@expo/env@npm:0.0.5":
+ version: 0.0.5
+ resolution: "@expo/env@npm:0.0.5"
+ dependencies:
+ chalk: ^4.0.0
+ debug: ^4.3.4
+ dotenv: ~16.0.3
+ dotenv-expand: ~10.0.0
+ getenv: ^1.0.0
+ checksum: 1a26366178c91aff1b678dc578aafc6e2dcf1b66e7c0d1ec5faa6f6c4bad67c4f4d61d1833bc8de3d074eed3dc644065129007fe1ee777813290d8708d7ff87d
+ languageName: node
+ linkType: hard
+
+"@expo/image-utils@npm:0.3.22":
+ version: 0.3.22
+ resolution: "@expo/image-utils@npm:0.3.22"
+ dependencies:
+ "@expo/spawn-async": 1.5.0
+ chalk: ^4.0.0
+ fs-extra: 9.0.0
+ getenv: ^1.0.0
+ jimp-compact: 0.16.1
+ mime: ^2.4.4
+ node-fetch: ^2.6.0
+ parse-png: ^2.1.0
+ resolve-from: ^5.0.0
+ semver: 7.3.2
+ tempy: 0.3.0
+ checksum: 09b2db29f4b34994bb0fea480475a9947876eede1a8dcaf3cac21edf4e537179d1673bedaf47404e0634eec4b5a17be471e8c8c3c2c0ce2b84df793107d496c2
+ languageName: node
+ linkType: hard
+
+"@expo/json-file@npm:^8.2.37, @expo/json-file@npm:~8.2.37":
+ version: 8.2.37
+ resolution: "@expo/json-file@npm:8.2.37"
+ dependencies:
+ "@babel/code-frame": ~7.10.4
+ json5: ^2.2.2
+ write-file-atomic: ^2.3.0
+ checksum: f04e71654c5b3491bbb7088a02d64acf8e7750369fd48f4d55c64ff4372b5396bdef05a8eff51955e0b098e0069e63281f3c40dc6d3b71aec62295861b1236a6
+ languageName: node
+ linkType: hard
+
+"@expo/metro-config@npm:~0.10.0":
+ version: 0.10.7
+ resolution: "@expo/metro-config@npm:0.10.7"
+ dependencies:
+ "@expo/config": ~8.1.0
+ "@expo/env": 0.0.5
+ "@expo/json-file": ~8.2.37
+ chalk: ^4.1.0
+ debug: ^4.3.2
+ find-yarn-workspace-root: ~2.0.0
+ getenv: ^1.0.0
+ jsc-safe-url: ^0.2.4
+ lightningcss: ~1.19.0
+ postcss: ~8.4.21
+ resolve-from: ^5.0.0
+ sucrase: ^3.20.0
+ checksum: 7b54e08598e2673320a1647ce0f2ab8735cf15f3ea406b2d37b2fed96c7d66f6be9ca10aa622b7a1a7530168627c568f92d2060b8d22a639aaf758a21fb6f03b
+ languageName: node
+ linkType: hard
+
+"@expo/osascript@npm:2.0.33, @expo/osascript@npm:^2.0.31":
+ version: 2.0.33
+ resolution: "@expo/osascript@npm:2.0.33"
+ dependencies:
+ "@expo/spawn-async": ^1.5.0
+ exec-async: ^2.2.0
+ checksum: f1ae2e365ec82fcfefbdcd3ceb52da1b38c54e55a2ceb884ca06fb9259544c032b2f8133b803be152e86d79b8510fda8320811053894884819fa10b66268045d
+ languageName: node
+ linkType: hard
+
+"@expo/package-manager@npm:~1.1.0":
+ version: 1.1.2
+ resolution: "@expo/package-manager@npm:1.1.2"
+ dependencies:
+ "@expo/json-file": ^8.2.37
+ "@expo/spawn-async": ^1.5.0
+ ansi-regex: ^5.0.0
+ chalk: ^4.0.0
+ find-up: ^5.0.0
+ find-yarn-workspace-root: ~2.0.0
+ js-yaml: ^3.13.1
+ micromatch: ^4.0.2
+ npm-package-arg: ^7.0.0
+ split: ^1.0.1
+ sudo-prompt: 9.1.1
+ checksum: 61d5cec5e40029789b2e8f0487aa14999bc98d50967d022d7b55b84efdb5c26581dd568239d8f4af525c07212dfbaa0eab74bbc2fca55d22cee7d463abe03a94
+ languageName: node
+ linkType: hard
+
+"@expo/plist@npm:^0.0.20":
+ version: 0.0.20
+ resolution: "@expo/plist@npm:0.0.20"
+ dependencies:
+ "@xmldom/xmldom": ~0.7.7
+ base64-js: ^1.2.3
+ xmlbuilder: ^14.0.0
+ checksum: 74dea791f86ca29541e94c00d7e0d044b1ccb7947a6f62b18569a85baa4572190c0cbd0973bf97eec9b5f207f45ebb55b8975bd200e5933b237e4d2d2dc12194
+ languageName: node
+ linkType: hard
+
+"@expo/prebuild-config@npm:6.2.6":
+ version: 6.2.6
+ resolution: "@expo/prebuild-config@npm:6.2.6"
+ dependencies:
+ "@expo/config": ~8.1.0
+ "@expo/config-plugins": ~7.2.0
+ "@expo/config-types": ^49.0.0-alpha.1
+ "@expo/image-utils": 0.3.22
+ "@expo/json-file": ^8.2.37
+ debug: ^4.3.1
+ fs-extra: ^9.0.0
+ resolve-from: ^5.0.0
+ semver: 7.5.3
+ xml2js: 0.6.0
+ peerDependencies:
+ expo-modules-autolinking: ">=0.8.1"
+ checksum: ebb83bfba2c7bf6f386f64448213415ce893af69b6a56311dc88400bee24183d934a3c515e6156aad71877def942b6ef608211fdede6a8503eadddc8022e5921
+ languageName: node
+ linkType: hard
+
+"@expo/rudder-sdk-node@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@expo/rudder-sdk-node@npm:1.1.1"
+ dependencies:
+ "@expo/bunyan": ^4.0.0
+ "@segment/loosely-validate-event": ^2.0.0
+ fetch-retry: ^4.1.1
+ md5: ^2.2.1
+ node-fetch: ^2.6.1
+ remove-trailing-slash: ^0.1.0
+ uuid: ^8.3.2
+ checksum: 5ce50c1a82f899b135600cb29cddf3fab601938700c8203f16a1394d2ffbf9e2cdd246b92ff635f8415121072d99a7b4a370f715b78f6680594b5a630e8d78c6
+ languageName: node
+ linkType: hard
+
+"@expo/sdk-runtime-versions@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "@expo/sdk-runtime-versions@npm:1.0.0"
+ checksum: 0942d5a356f590e8dc795761456cc48b3e2d6a38ad2a02d6774efcdc5a70424e05623b4e3e5d2fec0cdc30f40dde05c14391c781607eed3971bf8676518bfd9d
+ languageName: node
+ linkType: hard
+
+"@expo/spawn-async@npm:1.5.0":
+ version: 1.5.0
+ resolution: "@expo/spawn-async@npm:1.5.0"
+ dependencies:
+ cross-spawn: ^6.0.5
+ checksum: 5b144726f66426d9198aa07cca6944deab328369f806c0d30836a19a014d32106e8230c41dde7857a5a3f45f9381a0858df27edc3506be2b7e863fc024290442
+ languageName: node
+ linkType: hard
+
+"@expo/spawn-async@npm:^1.5.0":
+ version: 1.7.2
+ resolution: "@expo/spawn-async@npm:1.7.2"
+ dependencies:
+ cross-spawn: ^7.0.3
+ checksum: d99e5ff6d303ec9b0105f97c4fa6c65bca526c7d4d0987997c35cc745fa8224adf009942d01808192ebb9fa30619a53316641958631e85cf17b773d9eeda2597
+ languageName: node
+ linkType: hard
+
+"@expo/vector-icons@npm:^13.0.0":
+ version: 13.0.0
+ resolution: "@expo/vector-icons@npm:13.0.0"
+ checksum: a1df3b08e5cf0d5e662a05a66e702d18862ceabc69cf71703eb35a512939bdb8c07541bce1a380d296409e75f456de40926d0be78ee713d84709387117d63fa0
+ languageName: node
+ linkType: hard
+
+"@expo/xcpretty@npm:^4.2.1":
+ version: 4.2.2
+ resolution: "@expo/xcpretty@npm:4.2.2"
+ dependencies:
+ "@babel/code-frame": 7.10.4
+ chalk: ^4.1.0
+ find-up: ^5.0.0
+ js-yaml: ^4.1.0
+ bin:
+ excpretty: build/cli.js
+ checksum: 075b09567a742eb1a5730f0a191f66e15f0606864d65734bf0b51b8598fb6e5bd1aabaf4e4257b209b8c0ffbb46cb17b66cdca29d678c95c73eb0e5e4aeca538
+ languageName: node
+ linkType: hard
+
+"@gar/promisify@npm:^1.0.1":
+ version: 1.1.3
+ resolution: "@gar/promisify@npm:1.1.3"
+ checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1
+ languageName: node
+ linkType: hard
+
+"@graphql-typed-document-node/core@npm:^3.1.0":
+ version: 3.2.0
+ resolution: "@graphql-typed-document-node/core@npm:3.2.0"
+ peerDependencies:
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
+ checksum: fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d
+ languageName: node
+ linkType: hard
+
+"@hapi/hoek@npm:^9.0.0":
+ version: 9.3.0
+ resolution: "@hapi/hoek@npm:9.3.0"
+ checksum: 4771c7a776242c3c022b168046af4e324d116a9d2e1d60631ee64f474c6e38d1bb07092d898bf95c7bc5d334c5582798a1456321b2e53ca817d4e7c88bc25b43
+ languageName: node
+ linkType: hard
+
+"@hapi/topo@npm:^5.0.0":
+ version: 5.1.0
+ resolution: "@hapi/topo@npm:5.1.0"
+ dependencies:
+ "@hapi/hoek": ^9.0.0
+ checksum: 604dfd5dde76d5c334bd03f9001fce69c7ce529883acf92da96f4fe7e51221bf5e5110e964caca287a6a616ba027c071748ab636ff178ad750547fba611d6014
+ languageName: node
+ linkType: hard
+
+"@isaacs/cliui@npm:^8.0.2":
+ version: 8.0.2
+ resolution: "@isaacs/cliui@npm:8.0.2"
+ dependencies:
+ string-width: ^5.1.2
+ string-width-cjs: "npm:string-width@^4.2.0"
+ strip-ansi: ^7.0.1
+ strip-ansi-cjs: "npm:strip-ansi@^6.0.1"
+ wrap-ansi: ^8.1.0
+ wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0"
+ checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb
+ languageName: node
+ linkType: hard
+
+"@jest/create-cache-key-function@npm:^29.2.1":
+ version: 29.7.0
+ resolution: "@jest/create-cache-key-function@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ checksum: 681bc761fa1d6fa3dd77578d444f97f28296ea80755e90e46d1c8fa68661b9e67f54dd38b988742db636d26cf160450dc6011892cec98b3a7ceb58cad8ff3aae
+ 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": ^29.7.0
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ jest-mock: ^29.7.0
+ checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934
+ 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": ^29.6.3
+ "@sinonjs/fake-timers": ^10.0.2
+ "@types/node": "*"
+ jest-message-util: ^29.7.0
+ jest-mock: ^29.7.0
+ jest-util: ^29.7.0
+ checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00
+ languageName: node
+ linkType: hard
+
+"@jest/schemas@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/schemas@npm:29.6.3"
+ dependencies:
+ "@sinclair/typebox": ^0.27.8
+ checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93
+ 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": ^2.0.0
+ "@types/istanbul-reports": ^3.0.0
+ "@types/node": "*"
+ "@types/yargs": ^15.0.0
+ chalk: ^4.0.0
+ checksum: a0bd3d2f22f26ddb23f41fddf6e6a30bf4fab2ce79ec1cb6ce6fdfaf90a72e00f4c71da91ec61e13db3b10c41de22cf49d07c57ff2b59171d64b29f909c1d8d6
+ languageName: node
+ linkType: hard
+
+"@jest/types@npm:^27.5.1":
+ version: 27.5.1
+ resolution: "@jest/types@npm:27.5.1"
+ dependencies:
+ "@types/istanbul-lib-coverage": ^2.0.0
+ "@types/istanbul-reports": ^3.0.0
+ "@types/node": "*"
+ "@types/yargs": ^16.0.0
+ chalk: ^4.0.0
+ checksum: d1f43cc946d87543ddd79d49547aab2399481d34025d5c5f2025d3d99c573e1d9832fa83cef25e9d9b07a8583500229d15bbb07b8e233d127d911d133e2f14b1
+ languageName: node
+ linkType: hard
+
+"@jest/types@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/types@npm:29.6.3"
+ dependencies:
+ "@jest/schemas": ^29.6.3
+ "@types/istanbul-lib-coverage": ^2.0.0
+ "@types/istanbul-reports": ^3.0.0
+ "@types/node": "*"
+ "@types/yargs": ^17.0.8
+ chalk: ^4.0.0
+ checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc
+ languageName: node
+ linkType: hard
+
+"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2":
+ version: 0.3.3
+ resolution: "@jridgewell/gen-mapping@npm:0.3.3"
+ dependencies:
+ "@jridgewell/set-array": ^1.0.1
+ "@jridgewell/sourcemap-codec": ^1.4.10
+ "@jridgewell/trace-mapping": ^0.3.9
+ checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab
+ languageName: node
+ linkType: hard
+
+"@jridgewell/resolve-uri@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "@jridgewell/resolve-uri@npm:3.1.1"
+ checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653
+ languageName: node
+ linkType: hard
+
+"@jridgewell/set-array@npm:^1.0.1":
+ version: 1.1.2
+ resolution: "@jridgewell/set-array@npm:1.1.2"
+ checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e
+ languageName: node
+ linkType: hard
+
+"@jridgewell/source-map@npm:^0.3.3":
+ version: 0.3.5
+ resolution: "@jridgewell/source-map@npm:0.3.5"
+ dependencies:
+ "@jridgewell/gen-mapping": ^0.3.0
+ "@jridgewell/trace-mapping": ^0.3.9
+ checksum: 1ad4dec0bdafbade57920a50acec6634f88a0eb735851e0dda906fa9894e7f0549c492678aad1a10f8e144bfe87f238307bf2a914a1bc85b7781d345417e9f6f
+ languageName: node
+ linkType: hard
+
+"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14":
+ version: 1.4.15
+ resolution: "@jridgewell/sourcemap-codec@npm:1.4.15"
+ checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9":
+ version: 0.3.20
+ resolution: "@jridgewell/trace-mapping@npm:0.3.20"
+ dependencies:
+ "@jridgewell/resolve-uri": ^3.1.0
+ "@jridgewell/sourcemap-codec": ^1.4.14
+ checksum: cd1a7353135f385909468ff0cf20bdd37e59f2ee49a13a966dedf921943e222082c583ade2b579ff6cd0d8faafcb5461f253e1bf2a9f48fec439211fdbe788f5
+ 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": 2.0.5
+ run-parallel: ^1.1.9
+ checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59
+ 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: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.walk@npm:^1.2.3":
+ version: 1.2.8
+ resolution: "@nodelib/fs.walk@npm:1.2.8"
+ dependencies:
+ "@nodelib/fs.scandir": 2.1.5
+ fastq: ^1.6.0
+ checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53
+ languageName: node
+ linkType: hard
+
+"@npmcli/agent@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "@npmcli/agent@npm:2.2.0"
+ dependencies:
+ agent-base: ^7.1.0
+ http-proxy-agent: ^7.0.0
+ https-proxy-agent: ^7.0.1
+ lru-cache: ^10.0.1
+ socks-proxy-agent: ^8.0.1
+ checksum: 3b25312edbdfaa4089af28e2d423b6f19838b945e47765b0c8174c1395c79d43c3ad6d23cb364b43f59fd3acb02c93e3b493f72ddbe3dfea04c86843a7311fc4
+ languageName: node
+ linkType: hard
+
+"@npmcli/fs@npm:^1.0.0":
+ version: 1.1.1
+ resolution: "@npmcli/fs@npm:1.1.1"
+ dependencies:
+ "@gar/promisify": ^1.0.1
+ semver: ^7.3.5
+ checksum: f5ad92f157ed222e4e31c352333d0901df02c7c04311e42a81d8eb555d4ec4276ea9c635011757de20cc476755af33e91622838de573b17e52e2e7703f0a9965
+ languageName: node
+ linkType: hard
+
+"@npmcli/fs@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "@npmcli/fs@npm:3.1.0"
+ dependencies:
+ semver: ^7.3.5
+ checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e
+ languageName: node
+ linkType: hard
+
+"@npmcli/move-file@npm:^1.0.1":
+ version: 1.1.2
+ resolution: "@npmcli/move-file@npm:1.1.2"
+ dependencies:
+ mkdirp: ^1.0.4
+ rimraf: ^3.0.2
+ checksum: c96381d4a37448ea280951e46233f7e541058cf57a57d4094dd4bdcaae43fa5872b5f2eb6bfb004591a68e29c5877abe3cdc210cb3588cbf20ab2877f31a7de7
+ languageName: node
+ linkType: hard
+
+"@pkgjs/parseargs@npm:^0.11.0":
+ version: 0.11.0
+ resolution: "@pkgjs/parseargs@npm:0.11.0"
+ checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-clean@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli-clean@npm:11.3.7"
+ dependencies:
+ "@react-native-community/cli-tools": 11.3.7
+ chalk: ^4.1.2
+ execa: ^5.0.0
+ prompts: ^2.4.0
+ checksum: 242260caf3a0d2ed277a01ae9ed245311434c9a57889b8a489ec38eef60b9ad84c81062e4724e6433035d83737a2e1a3cbe022ee1ca725a865aca597b2dcbdf7
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-config@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli-config@npm:11.3.7"
+ dependencies:
+ "@react-native-community/cli-tools": 11.3.7
+ chalk: ^4.1.2
+ cosmiconfig: ^5.1.0
+ deepmerge: ^4.3.0
+ glob: ^7.1.3
+ joi: ^17.2.1
+ checksum: 16ccf4e02ef2fba67394683e9cf9619c7b0bfb568841ebaf5d0275e082e6b140eb8d84b3d01c646d466e6c1c7cc8ea474916418a45cbb61ad803423e778bcbb4
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-debugger-ui@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli-debugger-ui@npm:11.3.7"
+ dependencies:
+ serve-static: ^1.13.1
+ checksum: 3d6b8dbeba49b039c1b6edaa883f310478178edf282aa4a6326fbb6c4a032c71d4d2d492eac1b4b8faeb2076e2eb6d4bbda35d40733ba059abb6612a71e5a841
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-doctor@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli-doctor@npm:11.3.7"
+ dependencies:
+ "@react-native-community/cli-config": 11.3.7
+ "@react-native-community/cli-platform-android": 11.3.7
+ "@react-native-community/cli-platform-ios": 11.3.7
+ "@react-native-community/cli-tools": 11.3.7
+ chalk: ^4.1.2
+ command-exists: ^1.2.8
+ envinfo: ^7.7.2
+ execa: ^5.0.0
+ hermes-profile-transformer: ^0.0.6
+ ip: ^1.1.5
+ node-stream-zip: ^1.9.1
+ ora: ^5.4.1
+ prompts: ^2.4.0
+ semver: ^7.5.2
+ strip-ansi: ^5.2.0
+ sudo-prompt: ^9.0.0
+ wcwidth: ^1.0.1
+ yaml: ^2.2.1
+ checksum: b67990e71b0859565f8443dca21c5b0d3203ffebe13be22fbbbd38fc7d8e1a6c966b89783ecbefde16e3e3d84cfecb8277104e86a8ff08338d11df1315e0fb1a
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-hermes@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli-hermes@npm:11.3.7"
+ dependencies:
+ "@react-native-community/cli-platform-android": 11.3.7
+ "@react-native-community/cli-tools": 11.3.7
+ chalk: ^4.1.2
+ hermes-profile-transformer: ^0.0.6
+ ip: ^1.1.5
+ checksum: e739ff2f891fff7b0d5ead11db05af5cf85db54f0c29ec88df8951567e556b7ce61a0fe930e936d6afab44cbcf7905c01cf73e597dae3c2cd49ef997806754b7
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-platform-android@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli-platform-android@npm:11.3.7"
+ dependencies:
+ "@react-native-community/cli-tools": 11.3.7
+ chalk: ^4.1.2
+ execa: ^5.0.0
+ glob: ^7.1.3
+ logkitty: ^0.7.1
+ checksum: 5f2f567af3077518d487005fa322f96461f2929762c0bbce6275af97ee00a798683835d481a42477ed3430a5aa141e8fb033d913b7ddbf4ab28aae19bedec4c3
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-platform-ios@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli-platform-ios@npm:11.3.7"
+ dependencies:
+ "@react-native-community/cli-tools": 11.3.7
+ chalk: ^4.1.2
+ execa: ^5.0.0
+ fast-xml-parser: ^4.0.12
+ glob: ^7.1.3
+ ora: ^5.4.1
+ checksum: 7c067d2e42855b70efd93396ecd6a4379660f5ff0f62472b693e52e092a19b9f39aef73d9ba58cda9eac8bd47710bbee98393438ac7936b6c9d0b5c9c60a1d23
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-plugin-metro@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli-plugin-metro@npm:11.3.7"
+ dependencies:
+ "@react-native-community/cli-server-api": 11.3.7
+ "@react-native-community/cli-tools": 11.3.7
+ chalk: ^4.1.2
+ execa: ^5.0.0
+ metro: 0.76.8
+ metro-config: 0.76.8
+ metro-core: 0.76.8
+ metro-react-native-babel-transformer: 0.76.8
+ metro-resolver: 0.76.8
+ metro-runtime: 0.76.8
+ readline: ^1.3.0
+ checksum: 3504ab8df1bf16335f10088286d71facb59b932ac00500a40fe9a39c77c74b58af0912ac6e9b4c58e5cd8d94ca893e49aecc25a3415740c60be30300b2ae0460
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-server-api@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli-server-api@npm:11.3.7"
+ dependencies:
+ "@react-native-community/cli-debugger-ui": 11.3.7
+ "@react-native-community/cli-tools": 11.3.7
+ compression: ^1.7.1
+ connect: ^3.6.5
+ errorhandler: ^1.5.1
+ nocache: ^3.0.1
+ pretty-format: ^26.6.2
+ serve-static: ^1.13.1
+ ws: ^7.5.1
+ checksum: 86e26df7f43915bc7f10b1ae4d7f32e42ddbf6ac50b9c72f263f51dbb5d7f4b941da464094dfa2244028467c4b04ed8d3bcac7cd4191feea499dc90fcde2965a
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-tools@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli-tools@npm:11.3.7"
+ dependencies:
+ appdirsjs: ^1.2.4
+ chalk: ^4.1.2
+ find-up: ^5.0.0
+ mime: ^2.4.1
+ node-fetch: ^2.6.0
+ open: ^6.2.0
+ ora: ^5.4.1
+ semver: ^7.5.2
+ shell-quote: ^1.7.3
+ checksum: ae9e368119be1307b341af79d72309b06acab4afd5e38dba860569e9c8c968b33e68b9a0ba02ad152e81fa7d0aa76c44e391714781107561b5119238f27e72b2
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli-types@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli-types@npm:11.3.7"
+ dependencies:
+ joi: ^17.2.1
+ checksum: e9d49617c0e17d40680f9cc0b271083a83de0aaf3d53acab54cf195bfa35cae35c69ec88f1cb026c9a096f8dfd5bdc12787ee3e52cf98df68a572de1859c71ea
+ languageName: node
+ linkType: hard
+
+"@react-native-community/cli@npm:11.3.7":
+ version: 11.3.7
+ resolution: "@react-native-community/cli@npm:11.3.7"
+ dependencies:
+ "@react-native-community/cli-clean": 11.3.7
+ "@react-native-community/cli-config": 11.3.7
+ "@react-native-community/cli-debugger-ui": 11.3.7
+ "@react-native-community/cli-doctor": 11.3.7
+ "@react-native-community/cli-hermes": 11.3.7
+ "@react-native-community/cli-plugin-metro": 11.3.7
+ "@react-native-community/cli-server-api": 11.3.7
+ "@react-native-community/cli-tools": 11.3.7
+ "@react-native-community/cli-types": 11.3.7
+ chalk: ^4.1.2
+ commander: ^9.4.1
+ execa: ^5.0.0
+ find-up: ^4.1.0
+ fs-extra: ^8.1.0
+ graceful-fs: ^4.1.3
+ prompts: ^2.4.0
+ semver: ^7.5.2
+ bin:
+ react-native: build/bin.js
+ checksum: 704e3d5e252a42a45697384b55f140b4961cbc213a90701ef163d1d0bab4fa8481ae4bf9ffe9c965114817087068186422d96d60aed479466bab036049a32866
+ languageName: node
+ linkType: hard
+
+"@react-native/assets-registry@npm:^0.72.0":
+ version: 0.72.0
+ resolution: "@react-native/assets-registry@npm:0.72.0"
+ checksum: 94c2b842f9fcc6e2817463dd5f26a40b69a5ff10d8d10a2af95b677f88c6645e833f985db9d85c9c3d8e66fb882b2065921ad8890fe6ac7b5eb3f9d04f6e17fa
+ languageName: node
+ linkType: hard
+
+"@react-native/codegen@npm:^0.72.7":
+ version: 0.72.7
+ resolution: "@react-native/codegen@npm:0.72.7"
+ dependencies:
+ "@babel/parser": ^7.20.0
+ flow-parser: ^0.206.0
+ jscodeshift: ^0.14.0
+ nullthrows: ^1.1.1
+ peerDependencies:
+ "@babel/preset-env": ^7.1.6
+ checksum: 7793a9da9eec18a5c68af37ad0e25000ed7f111086223bc85b08e52c79229266d5affc9e6f9cb14348e7921f0d1b96267ff63801d95bc23c55f54b57c0a9c510
+ languageName: node
+ linkType: hard
+
+"@react-native/gradle-plugin@npm:^0.72.11":
+ version: 0.72.11
+ resolution: "@react-native/gradle-plugin@npm:0.72.11"
+ checksum: 1688e9b0f7571f142d9bea95339f1194c043f2230fd5018b69d69487bd4efdc4a0c7bce6e93cee2ac9ff8c7a382541186ca4d68b0e5086b5f4f2e78747978144
+ languageName: node
+ linkType: hard
+
+"@react-native/js-polyfills@npm:^0.72.1":
+ version: 0.72.1
+ resolution: "@react-native/js-polyfills@npm:0.72.1"
+ checksum: c81b0217cefdfda5cda34acf260a862711e0c9262c2503eb155d6e16050438b387242f7232b986890cb461d01ca61a8b6dab9a9bcc75e00f5509315006028286
+ languageName: node
+ linkType: hard
+
+"@react-native/normalize-color@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "@react-native/normalize-color@npm:2.1.0"
+ checksum: 8ccbd40b3c7629f1dc97b3e9aadd95fd3507fcf2e37535a6299a70436ab891c34cbdc4240b07380553d6e85dd909e23d5773b5be1da2906b026312e0b0768838
+ languageName: node
+ linkType: hard
+
+"@react-native/normalize-colors@npm:*":
+ version: 0.74.1
+ resolution: "@react-native/normalize-colors@npm:0.74.1"
+ checksum: a8625a2ed4f2595c9e1a0b0877ca8ab02dab243ced6bf98c82c328c2c125ca31dd3afd1f2940f2c114af2c309b28ad24da98aa9519a761a2df796c6968c055ec
+ languageName: node
+ linkType: hard
+
+"@react-native/normalize-colors@npm:^0.72.0":
+ version: 0.72.0
+ resolution: "@react-native/normalize-colors@npm:0.72.0"
+ checksum: c8ec577663394a3390eb34c3cd531350521172bcfad7de309ab111e5f9e3d27c966d4a4387f00972302107be3d8cad584c5794ccfa30939aecc56162e4ddbe25
+ languageName: node
+ linkType: hard
+
+"@react-native/virtualized-lists@npm:^0.72.8":
+ version: 0.72.8
+ resolution: "@react-native/virtualized-lists@npm:0.72.8"
+ dependencies:
+ invariant: ^2.2.4
+ nullthrows: ^1.1.1
+ peerDependencies:
+ react-native: "*"
+ checksum: ad9628a04e72420326fd5ef09c746ad9cd6cff745b73850c7297429e3c42927043d1310896a72aa94497dc6b7f1abc2be1081b465734f7673f0e7d36aaae5e53
+ languageName: node
+ linkType: hard
+
+"@segment/loosely-validate-event@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@segment/loosely-validate-event@npm:2.0.0"
+ dependencies:
+ component-type: ^1.2.1
+ join-component: ^1.1.0
+ checksum: 8c4aacc903fb717619b69ca7eecf8d4a7b928661b0e835c9cd98f1b858a85ce62c348369ad9a52cb2df8df02578c0525a73fce4c69a42ac414d9554cc6be7117
+ languageName: node
+ linkType: hard
+
+"@sideway/address@npm:^4.1.3":
+ version: 4.1.4
+ resolution: "@sideway/address@npm:4.1.4"
+ dependencies:
+ "@hapi/hoek": ^9.0.0
+ checksum: b9fca2a93ac2c975ba12e0a6d97853832fb1f4fb02393015e012b47fa916a75ca95102d77214b2a29a2784740df2407951af8c5dde054824c65577fd293c4cdb
+ languageName: node
+ linkType: hard
+
+"@sideway/formula@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "@sideway/formula@npm:3.0.1"
+ checksum: e4beeebc9dbe2ff4ef0def15cec0165e00d1612e3d7cea0bc9ce5175c3263fc2c818b679bd558957f49400ee7be9d4e5ac90487e1625b4932e15c4aa7919c57a
+ languageName: node
+ linkType: hard
+
+"@sideway/pinpoint@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@sideway/pinpoint@npm:2.0.0"
+ checksum: 0f4491e5897fcf5bf02c46f5c359c56a314e90ba243f42f0c100437935daa2488f20482f0f77186bd6bf43345095a95d8143ecf8b1f4d876a7bc0806aba9c3d2
+ languageName: node
+ linkType: hard
+
+"@sinclair/typebox@npm:^0.27.8":
+ version: 0.27.8
+ resolution: "@sinclair/typebox@npm:0.27.8"
+ checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1
+ languageName: node
+ linkType: hard
+
+"@sinonjs/commons@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "@sinonjs/commons@npm:3.0.0"
+ dependencies:
+ type-detect: 4.0.8
+ checksum: b4b5b73d4df4560fb8c0c7b38c7ad4aeabedd362f3373859d804c988c725889cde33550e4bcc7cd316a30f5152a2d1d43db71b6d0c38f5feef71fd8d016763f8
+ 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": ^3.0.0
+ checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0":
+ version: 2.0.6
+ resolution: "@types/istanbul-lib-coverage@npm:2.0.6"
+ checksum: 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": "*"
+ checksum: 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": "*"
+ checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:*":
+ version: 20.9.3
+ resolution: "@types/node@npm:20.9.3"
+ dependencies:
+ undici-types: ~5.26.4
+ checksum: 0cfbfd2a8bd18acc75aa4d7685c7dcf56344f48addd4041d306dc194f3132f8014d56fd49fcb26bcdf400b883f9527e5e2beaf52dfce029cef15c69b8ed2e72a
+ languageName: node
+ linkType: hard
+
+"@types/prop-types@npm:*":
+ version: 15.7.11
+ resolution: "@types/prop-types@npm:15.7.11"
+ checksum: 7519ff11d06fbf6b275029fe03fff9ec377b4cb6e864cac34d87d7146c7f5a7560fd164bdc1d2dbe00b60c43713631251af1fd3d34d46c69cd354602bc0c7c54
+ languageName: node
+ linkType: hard
+
+"@types/react-native-dotenv@npm:^0.2.1":
+ version: 0.2.2
+ resolution: "@types/react-native-dotenv@npm:0.2.2"
+ checksum: a300037b84e7ae7db7f2609aa0893eccf596c5a78f6215b2733a8dfb7172277766a058f21a6852a223926763e6d3fc34da2a980d30ded585c555994db322a537
+ languageName: node
+ linkType: hard
+
+"@types/react@npm:~18.2.14":
+ version: 18.2.38
+ resolution: "@types/react@npm:18.2.38"
+ dependencies:
+ "@types/prop-types": "*"
+ "@types/scheduler": "*"
+ csstype: ^3.0.2
+ checksum: 71f8c167173d32252be8b2d3c1c76b3570b94d2fbbd139da86d146be453626f5777e12c2781559119637520dbef9f91cffe968f67b5901618f29226d49fad326
+ languageName: node
+ linkType: hard
+
+"@types/scheduler@npm:*":
+ version: 0.16.7
+ resolution: "@types/scheduler@npm:0.16.7"
+ checksum: 70684e998202d30c43427e0410c785878f63108f6b9a2e490b78dfb75e21834884a7d553a93de6ab887a6f02e49509981d49ab01f746fd3791de48bb5cbd6bc5
+ languageName: node
+ linkType: hard
+
+"@types/stack-utils@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "@types/stack-utils@npm:2.0.3"
+ checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5
+ languageName: node
+ linkType: hard
+
+"@types/yargs-parser@npm:*":
+ version: 21.0.3
+ resolution: "@types/yargs-parser@npm:21.0.3"
+ checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc
+ languageName: node
+ linkType: hard
+
+"@types/yargs@npm:^15.0.0":
+ version: 15.0.19
+ resolution: "@types/yargs@npm:15.0.19"
+ dependencies:
+ "@types/yargs-parser": "*"
+ checksum: 6a509db36304825674f4f00300323dce2b4d850e75819c3db87e9e9f213ac2c4c6ed3247a3e4eed6e8e45b3f191b133a356d3391dd694d9ea27a0507d914ef4c
+ languageName: node
+ linkType: hard
+
+"@types/yargs@npm:^16.0.0":
+ version: 16.0.9
+ resolution: "@types/yargs@npm:16.0.9"
+ dependencies:
+ "@types/yargs-parser": "*"
+ checksum: 00d9276ed4e0f17a78c1ed57f644a8c14061959bd5bfab113d57f082ea4b663ba97f71b89371304a34a2dba5061e9ae4523e357e577ba61834d661f82c223bf8
+ languageName: node
+ linkType: hard
+
+"@types/yargs@npm:^17.0.8":
+ version: 17.0.32
+ resolution: "@types/yargs@npm:17.0.32"
+ dependencies:
+ "@types/yargs-parser": "*"
+ checksum: 4505bdebe8716ff383640c6e928f855b5d337cb3c68c81f7249fc6b983d0aa48de3eee26062b84f37e0d75a5797bc745e0c6e76f42f81771252a758c638f36ba
+ languageName: node
+ linkType: hard
+
+"@urql/core@npm:2.3.6":
+ version: 2.3.6
+ resolution: "@urql/core@npm:2.3.6"
+ dependencies:
+ "@graphql-typed-document-node/core": ^3.1.0
+ wonka: ^4.0.14
+ peerDependencies:
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
+ checksum: 39b10abc9b600cf698bc702b9b678cf8cf4851faa8041be6fe26e439a18a447f8f39049cd2a9b188076cbd272ead62286ea05294c5de14719e7799caa8c44942
+ languageName: node
+ linkType: hard
+
+"@urql/core@npm:>=2.3.1":
+ version: 4.2.0
+ resolution: "@urql/core@npm:4.2.0"
+ dependencies:
+ "@0no-co/graphql.web": ^1.0.1
+ wonka: ^6.3.2
+ checksum: 5d2cf88877333a8e29e459f34fc778d08e476b13624c29e86e6f54fc538f57b4084e0ca8c8a6b8e3400c5089910e3d55c66b7d0e4fcf74c25db055153c99fae4
+ languageName: node
+ linkType: hard
+
+"@urql/exchange-retry@npm:0.3.0":
+ version: 0.3.0
+ resolution: "@urql/exchange-retry@npm:0.3.0"
+ dependencies:
+ "@urql/core": ">=2.3.1"
+ wonka: ^4.0.14
+ peerDependencies:
+ graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0
+ checksum: 7638518e809da750f89bc59343b3a1f7fea2927110a2aab39701ae36c7c1bc5953f5a536a47402d4febbfc227fd0c729844b58d72efb283ed8aa73c20c26ef25
+ languageName: node
+ linkType: hard
+
+"@xmldom/xmldom@npm:^0.8.8":
+ version: 0.8.10
+ resolution: "@xmldom/xmldom@npm:0.8.10"
+ checksum: 4c136aec31fb3b49aaa53b6fcbfe524d02a1dc0d8e17ee35bd3bf35e9ce1344560481cd1efd086ad1a4821541482528672306d5e37cdbd187f33d7fadd3e2cf0
+ languageName: node
+ linkType: hard
+
+"@xmldom/xmldom@npm:~0.7.7":
+ version: 0.7.13
+ resolution: "@xmldom/xmldom@npm:0.7.13"
+ checksum: b4054078530e5fa8ede9677425deff0fce6d965f4c477ca73f8490d8a089e60b8498a15560425a1335f5ff99ecb851ed2c734b0a9a879299a5694302f212f37a
+ languageName: node
+ linkType: hard
+
+"abbrev@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "abbrev@npm:2.0.0"
+ checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36
+ 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: ^5.0.0
+ checksum: 170bdba9b47b7e65906a28c8ce4f38a7a369d78e2271706f020849c1bfe0ee2067d4261df8bbb66eb84f79208fd5b710df759d64191db58cfba7ce8ef9c54b75
+ languageName: node
+ linkType: hard
+
+"accepts@npm:^1.3.7, accepts@npm:^1.3.8, accepts@npm:~1.3.5, accepts@npm:~1.3.7":
+ version: 1.3.8
+ resolution: "accepts@npm:1.3.8"
+ dependencies:
+ mime-types: ~2.1.34
+ negotiator: 0.6.3
+ checksum: 50c43d32e7b50285ebe84b613ee4a3aa426715a7d131b65b786e2ead0fd76b6b60091b9916d3478a75f11f162628a2139991b6c03ab3f1d9ab7c86075dc8eab4
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^8.8.2":
+ version: 8.11.2
+ resolution: "acorn@npm:8.11.2"
+ bin:
+ acorn: bin/acorn
+ checksum: 818450408684da89423e3daae24e4dc9b68692db8ab49ea4569c7c5abb7a3f23669438bf129cc81dfdada95e1c9b944ee1bfca2c57a05a4dc73834a612fbf6a7
+ languageName: node
+ linkType: hard
+
+"agent-base@npm:6":
+ version: 6.0.2
+ resolution: "agent-base@npm:6.0.2"
+ dependencies:
+ debug: 4
+ checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d
+ languageName: node
+ linkType: hard
+
+"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0":
+ version: 7.1.0
+ resolution: "agent-base@npm:7.1.0"
+ dependencies:
+ debug: ^4.3.4
+ checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f
+ languageName: node
+ linkType: hard
+
+"aggregate-error@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "aggregate-error@npm:3.1.0"
+ dependencies:
+ clean-stack: ^2.0.0
+ indent-string: ^4.0.0
+ checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79
+ languageName: node
+ linkType: hard
+
+"anser@npm:^1.4.9":
+ version: 1.4.10
+ resolution: "anser@npm:1.4.10"
+ checksum: 3823c64f8930d3d97f36e56cdf646fa6351f1227e25eee70c3a17697447cae4238fc3a309bb3bc2003cf930687fa72aed71426dbcf3c0a15565e120a7fee5507
+ languageName: node
+ linkType: hard
+
+"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.2":
+ version: 4.3.2
+ resolution: "ansi-escapes@npm:4.3.2"
+ dependencies:
+ type-fest: ^0.21.3
+ checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815
+ languageName: node
+ linkType: hard
+
+"ansi-fragments@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "ansi-fragments@npm:0.2.1"
+ dependencies:
+ colorette: ^1.0.7
+ slice-ansi: ^2.0.0
+ strip-ansi: ^5.0.0
+ checksum: 22c3eb8a0aec6bcc15f4e78d77a264ee0c92160b09c94260d1161d051eb8c77c7ecfeb3c8ec44ca180bad554fef3489528c509a644a7589635fc36bcaf08234f
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^4.1.0":
+ version: 4.1.1
+ resolution: "ansi-regex@npm:4.1.1"
+ checksum: 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: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "ansi-regex@npm:6.0.1"
+ checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^3.2.0, ansi-styles@npm:^3.2.1":
+ version: 3.2.1
+ resolution: "ansi-styles@npm:3.2.1"
+ dependencies:
+ color-convert: ^1.9.0
+ checksum: 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: ^2.0.1
+ checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^5.0.0":
+ version: 5.2.0
+ resolution: "ansi-styles@npm:5.2.0"
+ checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^6.1.0":
+ version: 6.2.1
+ resolution: "ansi-styles@npm:6.2.1"
+ checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9
+ languageName: node
+ linkType: hard
+
+"any-promise@npm:^1.0.0":
+ version: 1.3.0
+ resolution: "any-promise@npm:1.3.0"
+ checksum: 0ee8a9bdbe882c90464d75d1f55cf027f5458650c4bd1f0467e65aec38ccccda07ca5844969ee77ed46d04e7dded3eaceb027e8d32f385688523fe305fa7e1de
+ languageName: node
+ linkType: hard
+
+"anymatch@npm:^3.0.3":
+ version: 3.1.3
+ resolution: "anymatch@npm:3.1.3"
+ dependencies:
+ normalize-path: ^3.0.0
+ picomatch: ^2.0.4
+ checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2
+ languageName: node
+ linkType: hard
+
+"appdirsjs@npm:^1.2.4":
+ version: 1.2.7
+ resolution: "appdirsjs@npm:1.2.7"
+ checksum: 3411b4e31edf8687ad69638ef81b92b4889ad31e527b673a364990c28c99b6b8c3ea81b2b2b636d5b08e166a18706c4464fd8436b298f85384d499ba6b8dc4b7
+ languageName: node
+ linkType: hard
+
+"application-config-path@npm:^0.1.0":
+ version: 0.1.1
+ resolution: "application-config-path@npm:0.1.1"
+ checksum: e478c1e4d515108de89693165d92dab11cfdc69dd0f3ccde034f14a3f4e50007946de9e4dd51cd77d2f7ba9752e75d8e4d937ef053a53e466425d9751c961a37
+ languageName: node
+ linkType: hard
+
+"arg@npm:4.1.0":
+ version: 4.1.0
+ resolution: "arg@npm:4.1.0"
+ checksum: ea97513bf27aa5f2acf5dadf41501108fe786631fdd9d33f373174631800b57f85272dbf8190e937008a02b38d5c2f679514146f89a23123d8cb4ba30e8c066c
+ languageName: node
+ linkType: hard
+
+"argparse@npm:^1.0.7":
+ version: 1.0.10
+ resolution: "argparse@npm:1.0.10"
+ dependencies:
+ sprintf-js: ~1.0.2
+ checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945
+ languageName: node
+ linkType: hard
+
+"argparse@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "argparse@npm:2.0.1"
+ checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced
+ languageName: node
+ linkType: hard
+
+"array-union@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "array-union@npm:2.1.0"
+ checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d
+ languageName: node
+ linkType: hard
+
+"asap@npm:~2.0.3, asap@npm:~2.0.6":
+ version: 2.0.6
+ resolution: "asap@npm:2.0.6"
+ checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d
+ languageName: node
+ linkType: hard
+
+"ast-types@npm:0.15.2":
+ version: 0.15.2
+ resolution: "ast-types@npm:0.15.2"
+ dependencies:
+ tslib: ^2.0.1
+ checksum: 24f0d86bf9e4c8dae16fa24b13c1776f2c2677040bcfbd4eb4f27911db49020be4876885e45e6cfcc548ed4dfea3a0742d77e3346b84fae47379cb0b89e9daa0
+ languageName: node
+ linkType: hard
+
+"astral-regex@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "astral-regex@npm:1.0.0"
+ checksum: 93417fc0879531cd95ace2560a54df865c9461a3ac0714c60cbbaa5f1f85d2bee85489e78d82f70b911b71ac25c5f05fc5a36017f44c9bb33c701bee229ff848
+ languageName: node
+ linkType: hard
+
+"async-limiter@npm:~1.0.0":
+ version: 1.0.1
+ resolution: "async-limiter@npm:1.0.1"
+ checksum: 2b849695b465d93ad44c116220dee29a5aeb63adac16c1088983c339b0de57d76e82533e8e364a93a9f997f28bbfc6a92948cefc120652bd07f3b59f8d75cf2b
+ languageName: node
+ linkType: hard
+
+"async@npm:^3.2.2":
+ version: 3.2.5
+ resolution: "async@npm:3.2.5"
+ checksum: 5ec77f1312301dee02d62140a6b1f7ee0edd2a0f983b6fd2b0849b969f245225b990b47b8243e7b9ad16451a53e7f68e753700385b706198ced888beedba3af4
+ languageName: node
+ linkType: hard
+
+"asynckit@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "asynckit@npm:0.4.0"
+ checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be
+ languageName: node
+ linkType: hard
+
+"at-least-node@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "at-least-node@npm:1.0.0"
+ checksum: 463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e
+ 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: 2a1cb879019dffb08d17bec36e13c3a6d74c94773f41c1fd8b14de13f149cc34b705b0a1e07b42fcf35917b49d78db6ff0c5c3b00b202a5235013d517b5c6bbb
+ languageName: node
+ linkType: hard
+
+"babel-plugin-module-resolver@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "babel-plugin-module-resolver@npm:5.0.0"
+ dependencies:
+ find-babel-config: ^2.0.0
+ glob: ^8.0.3
+ pkg-up: ^3.1.0
+ reselect: ^4.1.7
+ resolve: ^1.22.1
+ checksum: d6880e49fc8e7bac509a2c183b4303ee054a47a80032a59a6f7844bb468ebe5e333b5dc5378443afdab5839e2da2b31a6c8d9a985a0047cd076b82bb9161cc78
+ languageName: node
+ linkType: hard
+
+"babel-plugin-polyfill-corejs2@npm:^0.4.6":
+ version: 0.4.6
+ resolution: "babel-plugin-polyfill-corejs2@npm:0.4.6"
+ dependencies:
+ "@babel/compat-data": ^7.22.6
+ "@babel/helper-define-polyfill-provider": ^0.4.3
+ semver: ^6.3.1
+ peerDependencies:
+ "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
+ checksum: 08896811df31530be6a9bcdd630cb9fd4b5ae5181039d18db3796efbc54e38d57a42af460845c10a04434e1bc45c0d47743c7e6c860383cc6b141083cde22030
+ languageName: node
+ linkType: hard
+
+"babel-plugin-polyfill-corejs3@npm:^0.8.5":
+ version: 0.8.6
+ resolution: "babel-plugin-polyfill-corejs3@npm:0.8.6"
+ dependencies:
+ "@babel/helper-define-polyfill-provider": ^0.4.3
+ core-js-compat: ^3.33.1
+ peerDependencies:
+ "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
+ checksum: 36951c2edac42ac0f05b200502e90d77bf66ccee5b52e2937d23496c6ef2372cce31b8c64144da374b77bd3eb65e2721703a52eac56cad16a152326c092cbf77
+ languageName: node
+ linkType: hard
+
+"babel-plugin-polyfill-regenerator@npm:^0.5.3":
+ version: 0.5.3
+ resolution: "babel-plugin-polyfill-regenerator@npm:0.5.3"
+ dependencies:
+ "@babel/helper-define-polyfill-provider": ^0.4.3
+ peerDependencies:
+ "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
+ checksum: 2bb546582cda1870d19e646a7183baeb2cccd56e0ef3e4eaeabd28e120daf17cb87399194a9ccdcf32506bcaa68d23e73440fc8ab990a7a0f8c5a77c12d5d4bc
+ languageName: node
+ linkType: hard
+
+"babel-plugin-react-native-web@npm:~0.18.10":
+ version: 0.18.12
+ resolution: "babel-plugin-react-native-web@npm:0.18.12"
+ checksum: 9770341df1011b0e8e9b6a24bc18c05678c7d8b8db7d64e2cf56ab66b9c2988404902543ee7c4e222ed751faa865b4907ad5fac6f6ae6a38fbe16a50aa5975bd
+ languageName: node
+ linkType: hard
+
+"babel-plugin-syntax-trailing-function-commas@npm:^7.0.0-beta.0":
+ version: 7.0.0-beta.0
+ resolution: "babel-plugin-syntax-trailing-function-commas@npm:7.0.0-beta.0"
+ checksum: e37509156ca945dd9e4b82c66dd74f2d842ad917bd280cb5aa67960942300cd065eeac476d2514bdcdedec071277a358f6d517c31d9f9244d9bbc3619a8ecf8a
+ 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": ^7.12.1
+ checksum: fd52aef54448e01948a9d1cca0c8f87d064970c8682458962b7a222c372704bc2ce26ae8109e0ab2566e7ea5106856460f04c1a5ed794ab3bcd2f42cae1d9845
+ languageName: node
+ linkType: hard
+
+"babel-preset-expo@npm:~9.5.2":
+ version: 9.5.2
+ resolution: "babel-preset-expo@npm:9.5.2"
+ dependencies:
+ "@babel/plugin-proposal-decorators": ^7.12.9
+ "@babel/plugin-proposal-export-namespace-from": ^7.18.9
+ "@babel/plugin-proposal-object-rest-spread": ^7.12.13
+ "@babel/plugin-transform-react-jsx": ^7.12.17
+ "@babel/preset-env": ^7.20.0
+ babel-plugin-module-resolver: ^5.0.0
+ babel-plugin-react-native-web: ~0.18.10
+ metro-react-native-babel-preset: 0.76.8
+ checksum: 7dc9972f81b3ddbc7504fca10198a592e5ac02323617154240f28096549da1e2ad079e615c3013443676b8e6fded25e1bf93c1468d3d5f55f678787fab3d51ad
+ languageName: node
+ linkType: hard
+
+"babel-preset-fbjs@npm:^3.4.0":
+ version: 3.4.0
+ resolution: "babel-preset-fbjs@npm:3.4.0"
+ dependencies:
+ "@babel/plugin-proposal-class-properties": ^7.0.0
+ "@babel/plugin-proposal-object-rest-spread": ^7.0.0
+ "@babel/plugin-syntax-class-properties": ^7.0.0
+ "@babel/plugin-syntax-flow": ^7.0.0
+ "@babel/plugin-syntax-jsx": ^7.0.0
+ "@babel/plugin-syntax-object-rest-spread": ^7.0.0
+ "@babel/plugin-transform-arrow-functions": ^7.0.0
+ "@babel/plugin-transform-block-scoped-functions": ^7.0.0
+ "@babel/plugin-transform-block-scoping": ^7.0.0
+ "@babel/plugin-transform-classes": ^7.0.0
+ "@babel/plugin-transform-computed-properties": ^7.0.0
+ "@babel/plugin-transform-destructuring": ^7.0.0
+ "@babel/plugin-transform-flow-strip-types": ^7.0.0
+ "@babel/plugin-transform-for-of": ^7.0.0
+ "@babel/plugin-transform-function-name": ^7.0.0
+ "@babel/plugin-transform-literals": ^7.0.0
+ "@babel/plugin-transform-member-expression-literals": ^7.0.0
+ "@babel/plugin-transform-modules-commonjs": ^7.0.0
+ "@babel/plugin-transform-object-super": ^7.0.0
+ "@babel/plugin-transform-parameters": ^7.0.0
+ "@babel/plugin-transform-property-literals": ^7.0.0
+ "@babel/plugin-transform-react-display-name": ^7.0.0
+ "@babel/plugin-transform-react-jsx": ^7.0.0
+ "@babel/plugin-transform-shorthand-properties": ^7.0.0
+ "@babel/plugin-transform-spread": ^7.0.0
+ "@babel/plugin-transform-template-literals": ^7.0.0
+ babel-plugin-syntax-trailing-function-commas: ^7.0.0-beta.0
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: b3352cf690729125997f254bc31b9c4db347f8646f1571958ced1c45f0da89439e183e1c88e35397eb0361b9e1fbb1dd8142d3f4647814deb427e53c54f44d5f
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "balanced-match@npm:1.0.2"
+ checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65
+ languageName: node
+ linkType: hard
+
+"base64-js@npm:^1.1.2, base64-js@npm:^1.2.3, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1":
+ version: 1.5.1
+ resolution: "base64-js@npm:1.5.1"
+ checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005
+ languageName: node
+ linkType: hard
+
+"better-opn@npm:~3.0.2":
+ version: 3.0.2
+ resolution: "better-opn@npm:3.0.2"
+ dependencies:
+ open: ^8.0.4
+ checksum: 1471552fa7f733561e7f49e812be074b421153006ca744de985fb6d38939807959fc5fe9cb819cf09f864782e294704fd3b31711ea14c115baf3330a2f1135de
+ languageName: node
+ linkType: hard
+
+"big-integer@npm:1.6.x":
+ version: 1.6.52
+ resolution: "big-integer@npm:1.6.52"
+ checksum: 6e86885787a20fed96521958ae9086960e4e4b5e74d04f3ef7513d4d0ad631a9f3bde2730fc8aaa4b00419fc865f6ec573e5320234531ef37505da7da192c40b
+ languageName: node
+ linkType: hard
+
+"bl@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "bl@npm:4.1.0"
+ dependencies:
+ buffer: ^5.5.0
+ inherits: ^2.0.4
+ readable-stream: ^3.4.0
+ checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662
+ languageName: node
+ linkType: hard
+
+"blueimp-md5@npm:^2.10.0":
+ version: 2.19.0
+ resolution: "blueimp-md5@npm:2.19.0"
+ checksum: 28095dcbd2c67152a2938006e8d7c74c3406ba6556071298f872505432feb2c13241b0476644160ee0a5220383ba94cb8ccdac0053b51f68d168728f9c382530
+ languageName: node
+ linkType: hard
+
+"body-parser@npm:^1.20.1":
+ version: 1.20.2
+ resolution: "body-parser@npm:1.20.2"
+ dependencies:
+ bytes: 3.1.2
+ content-type: ~1.0.5
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ http-errors: 2.0.0
+ iconv-lite: 0.4.24
+ on-finished: 2.4.1
+ qs: 6.11.0
+ raw-body: 2.5.2
+ type-is: ~1.6.18
+ unpipe: 1.0.0
+ checksum: 14d37ec638ab5c93f6099ecaed7f28f890d222c650c69306872e00b9efa081ff6c596cd9afb9930656aae4d6c4e1c17537bea12bb73c87a217cb3cfea8896737
+ languageName: node
+ linkType: hard
+
+"bplist-creator@npm:0.1.1":
+ version: 0.1.1
+ resolution: "bplist-creator@npm:0.1.1"
+ dependencies:
+ stream-buffers: 2.2.x
+ checksum: b0d40d1d1623f1afdbb575cfc8075d742d2c4f0eb458574be809e3857752d1042a39553b3943d2d7f505dde92bcd43e1d7bdac61c9cd44475d696deb79f897ce
+ languageName: node
+ linkType: hard
+
+"bplist-parser@npm:0.3.2, bplist-parser@npm:^0.3.1":
+ version: 0.3.2
+ resolution: "bplist-parser@npm:0.3.2"
+ dependencies:
+ big-integer: 1.6.x
+ checksum: fad0f6eb155a9b636b4096a1725ce972a0386490d7d38df7be11a3a5645372446b7c44aacbc6626d24d2c17d8b837765361520ebf2960aeffcaf56765811620e
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^1.1.7":
+ version: 1.1.11
+ resolution: "brace-expansion@npm:1.1.11"
+ dependencies:
+ balanced-match: ^1.0.0
+ concat-map: 0.0.1
+ checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "brace-expansion@npm:2.0.1"
+ dependencies:
+ balanced-match: ^1.0.0
+ checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1
+ languageName: node
+ linkType: hard
+
+"braces@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "braces@npm:3.0.2"
+ dependencies:
+ fill-range: ^7.0.1
+ checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459
+ languageName: node
+ linkType: hard
+
+"browserslist@npm:^4.21.9, browserslist@npm:^4.22.1":
+ version: 4.22.1
+ resolution: "browserslist@npm:4.22.1"
+ dependencies:
+ caniuse-lite: ^1.0.30001541
+ electron-to-chromium: ^1.4.535
+ node-releases: ^2.0.13
+ update-browserslist-db: ^1.0.13
+ bin:
+ browserslist: cli.js
+ checksum: 7e6b10c53f7dd5d83fd2b95b00518889096382539fed6403829d447e05df4744088de46a571071afb447046abc3c66ad06fbc790e70234ec2517452e32ffd862
+ languageName: node
+ linkType: hard
+
+"bser@npm:2.1.1":
+ version: 2.1.1
+ resolution: "bser@npm:2.1.1"
+ dependencies:
+ node-int64: ^0.4.0
+ checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449
+ languageName: node
+ linkType: hard
+
+"buffer-alloc-unsafe@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "buffer-alloc-unsafe@npm:1.1.0"
+ checksum: c5e18bf51f67754ec843c9af3d4c005051aac5008a3992938dda1344e5cfec77c4b02b4ca303644d1e9a6e281765155ce6356d85c6f5ccc5cd21afc868def396
+ languageName: node
+ linkType: hard
+
+"buffer-alloc@npm:^1.1.0":
+ version: 1.2.0
+ resolution: "buffer-alloc@npm:1.2.0"
+ dependencies:
+ buffer-alloc-unsafe: ^1.1.0
+ buffer-fill: ^1.0.0
+ checksum: 560cd27f3cbe73c614867da373407d4506309c62fe18de45a1ce191f3785ec6ca2488d802ff82065798542422980ca25f903db078c57822218182c37c3576df5
+ languageName: node
+ linkType: hard
+
+"buffer-fill@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "buffer-fill@npm:1.0.0"
+ checksum: c29b4723ddeab01e74b5d3b982a0c6828f2ded49cef049ddca3dac661c874ecdbcecb5dd8380cf0f4adbeb8cff90a7de724126750a1f1e5ebd4eb6c59a1315b1
+ languageName: node
+ linkType: hard
+
+"buffer-from@npm:^1.0.0":
+ version: 1.1.2
+ resolution: "buffer-from@npm:1.1.2"
+ checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb
+ languageName: node
+ linkType: hard
+
+"buffer@npm:^5.5.0":
+ version: 5.7.1
+ resolution: "buffer@npm:5.7.1"
+ dependencies:
+ base64-js: ^1.3.1
+ ieee754: ^1.1.13
+ checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84
+ languageName: node
+ linkType: hard
+
+"builtins@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "builtins@npm:1.0.3"
+ checksum: 47ce94f7eee0e644969da1f1a28e5f29bd2e48b25b2bbb61164c345881086e29464ccb1fb88dbc155ea26e8b1f5fc8a923b26c8c1ed0935b67b644d410674513
+ languageName: node
+ linkType: hard
+
+"bytes@npm:3.0.0":
+ version: 3.0.0
+ resolution: "bytes@npm:3.0.0"
+ checksum: a2b386dd8188849a5325f58eef69c3b73c51801c08ffc6963eddc9be244089ba32d19347caf6d145c86f315ae1b1fc7061a32b0c1aa6379e6a719090287ed101
+ languageName: node
+ linkType: hard
+
+"bytes@npm:3.1.2":
+ version: 3.1.2
+ resolution: "bytes@npm:3.1.2"
+ checksum: e4bcd3948d289c5127591fbedf10c0b639ccbf00243504e4e127374a15c3bc8eed0d28d4aaab08ff6f1cf2abc0cce6ba3085ed32f4f90e82a5683ce0014e1b6e
+ languageName: node
+ linkType: hard
+
+"cacache@npm:^15.3.0":
+ version: 15.3.0
+ resolution: "cacache@npm:15.3.0"
+ dependencies:
+ "@npmcli/fs": ^1.0.0
+ "@npmcli/move-file": ^1.0.1
+ chownr: ^2.0.0
+ fs-minipass: ^2.0.0
+ glob: ^7.1.4
+ infer-owner: ^1.0.4
+ lru-cache: ^6.0.0
+ minipass: ^3.1.1
+ minipass-collect: ^1.0.2
+ minipass-flush: ^1.0.5
+ minipass-pipeline: ^1.2.2
+ mkdirp: ^1.0.3
+ p-map: ^4.0.0
+ promise-inflight: ^1.0.1
+ rimraf: ^3.0.2
+ ssri: ^8.0.1
+ tar: ^6.0.2
+ unique-filename: ^1.1.1
+ checksum: a07327c27a4152c04eb0a831c63c00390d90f94d51bb80624a66f4e14a6b6360bbf02a84421267bd4d00ca73ac9773287d8d7169e8d2eafe378d2ce140579db8
+ languageName: node
+ linkType: hard
+
+"cacache@npm:^18.0.0":
+ version: 18.0.0
+ resolution: "cacache@npm:18.0.0"
+ dependencies:
+ "@npmcli/fs": ^3.1.0
+ fs-minipass: ^3.0.0
+ glob: ^10.2.2
+ lru-cache: ^10.0.1
+ minipass: ^7.0.3
+ minipass-collect: ^1.0.2
+ minipass-flush: ^1.0.5
+ minipass-pipeline: ^1.2.4
+ p-map: ^4.0.0
+ ssri: ^10.0.0
+ tar: ^6.1.11
+ unique-filename: ^3.0.0
+ checksum: 2cd6bf15551abd4165acb3a4d1ef0593b3aa2fd6853ae16b5bb62199c2faecf27d36555a9545c0e07dd03347ec052e782923bdcece724a24611986aafb53e152
+ languageName: node
+ linkType: hard
+
+"call-bind@npm:^1.0.0":
+ version: 1.0.5
+ resolution: "call-bind@npm:1.0.5"
+ dependencies:
+ function-bind: ^1.1.2
+ get-intrinsic: ^1.2.1
+ set-function-length: ^1.1.1
+ checksum: 449e83ecbd4ba48e7eaac5af26fea3b50f8f6072202c2dd7c5a6e7a6308f2421abe5e13a3bbd55221087f76320c5e09f25a8fdad1bab2b77c68ae74d92234ea5
+ languageName: node
+ linkType: hard
+
+"caller-callsite@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "caller-callsite@npm:2.0.0"
+ dependencies:
+ callsites: ^2.0.0
+ checksum: 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: ^2.0.0
+ checksum: 3e12ccd0c71ec10a057aac69e3ec175b721ca858c640df021ef0d25999e22f7c1d864934b596b7d47038e9b56b7ec315add042abbd15caac882998b50102fb12
+ languageName: node
+ linkType: hard
+
+"callsites@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "callsites@npm:2.0.0"
+ checksum: be2f67b247df913732b7dec1ec0bbfcdbaea263e5a95968b19ec7965affae9496b970e3024317e6d4baa8e28dc6ba0cec03f46fdddc2fdcc51396600e53c2623
+ languageName: node
+ linkType: hard
+
+"camelcase@npm:^5.0.0":
+ version: 5.3.1
+ resolution: "camelcase@npm:5.3.1"
+ checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b
+ languageName: node
+ linkType: hard
+
+"camelcase@npm:^6.2.0":
+ version: 6.3.0
+ resolution: "camelcase@npm:6.3.0"
+ checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d
+ languageName: node
+ linkType: hard
+
+"caniuse-lite@npm:^1.0.30001541":
+ version: 1.0.30001563
+ resolution: "caniuse-lite@npm:1.0.30001563"
+ checksum: c90a1e6efc72fc73ad4a756011242211406883b36dde3a01726e7246281dcbceaf78e1ee61d1298624c4a69cf81c12b41e8d2a2f1b7c89ed84c9333026a0bfbd
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^2.0.1, chalk@npm:^2.4.2":
+ version: 2.4.2
+ resolution: "chalk@npm:2.4.2"
+ dependencies:
+ ansi-styles: ^3.2.1
+ escape-string-regexp: ^1.0.5
+ supports-color: ^5.3.0
+ checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2
+ 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: ^4.1.0
+ supports-color: ^7.1.0
+ checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc
+ languageName: node
+ linkType: hard
+
+"charenc@npm:0.0.2, charenc@npm:~0.0.1":
+ version: 0.0.2
+ resolution: "charenc@npm:0.0.2"
+ checksum: 81dcadbe57e861d527faf6dd3855dc857395a1c4d6781f4847288ab23cffb7b3ee80d57c15bba7252ffe3e5e8019db767757ee7975663ad2ca0939bb8fcaf2e5
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "chownr@npm:2.0.0"
+ checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f
+ languageName: node
+ linkType: hard
+
+"ci-info@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "ci-info@npm:2.0.0"
+ checksum: 3b374666a85ea3ca43fa49aa3a048d21c9b475c96eb13c133505d2324e7ae5efd6a454f41efe46a152269e9b6a00c9edbe63ec7fa1921957165aae16625acd67
+ languageName: node
+ linkType: hard
+
+"ci-info@npm:^3.2.0, ci-info@npm:^3.3.0":
+ version: 3.9.0
+ resolution: "ci-info@npm:3.9.0"
+ checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87
+ languageName: node
+ linkType: hard
+
+"clean-stack@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "clean-stack@npm:2.2.0"
+ checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68
+ languageName: node
+ linkType: hard
+
+"cli-cursor@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "cli-cursor@npm:2.1.0"
+ dependencies:
+ restore-cursor: ^2.0.0
+ checksum: d88e97bfdac01046a3ffe7d49f06757b3126559d7e44aa2122637eb179284dc6cd49fca2fac4f67c19faaf7e6dab716b6fe1dfcd309977407d8c7578ec2d044d
+ languageName: node
+ linkType: hard
+
+"cli-cursor@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "cli-cursor@npm:3.1.0"
+ dependencies:
+ restore-cursor: ^3.1.0
+ checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29
+ languageName: node
+ linkType: hard
+
+"cli-spinners@npm:^2.0.0, cli-spinners@npm:^2.5.0":
+ version: 2.9.1
+ resolution: "cli-spinners@npm:2.9.1"
+ checksum: 1780618be58309c469205bc315db697934bac68bce78cd5dfd46248e507a533172d623c7348ecfd904734f597ce0a4e5538684843d2cfb7af485d4466699940c
+ languageName: node
+ linkType: hard
+
+"cliui@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "cliui@npm:6.0.0"
+ dependencies:
+ string-width: ^4.2.0
+ strip-ansi: ^6.0.0
+ wrap-ansi: ^6.2.0
+ checksum: 4fcfd26d292c9f00238117f39fc797608292ae36bac2168cfee4c85923817d0607fe21b3329a8621e01aedf512c99b7eaa60e363a671ffd378df6649fb48ae42
+ languageName: node
+ linkType: hard
+
+"cliui@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "cliui@npm:8.0.1"
+ dependencies:
+ string-width: ^4.2.0
+ strip-ansi: ^6.0.1
+ wrap-ansi: ^7.0.0
+ checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56
+ 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: ^2.0.4
+ kind-of: ^6.0.2
+ shallow-clone: ^3.0.0
+ checksum: 770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2
+ languageName: node
+ linkType: hard
+
+"clone@npm:^1.0.2":
+ version: 1.0.4
+ resolution: "clone@npm:1.0.4"
+ checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd
+ languageName: node
+ linkType: hard
+
+"clone@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "clone@npm:2.1.2"
+ checksum: aaf106e9bc025b21333e2f4c12da539b568db4925c0501a1bf4070836c9e848c892fa22c35548ce0d1132b08bbbfa17a00144fe58fccdab6fa900fec4250f67d
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^1.9.0":
+ version: 1.9.3
+ resolution: "color-convert@npm:1.9.3"
+ dependencies:
+ color-name: 1.1.3
+ checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "color-convert@npm:2.0.1"
+ dependencies:
+ color-name: ~1.1.4
+ checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336
+ languageName: node
+ linkType: hard
+
+"color-name@npm:1.1.3":
+ version: 1.1.3
+ resolution: "color-name@npm:1.1.3"
+ checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d
+ languageName: node
+ linkType: hard
+
+"color-name@npm:~1.1.4":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610
+ languageName: node
+ linkType: hard
+
+"colorette@npm:^1.0.7":
+ version: 1.4.0
+ resolution: "colorette@npm:1.4.0"
+ checksum: 01c3c16058b182a4ab4c126a65a75faa4d38a20fa7c845090b25453acec6c371bb2c5dceb0a2338511f17902b9d1a9af0cadd8509c9403894b79311032c256c3
+ languageName: node
+ linkType: hard
+
+"combined-stream@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "combined-stream@npm:1.0.8"
+ dependencies:
+ delayed-stream: ~1.0.0
+ checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c
+ languageName: node
+ linkType: hard
+
+"command-exists@npm:^1.2.4, command-exists@npm:^1.2.8":
+ version: 1.2.9
+ resolution: "command-exists@npm:1.2.9"
+ checksum: 729ae3d88a2058c93c58840f30341b7f82688a573019535d198b57a4d8cb0135ced0ad7f52b591e5b28a90feb2c675080ce916e56254a0f7c15cb2395277cac3
+ languageName: node
+ linkType: hard
+
+"commander@npm:^2.20.0":
+ version: 2.20.3
+ resolution: "commander@npm:2.20.3"
+ checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e
+ languageName: node
+ linkType: hard
+
+"commander@npm:^4.0.0":
+ version: 4.1.1
+ resolution: "commander@npm:4.1.1"
+ checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977
+ languageName: node
+ linkType: hard
+
+"commander@npm:^7.2.0":
+ version: 7.2.0
+ resolution: "commander@npm:7.2.0"
+ checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc
+ languageName: node
+ linkType: hard
+
+"commander@npm:^9.4.1":
+ version: 9.5.0
+ resolution: "commander@npm:9.5.0"
+ checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade
+ languageName: node
+ linkType: hard
+
+"commander@npm:~2.14.1":
+ version: 2.14.1
+ resolution: "commander@npm:2.14.1"
+ checksum: 26bd49febeac8efabb7488fb5a4a2480b04bc4c4eef3c50da93eead72959f7a5232d003deda5b9761937205721274e80108f6d1d2b45ae7a8387cfb92031084e
+ languageName: node
+ linkType: hard
+
+"commondir@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "commondir@npm:1.0.1"
+ checksum: 59715f2fc456a73f68826285718503340b9f0dd89bfffc42749906c5cf3d4277ef11ef1cca0350d0e79204f00f1f6d83851ececc9095dc88512a697ac0b9bdcb
+ languageName: node
+ linkType: hard
+
+"compare-versions@npm:^3.4.0":
+ version: 3.6.0
+ resolution: "compare-versions@npm:3.6.0"
+ checksum: 7492a50cdaa2c27f5254eee7c4b38856e1c164991bab3d98d7fd067fe4b570d47123ecb92523b78338be86aa221668fd3868bfe8caa5587dc3ebbe1a03d52b5d
+ languageName: node
+ linkType: hard
+
+"component-type@npm:^1.2.1":
+ version: 1.2.2
+ resolution: "component-type@npm:1.2.2"
+ checksum: ca5a9886a961985b9ebcc0a5b23f2526506eced1c2c932648e5f8960db22fffcc3a77442013c6aef0b5afa8e6b9de02ae2a23ce5c967374edaf99d74fd6d6c3e
+ languageName: node
+ linkType: hard
+
+"compressible@npm:~2.0.16":
+ version: 2.0.18
+ resolution: "compressible@npm:2.0.18"
+ dependencies:
+ mime-db: ">= 1.43.0 < 2"
+ checksum: 58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0
+ languageName: node
+ linkType: hard
+
+"compression@npm:^1.7.1":
+ version: 1.7.4
+ resolution: "compression@npm:1.7.4"
+ dependencies:
+ accepts: ~1.3.5
+ bytes: 3.0.0
+ compressible: ~2.0.16
+ debug: 2.6.9
+ on-headers: ~1.0.2
+ safe-buffer: 5.1.2
+ vary: ~1.1.2
+ checksum: 35c0f2eb1f28418978615dc1bc02075b34b1568f7f56c62d60f4214d4b7cc00d0f6d282b5f8a954f59872396bd770b6b15ffd8aa94c67d4bce9b8887b906999b
+ languageName: node
+ linkType: hard
+
+"concat-map@npm:0.0.1":
+ version: 0.0.1
+ resolution: "concat-map@npm:0.0.1"
+ checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af
+ languageName: node
+ linkType: hard
+
+"connect@npm:^3.6.5, connect@npm:^3.7.0":
+ version: 3.7.0
+ resolution: "connect@npm:3.7.0"
+ dependencies:
+ debug: 2.6.9
+ finalhandler: 1.1.2
+ parseurl: ~1.3.3
+ utils-merge: 1.0.1
+ checksum: 96e1c4effcf219b065c7823e57351c94366d2e2a6952fa95e8212bffb35c86f1d5a3f9f6c5796d4cd3a5fdda628368b1c3cc44bf19c66cfd68fe9f9cab9177e2
+ languageName: node
+ linkType: hard
+
+"content-type@npm:~1.0.5":
+ version: 1.0.5
+ resolution: "content-type@npm:1.0.5"
+ checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766
+ languageName: node
+ linkType: hard
+
+"convert-source-map@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "convert-source-map@npm:2.0.0"
+ checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035
+ languageName: node
+ linkType: hard
+
+"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.33.1":
+ version: 3.33.3
+ resolution: "core-js-compat@npm:3.33.3"
+ dependencies:
+ browserslist: ^4.22.1
+ checksum: cb121e83f0f5f18b2b75428cdfb19524936a18459f1e0358f9124c8ff8b75d6a5901495cb996560cfde3a416103973f78eb5947777bb8b2fd877cdf84471465d
+ languageName: node
+ linkType: hard
+
+"core-util-is@npm:~1.0.0":
+ version: 1.0.3
+ resolution: "core-util-is@npm:1.0.3"
+ checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99
+ languageName: node
+ linkType: hard
+
+"cosmiconfig@npm:^5.0.5, cosmiconfig@npm:^5.1.0":
+ version: 5.2.1
+ resolution: "cosmiconfig@npm:5.2.1"
+ dependencies:
+ import-fresh: ^2.0.0
+ is-directory: ^0.3.1
+ js-yaml: ^3.13.1
+ parse-json: ^4.0.0
+ checksum: 8b6f1d3c8a5ffdf663a952f17af0761adf210b7a5933d0fe8988f3ca3a1f0e1e5cbbb74d5b419c15933dd2fdcaec31dbc5cc85cb8259a822342b93b529eff89c
+ languageName: node
+ linkType: hard
+
+"cross-fetch@npm:^3.1.5":
+ version: 3.1.8
+ resolution: "cross-fetch@npm:3.1.8"
+ dependencies:
+ node-fetch: ^2.6.12
+ checksum: 78f993fa099eaaa041122ab037fe9503ecbbcb9daef234d1d2e0b9230a983f64d645d088c464e21a247b825a08dc444a6e7064adfa93536d3a9454b4745b3632
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^6.0.0, cross-spawn@npm:^6.0.5":
+ version: 6.0.5
+ resolution: "cross-spawn@npm:6.0.5"
+ dependencies:
+ nice-try: ^1.0.4
+ path-key: ^2.0.1
+ semver: ^5.5.0
+ shebang-command: ^1.2.0
+ which: ^1.2.9
+ checksum: f893bb0d96cd3d5751d04e67145bdddf25f99449531a72e82dcbbd42796bbc8268c1076c6b3ea51d4d455839902804b94bc45dfb37ecbb32ea8e54a6741c3ab9
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3":
+ version: 7.0.3
+ resolution: "cross-spawn@npm:7.0.3"
+ dependencies:
+ path-key: ^3.1.0
+ shebang-command: ^2.0.0
+ which: ^2.0.1
+ checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52
+ languageName: node
+ linkType: hard
+
+"crypt@npm:0.0.2, crypt@npm:~0.0.1":
+ version: 0.0.2
+ resolution: "crypt@npm:0.0.2"
+ checksum: baf4c7bbe05df656ec230018af8cf7dbe8c14b36b98726939cef008d473f6fe7a4fad906cfea4062c93af516f1550a3f43ceb4d6615329612c6511378ed9fe34
+ languageName: node
+ linkType: hard
+
+"crypto-random-string@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "crypto-random-string@npm:1.0.0"
+ checksum: 6fc61a46c18547b49a93da24f4559c4a1c859f4ee730ecc9533c1ba89fa2a9e9d81f390c2789467afbbd0d1c55a6e96a71e4716b6cd3e77736ed5fced7a2df9a
+ languageName: node
+ linkType: hard
+
+"crypto-random-string@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "crypto-random-string@npm:2.0.0"
+ checksum: 0283879f55e7c16fdceacc181f87a0a65c53bc16ffe1d58b9d19a6277adcd71900d02bb2c4843dd55e78c51e30e89b0fec618a7f170ebcc95b33182c28f05fd6
+ languageName: node
+ linkType: hard
+
+"csstype@npm:^3.0.2":
+ version: 3.1.2
+ resolution: "csstype@npm:3.1.2"
+ checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5
+ languageName: node
+ linkType: hard
+
+"dag-map@npm:~1.0.0":
+ version: 1.0.2
+ resolution: "dag-map@npm:1.0.2"
+ checksum: a46bee1adda1459abe778b0c3616ef8c4ec14c314d38c3daa6f6a695ceae7c4b76ea3efa78385c1f25bb4d600566b3e1edd40e9ec3e862bd8927edca828025ed
+ languageName: node
+ linkType: hard
+
+"dayjs@npm:^1.8.15":
+ version: 1.11.10
+ resolution: "dayjs@npm:1.11.10"
+ checksum: a6b5a3813b8884f5cd557e2e6b7fa569f4c5d0c97aca9558e38534af4f2d60daafd3ff8c2000fed3435cfcec9e805bcebd99f90130c6d1c5ef524084ced588c4
+ languageName: node
+ linkType: hard
+
+"debug@npm:2.6.9, debug@npm:^2.2.0":
+ version: 2.6.9
+ resolution: "debug@npm:2.6.9"
+ dependencies:
+ ms: 2.0.0
+ checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6
+ languageName: node
+ linkType: hard
+
+"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4":
+ version: 4.3.4
+ resolution: "debug@npm:4.3.4"
+ dependencies:
+ ms: 2.1.2
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708
+ languageName: node
+ linkType: hard
+
+"debug@npm:^3.1.0":
+ version: 3.2.7
+ resolution: "debug@npm:3.2.7"
+ dependencies:
+ ms: ^2.1.1
+ checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c
+ languageName: node
+ linkType: hard
+
+"decamelize@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "decamelize@npm:1.2.0"
+ checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa
+ languageName: node
+ linkType: hard
+
+"deep-extend@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "deep-extend@npm:0.6.0"
+ checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7
+ languageName: node
+ linkType: hard
+
+"deepmerge@npm:^4.3.0":
+ version: 4.3.1
+ resolution: "deepmerge@npm:4.3.1"
+ checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052
+ languageName: node
+ linkType: hard
+
+"default-gateway@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "default-gateway@npm:4.2.0"
+ dependencies:
+ execa: ^1.0.0
+ ip-regex: ^2.1.0
+ checksum: 1f5be765471689c6bab33e0c8b87363c3e2485cc1ab78904d383a8a8293a79f684da2a3303744b112503f986af4ea87d917c63a468ed913e9b0c31588c02d6a4
+ languageName: node
+ linkType: hard
+
+"defaults@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "defaults@npm:1.0.4"
+ dependencies:
+ clone: ^1.0.2
+ checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a
+ languageName: node
+ linkType: hard
+
+"define-data-property@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "define-data-property@npm:1.1.1"
+ dependencies:
+ get-intrinsic: ^1.2.1
+ gopd: ^1.0.1
+ has-property-descriptors: ^1.0.0
+ checksum: a29855ad3f0630ea82e3c5012c812efa6ca3078d5c2aa8df06b5f597c1cde6f7254692df41945851d903e05a1668607b6d34e778f402b9ff9ffb38111f1a3f0d
+ languageName: node
+ linkType: hard
+
+"define-lazy-prop@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "define-lazy-prop@npm:2.0.0"
+ checksum: 0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2
+ languageName: node
+ linkType: hard
+
+"del@npm:^6.0.0":
+ version: 6.1.1
+ resolution: "del@npm:6.1.1"
+ dependencies:
+ globby: ^11.0.1
+ graceful-fs: ^4.2.4
+ is-glob: ^4.0.1
+ is-path-cwd: ^2.2.0
+ is-path-inside: ^3.0.2
+ p-map: ^4.0.0
+ rimraf: ^3.0.2
+ slash: ^3.0.0
+ checksum: 563288b73b8b19a7261c47fd21a330eeab6e2acd7c6208c49790dfd369127120dd7836cdf0c1eca216b77c94782a81507eac6b4734252d3bef2795cb366996b6
+ languageName: node
+ linkType: hard
+
+"delayed-stream@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "delayed-stream@npm:1.0.0"
+ checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020
+ languageName: node
+ linkType: hard
+
+"denodeify@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "denodeify@npm:1.2.1"
+ checksum: a85c8f7fce5626e311edd897c27ad571b29393c4a739dc29baee48328e09edd82364ff697272dd612462c67e48b4766389642b5bdfaea0dc114b7c6a276c0eae
+ languageName: node
+ linkType: hard
+
+"depd@npm:2.0.0":
+ version: 2.0.0
+ resolution: "depd@npm:2.0.0"
+ checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a
+ languageName: node
+ linkType: hard
+
+"deprecated-react-native-prop-types@npm:4.1.0":
+ version: 4.1.0
+ resolution: "deprecated-react-native-prop-types@npm:4.1.0"
+ dependencies:
+ "@react-native/normalize-colors": "*"
+ invariant: "*"
+ prop-types: "*"
+ checksum: bba96622e196f650e782963598a2868a9c89b32e88fba1555fe1308d324eb387ab2a1f16235162b7bccc1900e8f43b7f8eae4f149a37f10cdf52e071990a7c9a
+ languageName: node
+ linkType: hard
+
+"destroy@npm:1.2.0":
+ version: 1.2.0
+ resolution: "destroy@npm:1.2.0"
+ checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38
+ languageName: node
+ linkType: hard
+
+"detect-libc@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "detect-libc@npm:1.0.3"
+ bin:
+ detect-libc: ./bin/detect-libc.js
+ checksum: daaaed925ffa7889bd91d56e9624e6c8033911bb60f3a50a74a87500680652969dbaab9526d1e200a4c94acf80fc862a22131841145a0a8482d60a99c24f4a3e
+ languageName: node
+ linkType: hard
+
+"dir-glob@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "dir-glob@npm:3.0.1"
+ dependencies:
+ path-type: ^4.0.0
+ checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615
+ languageName: node
+ linkType: hard
+
+"dotenv-expand@npm:~10.0.0":
+ version: 10.0.0
+ resolution: "dotenv-expand@npm:10.0.0"
+ checksum: 2a38b470efe0abcb1ac8490421a55e1d764dc9440fd220942bce40965074f3fb00b585f4346020cb0f0f219966ee6b4ee5023458b3e2953fe5b3214de1b314ee
+ languageName: node
+ linkType: hard
+
+"dotenv@npm:^16.3.1":
+ version: 16.3.1
+ resolution: "dotenv@npm:16.3.1"
+ checksum: 15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd
+ languageName: node
+ linkType: hard
+
+"dotenv@npm:~16.0.3":
+ version: 16.0.3
+ resolution: "dotenv@npm:16.0.3"
+ checksum: afcf03f373d7a6d62c7e9afea6328e62851d627a4e73f2e12d0a8deae1cd375892004f3021883f8aec85932cd2834b091f568ced92b4774625b321db83b827f8
+ languageName: node
+ linkType: hard
+
+"eastasianwidth@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "eastasianwidth@npm:0.2.0"
+ checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed
+ languageName: node
+ linkType: hard
+
+"ee-first@npm:1.1.1":
+ version: 1.1.1
+ resolution: "ee-first@npm:1.1.1"
+ checksum: 1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f
+ languageName: node
+ linkType: hard
+
+"electron-to-chromium@npm:^1.4.535":
+ version: 1.4.589
+ resolution: "electron-to-chromium@npm:1.4.589"
+ checksum: 64639fe45950cadc8adf90d3d2d101d3d68431fc41a16b33be3a7ee00ba0d6c335770df862d210311fc7eb9752356966ae67f1b9e9442cf99e5b2667f706bf4b
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "emoji-regex@npm:8.0.0"
+ checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^9.2.2":
+ version: 9.2.2
+ resolution: "emoji-regex@npm:9.2.2"
+ checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601
+ languageName: node
+ linkType: hard
+
+"encodeurl@npm:~1.0.2":
+ version: 1.0.2
+ resolution: "encodeurl@npm:1.0.2"
+ checksum: e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c
+ languageName: node
+ linkType: hard
+
+"encoding@npm:^0.1.13":
+ version: 0.1.13
+ resolution: "encoding@npm:0.1.13"
+ dependencies:
+ iconv-lite: ^0.6.2
+ checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f
+ languageName: node
+ linkType: hard
+
+"end-of-stream@npm:^1.1.0":
+ version: 1.4.4
+ resolution: "end-of-stream@npm:1.4.4"
+ dependencies:
+ once: ^1.4.0
+ checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b
+ languageName: node
+ linkType: hard
+
+"env-editor@npm:^0.4.1":
+ version: 0.4.2
+ resolution: "env-editor@npm:0.4.2"
+ checksum: d162e161d9a1bddaf63f68428c587b1d823afe7d56cde039ce403cc68706c68350c92b9db44692f4ecea1d67ec80de9ba01ca70568299ed929d3fa056c40aebf
+ languageName: node
+ linkType: hard
+
+"env-paths@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "env-paths@npm:2.2.1"
+ checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e
+ languageName: node
+ linkType: hard
+
+"envinfo@npm:^7.7.2":
+ version: 7.11.0
+ resolution: "envinfo@npm:7.11.0"
+ bin:
+ envinfo: dist/cli.js
+ checksum: c45a7d20409d5f4cda72483b150d3816b15b434f2944d72c1495d8838bd7c4e7b2f32c12128ffb9b92b5f66f436237b8a525eb3a9a5da2d20013bc4effa28aef
+ languageName: node
+ linkType: hard
+
+"eol@npm:^0.9.1":
+ version: 0.9.1
+ resolution: "eol@npm:0.9.1"
+ checksum: ba9fa998bc8148b935dcf85585eacf049eeaf18d2ab6196710d4d1f59e7dfd0e87b18508dc67144ff8ba12f835a4a4989aeea64c98b13cca77b74b9d4b33bce5
+ languageName: node
+ linkType: hard
+
+"err-code@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "err-code@npm:2.0.3"
+ checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54
+ languageName: node
+ linkType: hard
+
+"error-ex@npm:^1.3.1":
+ version: 1.3.2
+ resolution: "error-ex@npm:1.3.2"
+ dependencies:
+ is-arrayish: ^0.2.1
+ checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001
+ 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: ^1.3.4
+ checksum: 3b916d2d14c6682f287c8bfa28e14672f47eafe832701080e420e7cdbaebb2c50293868256a95706ac2330fe078cf5664713158b49bc30d7a5f2ac229ded0e18
+ languageName: node
+ linkType: hard
+
+"errorhandler@npm:^1.5.1":
+ version: 1.5.1
+ resolution: "errorhandler@npm:1.5.1"
+ dependencies:
+ accepts: ~1.3.7
+ escape-html: ~1.0.3
+ checksum: 73b7abb08fb751107e9bebecc33c40c0641a54be8bda8e4a045f3f5cb7b805041927fef5629ea39b1737799eb52fe2499ca531f11ac51b0294ccc4667d72cb91
+ languageName: node
+ linkType: hard
+
+"escalade@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "escalade@npm:3.1.1"
+ checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133
+ languageName: node
+ linkType: hard
+
+"escape-html@npm:~1.0.3":
+ version: 1.0.3
+ resolution: "escape-html@npm:1.0.3"
+ checksum: 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: 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: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395
+ 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: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628
+ languageName: node
+ linkType: hard
+
+"esutils@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "esutils@npm:2.0.3"
+ checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87
+ languageName: node
+ linkType: hard
+
+"etag@npm:~1.8.1":
+ version: 1.8.1
+ resolution: "etag@npm:1.8.1"
+ checksum: 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: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166
+ languageName: node
+ linkType: hard
+
+"exec-async@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "exec-async@npm:2.2.0"
+ checksum: 5877d83c2d553994accb39c26f40f0a633bca10d9572696e524fd91b385060ba05d1edcc28d6e3899c451e65ed453fdc7e6b69bd5d5a27d914220a100f81bb3a
+ languageName: node
+ linkType: hard
+
+"execa@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "execa@npm:1.0.0"
+ dependencies:
+ cross-spawn: ^6.0.0
+ get-stream: ^4.0.0
+ is-stream: ^1.1.0
+ npm-run-path: ^2.0.0
+ p-finally: ^1.0.0
+ signal-exit: ^3.0.0
+ strip-eof: ^1.0.0
+ checksum: ddf1342c1c7d02dd93b41364cd847640f6163350d9439071abf70bf4ceb1b9b2b2e37f54babb1d8dc1df8e0d8def32d0e81e74a2e62c3e1d70c303eb4c306bc4
+ languageName: node
+ linkType: hard
+
+"execa@npm:^5.0.0":
+ version: 5.1.1
+ resolution: "execa@npm:5.1.1"
+ dependencies:
+ cross-spawn: ^7.0.3
+ get-stream: ^6.0.0
+ human-signals: ^2.1.0
+ is-stream: ^2.0.0
+ merge-stream: ^2.0.0
+ npm-run-path: ^4.0.1
+ onetime: ^5.1.2
+ signal-exit: ^3.0.3
+ strip-final-newline: ^2.0.0
+ checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343
+ languageName: node
+ linkType: hard
+
+"expo-application@npm:~5.3.0":
+ version: 5.3.1
+ resolution: "expo-application@npm:5.3.1"
+ peerDependencies:
+ expo: "*"
+ checksum: a8f1311c072fd8a50a353dc1be175de57a40cb5f092c0439721ed06a60c22168e308304a4f95b06e74de332c67e4dacccfce7dddc1a48c7a2a41ef8a5d5f593a
+ languageName: node
+ linkType: hard
+
+"expo-asset@npm:~8.10.1":
+ version: 8.10.1
+ resolution: "expo-asset@npm:8.10.1"
+ dependencies:
+ blueimp-md5: ^2.10.0
+ expo-constants: ~14.4.2
+ expo-file-system: ~15.4.0
+ invariant: ^2.2.4
+ md5-file: ^3.2.3
+ path-browserify: ^1.0.0
+ url-parse: ^1.5.9
+ checksum: 02607b67b8b53e47825ded6ca52eee47ae957cdc4b1501cdc0373bbd50ccfef605ba8a05a07ee88225622c7dc6054dfe1b64f03b21f09aaea7e1b4bf132d3ad7
+ languageName: node
+ linkType: hard
+
+"expo-constants@npm:~14.4.2":
+ version: 14.4.2
+ resolution: "expo-constants@npm:14.4.2"
+ dependencies:
+ "@expo/config": ~8.1.0
+ uuid: ^3.3.2
+ peerDependencies:
+ expo: "*"
+ checksum: 393158c537af73a00ca612e31389d889dfa7adcf07fb1028879ff8bfd65b2f2d0b8c81c8f148fa0c43f1b1656504bb35e5a25235446418b3d99bdb3681e84d74
+ languageName: node
+ linkType: hard
+
+"expo-file-system@npm:~15.4.0, expo-file-system@npm:~15.4.5":
+ version: 15.4.5
+ resolution: "expo-file-system@npm:15.4.5"
+ dependencies:
+ uuid: ^3.4.0
+ peerDependencies:
+ expo: "*"
+ checksum: 3507f872a111dc2a603632d89c8c798f87927e2ab57bcd0afae34cd34423195ea8fc38a9bdceecb647f64333c6acdd9926722a43627cf5d6cdfbb204f4a0d10b
+ languageName: node
+ linkType: hard
+
+"expo-font@npm:~11.4.0":
+ version: 11.4.0
+ resolution: "expo-font@npm:11.4.0"
+ dependencies:
+ fontfaceobserver: ^2.1.0
+ peerDependencies:
+ expo: "*"
+ checksum: 3eff92ba5c62de5f37cfdfd86a5daf1d448e4f3e82a9ff401b4c4da1c4e5a7241da26edf32fb049763147e442d74ae8b4575b7e5a4ae0d935750c6d3f70f4355
+ languageName: node
+ linkType: hard
+
+"expo-keep-awake@npm:~12.3.0":
+ version: 12.3.0
+ resolution: "expo-keep-awake@npm:12.3.0"
+ peerDependencies:
+ expo: "*"
+ checksum: 21a17de233bf0401cca64a22275f089557f99248896f29d262b22545199c7d4e816bc9be6b7d547046706db700d9ac3e648a2ca764a9ced4a0739583106fd7ea
+ languageName: node
+ linkType: hard
+
+"expo-modules-autolinking@npm:1.5.1":
+ version: 1.5.1
+ resolution: "expo-modules-autolinking@npm:1.5.1"
+ dependencies:
+ "@expo/config": ~8.1.0
+ chalk: ^4.1.0
+ commander: ^7.2.0
+ fast-glob: ^3.2.5
+ find-up: ^5.0.0
+ fs-extra: ^9.1.0
+ bin:
+ expo-modules-autolinking: bin/expo-modules-autolinking.js
+ checksum: 4fb6e5d8be5c107bf4b9d8b23a9a783536d14f05779df25764f1de0868030da0353ec13060f4b0ba671d4e107004a87199766830f743a6cf2d1be79f807c093a
+ languageName: node
+ linkType: hard
+
+"expo-modules-core@npm:1.5.12":
+ version: 1.5.12
+ resolution: "expo-modules-core@npm:1.5.12"
+ dependencies:
+ compare-versions: ^3.4.0
+ invariant: ^2.2.4
+ checksum: 9f41c103fb4bba2c63776d053be6c2492b21f5dd1896b711df8877c6a8385dc86a9e59f69bb57895ec4b98a11ecfd829ff2f53f91c2d473835e82c4788f8fca5
+ languageName: node
+ linkType: hard
+
+"expo-splash-screen@npm:~0.20.5":
+ version: 0.20.5
+ resolution: "expo-splash-screen@npm:0.20.5"
+ dependencies:
+ "@expo/prebuild-config": 6.2.6
+ peerDependencies:
+ expo: "*"
+ checksum: c4b0db3d0e8ab755a9f4afb1f20824229fa84ea2410528e4316a62e676e08f990157c9edd4af0978f79183d6b47cf3d4843b86f76c084274a40e07adfd697889
+ languageName: node
+ linkType: hard
+
+"expo-status-bar@npm:~1.7.1":
+ version: 1.7.1
+ resolution: "expo-status-bar@npm:1.7.1"
+ checksum: 9e19b598712475375e8b27b764d8f5227008ecf74d9a0f2e51aee158e498eb0d196ceb7f9befe94b4124dc91c359d3e9d51d1eb84f64042286f894ec25700663
+ languageName: node
+ linkType: hard
+
+"expo@npm:~49.0.16":
+ version: 49.0.20
+ resolution: "expo@npm:49.0.20"
+ dependencies:
+ "@babel/runtime": ^7.20.0
+ "@expo/cli": 0.10.15
+ "@expo/config": 8.1.2
+ "@expo/config-plugins": 7.2.5
+ "@expo/vector-icons": ^13.0.0
+ babel-preset-expo: ~9.5.2
+ expo-application: ~5.3.0
+ expo-asset: ~8.10.1
+ expo-constants: ~14.4.2
+ expo-file-system: ~15.4.5
+ expo-font: ~11.4.0
+ expo-keep-awake: ~12.3.0
+ expo-modules-autolinking: 1.5.1
+ expo-modules-core: 1.5.12
+ fbemitter: ^3.0.0
+ invariant: ^2.2.4
+ md5-file: ^3.2.3
+ node-fetch: ^2.6.7
+ pretty-format: ^26.5.2
+ uuid: ^3.4.0
+ bin:
+ expo: bin/cli
+ checksum: 571b95535892e642dd34ee833ab72cbb95ee5766272627ff7b830786a0d252f81a516b52986929be0b2f812efa8f9a058ddbdea8985bafdd23bf03d6c0f503dc
+ languageName: node
+ linkType: hard
+
+"exponential-backoff@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "exponential-backoff@npm:3.1.1"
+ checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48
+ languageName: node
+ linkType: hard
+
+"fast-glob@npm:^3.2.5, fast-glob@npm:^3.2.9":
+ version: 3.3.2
+ resolution: "fast-glob@npm:3.3.2"
+ dependencies:
+ "@nodelib/fs.stat": ^2.0.2
+ "@nodelib/fs.walk": ^1.2.3
+ glob-parent: ^5.1.2
+ merge2: ^1.3.0
+ micromatch: ^4.0.4
+ checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1
+ languageName: node
+ linkType: hard
+
+"fast-xml-parser@npm:^4.0.12":
+ version: 4.3.2
+ resolution: "fast-xml-parser@npm:4.3.2"
+ dependencies:
+ strnum: ^1.0.5
+ bin:
+ fxparser: src/cli/cli.js
+ checksum: d507ce2efa5fd13d0a5ba28bd76dd68f2fc30ad8748357c37b70f360d19417866d79e35a688af067d5bceaaa796033fa985206aef9692f7a421e1326b6e73309
+ languageName: node
+ linkType: hard
+
+"fastq@npm:^1.6.0":
+ version: 1.15.0
+ resolution: "fastq@npm:1.15.0"
+ dependencies:
+ reusify: ^1.0.4
+ checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a
+ languageName: node
+ linkType: hard
+
+"fb-watchman@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "fb-watchman@npm:2.0.2"
+ dependencies:
+ bser: 2.1.1
+ checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78
+ languageName: node
+ linkType: hard
+
+"fbemitter@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "fbemitter@npm:3.0.0"
+ dependencies:
+ fbjs: ^3.0.0
+ checksum: 069690b8cdff3521ade3c9beb92ba0a38d818a86ef36dff8690e66749aef58809db4ac0d6938eb1cacea2dbef5f2a508952d455669590264cdc146bbe839f605
+ languageName: node
+ linkType: hard
+
+"fbjs-css-vars@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "fbjs-css-vars@npm:1.0.2"
+ checksum: 72baf6d22c45b75109118b4daecb6c8016d4c83c8c0f23f683f22e9d7c21f32fff6201d288df46eb561e3c7d4bb4489b8ad140b7f56444c453ba407e8bd28511
+ languageName: node
+ linkType: hard
+
+"fbjs@npm:^3.0.0":
+ version: 3.0.5
+ resolution: "fbjs@npm:3.0.5"
+ dependencies:
+ cross-fetch: ^3.1.5
+ fbjs-css-vars: ^1.0.0
+ loose-envify: ^1.0.0
+ object-assign: ^4.1.0
+ promise: ^7.1.1
+ setimmediate: ^1.0.5
+ ua-parser-js: ^1.0.35
+ checksum: e609b5b64686bc96495a5c67728ed9b2710b9b3d695c5759c5f5e47c9483d1c323543ac777a86459e3694efc5712c6ce7212e944feb19752867d699568bb0e54
+ languageName: node
+ linkType: hard
+
+"fetch-retry@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "fetch-retry@npm:4.1.1"
+ checksum: a06b6a0201efeb5082794713bcdc8dd2c8f1fd4ad5660de860b9c4e51738aa369be58ba7cfa67aa7aa4a3bf9d9b5a4cd2d2fdea88868856483fb81bacd70455b
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "fill-range@npm:7.0.1"
+ dependencies:
+ to-regex-range: ^5.0.1
+ checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917
+ languageName: node
+ linkType: hard
+
+"finalhandler@npm:1.1.2":
+ version: 1.1.2
+ resolution: "finalhandler@npm:1.1.2"
+ dependencies:
+ debug: 2.6.9
+ encodeurl: ~1.0.2
+ escape-html: ~1.0.3
+ on-finished: ~2.3.0
+ parseurl: ~1.3.3
+ statuses: ~1.5.0
+ unpipe: ~1.0.0
+ checksum: 617880460c5138dd7ccfd555cb5dde4d8f170f4b31b8bd51e4b646bb2946c30f7db716428a1f2882d730d2b72afb47d1f67cc487b874cb15426f95753a88965e
+ languageName: node
+ linkType: hard
+
+"find-babel-config@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "find-babel-config@npm:2.0.0"
+ dependencies:
+ json5: ^2.1.1
+ path-exists: ^4.0.0
+ checksum: d110308b02fe6a6411a0cfb7fd50af6740fbf5093eada3d6ddacf99b07fc8eea4aa3475356484710a0032433029a21ce733bb3ef88fda1d6e35c29a3e4983014
+ 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: ^1.0.1
+ make-dir: ^2.0.0
+ pkg-dir: ^3.0.0
+ checksum: 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: ^3.0.0
+ checksum: 38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "find-up@npm:4.1.0"
+ dependencies:
+ locate-path: ^5.0.0
+ path-exists: ^4.0.0
+ checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^5.0.0, find-up@npm:~5.0.0":
+ version: 5.0.0
+ resolution: "find-up@npm:5.0.0"
+ dependencies:
+ locate-path: ^6.0.0
+ path-exists: ^4.0.0
+ checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095
+ languageName: node
+ linkType: hard
+
+"find-yarn-workspace-root@npm:~2.0.0":
+ version: 2.0.0
+ resolution: "find-yarn-workspace-root@npm:2.0.0"
+ dependencies:
+ micromatch: ^4.0.2
+ checksum: fa5ca8f9d08fe7a54ce7c0a5931ff9b7e36f9ee7b9475fb13752bcea80ec6b5f180fa5102d60b376d5526ce924ea3fc6b19301262efa0a5d248dd710f3644242
+ languageName: node
+ linkType: hard
+
+"flow-enums-runtime@npm:^0.0.5":
+ version: 0.0.5
+ resolution: "flow-enums-runtime@npm:0.0.5"
+ checksum: a2cdd6a3e86a1d113d9300fd210e379da5a20d9423a1b957cd17207a4434a866ca75d5eb400c9058afb1b5fe64a653c4ddd2e30bf9fb8477291f0d5e70c20539
+ languageName: node
+ linkType: hard
+
+"flow-parser@npm:0.*":
+ version: 0.222.0
+ resolution: "flow-parser@npm:0.222.0"
+ checksum: 286fbd397e86eca7c2aaf7d280e2385670d261f986b24122471b153d8c646d924b3679807103aacb6e60282ad7ed8fb0f4112ecff89f6d0995b59021f73c0c40
+ languageName: node
+ linkType: hard
+
+"flow-parser@npm:^0.206.0":
+ version: 0.206.0
+ resolution: "flow-parser@npm:0.206.0"
+ checksum: 1b87d87b59815b09852a6981543ad222da7f4d0e0c26702f9d5e0065174f5f64d2563db76d07a487c6b55e1979344e3845ac42929db70f77a82e8c9171a62a86
+ languageName: node
+ linkType: hard
+
+"fontfaceobserver@npm:^2.1.0":
+ version: 2.3.0
+ resolution: "fontfaceobserver@npm:2.3.0"
+ checksum: 5f14715974203b9d68f299f93a7623afd9d5701572d683e861cdbb7514573ac556f56e9b5d07d2d534e01aed19a3b0bbe568e735e0e5494cbea913fc3f12b856
+ languageName: node
+ linkType: hard
+
+"foreground-child@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "foreground-child@npm:3.1.1"
+ dependencies:
+ cross-spawn: ^7.0.0
+ signal-exit: ^4.0.1
+ checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5
+ languageName: node
+ linkType: hard
+
+"form-data@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "form-data@npm:3.0.1"
+ dependencies:
+ asynckit: ^0.4.0
+ combined-stream: ^1.0.8
+ mime-types: ^2.1.12
+ checksum: b019e8d35c8afc14a2bd8a7a92fa4f525a4726b6d5a9740e8d2623c30e308fbb58dc8469f90415a856698933c8479b01646a9dff33c87cc4e76d72aedbbf860d
+ languageName: node
+ linkType: hard
+
+"freeport-async@npm:2.0.0":
+ version: 2.0.0
+ resolution: "freeport-async@npm:2.0.0"
+ checksum: 03156ab2179fbbf5b7ff3aafc56f3e01c9d7df5cc366fbf3c29f26007773632e33ed90847fa4a979c5412ad55de8b21a7292601c531acaf8957933d96225c76d
+ languageName: node
+ linkType: hard
+
+"fresh@npm:0.5.2":
+ version: 0.5.2
+ resolution: "fresh@npm:0.5.2"
+ checksum: 13ea8b08f91e669a64e3ba3a20eb79d7ca5379a81f1ff7f4310d54e2320645503cc0c78daedc93dfb6191287295f6479544a649c64d8e41a1c0fb0c221552346
+ languageName: node
+ linkType: hard
+
+"fs-extra@npm:9.0.0":
+ version: 9.0.0
+ resolution: "fs-extra@npm:9.0.0"
+ dependencies:
+ at-least-node: ^1.0.0
+ graceful-fs: ^4.2.0
+ jsonfile: ^6.0.1
+ universalify: ^1.0.0
+ checksum: c4269fbfd8d8d2a1edca4257fa28545caf7e5ad218d264f723c338a154d3624d2ef098c19915b9436d3186b7ac45d5b032371a2004008ec0cd4072512e853aa8
+ languageName: node
+ linkType: hard
+
+"fs-extra@npm:^8.1.0, fs-extra@npm:~8.1.0":
+ version: 8.1.0
+ resolution: "fs-extra@npm:8.1.0"
+ dependencies:
+ graceful-fs: ^4.2.0
+ jsonfile: ^4.0.0
+ universalify: ^0.1.0
+ checksum: bf44f0e6cea59d5ce071bba4c43ca76d216f89e402dc6285c128abc0902e9b8525135aa808adad72c9d5d218e9f4bcc63962815529ff2f684ad532172a284880
+ languageName: node
+ linkType: hard
+
+"fs-extra@npm:^9.0.0, fs-extra@npm:^9.1.0":
+ version: 9.1.0
+ resolution: "fs-extra@npm:9.1.0"
+ dependencies:
+ at-least-node: ^1.0.0
+ graceful-fs: ^4.2.0
+ jsonfile: ^6.0.1
+ universalify: ^2.0.0
+ checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "fs-minipass@npm:2.1.0"
+ dependencies:
+ minipass: ^3.0.0
+ checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^3.0.0":
+ version: 3.0.3
+ resolution: "fs-minipass@npm:3.0.3"
+ dependencies:
+ minipass: ^7.0.3
+ checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802
+ languageName: node
+ linkType: hard
+
+"fs.realpath@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "fs.realpath@npm:1.0.0"
+ checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0
+ languageName: node
+ linkType: hard
+
+"fsevents@npm:^2.3.2":
+ version: 2.3.3
+ resolution: "fsevents@npm:2.3.3"
+ dependencies:
+ node-gyp: latest
+ checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"fsevents@patch:fsevents@^2.3.2#~builtin":
+ version: 2.3.3
+ resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1"
+ dependencies:
+ node-gyp: 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: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1
+ 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: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec
+ 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: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9
+ languageName: node
+ linkType: hard
+
+"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "get-intrinsic@npm:1.2.2"
+ dependencies:
+ function-bind: ^1.1.2
+ has-proto: ^1.0.1
+ has-symbols: ^1.0.3
+ hasown: ^2.0.0
+ checksum: 447ff0724df26829908dc033b62732359596fcf66027bc131ab37984afb33842d9cd458fd6cecadfe7eac22fd8a54b349799ed334cf2726025c921c7250e7417
+ languageName: node
+ linkType: hard
+
+"get-port@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "get-port@npm:3.2.0"
+ checksum: 31f530326569683ac4b7452eb7573c40e9dbe52aec14d80745c35475261e6389160da153d5b8ae911150b4ce99003472b30c69ba5be0cedeaa7865b95542d168
+ languageName: node
+ linkType: hard
+
+"get-stream@npm:^4.0.0":
+ version: 4.1.0
+ resolution: "get-stream@npm:4.1.0"
+ dependencies:
+ pump: ^3.0.0
+ checksum: 443e1914170c15bd52ff8ea6eff6dfc6d712b031303e36302d2778e3de2506af9ee964d6124010f7818736dcfde05c04ba7ca6cc26883106e084357a17ae7d73
+ languageName: node
+ linkType: hard
+
+"get-stream@npm:^6.0.0":
+ version: 6.0.1
+ resolution: "get-stream@npm:6.0.1"
+ checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad
+ languageName: node
+ linkType: hard
+
+"getenv@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "getenv@npm:1.0.0"
+ checksum: 19ae5cad603a1cf1bcb8fa3bed48e00d062eb0572a4404c02334b67f3b3499f238383082b064bb42515e9e25c2b08aef1a3e3d2b6852347721aa8b174825bd56
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "glob-parent@npm:5.1.2"
+ dependencies:
+ is-glob: ^4.0.1
+ checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e
+ languageName: node
+ linkType: hard
+
+"glob@npm:7.1.6":
+ version: 7.1.6
+ resolution: "glob@npm:7.1.6"
+ dependencies:
+ fs.realpath: ^1.0.0
+ inflight: ^1.0.4
+ inherits: 2
+ minimatch: ^3.0.4
+ once: ^1.3.0
+ path-is-absolute: ^1.0.0
+ checksum: 351d549dd90553b87c2d3f90ce11aed9e1093c74130440e7ae0592e11bbcd2ce7f0ebb8ba6bfe63aaf9b62166a7f4c80cb84490ae5d78408bb2572bf7d4ee0a6
+ languageName: node
+ linkType: hard
+
+"glob@npm:^10.2.2, glob@npm:^10.3.10":
+ version: 10.3.10
+ resolution: "glob@npm:10.3.10"
+ dependencies:
+ foreground-child: ^3.1.0
+ jackspeak: ^2.3.5
+ minimatch: ^9.0.1
+ minipass: ^5.0.0 || ^6.0.2 || ^7.0.0
+ path-scurry: ^1.10.1
+ bin:
+ glob: dist/esm/bin.mjs
+ checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3
+ languageName: node
+ linkType: hard
+
+"glob@npm:^6.0.1":
+ version: 6.0.4
+ resolution: "glob@npm:6.0.4"
+ dependencies:
+ inflight: ^1.0.4
+ inherits: 2
+ minimatch: 2 || 3
+ once: ^1.3.0
+ path-is-absolute: ^1.0.0
+ checksum: c4946c3d015ac81f704d185f2b3a55eb670100693c2cf7bc833d0efd970ec727d860d4839a5178e46a7e594b34a34661bae2f4c3405727c9fd189f84954ca3c0
+ languageName: node
+ linkType: hard
+
+"glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4":
+ version: 7.2.3
+ resolution: "glob@npm:7.2.3"
+ dependencies:
+ fs.realpath: ^1.0.0
+ inflight: ^1.0.4
+ inherits: 2
+ minimatch: ^3.1.1
+ once: ^1.3.0
+ path-is-absolute: ^1.0.0
+ checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133
+ languageName: node
+ linkType: hard
+
+"glob@npm:^8.0.3":
+ version: 8.1.0
+ resolution: "glob@npm:8.1.0"
+ dependencies:
+ fs.realpath: ^1.0.0
+ inflight: ^1.0.4
+ inherits: 2
+ minimatch: ^5.0.1
+ once: ^1.3.0
+ checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47
+ languageName: node
+ linkType: hard
+
+"globals@npm:^11.1.0":
+ version: 11.12.0
+ resolution: "globals@npm:11.12.0"
+ checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e
+ languageName: node
+ linkType: hard
+
+"globby@npm:^11.0.1":
+ version: 11.1.0
+ resolution: "globby@npm:11.1.0"
+ dependencies:
+ array-union: ^2.1.0
+ dir-glob: ^3.0.1
+ fast-glob: ^3.2.9
+ ignore: ^5.2.0
+ merge2: ^1.4.1
+ slash: ^3.0.0
+ checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6
+ languageName: node
+ linkType: hard
+
+"gopd@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "gopd@npm:1.0.1"
+ dependencies:
+ get-intrinsic: ^1.1.3
+ checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6
+ 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: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7
+ languageName: node
+ linkType: hard
+
+"graphql-tag@npm:^2.10.1":
+ version: 2.12.6
+ resolution: "graphql-tag@npm:2.12.6"
+ dependencies:
+ tslib: ^2.1.0
+ peerDependencies:
+ graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
+ checksum: b15162a3d62f17b9b79302445b9ee330e041582f1c7faca74b9dec5daa74272c906ec1c34e1c50592bb6215e5c3eba80a309103f6ba9e4c1cddc350c46f010df
+ languageName: node
+ linkType: hard
+
+"graphql@npm:15.8.0":
+ version: 15.8.0
+ resolution: "graphql@npm:15.8.0"
+ checksum: 423325271db8858428641b9aca01699283d1fe5b40ef6d4ac622569ecca927019fce8196208b91dd1d8eb8114f00263fe661d241d0eb40c10e5bfd650f86ec5e
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "has-flag@npm:3.0.0"
+ checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "has-flag@npm:4.0.0"
+ checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad
+ languageName: node
+ linkType: hard
+
+"has-property-descriptors@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "has-property-descriptors@npm:1.0.1"
+ dependencies:
+ get-intrinsic: ^1.2.2
+ checksum: 2bcc6bf6ec6af375add4e4b4ef586e43674850a91ad4d46666d0b28ba8e1fd69e424c7677d24d60f69470ad0afaa2f3197f508b20b0bb7dd99a8ab77ffc4b7c4
+ languageName: node
+ linkType: hard
+
+"has-proto@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "has-proto@npm:1.0.1"
+ checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e
+ languageName: node
+ linkType: hard
+
+"has-symbols@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "has-symbols@npm:1.0.3"
+ checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410
+ languageName: node
+ linkType: hard
+
+"hasown@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "hasown@npm:2.0.0"
+ dependencies:
+ function-bind: ^1.1.2
+ checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176
+ languageName: node
+ linkType: hard
+
+"hermes-estree@npm:0.12.0":
+ version: 0.12.0
+ resolution: "hermes-estree@npm:0.12.0"
+ checksum: 368fd60bd66a30d237d8a11f0958975b18e24ec8a045217b6200818c2fab9a57880f027c4688601a5a380996be9018cb5f8c16384cb3f14647650d64a03c4030
+ languageName: node
+ linkType: hard
+
+"hermes-parser@npm:0.12.0":
+ version: 0.12.0
+ resolution: "hermes-parser@npm:0.12.0"
+ dependencies:
+ hermes-estree: 0.12.0
+ checksum: 49c7bf721c9412bec7e447d625d73f79d1fb525f1e77032ae291b720bcff57ebdb5ab241a3e09e145640b4e00ae6caa0f4f2e594ad1d3fed67880fbd521ba142
+ languageName: node
+ linkType: hard
+
+"hermes-profile-transformer@npm:^0.0.6":
+ version: 0.0.6
+ resolution: "hermes-profile-transformer@npm:0.0.6"
+ dependencies:
+ source-map: ^0.7.3
+ checksum: b5f874eaa65b70d88df7a4ce3b20d73312bb0bc73410f1b63d708f02e1c532ae16975da84e23b977eab8592ac95d7e6fc0c4094c78604fd0a092ed886c62aa7a
+ languageName: node
+ linkType: hard
+
+"hosted-git-info@npm:^3.0.2":
+ version: 3.0.8
+ resolution: "hosted-git-info@npm:3.0.8"
+ dependencies:
+ lru-cache: ^6.0.0
+ checksum: 5af7a69581acb84206a7b8e009f4680c36396814e92c8a83973dfb3b87e44e44d1f7b8eaf3e4a953686482770ecb78406a4ce4666bfdfe447762434127871d8d
+ languageName: node
+ linkType: hard
+
+"http-cache-semantics@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "http-cache-semantics@npm:4.1.1"
+ checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236
+ languageName: node
+ linkType: hard
+
+"http-errors@npm:2.0.0":
+ version: 2.0.0
+ resolution: "http-errors@npm:2.0.0"
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ toidentifier: 1.0.1
+ checksum: 9b0a3782665c52ce9dc658a0d1560bcb0214ba5699e4ea15aefb2a496e2ca83db03ebc42e1cce4ac1f413e4e0d2d736a3fd755772c556a9a06853ba2a0b7d920
+ languageName: node
+ linkType: hard
+
+"http-proxy-agent@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "http-proxy-agent@npm:7.0.0"
+ dependencies:
+ agent-base: ^7.1.0
+ debug: ^4.3.4
+ checksum: 48d4fac997917e15f45094852b63b62a46d0c8a4f0b9c6c23ca26d27b8df8d178bed88389e604745e748bd9a01f5023e25093722777f0593c3f052009ff438b6
+ languageName: node
+ linkType: hard
+
+"https-proxy-agent@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "https-proxy-agent@npm:5.0.1"
+ dependencies:
+ agent-base: 6
+ debug: 4
+ checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765
+ languageName: node
+ linkType: hard
+
+"https-proxy-agent@npm:^7.0.1":
+ version: 7.0.2
+ resolution: "https-proxy-agent@npm:7.0.2"
+ dependencies:
+ agent-base: ^7.0.2
+ debug: 4
+ checksum: 088969a0dd476ea7a0ed0a2cf1283013682b08f874c3bc6696c83fa061d2c157d29ef0ad3eb70a2046010bb7665573b2388d10fdcb3e410a66995e5248444292
+ languageName: node
+ linkType: hard
+
+"human-signals@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "human-signals@npm:2.1.0"
+ checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8
+ languageName: node
+ linkType: hard
+
+"iconv-lite@npm:0.4.24":
+ version: 0.4.24
+ resolution: "iconv-lite@npm:0.4.24"
+ dependencies:
+ safer-buffer: ">= 2.1.2 < 3"
+ checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6
+ languageName: node
+ linkType: hard
+
+"iconv-lite@npm:^0.6.2":
+ version: 0.6.3
+ resolution: "iconv-lite@npm:0.6.3"
+ dependencies:
+ safer-buffer: ">= 2.1.2 < 3.0.0"
+ checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf
+ languageName: node
+ linkType: hard
+
+"ieee754@npm:^1.1.13":
+ version: 1.2.1
+ resolution: "ieee754@npm:1.2.1"
+ checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e
+ languageName: node
+ linkType: hard
+
+"ignore@npm:^5.2.0":
+ version: 5.3.0
+ resolution: "ignore@npm:5.3.0"
+ checksum: 2736da6621f14ced652785cb05d86301a66d70248597537176612bd0c8630893564bd5f6421f8806b09e8472e75c591ef01672ab8059c07c6eb2c09cefe04bf9
+ languageName: node
+ linkType: hard
+
+"image-size@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "image-size@npm:1.0.2"
+ dependencies:
+ queue: 6.0.2
+ bin:
+ image-size: bin/image-size.js
+ checksum: 01745fdb47f87cecf538e69c63f9adc5bfab30a345345c2de91105f3afbd1bfcfba1256af02bf3323077b33b0004469a837e077bf0cbb9c907e9c1e9e7547585
+ languageName: node
+ linkType: hard
+
+"import-fresh@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "import-fresh@npm:2.0.0"
+ dependencies:
+ caller-path: ^2.0.0
+ resolve-from: ^3.0.0
+ checksum: 610255f9753cc6775df00be08e9f43691aa39f7703e3636c45afe22346b8b545e600ccfe100c554607546fc8e861fa149a0d1da078c8adedeea30fff326eef79
+ languageName: node
+ linkType: hard
+
+"imurmurhash@npm:^0.1.4":
+ version: 0.1.4
+ resolution: "imurmurhash@npm:0.1.4"
+ checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7
+ languageName: node
+ linkType: hard
+
+"indent-string@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "indent-string@npm:4.0.0"
+ checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612
+ languageName: node
+ linkType: hard
+
+"infer-owner@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "infer-owner@npm:1.0.4"
+ checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89
+ languageName: node
+ linkType: hard
+
+"inflight@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "inflight@npm:1.0.6"
+ dependencies:
+ once: ^1.3.0
+ wrappy: 1
+ checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3":
+ version: 2.0.4
+ resolution: "inherits@npm:2.0.4"
+ checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1
+ languageName: node
+ linkType: hard
+
+"ini@npm:~1.3.0":
+ version: 1.3.8
+ resolution: "ini@npm:1.3.8"
+ checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3
+ languageName: node
+ linkType: hard
+
+"internal-ip@npm:4.3.0":
+ version: 4.3.0
+ resolution: "internal-ip@npm:4.3.0"
+ dependencies:
+ default-gateway: ^4.2.0
+ ipaddr.js: ^1.9.0
+ checksum: c970433c84d9a6b46e2c9f5ab7785d3105b856d0a566891bf919241b5a884c5c1c9bf8e915aebb822a86c14b1b6867e58c1eaf5cd49eb023368083069d1a4a9a
+ languageName: node
+ linkType: hard
+
+"invariant@npm:*, invariant@npm:^2.2.4":
+ version: 2.2.4
+ resolution: "invariant@npm:2.2.4"
+ dependencies:
+ loose-envify: ^1.0.0
+ checksum: cc3182d793aad82a8d1f0af697b462939cb46066ec48bbf1707c150ad5fad6406137e91a262022c269702e01621f35ef60269f6c0d7fd178487959809acdfb14
+ languageName: node
+ linkType: hard
+
+"ip-regex@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "ip-regex@npm:2.1.0"
+ checksum: 331d95052aa53ce245745ea0fc3a6a1e2e3c8d6da65fa8ea52bf73768c1b22a9ac50629d1d2b08c04e7b3ac4c21b536693c149ce2c2615ee4796030e5b3e3cba
+ languageName: node
+ linkType: hard
+
+"ip@npm:^1.1.5":
+ version: 1.1.8
+ resolution: "ip@npm:1.1.8"
+ checksum: a2ade53eb339fb0cbe9e69a44caab10d6e3784662285eb5d2677117ee4facc33a64679051c35e0dfdb1a3983a51ce2f5d2cb36446d52e10d01881789b76e28fb
+ languageName: node
+ linkType: hard
+
+"ip@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "ip@npm:2.0.0"
+ checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349
+ languageName: node
+ linkType: hard
+
+"ipaddr.js@npm:^1.9.0":
+ version: 1.9.1
+ resolution: "ipaddr.js@npm:1.9.1"
+ checksum: f88d3825981486f5a1942414c8d77dd6674dd71c065adcfa46f578d677edcb99fda25af42675cb59db492fdf427b34a5abfcde3982da11a8fd83a500b41cfe77
+ languageName: node
+ linkType: hard
+
+"is-arrayish@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "is-arrayish@npm:0.2.1"
+ checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f
+ languageName: node
+ linkType: hard
+
+"is-buffer@npm:~1.1.1, is-buffer@npm:~1.1.6":
+ version: 1.1.6
+ resolution: "is-buffer@npm:1.1.6"
+ checksum: 4a186d995d8bbf9153b4bd9ff9fd04ae75068fe695d29025d25e592d9488911eeece84eefbd8fa41b8ddcc0711058a71d4c466dcf6f1f6e1d83830052d8ca707
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.13.0":
+ version: 2.13.1
+ resolution: "is-core-module@npm:2.13.1"
+ dependencies:
+ hasown: ^2.0.0
+ checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c
+ languageName: node
+ linkType: hard
+
+"is-directory@npm:^0.3.1":
+ version: 0.3.1
+ resolution: "is-directory@npm:0.3.1"
+ checksum: dce9a9d3981e38f2ded2a80848734824c50ee8680cd09aa477bef617949715cfc987197a2ca0176c58a9fb192a1a0d69b535c397140d241996a609d5906ae524
+ languageName: node
+ linkType: hard
+
+"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1":
+ version: 2.2.1
+ resolution: "is-docker@npm:2.2.1"
+ bin:
+ is-docker: cli.js
+ checksum: 3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56
+ languageName: node
+ linkType: hard
+
+"is-extglob@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "is-extglob@npm:1.0.0"
+ checksum: 5eea8517feeae5206547c0fc838c1416ec763b30093c286e1965a05f46b74a59ad391f912565f3b67c9c31cab4769ab9c35420e016b608acb47309be8d0d6e94
+ languageName: node
+ linkType: hard
+
+"is-extglob@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "is-extglob@npm:2.1.1"
+ checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85
+ 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: 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: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348
+ languageName: node
+ linkType: hard
+
+"is-glob@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-glob@npm:2.0.1"
+ dependencies:
+ is-extglob: ^1.0.0
+ checksum: 089f5f93640072491396a5f075ce73e949a90f35832b782bc49a6b7637d58e392d53cb0b395e059ccab70fcb82ff35d183f6f9ebbcb43227a1e02e3fed5430c9
+ languageName: node
+ linkType: hard
+
+"is-glob@npm:^4.0.1":
+ version: 4.0.3
+ resolution: "is-glob@npm:4.0.3"
+ dependencies:
+ is-extglob: ^2.1.1
+ checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4
+ languageName: node
+ linkType: hard
+
+"is-interactive@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "is-interactive@npm:1.0.0"
+ checksum: 824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9
+ languageName: node
+ linkType: hard
+
+"is-invalid-path@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "is-invalid-path@npm:0.1.0"
+ dependencies:
+ is-glob: ^2.0.0
+ checksum: 184dd40d9c7a765506e4fdcd7e664f86de68a4d5d429964b160255fe40de1b4323d1b4e6ea76ff87debf788a330e4f27cb1dfe5fc2420405e1c8a16a6ed87092
+ languageName: node
+ linkType: hard
+
+"is-lambda@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-lambda@npm:1.0.1"
+ checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35
+ languageName: node
+ linkType: hard
+
+"is-number@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "is-number@npm:7.0.0"
+ checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a
+ languageName: node
+ linkType: hard
+
+"is-path-cwd@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "is-path-cwd@npm:2.2.0"
+ checksum: 46a840921bb8cc0dc7b5b423a14220e7db338072a4495743a8230533ce78812dc152548c86f4b828411fe98c5451959f07cf841c6a19f611e46600bd699e8048
+ languageName: node
+ linkType: hard
+
+"is-path-inside@npm:^3.0.2":
+ version: 3.0.3
+ resolution: "is-path-inside@npm:3.0.3"
+ checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9
+ 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: ^3.0.1
+ checksum: 2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "is-stream@npm:1.1.0"
+ checksum: 063c6bec9d5647aa6d42108d4c59723d2bd4ae42135a2d4db6eadbd49b7ea05b750fd69d279e5c7c45cf9da753ad2c00d8978be354d65aa9f6bb434969c6a2ae
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-stream@npm:2.0.1"
+ checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66
+ languageName: node
+ linkType: hard
+
+"is-unicode-supported@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "is-unicode-supported@npm:0.1.0"
+ checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52
+ languageName: node
+ linkType: hard
+
+"is-valid-path@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "is-valid-path@npm:0.1.1"
+ dependencies:
+ is-invalid-path: ^0.1.0
+ checksum: d6e716a4a999c75e32ff91ff1ea684fc9e69de05747ec4aaae049460beb971c79f474629dd87a5b4b662691f8323c1920f1b6f1dcdcb39b07082f0ff77b71da6
+ languageName: node
+ linkType: hard
+
+"is-wsl@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "is-wsl@npm:1.1.0"
+ checksum: 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: ^2.0.0
+ checksum: 20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8
+ languageName: node
+ linkType: hard
+
+"isarray@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "isarray@npm:1.0.0"
+ checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "isexe@npm:3.1.1"
+ checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e
+ languageName: node
+ linkType: hard
+
+"isobject@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "isobject@npm:3.0.1"
+ checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703
+ languageName: node
+ linkType: hard
+
+"jackspeak@npm:^2.3.5":
+ version: 2.3.6
+ resolution: "jackspeak@npm:2.3.6"
+ dependencies:
+ "@isaacs/cliui": ^8.0.2
+ "@pkgjs/parseargs": ^0.11.0
+ dependenciesMeta:
+ "@pkgjs/parseargs":
+ optional: true
+ checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54
+ languageName: node
+ linkType: hard
+
+"jest-environment-node@npm:^29.2.1":
+ version: 29.7.0
+ resolution: "jest-environment-node@npm:29.7.0"
+ dependencies:
+ "@jest/environment": ^29.7.0
+ "@jest/fake-timers": ^29.7.0
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ jest-mock: ^29.7.0
+ jest-util: ^29.7.0
+ checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646
+ languageName: node
+ linkType: hard
+
+"jest-get-type@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "jest-get-type@npm:29.6.3"
+ checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205
+ 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": ^7.12.13
+ "@jest/types": ^29.6.3
+ "@types/stack-utils": ^2.0.0
+ chalk: ^4.0.0
+ graceful-fs: ^4.2.9
+ micromatch: ^4.0.4
+ pretty-format: ^29.7.0
+ slash: ^3.0.0
+ stack-utils: ^2.0.3
+ checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930
+ languageName: node
+ linkType: hard
+
+"jest-mock@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-mock@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ jest-util: ^29.7.0
+ checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5
+ languageName: node
+ linkType: hard
+
+"jest-regex-util@npm:^27.0.6":
+ version: 27.5.1
+ resolution: "jest-regex-util@npm:27.5.1"
+ checksum: d45ca7a9543616a34f7f3079337439cf07566e677a096472baa2810e274b9808b76767c97b0a4029b8a5b82b9d256dee28ef9ad4138b2b9e5933f6fac106c418
+ languageName: node
+ linkType: hard
+
+"jest-util@npm:^27.2.0":
+ version: 27.5.1
+ resolution: "jest-util@npm:27.5.1"
+ dependencies:
+ "@jest/types": ^27.5.1
+ "@types/node": "*"
+ chalk: ^4.0.0
+ ci-info: ^3.2.0
+ graceful-fs: ^4.2.9
+ picomatch: ^2.2.3
+ checksum: ac8d122f6daf7a035dcea156641fd3701aeba245417c40836a77e35b3341b9c02ddc5d904cfcd4ddbaa00ab854da76d3b911870cafdcdbaff90ea471de26c7d7
+ languageName: node
+ linkType: hard
+
+"jest-util@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-util@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ chalk: ^4.0.0
+ ci-info: ^3.2.0
+ graceful-fs: ^4.2.9
+ picomatch: ^2.2.3
+ checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca
+ languageName: node
+ linkType: hard
+
+"jest-validate@npm:^29.2.1":
+ version: 29.7.0
+ resolution: "jest-validate@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ camelcase: ^6.2.0
+ chalk: ^4.0.0
+ jest-get-type: ^29.6.3
+ leven: ^3.1.0
+ pretty-format: ^29.7.0
+ checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae
+ languageName: node
+ linkType: hard
+
+"jest-worker@npm:^27.2.0":
+ version: 27.5.1
+ resolution: "jest-worker@npm:27.5.1"
+ dependencies:
+ "@types/node": "*"
+ merge-stream: ^2.0.0
+ supports-color: ^8.0.0
+ checksum: 98cd68b696781caed61c983a3ee30bf880b5bd021c01d98f47b143d4362b85d0737f8523761e2713d45e18b4f9a2b98af1eaee77afade4111bb65c77d6f7c980
+ languageName: node
+ linkType: hard
+
+"jimp-compact@npm:0.16.1":
+ version: 0.16.1
+ resolution: "jimp-compact@npm:0.16.1"
+ checksum: 5a1c62d70881b31f79ea65fecfe03617be0eb56139bc451f37e8972365c99ac3b52c5176c446ff27144c98ab664a99107ae08d347044e94e1de637f165b41a57
+ languageName: node
+ linkType: hard
+
+"joi@npm:^17.2.1":
+ version: 17.11.0
+ resolution: "joi@npm:17.11.0"
+ dependencies:
+ "@hapi/hoek": ^9.0.0
+ "@hapi/topo": ^5.0.0
+ "@sideway/address": ^4.1.3
+ "@sideway/formula": ^3.0.1
+ "@sideway/pinpoint": ^2.0.0
+ checksum: 3a4e9ecba345cdafe585e7ed8270a44b39718e11dff3749aa27e0001a63d578b75100c062be28e6f48f960b594864034e7a13833f33fbd7ad56d5ce6b617f9bf
+ languageName: node
+ linkType: hard
+
+"join-component@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "join-component@npm:1.1.0"
+ checksum: b904c2f98549e4195022caca3a7dc837f9706c670ff333f3d617f2aed23bce2841322a999734683b6ab8e202568ad810c11ff79b58a64df66888153f04750239
+ 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: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78
+ languageName: node
+ linkType: hard
+
+"js-yaml@npm:^3.13.1":
+ version: 3.14.1
+ resolution: "js-yaml@npm:3.14.1"
+ dependencies:
+ argparse: ^1.0.7
+ esprima: ^4.0.0
+ bin:
+ js-yaml: bin/js-yaml.js
+ checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c
+ languageName: node
+ linkType: hard
+
+"js-yaml@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "js-yaml@npm:4.1.0"
+ dependencies:
+ argparse: ^2.0.1
+ bin:
+ js-yaml: bin/js-yaml.js
+ checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a
+ languageName: node
+ linkType: hard
+
+"jsc-android@npm:^250231.0.0":
+ version: 250231.0.0
+ resolution: "jsc-android@npm:250231.0.0"
+ checksum: 6c3f0f6f02fa37a19935b2fbe651e9d6ecc370eb30f2ecee76379337bbf084abb568a1ef1133fe622c5b76f43cf54bb7716f92a94dca010985da38edc48841e2
+ languageName: node
+ linkType: hard
+
+"jsc-safe-url@npm:^0.2.2, jsc-safe-url@npm:^0.2.4":
+ version: 0.2.4
+ resolution: "jsc-safe-url@npm:0.2.4"
+ checksum: 53b5741ba2c0a54da1722929dc80becb2c6fcc9525124fb6c2aec1a00f48e79afffd26816c278111e7b938e37ace029e33cbb8cdaa4ac1f528a87e58022284af
+ languageName: node
+ linkType: hard
+
+"jscodeshift@npm:^0.14.0":
+ version: 0.14.0
+ resolution: "jscodeshift@npm:0.14.0"
+ dependencies:
+ "@babel/core": ^7.13.16
+ "@babel/parser": ^7.13.16
+ "@babel/plugin-proposal-class-properties": ^7.13.0
+ "@babel/plugin-proposal-nullish-coalescing-operator": ^7.13.8
+ "@babel/plugin-proposal-optional-chaining": ^7.13.12
+ "@babel/plugin-transform-modules-commonjs": ^7.13.8
+ "@babel/preset-flow": ^7.13.13
+ "@babel/preset-typescript": ^7.13.0
+ "@babel/register": ^7.13.16
+ babel-core: ^7.0.0-bridge.0
+ chalk: ^4.1.2
+ flow-parser: 0.*
+ graceful-fs: ^4.2.4
+ micromatch: ^4.0.4
+ neo-async: ^2.5.0
+ node-dir: ^0.1.17
+ recast: ^0.21.0
+ temp: ^0.8.4
+ write-file-atomic: ^2.3.0
+ peerDependencies:
+ "@babel/preset-env": ^7.1.6
+ bin:
+ jscodeshift: bin/jscodeshift.js
+ checksum: 54ea6d639455883336f80b38a70648821c88b7942315dc0fbab01bc34a9ad0f0f78e3bd69304b5ab167e4262d6ed7e6284c6d32525ab01c89d9118df89b3e2a0
+ languageName: node
+ linkType: hard
+
+"jsesc@npm:^2.5.1":
+ version: 2.5.2
+ resolution: "jsesc@npm:2.5.2"
+ bin:
+ jsesc: bin/jsesc
+ checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d
+ languageName: node
+ linkType: hard
+
+"jsesc@npm:~0.5.0":
+ version: 0.5.0
+ resolution: "jsesc@npm:0.5.0"
+ bin:
+ jsesc: bin/jsesc
+ checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17
+ 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: ff2b5ba2a70e88fd97a3cb28c1840144c5ce8fae9cbeeddba15afa333a5c407cf0e42300cd0a2885dbb055227fe68d405070faad941beeffbfde9cf3b2c78c5d
+ languageName: node
+ linkType: hard
+
+"json-schema-deref-sync@npm:^0.13.0":
+ version: 0.13.0
+ resolution: "json-schema-deref-sync@npm:0.13.0"
+ dependencies:
+ clone: ^2.1.2
+ dag-map: ~1.0.0
+ is-valid-path: ^0.1.1
+ lodash: ^4.17.13
+ md5: ~2.2.0
+ memory-cache: ~0.2.0
+ traverse: ~0.6.6
+ valid-url: ~1.0.9
+ checksum: c6630b3ec37d0d43c8b75f4733fee304e93b3867f55190e779b2fb149a2f27c632694804ddbc1f56882cee8f6d92130855af061a1a941e63a20902455ac33426
+ languageName: node
+ linkType: hard
+
+"json5@npm:^2.1.1, json5@npm:^2.2.2, json5@npm:^2.2.3":
+ version: 2.2.3
+ resolution: "json5@npm:2.2.3"
+ bin:
+ json5: lib/cli.js
+ checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349
+ languageName: node
+ linkType: hard
+
+"jsonfile@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "jsonfile@npm:4.0.0"
+ dependencies:
+ graceful-fs: ^4.1.6
+ dependenciesMeta:
+ graceful-fs:
+ optional: true
+ checksum: 6447d6224f0d31623eef9b51185af03ac328a7553efcee30fa423d98a9e276ca08db87d71e17f2310b0263fd3ffa6c2a90a6308367f661dc21580f9469897c9e
+ languageName: node
+ linkType: hard
+
+"jsonfile@npm:^6.0.1":
+ version: 6.1.0
+ resolution: "jsonfile@npm:6.1.0"
+ dependencies:
+ graceful-fs: ^4.1.6
+ universalify: ^2.0.0
+ dependenciesMeta:
+ graceful-fs:
+ optional: true
+ checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354
+ languageName: node
+ linkType: hard
+
+"kind-of@npm:^6.0.2":
+ version: 6.0.3
+ resolution: "kind-of@npm:6.0.3"
+ checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b
+ languageName: node
+ linkType: hard
+
+"kleur@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "kleur@npm:3.0.3"
+ checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169
+ languageName: node
+ linkType: hard
+
+"leven@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "leven@npm:3.1.0"
+ checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55
+ languageName: node
+ linkType: hard
+
+"lightningcss-darwin-arm64@npm:1.19.0":
+ version: 1.19.0
+ resolution: "lightningcss-darwin-arm64@npm:1.19.0"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"lightningcss-darwin-x64@npm:1.19.0":
+ version: 1.19.0
+ resolution: "lightningcss-darwin-x64@npm:1.19.0"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-arm-gnueabihf@npm:1.19.0":
+ version: 1.19.0
+ resolution: "lightningcss-linux-arm-gnueabihf@npm:1.19.0"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-arm64-gnu@npm:1.19.0":
+ version: 1.19.0
+ resolution: "lightningcss-linux-arm64-gnu@npm:1.19.0"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-arm64-musl@npm:1.19.0":
+ version: 1.19.0
+ resolution: "lightningcss-linux-arm64-musl@npm:1.19.0"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-x64-gnu@npm:1.19.0":
+ version: 1.19.0
+ resolution: "lightningcss-linux-x64-gnu@npm:1.19.0"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-x64-musl@npm:1.19.0":
+ version: 1.19.0
+ resolution: "lightningcss-linux-x64-musl@npm:1.19.0"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"lightningcss-win32-x64-msvc@npm:1.19.0":
+ version: 1.19.0
+ resolution: "lightningcss-win32-x64-msvc@npm:1.19.0"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"lightningcss@npm:~1.19.0":
+ version: 1.19.0
+ resolution: "lightningcss@npm:1.19.0"
+ dependencies:
+ detect-libc: ^1.0.3
+ lightningcss-darwin-arm64: 1.19.0
+ lightningcss-darwin-x64: 1.19.0
+ lightningcss-linux-arm-gnueabihf: 1.19.0
+ lightningcss-linux-arm64-gnu: 1.19.0
+ lightningcss-linux-arm64-musl: 1.19.0
+ lightningcss-linux-x64-gnu: 1.19.0
+ lightningcss-linux-x64-musl: 1.19.0
+ lightningcss-win32-x64-msvc: 1.19.0
+ dependenciesMeta:
+ lightningcss-darwin-arm64:
+ optional: true
+ lightningcss-darwin-x64:
+ optional: true
+ lightningcss-linux-arm-gnueabihf:
+ optional: true
+ lightningcss-linux-arm64-gnu:
+ optional: true
+ lightningcss-linux-arm64-musl:
+ optional: true
+ lightningcss-linux-x64-gnu:
+ optional: true
+ lightningcss-linux-x64-musl:
+ optional: true
+ lightningcss-win32-x64-msvc:
+ optional: true
+ checksum: c51de34b7379f9da391d0c1157893bb1484357d1ce2212a8c7943690d7a4fed7f2fa0d2dd7a92004b4444662011564ec7bf31f458a1638c856c529fe07285177
+ languageName: node
+ linkType: hard
+
+"lines-and-columns@npm:^1.1.6":
+ version: 1.2.4
+ resolution: "lines-and-columns@npm:1.2.4"
+ checksum: 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: ^3.0.0
+ path-exists: ^3.0.0
+ checksum: 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: ^4.1.0
+ checksum: 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: ^5.0.0
+ checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a
+ languageName: node
+ linkType: hard
+
+"lodash.debounce@npm:^4.0.8":
+ version: 4.0.8
+ resolution: "lodash.debounce@npm:4.0.8"
+ checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6
+ languageName: node
+ linkType: hard
+
+"lodash.throttle@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "lodash.throttle@npm:4.1.1"
+ checksum: 129c0a28cee48b348aef146f638ef8a8b197944d4e9ec26c1890c19d9bf5a5690fe11b655c77a4551268819b32d27f4206343e30c78961f60b561b8608c8c805
+ languageName: node
+ linkType: hard
+
+"lodash@npm:^4.17.13, lodash@npm:^4.17.4":
+ version: 4.17.21
+ resolution: "lodash@npm:4.17.21"
+ checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7
+ languageName: node
+ linkType: hard
+
+"log-symbols@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "log-symbols@npm:2.2.0"
+ dependencies:
+ chalk: ^2.0.1
+ checksum: 4c95e3b65f0352dbe91dc4989c10baf7a44e2ef5b0db7e6721e1476268e2b6f7090c3aa880d4f833a05c5c3ff18f4ec5215a09bd0099986d64a8186cfeb48ac8
+ languageName: node
+ linkType: hard
+
+"log-symbols@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "log-symbols@npm:4.1.0"
+ dependencies:
+ chalk: ^4.1.0
+ is-unicode-supported: ^0.1.0
+ checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74
+ languageName: node
+ linkType: hard
+
+"logkitty@npm:^0.7.1":
+ version: 0.7.1
+ resolution: "logkitty@npm:0.7.1"
+ dependencies:
+ ansi-fragments: ^0.2.1
+ dayjs: ^1.8.15
+ yargs: ^15.1.0
+ bin:
+ logkitty: bin/logkitty.js
+ checksum: f1af990ff09564ef5122597a52bba6d233302c49865e6ddea1343d2a0e2efe3005127e58e93e25c98b6b1f192731fc5c52e3204876a15fc9a52abc8b4f1af931
+ 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: ^3.0.0 || ^4.0.0
+ bin:
+ loose-envify: cli.js
+ checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0":
+ version: 10.0.3
+ resolution: "lru-cache@npm:10.0.3"
+ checksum: e4b100c5a6b2ac778c0f63711499b5098686205c57907d8c04a413270d37089112d9bd0192dfa36940eb5d94b88c7db54fdb6fd23319c8f89903cfd4323ea06c
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^5.1.1":
+ version: 5.1.1
+ resolution: "lru-cache@npm:5.1.1"
+ dependencies:
+ yallist: ^3.0.2
+ checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "lru-cache@npm:6.0.0"
+ dependencies:
+ yallist: ^4.0.0
+ checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297
+ 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: ^4.0.1
+ semver: ^5.6.0
+ checksum: 043548886bfaf1820323c6a2997e6d2fa51ccc2586ac14e6f14634f7458b4db2daf15f8c310e2a0abd3e0cddc64df1890d8fc7263033602c47bb12cbfcf86aab
+ languageName: node
+ linkType: hard
+
+"make-fetch-happen@npm:^13.0.0":
+ version: 13.0.0
+ resolution: "make-fetch-happen@npm:13.0.0"
+ dependencies:
+ "@npmcli/agent": ^2.0.0
+ cacache: ^18.0.0
+ http-cache-semantics: ^4.1.1
+ is-lambda: ^1.0.1
+ minipass: ^7.0.2
+ minipass-fetch: ^3.0.0
+ minipass-flush: ^1.0.5
+ minipass-pipeline: ^1.2.4
+ negotiator: ^0.6.3
+ promise-retry: ^2.0.1
+ ssri: ^10.0.0
+ checksum: 7c7a6d381ce919dd83af398b66459a10e2fe8f4504f340d1d090d3fa3d1b0c93750220e1d898114c64467223504bd258612ba83efbc16f31b075cd56de24b4af
+ languageName: node
+ linkType: hard
+
+"makeerror@npm:1.0.12":
+ version: 1.0.12
+ resolution: "makeerror@npm:1.0.12"
+ dependencies:
+ tmpl: 1.0.5
+ checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060
+ languageName: node
+ linkType: hard
+
+"md5-file@npm:^3.2.3":
+ version: 3.2.3
+ resolution: "md5-file@npm:3.2.3"
+ dependencies:
+ buffer-alloc: ^1.1.0
+ bin:
+ md5-file: cli.js
+ checksum: a3738274ee0c5ce21e7c14a4b60e5de6b298740f8a37eeb502bb97a056e3f19ea0871418b4dd45ca9c70d2f1d6c79a19e9a320fba1c129b196cdf671e544c450
+ languageName: node
+ linkType: hard
+
+"md5@npm:^2.2.1":
+ version: 2.3.0
+ resolution: "md5@npm:2.3.0"
+ dependencies:
+ charenc: 0.0.2
+ crypt: 0.0.2
+ is-buffer: ~1.1.6
+ checksum: a63cacf4018dc9dee08c36e6f924a64ced735b37826116c905717c41cebeb41a522f7a526ba6ad578f9c80f02cb365033ccd67fe186ffbcc1a1faeb75daa9b6e
+ languageName: node
+ linkType: hard
+
+"md5@npm:~2.2.0":
+ version: 2.2.1
+ resolution: "md5@npm:2.2.1"
+ dependencies:
+ charenc: ~0.0.1
+ crypt: ~0.0.1
+ is-buffer: ~1.1.1
+ checksum: 2237e583f961d04d43c59c2f9383d1e47099427fa37f9dc50e8aec32e770f8b038ad9268c2523a7c8041ab6f4678a742ca533a7f670dbc2857c5b18388cf4d71
+ languageName: node
+ linkType: hard
+
+"md5hex@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "md5hex@npm:1.0.0"
+ checksum: eabca53391ef32429f78fc5c83d7c7cebee9ee88db79854492a5e19de2880d4497523b4489abeeb920fcd5bae9ee7a6d8aa343d55ed91866b2d50e619047b639
+ languageName: node
+ linkType: hard
+
+"media-typer@npm:0.3.0":
+ version: 0.3.0
+ resolution: "media-typer@npm:0.3.0"
+ checksum: af1b38516c28ec95d6b0826f6c8f276c58aec391f76be42aa07646b4e39d317723e869700933ca6995b056db4b09a78c92d5440dc23657e6764be5d28874bba1
+ languageName: node
+ linkType: hard
+
+"memoize-one@npm:^5.0.0":
+ version: 5.2.1
+ resolution: "memoize-one@npm:5.2.1"
+ checksum: a3cba7b824ebcf24cdfcd234aa7f86f3ad6394b8d9be4c96ff756dafb8b51c7f71320785fbc2304f1af48a0467cbbd2a409efc9333025700ed523f254cb52e3d
+ languageName: node
+ linkType: hard
+
+"memory-cache@npm:~0.2.0":
+ version: 0.2.0
+ resolution: "memory-cache@npm:0.2.0"
+ checksum: 255c87fec360ce06818ca7aeb5850d798e14950a9fcea879d88e1f8d1f4a6cffb8ed16da54aa677f5ec8e47773fbe15775a1cdf837ac190e17e9fb4b71e87bee
+ languageName: node
+ linkType: hard
+
+"merge-stream@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "merge-stream@npm:2.0.0"
+ checksum: 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: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2
+ languageName: node
+ linkType: hard
+
+"metro-babel-transformer@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-babel-transformer@npm:0.76.8"
+ dependencies:
+ "@babel/core": ^7.20.0
+ hermes-parser: 0.12.0
+ nullthrows: ^1.1.1
+ checksum: 2a00839585f6e9b831f29d203edcfd7dc62383efa41734fbf8d13daded7a18c7650aa70a1a03943a8d1c9ac20cb33d42ac3eae3b89484fe704a0a70a164d76ab
+ languageName: node
+ linkType: hard
+
+"metro-cache-key@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-cache-key@npm:0.76.8"
+ checksum: 23d33652ff814cdd4739201ed545ab421cf16aa10d4bfcf7673ec630268ceed7a3735a59a711bdfa812786d181a4e64f453f1658fd342f5ff55aef232ac63b0d
+ languageName: node
+ linkType: hard
+
+"metro-cache@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-cache@npm:0.76.8"
+ dependencies:
+ metro-core: 0.76.8
+ rimraf: ^3.0.2
+ checksum: 57ac005e44f5e57e62bd597b0b5023c3c961d41eb80f91a1fba61acaa21423efba5d5b710f5a4a6e09ecebe5512441d06dd54a5a4acd7f09ba8dd1361b3fc2d3
+ languageName: node
+ linkType: hard
+
+"metro-config@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-config@npm:0.76.8"
+ dependencies:
+ connect: ^3.6.5
+ cosmiconfig: ^5.0.5
+ jest-validate: ^29.2.1
+ metro: 0.76.8
+ metro-cache: 0.76.8
+ metro-core: 0.76.8
+ metro-runtime: 0.76.8
+ checksum: aa3208d4a0f274d2f204f26ed214cf3c8a86138d997203413599a48930192bafd791a115a30e5af55b2685aa250174fb64a2a9009d9b5842af78c033420de312
+ languageName: node
+ linkType: hard
+
+"metro-core@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-core@npm:0.76.8"
+ dependencies:
+ lodash.throttle: ^4.1.1
+ metro-resolver: 0.76.8
+ checksum: 9a43e824404c194ca31de0e204f304ded65d1c4ecb401f270750f6e319f9454293067c69c682b20413951eb63fde1e4e2a8e779f9eb779d2da95ffea4e093ce9
+ languageName: node
+ linkType: hard
+
+"metro-file-map@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-file-map@npm:0.76.8"
+ dependencies:
+ anymatch: ^3.0.3
+ debug: ^2.2.0
+ fb-watchman: ^2.0.0
+ fsevents: ^2.3.2
+ graceful-fs: ^4.2.4
+ invariant: ^2.2.4
+ jest-regex-util: ^27.0.6
+ jest-util: ^27.2.0
+ jest-worker: ^27.2.0
+ micromatch: ^4.0.4
+ node-abort-controller: ^3.1.1
+ nullthrows: ^1.1.1
+ walker: ^1.0.7
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: eecd1560b32115db93ca9a8c066203465619a5b39a9ccc5a9771b61d392deeda96737c87e1ed740cd00e7d8ef9149f7e1ee32a0b311242fdfca372c79b4893b4
+ languageName: node
+ linkType: hard
+
+"metro-inspector-proxy@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-inspector-proxy@npm:0.76.8"
+ dependencies:
+ connect: ^3.6.5
+ debug: ^2.2.0
+ node-fetch: ^2.2.0
+ ws: ^7.5.1
+ yargs: ^17.6.2
+ bin:
+ metro-inspector-proxy: src/cli.js
+ checksum: edf3a1488ca57883c8b511f852f66024ccd451616b1897d82600e3b51a3ea8ef14bac01ad5767fbcf8d772da77239606475319e591701f4c094489e009842d9d
+ languageName: node
+ linkType: hard
+
+"metro-minify-terser@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-minify-terser@npm:0.76.8"
+ dependencies:
+ terser: ^5.15.0
+ checksum: 58beaed29fe4b2783fd06ec6ea8fe0dcc5056b2bb48dab0c5109884f3d9afffe8709c5157a364a3a0b4de48c300efe4101b34645624b95129cf1c17e5821e4ed
+ languageName: node
+ linkType: hard
+
+"metro-minify-uglify@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-minify-uglify@npm:0.76.8"
+ dependencies:
+ uglify-es: ^3.1.9
+ checksum: e2c1642a5ff8f9145e282036a252d665576c65bd3d3baac1e2b05a67421f9390ef4824ea55506f92ba2854774dac028ec492cf8fb1abcdf1a97205d8d79b226b
+ languageName: node
+ linkType: hard
+
+"metro-react-native-babel-preset@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-react-native-babel-preset@npm:0.76.8"
+ dependencies:
+ "@babel/core": ^7.20.0
+ "@babel/plugin-proposal-async-generator-functions": ^7.0.0
+ "@babel/plugin-proposal-class-properties": ^7.18.0
+ "@babel/plugin-proposal-export-default-from": ^7.0.0
+ "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.0
+ "@babel/plugin-proposal-numeric-separator": ^7.0.0
+ "@babel/plugin-proposal-object-rest-spread": ^7.20.0
+ "@babel/plugin-proposal-optional-catch-binding": ^7.0.0
+ "@babel/plugin-proposal-optional-chaining": ^7.20.0
+ "@babel/plugin-syntax-dynamic-import": ^7.8.0
+ "@babel/plugin-syntax-export-default-from": ^7.0.0
+ "@babel/plugin-syntax-flow": ^7.18.0
+ "@babel/plugin-syntax-nullish-coalescing-operator": ^7.0.0
+ "@babel/plugin-syntax-optional-chaining": ^7.0.0
+ "@babel/plugin-transform-arrow-functions": ^7.0.0
+ "@babel/plugin-transform-async-to-generator": ^7.20.0
+ "@babel/plugin-transform-block-scoping": ^7.0.0
+ "@babel/plugin-transform-classes": ^7.0.0
+ "@babel/plugin-transform-computed-properties": ^7.0.0
+ "@babel/plugin-transform-destructuring": ^7.20.0
+ "@babel/plugin-transform-flow-strip-types": ^7.20.0
+ "@babel/plugin-transform-function-name": ^7.0.0
+ "@babel/plugin-transform-literals": ^7.0.0
+ "@babel/plugin-transform-modules-commonjs": ^7.0.0
+ "@babel/plugin-transform-named-capturing-groups-regex": ^7.0.0
+ "@babel/plugin-transform-parameters": ^7.0.0
+ "@babel/plugin-transform-react-display-name": ^7.0.0
+ "@babel/plugin-transform-react-jsx": ^7.0.0
+ "@babel/plugin-transform-react-jsx-self": ^7.0.0
+ "@babel/plugin-transform-react-jsx-source": ^7.0.0
+ "@babel/plugin-transform-runtime": ^7.0.0
+ "@babel/plugin-transform-shorthand-properties": ^7.0.0
+ "@babel/plugin-transform-spread": ^7.0.0
+ "@babel/plugin-transform-sticky-regex": ^7.0.0
+ "@babel/plugin-transform-typescript": ^7.5.0
+ "@babel/plugin-transform-unicode-regex": ^7.0.0
+ "@babel/template": ^7.0.0
+ babel-plugin-transform-flow-enums: ^0.0.2
+ react-refresh: ^0.4.0
+ peerDependencies:
+ "@babel/core": "*"
+ checksum: a1b65d9020326643140ed3080426d04f553fb06e3c8fd4873a7cec65144dcaa5121a5bf260946169a502dd0c9966c3295d3f42fe8dbc31d30b3b1da0815bdff9
+ languageName: node
+ linkType: hard
+
+"metro-react-native-babel-transformer@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-react-native-babel-transformer@npm:0.76.8"
+ dependencies:
+ "@babel/core": ^7.20.0
+ babel-preset-fbjs: ^3.4.0
+ hermes-parser: 0.12.0
+ metro-react-native-babel-preset: 0.76.8
+ nullthrows: ^1.1.1
+ peerDependencies:
+ "@babel/core": "*"
+ checksum: 7b7489709b8ea27e9337dd5997e143fc947a60695b2233d77a5eb3ea9c90a129d5e8308fd6af0b592ee4b037a1e5878ab1798181325e493a05249ff173299608
+ languageName: node
+ linkType: hard
+
+"metro-resolver@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-resolver@npm:0.76.8"
+ checksum: 85b45a96f01ccf25d3568b9918a81eb8ed75950e8923c9a8ddd83d7116e620af2a1fc5bf744674c8318ab5fd219e0c621a1c602d451913c054517531f98eb50b
+ languageName: node
+ linkType: hard
+
+"metro-runtime@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-runtime@npm:0.76.8"
+ dependencies:
+ "@babel/runtime": ^7.0.0
+ react-refresh: ^0.4.0
+ checksum: 5f3bf808adff99b4a29a3bc190263eaf8e4f1fb87a751344b54bf49b399f3e48be2cc256c415853c19b4b4a27d402e1bcc9f911bea8521f8ac325f8fddc7d631
+ languageName: node
+ linkType: hard
+
+"metro-source-map@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-source-map@npm:0.76.8"
+ dependencies:
+ "@babel/traverse": ^7.20.0
+ "@babel/types": ^7.20.0
+ invariant: ^2.2.4
+ metro-symbolicate: 0.76.8
+ nullthrows: ^1.1.1
+ ob1: 0.76.8
+ source-map: ^0.5.6
+ vlq: ^1.0.0
+ checksum: 01134a3b73f9f67f32debff665d2a3815b84fa7f8627d82d7c343746b7fa357693f7b93e8fd6bcdc4e75a9f59c387c51edb456ad82c7e0c2e20fbca7f0ea6765
+ languageName: node
+ linkType: hard
+
+"metro-symbolicate@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-symbolicate@npm:0.76.8"
+ dependencies:
+ invariant: ^2.2.4
+ metro-source-map: 0.76.8
+ nullthrows: ^1.1.1
+ source-map: ^0.5.6
+ through2: ^2.0.1
+ vlq: ^1.0.0
+ bin:
+ metro-symbolicate: src/index.js
+ checksum: 87988bbb255fd3d91d31cedc9b20eb804cd91ca6b66b66d48e4c11a361f09c71e113c7ce6191d83563591400cd31fc9a27a659fdb7fc83bf6e346ca427880af1
+ languageName: node
+ linkType: hard
+
+"metro-transform-plugins@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-transform-plugins@npm:0.76.8"
+ dependencies:
+ "@babel/core": ^7.20.0
+ "@babel/generator": ^7.20.0
+ "@babel/template": ^7.0.0
+ "@babel/traverse": ^7.20.0
+ nullthrows: ^1.1.1
+ checksum: 3db7b3ac809409042e7c6a79e9b6dba61d4e0c4a66f2f0bca3b3cadbf413e9cc3dc4d7f89e79c7a65f19ca6f3c3025c819709fc545a677532293805dd9025fa7
+ languageName: node
+ linkType: hard
+
+"metro-transform-worker@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro-transform-worker@npm:0.76.8"
+ dependencies:
+ "@babel/core": ^7.20.0
+ "@babel/generator": ^7.20.0
+ "@babel/parser": ^7.20.0
+ "@babel/types": ^7.20.0
+ babel-preset-fbjs: ^3.4.0
+ metro: 0.76.8
+ metro-babel-transformer: 0.76.8
+ metro-cache: 0.76.8
+ metro-cache-key: 0.76.8
+ metro-source-map: 0.76.8
+ metro-transform-plugins: 0.76.8
+ nullthrows: ^1.1.1
+ checksum: 21935271fcd89696dcb837fd3b7efca96b1f36372d98628349496fe1c29d74763bdbdf05946944ecd799beb4c6ea4cd8058e0ce3175b2ba625e957de90dbc440
+ languageName: node
+ linkType: hard
+
+"metro@npm:0.76.8":
+ version: 0.76.8
+ resolution: "metro@npm:0.76.8"
+ dependencies:
+ "@babel/code-frame": ^7.0.0
+ "@babel/core": ^7.20.0
+ "@babel/generator": ^7.20.0
+ "@babel/parser": ^7.20.0
+ "@babel/template": ^7.0.0
+ "@babel/traverse": ^7.20.0
+ "@babel/types": ^7.20.0
+ accepts: ^1.3.7
+ async: ^3.2.2
+ chalk: ^4.0.0
+ ci-info: ^2.0.0
+ connect: ^3.6.5
+ debug: ^2.2.0
+ denodeify: ^1.2.1
+ error-stack-parser: ^2.0.6
+ graceful-fs: ^4.2.4
+ hermes-parser: 0.12.0
+ image-size: ^1.0.2
+ invariant: ^2.2.4
+ jest-worker: ^27.2.0
+ jsc-safe-url: ^0.2.2
+ lodash.throttle: ^4.1.1
+ metro-babel-transformer: 0.76.8
+ metro-cache: 0.76.8
+ metro-cache-key: 0.76.8
+ metro-config: 0.76.8
+ metro-core: 0.76.8
+ metro-file-map: 0.76.8
+ metro-inspector-proxy: 0.76.8
+ metro-minify-terser: 0.76.8
+ metro-minify-uglify: 0.76.8
+ metro-react-native-babel-preset: 0.76.8
+ metro-resolver: 0.76.8
+ metro-runtime: 0.76.8
+ metro-source-map: 0.76.8
+ metro-symbolicate: 0.76.8
+ metro-transform-plugins: 0.76.8
+ metro-transform-worker: 0.76.8
+ mime-types: ^2.1.27
+ node-fetch: ^2.2.0
+ nullthrows: ^1.1.1
+ rimraf: ^3.0.2
+ serialize-error: ^2.1.0
+ source-map: ^0.5.6
+ strip-ansi: ^6.0.0
+ throat: ^5.0.0
+ ws: ^7.5.1
+ yargs: ^17.6.2
+ bin:
+ metro: src/cli.js
+ checksum: 848ab2857de61601df933faa8abe844343fdf5e335a3cbf906cddaaece8550259393aa1b9aa9c8eed75ec6eebf2c6203095880e8919b38034baf03081291af63
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
+ version: 4.0.5
+ resolution: "micromatch@npm:4.0.5"
+ dependencies:
+ braces: ^3.0.2
+ picomatch: ^2.3.1
+ checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc
+ languageName: node
+ linkType: hard
+
+"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2":
+ version: 1.52.0
+ resolution: "mime-db@npm:1.52.0"
+ checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f
+ languageName: node
+ linkType: hard
+
+"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
+ version: 2.1.35
+ resolution: "mime-types@npm:2.1.35"
+ dependencies:
+ mime-db: 1.52.0
+ checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836
+ languageName: node
+ linkType: hard
+
+"mime@npm:1.6.0":
+ version: 1.6.0
+ resolution: "mime@npm:1.6.0"
+ bin:
+ mime: cli.js
+ checksum: fef25e39263e6d207580bdc629f8872a3f9772c923c7f8c7e793175cee22777bbe8bba95e5d509a40aaa292d8974514ce634ae35769faa45f22d17edda5e8557
+ languageName: node
+ linkType: hard
+
+"mime@npm:^2.4.1, mime@npm:^2.4.4":
+ version: 2.6.0
+ resolution: "mime@npm:2.6.0"
+ bin:
+ mime: cli.js
+ checksum: 1497ba7b9f6960694268a557eae24b743fd2923da46ec392b042469f4b901721ba0adcf8b0d3c2677839d0e243b209d76e5edcbd09cfdeffa2dfb6bb4df4b862
+ languageName: node
+ linkType: hard
+
+"mimic-fn@npm:^1.0.0":
+ version: 1.2.0
+ resolution: "mimic-fn@npm:1.2.0"
+ checksum: 69c08205156a1f4906d9c46f9b4dc08d18a50176352e77fdeb645cedfe9f20c0b19865d465bd2dec27a5c432347f24dc07fc3695e11159d193f892834233e939
+ languageName: node
+ linkType: hard
+
+"mimic-fn@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "mimic-fn@npm:2.1.0"
+ checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:2 || 3, minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1":
+ version: 3.1.2
+ resolution: "minimatch@npm:3.1.2"
+ dependencies:
+ brace-expansion: ^1.1.7
+ checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^5.0.1":
+ version: 5.1.6
+ resolution: "minimatch@npm:5.1.6"
+ dependencies:
+ brace-expansion: ^2.0.1
+ checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^9.0.1":
+ version: 9.0.3
+ resolution: "minimatch@npm:9.0.3"
+ dependencies:
+ brace-expansion: ^2.0.1
+ checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5
+ languageName: node
+ linkType: hard
+
+"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
+ version: 1.2.8
+ resolution: "minimist@npm:1.2.8"
+ checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0
+ languageName: node
+ linkType: hard
+
+"minipass-collect@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "minipass-collect@npm:1.0.2"
+ dependencies:
+ minipass: ^3.0.0
+ checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10
+ languageName: node
+ linkType: hard
+
+"minipass-fetch@npm:^3.0.0":
+ version: 3.0.4
+ resolution: "minipass-fetch@npm:3.0.4"
+ dependencies:
+ encoding: ^0.1.13
+ minipass: ^7.0.3
+ minipass-sized: ^1.0.3
+ minizlib: ^2.1.2
+ dependenciesMeta:
+ encoding:
+ optional: true
+ checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a
+ languageName: node
+ linkType: hard
+
+"minipass-flush@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "minipass-flush@npm:1.0.5"
+ dependencies:
+ minipass: ^3.0.0
+ checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf
+ languageName: node
+ linkType: hard
+
+"minipass-pipeline@npm:^1.2.2, minipass-pipeline@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "minipass-pipeline@npm:1.2.4"
+ dependencies:
+ minipass: ^3.0.0
+ checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b
+ languageName: node
+ linkType: hard
+
+"minipass-sized@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "minipass-sized@npm:1.0.3"
+ dependencies:
+ minipass: ^3.0.0
+ checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60
+ languageName: node
+ linkType: hard
+
+"minipass@npm:3.1.6":
+ version: 3.1.6
+ resolution: "minipass@npm:3.1.6"
+ dependencies:
+ yallist: ^4.0.0
+ checksum: 57a04041413a3531a65062452cb5175f93383ef245d6f4a2961d34386eb9aa8ac11ac7f16f791f5e8bbaf1dfb1ef01596870c88e8822215db57aa591a5bb0a77
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^3.0.0, minipass@npm:^3.1.1":
+ version: 3.3.6
+ resolution: "minipass@npm:3.3.6"
+ dependencies:
+ yallist: ^4.0.0
+ checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "minipass@npm:5.0.0"
+ checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3":
+ version: 7.0.4
+ resolution: "minipass@npm:7.0.4"
+ checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21
+ languageName: node
+ linkType: hard
+
+"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "minizlib@npm:2.1.2"
+ dependencies:
+ minipass: ^3.0.0
+ yallist: ^4.0.0
+ checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:^0.5.1, mkdirp@npm:~0.5.1":
+ version: 0.5.6
+ resolution: "mkdirp@npm:0.5.6"
+ dependencies:
+ minimist: ^1.2.6
+ bin:
+ mkdirp: bin/cmd.js
+ checksum: 0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "mkdirp@npm:1.0.4"
+ bin:
+ mkdirp: bin/cmd.js
+ checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f
+ languageName: node
+ linkType: hard
+
+"ms@npm:2.0.0":
+ version: 2.0.0
+ resolution: "ms@npm:2.0.0"
+ checksum: 0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4
+ languageName: node
+ linkType: hard
+
+"ms@npm:2.1.2":
+ version: 2.1.2
+ resolution: "ms@npm:2.1.2"
+ checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f
+ languageName: node
+ linkType: hard
+
+"ms@npm:2.1.3, ms@npm:^2.1.1":
+ version: 2.1.3
+ resolution: "ms@npm:2.1.3"
+ checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
+ languageName: node
+ linkType: hard
+
+"mv@npm:~2":
+ version: 2.1.1
+ resolution: "mv@npm:2.1.1"
+ dependencies:
+ mkdirp: ~0.5.1
+ ncp: ~2.0.0
+ rimraf: ~2.4.0
+ checksum: 59d4b5ebff6c265b452d6630ae8873d573c82e36fdc1ed9c34c7901a0bf2d3d357022f49db8e9bded127b743f709c7ef7befec249a2b3967578d649a8029aa06
+ languageName: node
+ linkType: hard
+
+"mz@npm:^2.7.0":
+ version: 2.7.0
+ resolution: "mz@npm:2.7.0"
+ dependencies:
+ any-promise: ^1.0.0
+ object-assign: ^4.0.1
+ thenify-all: ^1.0.0
+ checksum: 8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87
+ languageName: node
+ linkType: hard
+
+"nanoid@npm:^3.3.6":
+ version: 3.3.7
+ resolution: "nanoid@npm:3.3.7"
+ bin:
+ nanoid: bin/nanoid.cjs
+ checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2
+ languageName: node
+ linkType: hard
+
+"ncp@npm:~2.0.0":
+ version: 2.0.0
+ resolution: "ncp@npm:2.0.0"
+ bin:
+ ncp: ./bin/ncp
+ checksum: ea9b19221da1d1c5529bdb9f8e85c9d191d156bcaae408cce5e415b7fbfd8744c288e792bd7faf1fe3b70fd44c74e22f0d43c39b209bc7ac1fb8016f70793a16
+ languageName: node
+ linkType: hard
+
+"negotiator@npm:0.6.3, negotiator@npm:^0.6.3":
+ version: 0.6.3
+ resolution: "negotiator@npm:0.6.3"
+ checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9
+ languageName: node
+ linkType: hard
+
+"neo-async@npm:^2.5.0":
+ version: 2.6.2
+ resolution: "neo-async@npm:2.6.2"
+ checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9
+ languageName: node
+ linkType: hard
+
+"nested-error-stacks@npm:~2.0.1":
+ version: 2.0.1
+ resolution: "nested-error-stacks@npm:2.0.1"
+ checksum: 8430d7d80ad69b1add2992ee2992a363db6c1a26a54740963bc99a004c5acb1d2a67049397062eab2caa3a312b4da89a0b85de3bdf82d7d472a6baa166311fe6
+ languageName: node
+ linkType: hard
+
+"nice-try@npm:^1.0.4":
+ version: 1.0.5
+ resolution: "nice-try@npm:1.0.5"
+ checksum: 0b4af3b5bb5d86c289f7a026303d192a7eb4417231fe47245c460baeabae7277bcd8fd9c728fb6bd62c30b3e15cd6620373e2cf33353b095d8b403d3e8a15aff
+ languageName: node
+ linkType: hard
+
+"nocache@npm:^3.0.1":
+ version: 3.0.4
+ resolution: "nocache@npm:3.0.4"
+ checksum: 6be9ee67eb561ecedc56d805c024c0fda55b9836ecba659c720073b067929aa4fe04bb7121480e004c9cf52989e62d8720f29a7fe0269f1a4941221a1e4be1c2
+ languageName: node
+ linkType: hard
+
+"node-abort-controller@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "node-abort-controller@npm:3.1.1"
+ checksum: 2c340916af9710328b11c0828223fc65ba320e0d082214a211311bf64c2891028e42ef276b9799188c4ada9e6e1c54cf7a0b7c05dd9d59fcdc8cd633304c8047
+ languageName: node
+ linkType: hard
+
+"node-dir@npm:^0.1.17":
+ version: 0.1.17
+ resolution: "node-dir@npm:0.1.17"
+ dependencies:
+ minimatch: ^3.0.2
+ checksum: 29de9560e52cdac8d3f794d38d782f6799e13d4d11aaf96d3da8c28458e1c5e33bb5f8edfb42dc34172ec5516c50c5b8850c9e1526542616757a969267263328
+ languageName: node
+ linkType: hard
+
+"node-fetch@npm:^2.2.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7":
+ version: 2.7.0
+ resolution: "node-fetch@npm:2.7.0"
+ dependencies:
+ whatwg-url: ^5.0.0
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ checksum: d76d2f5edb451a3f05b15115ec89fc6be39de37c6089f1b6368df03b91e1633fd379a7e01b7ab05089a25034b2023d959b47e59759cb38d88341b2459e89d6e5
+ languageName: node
+ linkType: hard
+
+"node-forge@npm:^1.2.1, node-forge@npm:^1.3.1":
+ version: 1.3.1
+ resolution: "node-forge@npm:1.3.1"
+ checksum: 08fb072d3d670599c89a1704b3e9c649ff1b998256737f0e06fbd1a5bf41cae4457ccaee32d95052d80bbafd9ffe01284e078c8071f0267dc9744e51c5ed42a9
+ languageName: node
+ linkType: hard
+
+"node-gyp@npm:latest":
+ version: 10.0.1
+ resolution: "node-gyp@npm:10.0.1"
+ dependencies:
+ env-paths: ^2.2.0
+ exponential-backoff: ^3.1.1
+ glob: ^10.3.10
+ graceful-fs: ^4.2.6
+ make-fetch-happen: ^13.0.0
+ nopt: ^7.0.0
+ proc-log: ^3.0.0
+ semver: ^7.3.5
+ tar: ^6.1.2
+ which: ^4.0.0
+ bin:
+ node-gyp: bin/node-gyp.js
+ checksum: 60a74e66d364903ce02049966303a57f898521d139860ac82744a5fdd9f7b7b3b61f75f284f3bfe6e6add3b8f1871ce305a1d41f775c7482de837b50c792223f
+ languageName: node
+ linkType: hard
+
+"node-int64@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "node-int64@npm:0.4.0"
+ checksum: d0b30b1ee6d961851c60d5eaa745d30b5c95d94bc0e74b81e5292f7c42a49e3af87f1eb9e89f59456f80645d679202537de751b7d72e9e40ceea40c5e449057e
+ languageName: node
+ linkType: hard
+
+"node-releases@npm:^2.0.13":
+ version: 2.0.13
+ resolution: "node-releases@npm:2.0.13"
+ checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3
+ languageName: node
+ linkType: hard
+
+"node-stream-zip@npm:^1.9.1":
+ version: 1.15.0
+ resolution: "node-stream-zip@npm:1.15.0"
+ checksum: 0b73ffbb09490e479c8f47038d7cba803e6242618fbc1b71c26782009d388742ed6fb5ce6e9d31f528b410249e7eb1c6e7534e9d3792a0cafd99813ac5a35107
+ languageName: node
+ linkType: hard
+
+"nopt@npm:^7.0.0":
+ version: 7.2.0
+ resolution: "nopt@npm:7.2.0"
+ dependencies:
+ abbrev: ^2.0.0
+ bin:
+ nopt: bin/nopt.js
+ checksum: a9c0f57fb8cb9cc82ae47192ca2b7ef00e199b9480eed202482c962d61b59a7fbe7541920b2a5839a97b42ee39e288c0aed770e38057a608d7f579389dfde410
+ languageName: node
+ linkType: hard
+
+"normalize-path@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "normalize-path@npm:3.0.0"
+ checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20
+ languageName: node
+ linkType: hard
+
+"npm-package-arg@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "npm-package-arg@npm:7.0.0"
+ dependencies:
+ hosted-git-info: ^3.0.2
+ osenv: ^0.1.5
+ semver: ^5.6.0
+ validate-npm-package-name: ^3.0.0
+ checksum: 5b777c1177c262c2b3ea27248b77aeda401b9d6a79f6c17d32bc7be020a1daadfcb812d5a44b34977f60b220efc1590e7b84b277e4f6cb0a396b01fad06c5f33
+ languageName: node
+ linkType: hard
+
+"npm-run-path@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "npm-run-path@npm:2.0.2"
+ dependencies:
+ path-key: ^2.0.0
+ checksum: acd5ad81648ba4588ba5a8effb1d98d2b339d31be16826a118d50f182a134ac523172101b82eab1d01cb4c2ba358e857d54cfafd8163a1ffe7bd52100b741125
+ 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: ^3.0.0
+ checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23
+ languageName: node
+ linkType: hard
+
+"nullthrows@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "nullthrows@npm:1.1.1"
+ checksum: 10806b92121253eb1b08ecf707d92480f5331ba8ae5b23fa3eb0548ad24196eb797ed47606153006568a5733ea9e528a3579f21421f7828e09e7756f4bdd386f
+ languageName: node
+ linkType: hard
+
+"ob1@npm:0.76.8":
+ version: 0.76.8
+ resolution: "ob1@npm:0.76.8"
+ checksum: 3feb035a0d33bd2c2d982bdd4877a10375bb71b0415cd960649f6e1faf570ac93aeb0246b1559588e722af866d02274d5abd4b601b31088feb66bbe5d9ecde25
+ languageName: node
+ linkType: hard
+
+"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "object-assign@npm:4.1.1"
+ checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
+ languageName: node
+ linkType: hard
+
+"object-inspect@npm:^1.9.0":
+ version: 1.13.1
+ resolution: "object-inspect@npm:1.13.1"
+ checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f
+ languageName: node
+ linkType: hard
+
+"on-finished@npm:2.4.1":
+ version: 2.4.1
+ resolution: "on-finished@npm:2.4.1"
+ dependencies:
+ ee-first: 1.1.1
+ checksum: d20929a25e7f0bb62f937a425b5edeb4e4cde0540d77ba146ec9357f00b0d497cdb3b9b05b9c8e46222407d1548d08166bff69cc56dfa55ba0e4469228920ff0
+ languageName: node
+ linkType: hard
+
+"on-finished@npm:~2.3.0":
+ version: 2.3.0
+ resolution: "on-finished@npm:2.3.0"
+ dependencies:
+ ee-first: 1.1.1
+ checksum: 1db595bd963b0124d6fa261d18320422407b8f01dc65863840f3ddaaf7bcad5b28ff6847286703ca53f4ec19595bd67a2f1253db79fc4094911ec6aa8df1671b
+ languageName: node
+ linkType: hard
+
+"on-headers@npm:~1.0.2":
+ version: 1.0.2
+ resolution: "on-headers@npm:1.0.2"
+ checksum: 2bf13467215d1e540a62a75021e8b318a6cfc5d4fc53af8e8f84ad98dbcea02d506c6d24180cd62e1d769c44721ba542f3154effc1f7579a8288c9f7873ed8e5
+ languageName: node
+ linkType: hard
+
+"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "once@npm:1.4.0"
+ dependencies:
+ wrappy: 1
+ checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68
+ languageName: node
+ linkType: hard
+
+"onetime@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "onetime@npm:2.0.1"
+ dependencies:
+ mimic-fn: ^1.0.0
+ checksum: bb44015ac7a525d0fb43b029a583d4ad359834632b4424ca209b438aacf6d669dda81b5edfbdb42c22636e607b276ba5589f46694a729e3bc27948ce26f4cc1a
+ 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: ^2.1.0
+ checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34
+ languageName: node
+ linkType: hard
+
+"open@npm:^6.2.0":
+ version: 6.4.0
+ resolution: "open@npm:6.4.0"
+ dependencies:
+ is-wsl: ^1.1.0
+ checksum: e5037facf3e03ed777537db3e2511ada37f351c4394e1dadccf9cac11d63b28447ae8b495b7b138659910fd78d918bafed546e47163673c4a4e43dbb5ac53c5d
+ languageName: node
+ linkType: hard
+
+"open@npm:^8.0.4, open@npm:^8.3.0":
+ version: 8.4.2
+ resolution: "open@npm:8.4.2"
+ dependencies:
+ define-lazy-prop: ^2.0.0
+ is-docker: ^2.1.1
+ is-wsl: ^2.2.0
+ checksum: 6388bfff21b40cb9bd8f913f9130d107f2ed4724ea81a8fd29798ee322b361ca31fa2cdfb491a5c31e43a3996cfe9566741238c7a741ada8d7af1cb78d85cf26
+ languageName: node
+ linkType: hard
+
+"ora@npm:3.4.0":
+ version: 3.4.0
+ resolution: "ora@npm:3.4.0"
+ dependencies:
+ chalk: ^2.4.2
+ cli-cursor: ^2.1.0
+ cli-spinners: ^2.0.0
+ log-symbols: ^2.2.0
+ strip-ansi: ^5.2.0
+ wcwidth: ^1.0.1
+ checksum: f1f8e7f290b766276dcd19ddf2159a1971b1ec37eec4a5556b8f5e4afbe513a965ed65c183d38956724263b6a20989b3d8fb71b95ac4a2d6a01db2f1ed8899e4
+ languageName: node
+ linkType: hard
+
+"ora@npm:^5.4.1":
+ version: 5.4.1
+ resolution: "ora@npm:5.4.1"
+ dependencies:
+ bl: ^4.1.0
+ chalk: ^4.1.0
+ cli-cursor: ^3.1.0
+ cli-spinners: ^2.5.0
+ is-interactive: ^1.0.0
+ is-unicode-supported: ^0.1.0
+ log-symbols: ^4.1.0
+ strip-ansi: ^6.0.0
+ wcwidth: ^1.0.1
+ checksum: 28d476ee6c1049d68368c0dc922e7225e3b5600c3ede88fade8052837f9ed342625fdaa84a6209302587c8ddd9b664f71f0759833cbdb3a4cf81344057e63c63
+ languageName: node
+ linkType: hard
+
+"os-homedir@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "os-homedir@npm:1.0.2"
+ checksum: af609f5a7ab72de2f6ca9be6d6b91a599777afc122ac5cad47e126c1f67c176fe9b52516b9eeca1ff6ca0ab8587fe66208bc85e40a3940125f03cdb91408e9d2
+ languageName: node
+ linkType: hard
+
+"os-tmpdir@npm:^1.0.0, os-tmpdir@npm:~1.0.2":
+ version: 1.0.2
+ resolution: "os-tmpdir@npm:1.0.2"
+ checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d
+ languageName: node
+ linkType: hard
+
+"osenv@npm:^0.1.5":
+ version: 0.1.5
+ resolution: "osenv@npm:0.1.5"
+ dependencies:
+ os-homedir: ^1.0.0
+ os-tmpdir: ^1.0.0
+ checksum: 779d261920f2a13e5e18cf02446484f12747d3f2ff82280912f52b213162d43d312647a40c332373cbccd5e3fb8126915d3bfea8dde4827f70f82da76e52d359
+ languageName: node
+ linkType: hard
+
+"p-finally@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "p-finally@npm:1.0.0"
+ checksum: 93a654c53dc805dd5b5891bab16eb0ea46db8f66c4bfd99336ae929323b1af2b70a8b0654f8f1eae924b2b73d037031366d645f1fd18b3d30cbd15950cc4b1d4
+ 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: ^2.0.0
+ checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^3.0.2":
+ version: 3.1.0
+ resolution: "p-limit@npm:3.1.0"
+ dependencies:
+ yocto-queue: ^0.1.0
+ checksum: 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: ^2.0.0
+ checksum: 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: ^2.2.0
+ checksum: 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: ^3.0.2
+ checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3
+ languageName: node
+ linkType: hard
+
+"p-map@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "p-map@npm:4.0.0"
+ dependencies:
+ aggregate-error: ^3.0.0
+ checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c
+ languageName: node
+ linkType: hard
+
+"p-try@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "p-try@npm:2.2.0"
+ checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae
+ languageName: node
+ linkType: hard
+
+"parse-json@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "parse-json@npm:4.0.0"
+ dependencies:
+ error-ex: ^1.3.1
+ json-parse-better-errors: ^1.0.1
+ checksum: 0fe227d410a61090c247e34fa210552b834613c006c2c64d9a05cfe9e89cf8b4246d1246b1a99524b53b313e9ac024438d0680f67e33eaed7e6f38db64cfe7b5
+ languageName: node
+ linkType: hard
+
+"parse-png@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "parse-png@npm:2.1.0"
+ dependencies:
+ pngjs: ^3.3.0
+ checksum: 0c6b6c42c8830cd16f6f9e9aedafd53111c0ad2ff350ba79c629996887567558f5639ad0c95764f96f7acd1f9ff63d4ac73737e80efa3911a6de9839ee520c96
+ languageName: node
+ linkType: hard
+
+"parseurl@npm:~1.3.3":
+ version: 1.3.3
+ resolution: "parseurl@npm:1.3.3"
+ checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2
+ languageName: node
+ linkType: hard
+
+"password-prompt@npm:^1.0.4":
+ version: 1.1.3
+ resolution: "password-prompt@npm:1.1.3"
+ dependencies:
+ ansi-escapes: ^4.3.2
+ cross-spawn: ^7.0.3
+ checksum: 9a5fdbd7360db896809704c141acfe9258450a9982c4c177b82a1e6c69d204800cdab6064abac6736bd7d31142c80108deedf4484146594747cb3ce776816e97
+ languageName: node
+ linkType: hard
+
+"path-browserify@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "path-browserify@npm:1.0.1"
+ checksum: c6d7fa376423fe35b95b2d67990060c3ee304fc815ff0a2dc1c6c3cfaff2bd0d572ee67e18f19d0ea3bbe32e8add2a05021132ac40509416459fffee35200699
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "path-exists@npm:3.0.0"
+ checksum: 96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-exists@npm:4.0.0"
+ checksum: 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: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^2.0.0, path-key@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "path-key@npm:2.0.1"
+ checksum: f7ab0ad42fe3fb8c7f11d0c4f849871e28fbd8e1add65c370e422512fc5887097b9cf34d09c1747d45c942a8c1e26468d6356e2df3f740bf177ab8ca7301ebfd
+ 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: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020
+ languageName: node
+ linkType: hard
+
+"path-parse@npm:^1.0.5, path-parse@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a
+ languageName: node
+ linkType: hard
+
+"path-scurry@npm:^1.10.1":
+ version: 1.10.1
+ resolution: "path-scurry@npm:1.10.1"
+ dependencies:
+ lru-cache: ^9.1.1 || ^10.0.0
+ minipass: ^5.0.0 || ^6.0.2 || ^7.0.0
+ checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90
+ languageName: node
+ linkType: hard
+
+"path-type@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-type@npm:4.0.0"
+ checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45
+ languageName: node
+ linkType: hard
+
+"picocolors@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "picocolors@npm:1.0.0"
+ checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "picomatch@npm:2.3.1"
+ checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf
+ languageName: node
+ linkType: hard
+
+"pify@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "pify@npm:4.0.1"
+ checksum: 9c4e34278cb09987685fa5ef81499c82546c033713518f6441778fbec623fc708777fe8ac633097c72d88470d5963094076c7305cafc7ad340aae27cfacd856b
+ languageName: node
+ linkType: hard
+
+"pirates@npm:^4.0.1, pirates@npm:^4.0.5":
+ version: 4.0.6
+ resolution: "pirates@npm:4.0.6"
+ checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6
+ languageName: node
+ linkType: hard
+
+"pkg-dir@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "pkg-dir@npm:3.0.0"
+ dependencies:
+ find-up: ^3.0.0
+ checksum: 70c9476ffefc77552cc6b1880176b71ad70bfac4f367604b2b04efd19337309a4eec985e94823271c7c0e83946fa5aeb18cd360d15d10a5d7533e19344bfa808
+ languageName: node
+ linkType: hard
+
+"pkg-up@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "pkg-up@npm:3.1.0"
+ dependencies:
+ find-up: ^3.0.0
+ checksum: 5bac346b7c7c903613c057ae3ab722f320716199d753f4a7d053d38f2b5955460f3e6ab73b4762c62fd3e947f58e04f1343e92089e7bb6091c90877406fcd8c8
+ languageName: node
+ linkType: hard
+
+"plist@npm:^3.0.5":
+ version: 3.1.0
+ resolution: "plist@npm:3.1.0"
+ dependencies:
+ "@xmldom/xmldom": ^0.8.8
+ base64-js: ^1.5.1
+ xmlbuilder: ^15.1.1
+ checksum: c8ea013da8646d4c50dff82f9be39488054621cc229957621bb00add42b5d4ce3657cf58d4b10c50f7dea1a81118f825838f838baeb4e6f17fab453ecf91d424
+ languageName: node
+ linkType: hard
+
+"pngjs@npm:^3.3.0":
+ version: 3.4.0
+ resolution: "pngjs@npm:3.4.0"
+ checksum: 8bd40bd698abd16b72c97b85cb858c80894fbedc76277ce72a784aa441e14795d45d9856e97333ca469b34b67528860ffc8a7317ca6beea349b645366df00bcd
+ languageName: node
+ linkType: hard
+
+"postcss@npm:~8.4.21":
+ version: 8.4.31
+ resolution: "postcss@npm:8.4.31"
+ dependencies:
+ nanoid: ^3.3.6
+ picocolors: ^1.0.0
+ source-map-js: ^1.0.2
+ checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea
+ languageName: node
+ linkType: hard
+
+"pretty-bytes@npm:5.6.0":
+ version: 5.6.0
+ resolution: "pretty-bytes@npm:5.6.0"
+ checksum: 9c082500d1e93434b5b291bd651662936b8bd6204ec9fa17d563116a192d6d86b98f6d328526b4e8d783c07d5499e2614a807520249692da9ec81564b2f439cd
+ languageName: node
+ linkType: hard
+
+"pretty-format@npm:^26.5.2, pretty-format@npm:^26.6.2":
+ version: 26.6.2
+ resolution: "pretty-format@npm:26.6.2"
+ dependencies:
+ "@jest/types": ^26.6.2
+ ansi-regex: ^5.0.0
+ ansi-styles: ^4.0.0
+ react-is: ^17.0.1
+ checksum: e3b808404d7e1519f0df1aa1f25cee0054ab475775c6b2b8c5568ff23194a92d54bf93274139b6f584ca70fd773be4eaa754b0e03f12bb0a8d1426b07f079976
+ languageName: node
+ linkType: hard
+
+"pretty-format@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "pretty-format@npm:29.7.0"
+ dependencies:
+ "@jest/schemas": ^29.6.3
+ ansi-styles: ^5.0.0
+ react-is: ^18.0.0
+ checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6
+ languageName: node
+ linkType: hard
+
+"proc-log@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "proc-log@npm:3.0.0"
+ checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02
+ languageName: node
+ linkType: hard
+
+"process-nextick-args@npm:~2.0.0":
+ version: 2.0.1
+ resolution: "process-nextick-args@npm:2.0.1"
+ checksum: 1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf
+ languageName: node
+ linkType: hard
+
+"progress@npm:2.0.3":
+ version: 2.0.3
+ resolution: "progress@npm:2.0.3"
+ checksum: f67403fe7b34912148d9252cb7481266a354bd99ce82c835f79070643bb3c6583d10dbcfda4d41e04bbc1d8437e9af0fb1e1f2135727878f5308682a579429b7
+ languageName: node
+ linkType: hard
+
+"promise-inflight@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "promise-inflight@npm:1.0.1"
+ checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981
+ languageName: node
+ linkType: hard
+
+"promise-retry@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "promise-retry@npm:2.0.1"
+ dependencies:
+ err-code: ^2.0.2
+ retry: ^0.12.0
+ checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429
+ languageName: node
+ linkType: hard
+
+"promise@npm:^7.1.1":
+ version: 7.3.1
+ resolution: "promise@npm:7.3.1"
+ dependencies:
+ asap: ~2.0.3
+ checksum: 475bb069130179fbd27ed2ab45f26d8862376a137a57314cf53310bdd85cc986a826fd585829be97ebc0aaf10e9d8e68be1bfe5a4a0364144b1f9eedfa940cf1
+ languageName: node
+ linkType: hard
+
+"promise@npm:^8.3.0":
+ version: 8.3.0
+ resolution: "promise@npm:8.3.0"
+ dependencies:
+ asap: ~2.0.6
+ checksum: a69f0ddbddf78ffc529cffee7ad950d307347615970564b17988ce43fbe767af5c738a9439660b24a9a8cbea106c0dcbb6c2b20e23b7e96a8e89e5c2679e94d5
+ languageName: node
+ linkType: hard
+
+"prompts@npm:^2.3.2, prompts@npm:^2.4.0":
+ version: 2.4.2
+ resolution: "prompts@npm:2.4.2"
+ dependencies:
+ kleur: ^3.0.3
+ sisteransi: ^1.0.5
+ checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d
+ languageName: node
+ linkType: hard
+
+"prop-types@npm:*":
+ version: 15.8.1
+ resolution: "prop-types@npm:15.8.1"
+ dependencies:
+ loose-envify: ^1.4.0
+ object-assign: ^4.1.1
+ react-is: ^16.13.1
+ checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459
+ languageName: node
+ linkType: hard
+
+"pump@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "pump@npm:3.0.0"
+ dependencies:
+ end-of-stream: ^1.1.0
+ once: ^1.3.1
+ checksum: e42e9229fba14732593a718b04cb5e1cfef8254544870997e0ecd9732b189a48e1256e4e5478148ecb47c8511dca2b09eae56b4d0aad8009e6fac8072923cfc9
+ languageName: node
+ linkType: hard
+
+"qrcode-terminal@npm:0.11.0":
+ version: 0.11.0
+ resolution: "qrcode-terminal@npm:0.11.0"
+ bin:
+ qrcode-terminal: ./bin/qrcode-terminal.js
+ checksum: ad146ea1e339e1745402a3ea131631f64f40f0d1ff9cc6bd9c21677feaa1ca6dcd32eadf188fd3febdab8bf6191b3d24d533454903a72543645a72820e4d324c
+ languageName: node
+ linkType: hard
+
+"qs@npm:6.11.0":
+ version: 6.11.0
+ resolution: "qs@npm:6.11.0"
+ dependencies:
+ side-channel: ^1.0.4
+ checksum: 6e1f29dd5385f7488ec74ac7b6c92f4d09a90408882d0c208414a34dd33badc1a621019d4c799a3df15ab9b1d0292f97c1dd71dc7c045e69f81a8064e5af7297
+ languageName: node
+ linkType: hard
+
+"querystringify@npm:^2.1.1":
+ version: 2.2.0
+ resolution: "querystringify@npm:2.2.0"
+ checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15
+ languageName: node
+ linkType: hard
+
+"queue-microtask@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "queue-microtask@npm:1.2.3"
+ checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4
+ languageName: node
+ linkType: hard
+
+"queue@npm:6.0.2":
+ version: 6.0.2
+ resolution: "queue@npm:6.0.2"
+ dependencies:
+ inherits: ~2.0.3
+ checksum: ebc23639248e4fe40a789f713c20548e513e053b3dc4924b6cb0ad741e3f264dcff948225c8737834dd4f9ec286dbc06a1a7c13858ea382d9379f4303bcc0916
+ languageName: node
+ linkType: hard
+
+"range-parser@npm:~1.2.1":
+ version: 1.2.1
+ resolution: "range-parser@npm:1.2.1"
+ checksum: 0a268d4fea508661cf5743dfe3d5f47ce214fd6b7dec1de0da4d669dd4ef3d2144468ebe4179049eff253d9d27e719c88dae55be64f954e80135a0cada804ec9
+ languageName: node
+ linkType: hard
+
+"raw-body@npm:2.5.2":
+ version: 2.5.2
+ resolution: "raw-body@npm:2.5.2"
+ dependencies:
+ bytes: 3.1.2
+ http-errors: 2.0.0
+ iconv-lite: 0.4.24
+ unpipe: 1.0.0
+ checksum: ba1583c8d8a48e8fbb7a873fdbb2df66ea4ff83775421bfe21ee120140949ab048200668c47d9ae3880012f6e217052690628cf679ddfbd82c9fc9358d574676
+ languageName: node
+ linkType: hard
+
+"rc@npm:~1.2.7":
+ version: 1.2.8
+ resolution: "rc@npm:1.2.8"
+ dependencies:
+ deep-extend: ^0.6.0
+ ini: ~1.3.0
+ minimist: ^1.2.0
+ strip-json-comments: ~2.0.1
+ bin:
+ rc: ./cli.js
+ checksum: 2e26e052f8be2abd64e6d1dabfbd7be03f80ec18ccbc49562d31f617d0015fbdbcf0f9eed30346ea6ab789e0fdfe4337f033f8016efdbee0df5354751842080e
+ languageName: node
+ linkType: hard
+
+"react-devtools-core@npm:^4.27.2":
+ version: 4.28.5
+ resolution: "react-devtools-core@npm:4.28.5"
+ dependencies:
+ shell-quote: ^1.6.1
+ ws: ^7
+ checksum: d8e4b32ffcfe1ada5c9f7decffd04afc4707a3d6261953a92b8aed1c8abe15cd57d6eb4ce711f842180a2f5c60d2947209e3c1202f7ea29303ee150c55da59e0
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^16.12.0 || ^17.0.0 || ^18.0.0, react-is@npm:^18.0.0":
+ version: 18.2.0
+ resolution: "react-is@npm:18.2.0"
+ checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^16.13.1":
+ version: 16.13.1
+ resolution: "react-is@npm:16.13.1"
+ checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^17.0.1":
+ version: 17.0.2
+ resolution: "react-is@npm:17.0.2"
+ checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8
+ languageName: node
+ linkType: hard
+
+"react-native-dotenv@npm:^3.4.9":
+ version: 3.4.9
+ resolution: "react-native-dotenv@npm:3.4.9"
+ dependencies:
+ dotenv: ^16.3.1
+ peerDependencies:
+ "@babel/runtime": ^7.20.6
+ checksum: 9727c6a08e1b3e53b31d620ac1e9daedd899b61c0fd5413fb4593a209c0bf73e245506fc02bdb0d3caa4abf4f4145fa8499afff8e48e22bcf317cd90dbe18b87
+ languageName: node
+ linkType: hard
+
+"react-native-example@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "react-native-example@workspace:."
+ dependencies:
+ "@babel/core": ^7.20.0
+ "@types/react": ~18.2.14
+ "@types/react-native-dotenv": ^0.2.1
+ expo: ~49.0.16
+ expo-splash-screen: ~0.20.5
+ expo-status-bar: ~1.7.1
+ react: 18.2.0
+ react-native: 0.72.6
+ react-native-dotenv: ^3.4.9
+ typescript: ^5.2.2
+ languageName: unknown
+ linkType: soft
+
+"react-native@npm:0.72.6":
+ version: 0.72.6
+ resolution: "react-native@npm:0.72.6"
+ dependencies:
+ "@jest/create-cache-key-function": ^29.2.1
+ "@react-native-community/cli": 11.3.7
+ "@react-native-community/cli-platform-android": 11.3.7
+ "@react-native-community/cli-platform-ios": 11.3.7
+ "@react-native/assets-registry": ^0.72.0
+ "@react-native/codegen": ^0.72.7
+ "@react-native/gradle-plugin": ^0.72.11
+ "@react-native/js-polyfills": ^0.72.1
+ "@react-native/normalize-colors": ^0.72.0
+ "@react-native/virtualized-lists": ^0.72.8
+ abort-controller: ^3.0.0
+ anser: ^1.4.9
+ base64-js: ^1.1.2
+ deprecated-react-native-prop-types: 4.1.0
+ event-target-shim: ^5.0.1
+ flow-enums-runtime: ^0.0.5
+ invariant: ^2.2.4
+ jest-environment-node: ^29.2.1
+ jsc-android: ^250231.0.0
+ memoize-one: ^5.0.0
+ metro-runtime: 0.76.8
+ metro-source-map: 0.76.8
+ mkdirp: ^0.5.1
+ nullthrows: ^1.1.1
+ pretty-format: ^26.5.2
+ promise: ^8.3.0
+ react-devtools-core: ^4.27.2
+ react-refresh: ^0.4.0
+ react-shallow-renderer: ^16.15.0
+ regenerator-runtime: ^0.13.2
+ scheduler: 0.24.0-canary-efb381bbf-20230505
+ stacktrace-parser: ^0.1.10
+ use-sync-external-store: ^1.0.0
+ whatwg-fetch: ^3.0.0
+ ws: ^6.2.2
+ yargs: ^17.6.2
+ peerDependencies:
+ react: 18.2.0
+ bin:
+ react-native: cli.js
+ checksum: 3cf0af092c0d6b9b6e67795664e324136f6d1a41c6a889737fb612e5ddb93d0537c890fe733e751fe3bbc139cbb4f9f6d9eff4467e8d8dc67194ac8b382fa168
+ languageName: node
+ linkType: hard
+
+"react-refresh@npm:^0.4.0":
+ version: 0.4.3
+ resolution: "react-refresh@npm:0.4.3"
+ checksum: 58d3b899ede4c890b1d06a2d02254a77d1c0dea400be139940e47b1c451ff1c4cbb3ca5d0a9d6ee9574e570075ab6c1bef15e77b7270d4a6f571847d2b26f4fc
+ 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: ^4.1.1
+ react-is: ^16.12.0 || ^17.0.0 || ^18.0.0
+ peerDependencies:
+ react: ^16.0.0 || ^17.0.0 || ^18.0.0
+ checksum: 6052c7e3e9627485120ebd8257f128aad8f56386fe8d42374b7743eac1be457c33506d153c7886b4e32923c0c352d402ab805ef9ca02dbcd8393b2bdeb6e5af8
+ languageName: node
+ linkType: hard
+
+"react@npm:18.2.0":
+ version: 18.2.0
+ resolution: "react@npm:18.2.0"
+ dependencies:
+ loose-envify: ^1.1.0
+ checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:^3.4.0":
+ version: 3.6.2
+ resolution: "readable-stream@npm:3.6.2"
+ dependencies:
+ inherits: ^2.0.3
+ string_decoder: ^1.1.1
+ util-deprecate: ^1.0.1
+ checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:~2.3.6":
+ version: 2.3.8
+ resolution: "readable-stream@npm:2.3.8"
+ dependencies:
+ core-util-is: ~1.0.0
+ inherits: ~2.0.3
+ isarray: ~1.0.0
+ process-nextick-args: ~2.0.0
+ safe-buffer: ~5.1.1
+ string_decoder: ~1.1.1
+ util-deprecate: ~1.0.1
+ checksum: 65645467038704f0c8aaf026a72fbb588a9e2ef7a75cd57a01702ee9db1c4a1e4b03aaad36861a6a0926546a74d174149c8c207527963e0c2d3eee2f37678a42
+ languageName: node
+ linkType: hard
+
+"readline@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "readline@npm:1.3.0"
+ checksum: dfaf8e6ac20408ea00d650e95f7bb47f77c4c62dd12ed7fb51731ee84532a2f3675fcdc4cab4923dc1eef227520a2e082a093215190907758bea9f585b19438e
+ languageName: node
+ linkType: hard
+
+"recast@npm:^0.21.0":
+ version: 0.21.5
+ resolution: "recast@npm:0.21.5"
+ dependencies:
+ ast-types: 0.15.2
+ esprima: ~4.0.0
+ source-map: ~0.6.1
+ tslib: ^2.0.1
+ checksum: 03cc7f57562238ba258d468be67bf7446ce7a707bc87a087891dad15afead46c36e9aaeedf2130e2ab5a465244a9c62bfd4127849761cf8f4085abe2f3e5f485
+ languageName: node
+ linkType: hard
+
+"regenerate-unicode-properties@npm:^10.1.0":
+ version: 10.1.1
+ resolution: "regenerate-unicode-properties@npm:10.1.1"
+ dependencies:
+ regenerate: ^1.4.2
+ checksum: b80958ef40f125275824c2c47d5081dfaefebd80bff26c76761e9236767c748a4a95a69c053fe29d2df881177f2ca85df4a71fe70a82360388b31159ef19adcf
+ languageName: node
+ linkType: hard
+
+"regenerate@npm:^1.4.2":
+ version: 1.4.2
+ resolution: "regenerate@npm:1.4.2"
+ checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0
+ languageName: node
+ linkType: hard
+
+"regenerator-runtime@npm:^0.13.2":
+ version: 0.13.11
+ resolution: "regenerator-runtime@npm:0.13.11"
+ checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4
+ languageName: node
+ linkType: hard
+
+"regenerator-runtime@npm:^0.14.0":
+ version: 0.14.0
+ resolution: "regenerator-runtime@npm:0.14.0"
+ checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3
+ languageName: node
+ linkType: hard
+
+"regenerator-transform@npm:^0.15.2":
+ version: 0.15.2
+ resolution: "regenerator-transform@npm:0.15.2"
+ dependencies:
+ "@babel/runtime": ^7.8.4
+ checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27
+ languageName: node
+ linkType: hard
+
+"regexpu-core@npm:^5.3.1":
+ version: 5.3.2
+ resolution: "regexpu-core@npm:5.3.2"
+ dependencies:
+ "@babel/regjsgen": ^0.8.0
+ regenerate: ^1.4.2
+ regenerate-unicode-properties: ^10.1.0
+ regjsparser: ^0.9.1
+ unicode-match-property-ecmascript: ^2.0.0
+ unicode-match-property-value-ecmascript: ^2.1.0
+ checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2
+ languageName: node
+ linkType: hard
+
+"regjsparser@npm:^0.9.1":
+ version: 0.9.1
+ resolution: "regjsparser@npm:0.9.1"
+ dependencies:
+ jsesc: ~0.5.0
+ bin:
+ regjsparser: bin/parser
+ checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc
+ languageName: node
+ linkType: hard
+
+"remove-trailing-slash@npm:^0.1.0":
+ version: 0.1.1
+ resolution: "remove-trailing-slash@npm:0.1.1"
+ checksum: dd200c6b7d6f2b49d12b3eff3abc7089917e8a268cefcd5bf67ff23f8c2ad9f866fbe2f3566e1a8dbdc4f4b1171e2941f7dd00852f8de549bb73c3df53b09d96
+ languageName: node
+ linkType: hard
+
+"require-directory@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "require-directory@npm:2.1.1"
+ checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80
+ languageName: node
+ linkType: hard
+
+"require-from-string@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "require-from-string@npm:2.0.2"
+ checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b
+ languageName: node
+ linkType: hard
+
+"require-main-filename@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "require-main-filename@npm:2.0.0"
+ checksum: e9e294695fea08b076457e9ddff854e81bffbe248ed34c1eec348b7abbd22a0d02e8d75506559e2265e96978f3c4720bd77a6dad84755de8162b357eb6c778c7
+ languageName: node
+ linkType: hard
+
+"requireg@npm:^0.2.2":
+ version: 0.2.2
+ resolution: "requireg@npm:0.2.2"
+ dependencies:
+ nested-error-stacks: ~2.0.1
+ rc: ~1.2.7
+ resolve: ~1.7.1
+ checksum: 99b420a02e7272717153cdf75891cbb133c02c04b287721eb1bdb0668b6a98aa1da38c08d8148fc8b1443a668d939eeb622d390538ac8da17b18a977ebe998ae
+ languageName: node
+ linkType: hard
+
+"requires-port@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "requires-port@npm:1.0.0"
+ checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff
+ languageName: node
+ linkType: hard
+
+"reselect@npm:^4.1.7":
+ version: 4.1.8
+ resolution: "reselect@npm:4.1.8"
+ checksum: a4ac87cedab198769a29be92bc221c32da76cfdad6911eda67b4d3e7136dca86208c3b210e31632eae31ebd2cded18596f0dd230d3ccc9e978df22f233b5583e
+ languageName: node
+ linkType: hard
+
+"resolve-from@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "resolve-from@npm:3.0.0"
+ checksum: fff9819254d2d62b57f74e5c2ca9c0bdd425ca47287c4d801bc15f947533148d858229ded7793b0f59e61e49e782fffd6722048add12996e1bd4333c29669062
+ languageName: node
+ linkType: hard
+
+"resolve-from@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "resolve-from@npm:5.0.0"
+ checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.14.2, resolve@npm:^1.22.1":
+ version: 1.22.8
+ resolution: "resolve@npm:1.22.8"
+ dependencies:
+ is-core-module: ^2.13.0
+ path-parse: ^1.0.7
+ supports-preserve-symlinks-flag: ^1.0.0
+ bin:
+ resolve: bin/resolve
+ checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c
+ languageName: node
+ linkType: hard
+
+"resolve@npm:~1.7.1":
+ version: 1.7.1
+ resolution: "resolve@npm:1.7.1"
+ dependencies:
+ path-parse: ^1.0.5
+ checksum: afb829d4b923f9b17aaf55320c2feaf8d44577674a3a71510d299f832fb80f6703e5a701e01cf774c3241fe8663d4b2b99053cfbca7995488d18ea9f8c7ac309
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.22.1#~builtin":
+ version: 1.22.8
+ resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d"
+ dependencies:
+ is-core-module: ^2.13.0
+ path-parse: ^1.0.7
+ supports-preserve-symlinks-flag: ^1.0.0
+ bin:
+ resolve: bin/resolve
+ checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@~1.7.1#~builtin":
+ version: 1.7.1
+ resolution: "resolve@patch:resolve@npm%3A1.7.1#~builtin::version=1.7.1&hash=3bafbf"
+ dependencies:
+ path-parse: ^1.0.5
+ checksum: c2a6f0e3856ac1ddc8297091c20ca6c36d99bf289ddea366c46bd2a7ed8b31075c7f9d01ff5d390ebed1fe41b9fabe57a79ae087992ba92e3592f0c3be07c1ac
+ languageName: node
+ linkType: hard
+
+"restore-cursor@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "restore-cursor@npm:2.0.0"
+ dependencies:
+ onetime: ^2.0.0
+ signal-exit: ^3.0.2
+ checksum: 482e13d02d834b6e5e3aa90304a8b5e840775d6f06916cc92a50038adf9f098dcc72405b567da8a37e137ae40ad3e31896fa3136ae62f7a426c2fbf53d036536
+ languageName: node
+ linkType: hard
+
+"restore-cursor@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "restore-cursor@npm:3.1.0"
+ dependencies:
+ onetime: ^5.1.0
+ signal-exit: ^3.0.2
+ checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630
+ languageName: node
+ linkType: hard
+
+"retry@npm:^0.12.0":
+ version: 0.12.0
+ resolution: "retry@npm:0.12.0"
+ checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c
+ languageName: node
+ linkType: hard
+
+"reusify@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "reusify@npm:1.0.4"
+ checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:^2.6.2":
+ version: 2.7.1
+ resolution: "rimraf@npm:2.7.1"
+ dependencies:
+ glob: ^7.1.3
+ bin:
+ rimraf: ./bin.js
+ checksum: cdc7f6eacb17927f2a075117a823e1c5951792c6498ebcce81ca8203454a811d4cf8900314154d3259bb8f0b42ab17f67396a8694a54cae3283326e57ad250cd
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "rimraf@npm:3.0.2"
+ dependencies:
+ glob: ^7.1.3
+ bin:
+ rimraf: bin.js
+ checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:~2.4.0":
+ version: 2.4.5
+ resolution: "rimraf@npm:2.4.5"
+ dependencies:
+ glob: ^6.0.1
+ bin:
+ rimraf: ./bin.js
+ checksum: 036793b4055d65344ad7bea73c3f4095640af7455478fe56c19783619463e6bb4374ab3556b9e6d4d6d3dd210eb677b0955ece38813e734c294fd2687201151d
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:~2.6.2":
+ version: 2.6.3
+ resolution: "rimraf@npm:2.6.3"
+ dependencies:
+ glob: ^7.1.3
+ bin:
+ rimraf: ./bin.js
+ checksum: 3ea587b981a19016297edb96d1ffe48af7e6af69660e3b371dbfc73722a73a0b0e9be5c88089fbeeb866c389c1098e07f64929c7414290504b855f54f901ab10
+ languageName: node
+ linkType: hard
+
+"run-parallel@npm:^1.1.9":
+ version: 1.2.0
+ resolution: "run-parallel@npm:1.2.0"
+ dependencies:
+ queue-microtask: ^1.2.2
+ checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
+ version: 5.1.2
+ resolution: "safe-buffer@npm:5.1.2"
+ checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:~5.2.0":
+ version: 5.2.1
+ resolution: "safe-buffer@npm:5.2.1"
+ checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491
+ languageName: node
+ linkType: hard
+
+"safe-json-stringify@npm:~1":
+ version: 1.2.0
+ resolution: "safe-json-stringify@npm:1.2.0"
+ checksum: 5bb32db6d6a3ceb3752df51f4043a412419cd3d4fcd5680a865dfa34cd7e575ba659c077d13f52981ced084061df9c75c7fb12e391584d4264e6914c1cd3d216
+ languageName: node
+ linkType: hard
+
+"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0":
+ version: 2.1.2
+ resolution: "safer-buffer@npm:2.1.2"
+ checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0
+ languageName: node
+ linkType: hard
+
+"sax@npm:>=0.6.0":
+ version: 1.3.0
+ resolution: "sax@npm:1.3.0"
+ checksum: 238ab3a9ba8c8f8aaf1c5ea9120386391f6ee0af52f1a6a40bbb6df78241dd05d782f2359d614ac6aae08c4c4125208b456548a6cf68625aa4fe178486e63ecd
+ 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: ^1.1.0
+ checksum: 232149125c10f10193b1340ec4bbf14a8e6a845152790d6fd6f58207642db801abdb5a21227561a0a93871b98ba47539a6233b4e6155aae72d6db6db9f9f09b3
+ languageName: node
+ linkType: hard
+
+"semver@npm:7.3.2":
+ version: 7.3.2
+ resolution: "semver@npm:7.3.2"
+ bin:
+ semver: bin/semver.js
+ checksum: 692f4900dadb43919614b0df9af23fe05743051cda0d1735b5e4d76f93c9e43a266fae73cfc928f5d1489f022c5c0e65dfd2900fcf5b1839c4e9a239729afa7b
+ languageName: node
+ linkType: hard
+
+"semver@npm:7.5.3":
+ version: 7.5.3
+ resolution: "semver@npm:7.5.3"
+ dependencies:
+ lru-cache: ^6.0.0
+ bin:
+ semver: bin/semver.js
+ checksum: 9d58db16525e9f749ad0a696a1f27deabaa51f66e91d2fa2b0db3de3e9644e8677de3b7d7a03f4c15bc81521e0c3916d7369e0572dbde250d9bedf5194e2a8a7
+ languageName: node
+ linkType: hard
+
+"semver@npm:^5.5.0, semver@npm:^5.6.0":
+ version: 5.7.2
+ resolution: "semver@npm:5.7.2"
+ bin:
+ semver: bin/semver
+ checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686
+ languageName: node
+ linkType: hard
+
+"semver@npm:^6.3.1":
+ version: 6.3.1
+ resolution: "semver@npm:6.3.1"
+ bin:
+ semver: bin/semver.js
+ checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.5, semver@npm:^7.5.2, semver@npm:^7.5.3":
+ version: 7.5.4
+ resolution: "semver@npm:7.5.4"
+ dependencies:
+ lru-cache: ^6.0.0
+ bin:
+ semver: bin/semver.js
+ checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3
+ languageName: node
+ linkType: hard
+
+"send@npm:0.18.0, send@npm:^0.18.0":
+ version: 0.18.0
+ resolution: "send@npm:0.18.0"
+ dependencies:
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: ~1.0.2
+ escape-html: ~1.0.3
+ etag: ~1.8.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ mime: 1.6.0
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: ~1.2.1
+ statuses: 2.0.1
+ checksum: 74fc07ebb58566b87b078ec63e5a3e41ecd987e4272ba67b7467e86c6ad51bc6b0b0154133b6d8b08a2ddda360464f71382f7ef864700f34844a76c8027817a8
+ languageName: node
+ linkType: hard
+
+"serialize-error@npm:6.0.0":
+ version: 6.0.0
+ resolution: "serialize-error@npm:6.0.0"
+ dependencies:
+ type-fest: ^0.12.0
+ checksum: 3419fb068af8f22a6ddfabee55b69cfc717008d381b086c01c7b1c506f96c14d1fd4a222b85b4a551cd86498ec52913a5f6b5971650fe8d0859e2b41010feb9e
+ languageName: node
+ linkType: hard
+
+"serialize-error@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "serialize-error@npm:2.1.0"
+ checksum: 28464a6f65e6becd6e49fb782aff06573fdbf3d19f161a20228179842fed05c75a34110e54c3ee020b00240f9e11d8bee9b9fee5d04e0bc0bef1fdbf2baa297e
+ languageName: node
+ linkType: hard
+
+"serve-static@npm:^1.13.1":
+ version: 1.15.0
+ resolution: "serve-static@npm:1.15.0"
+ dependencies:
+ encodeurl: ~1.0.2
+ escape-html: ~1.0.3
+ parseurl: ~1.3.3
+ send: 0.18.0
+ checksum: af57fc13be40d90a12562e98c0b7855cf6e8bd4c107fe9a45c212bf023058d54a1871b1c89511c3958f70626fff47faeb795f5d83f8cf88514dbaeb2b724464d
+ languageName: node
+ linkType: hard
+
+"set-blocking@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "set-blocking@npm:2.0.0"
+ checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02
+ languageName: node
+ linkType: hard
+
+"set-function-length@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "set-function-length@npm:1.1.1"
+ dependencies:
+ define-data-property: ^1.1.1
+ get-intrinsic: ^1.2.1
+ gopd: ^1.0.1
+ has-property-descriptors: ^1.0.0
+ checksum: c131d7569cd7e110cafdfbfbb0557249b538477624dfac4fc18c376d879672fa52563b74029ca01f8f4583a8acb35bb1e873d573a24edb80d978a7ee607c6e06
+ languageName: node
+ linkType: hard
+
+"setimmediate@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "setimmediate@npm:1.0.5"
+ checksum: c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd
+ languageName: node
+ linkType: hard
+
+"setprototypeof@npm:1.2.0":
+ version: 1.2.0
+ resolution: "setprototypeof@npm:1.2.0"
+ checksum: be18cbbf70e7d8097c97f713a2e76edf84e87299b40d085c6bf8b65314e994cc15e2e317727342fa6996e38e1f52c59720b53fe621e2eb593a6847bf0356db89
+ languageName: node
+ linkType: hard
+
+"shallow-clone@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "shallow-clone@npm:3.0.1"
+ dependencies:
+ kind-of: ^6.0.2
+ checksum: 39b3dd9630a774aba288a680e7d2901f5c0eae7b8387fc5c8ea559918b29b3da144b7bdb990d7ccd9e11be05508ac9e459ce51d01fd65e583282f6ffafcba2e7
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "shebang-command@npm:1.2.0"
+ dependencies:
+ shebang-regex: ^1.0.0
+ checksum: 9eed1750301e622961ba5d588af2212505e96770ec376a37ab678f965795e995ade7ed44910f5d3d3cb5e10165a1847f52d3348c64e146b8be922f7707958908
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "shebang-command@npm:2.0.0"
+ dependencies:
+ shebang-regex: ^3.0.0
+ checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "shebang-regex@npm:1.0.0"
+ checksum: 404c5a752cd40f94591dfd9346da40a735a05139dac890ffc229afba610854d8799aaa52f87f7e0c94c5007f2c6af55bdcaeb584b56691926c5eaf41dc8f1372
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "shebang-regex@npm:3.0.0"
+ checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222
+ languageName: node
+ linkType: hard
+
+"shell-quote@npm:^1.6.1, shell-quote@npm:^1.7.3":
+ version: 1.8.1
+ resolution: "shell-quote@npm:1.8.1"
+ checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b
+ languageName: node
+ linkType: hard
+
+"side-channel@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "side-channel@npm:1.0.4"
+ dependencies:
+ call-bind: ^1.0.0
+ get-intrinsic: ^1.0.2
+ object-inspect: ^1.9.0
+ checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3":
+ version: 3.0.7
+ resolution: "signal-exit@npm:3.0.7"
+ checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^4.0.1":
+ version: 4.1.0
+ resolution: "signal-exit@npm:4.1.0"
+ checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549
+ languageName: node
+ linkType: hard
+
+"simple-plist@npm:^1.1.0":
+ version: 1.4.0
+ resolution: "simple-plist@npm:1.4.0"
+ dependencies:
+ bplist-creator: 0.1.1
+ bplist-parser: 0.3.2
+ plist: ^3.0.5
+ checksum: fa8086f6b781c289f1abad21306481dda4af6373b32a5d998a70e53c2b7218a1d21ebb5ae3e736baae704c21d311d3d39d01d0e6a2387eda01b4020b9ebd909e
+ languageName: node
+ linkType: hard
+
+"sisteransi@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "sisteransi@npm:1.0.5"
+ checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4
+ languageName: node
+ linkType: hard
+
+"slash@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "slash@npm:3.0.0"
+ checksum: 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: ^3.2.0
+ astral-regex: ^1.0.0
+ is-fullwidth-code-point: ^2.0.0
+ checksum: 4e82995aa59cef7eb03ef232d73c2239a15efa0ace87a01f3012ebb942e963fbb05d448ce7391efcd52ab9c32724164aba2086f5143e0445c969221dde3b6b1e
+ languageName: node
+ linkType: hard
+
+"slugify@npm:^1.3.4":
+ version: 1.6.6
+ resolution: "slugify@npm:1.6.6"
+ checksum: 04773c2d3b7aea8d2a61fa47cc7e5d29ce04e1a96cbaec409da57139df906acb3a449fac30b167d203212c806e73690abd4ff94fbad0a9a7b7ea109a2a638ae9
+ languageName: node
+ linkType: hard
+
+"smart-buffer@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "smart-buffer@npm:4.2.0"
+ checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b
+ languageName: node
+ linkType: hard
+
+"socks-proxy-agent@npm:^8.0.1":
+ version: 8.0.2
+ resolution: "socks-proxy-agent@npm:8.0.2"
+ dependencies:
+ agent-base: ^7.0.2
+ debug: ^4.3.4
+ socks: ^2.7.1
+ checksum: 4fb165df08f1f380881dcd887b3cdfdc1aba3797c76c1e9f51d29048be6e494c5b06d68e7aea2e23df4572428f27a3ec22b3d7c75c570c5346507433899a4b6d
+ languageName: node
+ linkType: hard
+
+"socks@npm:^2.7.1":
+ version: 2.7.1
+ resolution: "socks@npm:2.7.1"
+ dependencies:
+ ip: ^2.0.0
+ smart-buffer: ^4.2.0
+ checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748
+ languageName: node
+ linkType: hard
+
+"source-map-js@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "source-map-js@npm:1.0.2"
+ checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c
+ 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: ^1.0.0
+ source-map: ^0.6.0
+ checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.5.6":
+ version: 0.5.7
+ resolution: "source-map@npm:0.5.7"
+ checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.6.0, source-map@npm:~0.6.1":
+ version: 0.6.1
+ resolution: "source-map@npm:0.6.1"
+ checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.7.3":
+ version: 0.7.4
+ resolution: "source-map@npm:0.7.4"
+ checksum: 01cc5a74b1f0e1d626a58d36ad6898ea820567e87f18dfc9d24a9843a351aaa2ec09b87422589906d6ff1deed29693e176194dc88bcae7c9a852dc74b311dbf5
+ languageName: node
+ linkType: hard
+
+"split@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "split@npm:1.0.1"
+ dependencies:
+ through: 2
+ checksum: 12f4554a5792c7e98bb3e22b53c63bfa5ef89aa704353e1db608a55b51f5b12afaad6e4a8ecf7843c15f273f43cdadd67b3705cc43d48a75c2cf4641d51f7e7a
+ languageName: node
+ linkType: hard
+
+"sprintf-js@npm:~1.0.2":
+ version: 1.0.3
+ resolution: "sprintf-js@npm:1.0.3"
+ checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3
+ languageName: node
+ linkType: hard
+
+"ssri@npm:^10.0.0":
+ version: 10.0.5
+ resolution: "ssri@npm:10.0.5"
+ dependencies:
+ minipass: ^7.0.3
+ checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750
+ languageName: node
+ linkType: hard
+
+"ssri@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "ssri@npm:8.0.1"
+ dependencies:
+ minipass: ^3.1.1
+ checksum: bc447f5af814fa9713aa201ec2522208ae0f4d8f3bda7a1f445a797c7b929a02720436ff7c478fb5edc4045adb02b1b88d2341b436a80798734e2494f1067b36
+ 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: ^2.0.0
+ checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7
+ languageName: node
+ linkType: hard
+
+"stackframe@npm:^1.3.4":
+ version: 1.3.4
+ resolution: "stackframe@npm:1.3.4"
+ checksum: bae1596873595c4610993fa84f86a3387d67586401c1816ea048c0196800c0646c4d2da98c2ee80557fd9eff05877efe33b91ba6cd052658ed96ddc85d19067d
+ languageName: node
+ linkType: hard
+
+"stacktrace-parser@npm:^0.1.10":
+ version: 0.1.10
+ resolution: "stacktrace-parser@npm:0.1.10"
+ dependencies:
+ type-fest: ^0.7.1
+ checksum: f4fbddfc09121d91e587b60de4beb4941108e967d71ad3a171812dc839b010ca374d064ad0a296295fed13acd103609d99a4224a25b4e67de13cae131f1901ee
+ languageName: node
+ linkType: hard
+
+"statuses@npm:2.0.1":
+ version: 2.0.1
+ resolution: "statuses@npm:2.0.1"
+ checksum: 18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb
+ languageName: node
+ linkType: hard
+
+"statuses@npm:~1.5.0":
+ version: 1.5.0
+ resolution: "statuses@npm:1.5.0"
+ checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c
+ languageName: node
+ linkType: hard
+
+"stream-buffers@npm:2.2.x":
+ version: 2.2.0
+ resolution: "stream-buffers@npm:2.2.0"
+ checksum: 4587d9e8f050d689fb38b4295e73408401b16de8edecc12026c6f4ae92956705ecfd995ae3845d7fa3ebf19502d5754df9143d91447fd881d86e518f43882c1c
+ languageName: node
+ linkType: hard
+
+"string-width-cjs@npm:string-width@^4.2.0, 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: ^8.0.0
+ is-fullwidth-code-point: ^3.0.0
+ strip-ansi: ^6.0.1
+ checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^5.0.1, string-width@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "string-width@npm:5.1.2"
+ dependencies:
+ eastasianwidth: ^0.2.0
+ emoji-regex: ^9.2.2
+ strip-ansi: ^7.0.1
+ checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:^1.1.1":
+ version: 1.3.0
+ resolution: "string_decoder@npm:1.3.0"
+ dependencies:
+ safe-buffer: ~5.2.0
+ checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:~1.1.1":
+ version: 1.1.1
+ resolution: "string_decoder@npm:1.1.1"
+ dependencies:
+ safe-buffer: ~5.1.0
+ checksum: 9ab7e56f9d60a28f2be697419917c50cac19f3e8e6c28ef26ed5f4852289fe0de5d6997d29becf59028556f2c62983790c1d9ba1e2a3cc401768ca12d5183a5b
+ languageName: node
+ linkType: hard
+
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1, 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: ^5.0.1
+ checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c
+ 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: ^4.1.0
+ checksum: bdb5f76ade97062bd88e7723aa019adbfacdcba42223b19ccb528ffb9fb0b89a5be442c663c4a3fb25268eaa3f6ea19c7c3fbae830bd1562d55adccae1fcec46
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^7.0.1":
+ version: 7.1.0
+ resolution: "strip-ansi@npm:7.1.0"
+ dependencies:
+ ansi-regex: ^6.0.1
+ checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d
+ languageName: node
+ linkType: hard
+
+"strip-eof@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "strip-eof@npm:1.0.0"
+ checksum: 40bc8ddd7e072f8ba0c2d6d05267b4e0a4800898c3435b5fb5f5a21e6e47dfaff18467e7aa0d1844bb5d6274c3097246595841fbfeb317e541974ee992cac506
+ languageName: node
+ linkType: hard
+
+"strip-final-newline@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "strip-final-newline@npm:2.0.0"
+ checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64
+ languageName: node
+ linkType: hard
+
+"strip-json-comments@npm:~2.0.1":
+ version: 2.0.1
+ resolution: "strip-json-comments@npm:2.0.1"
+ checksum: 1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1
+ languageName: node
+ linkType: hard
+
+"strnum@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "strnum@npm:1.0.5"
+ checksum: 651b2031db5da1bf4a77fdd2f116a8ac8055157c5420f5569f64879133825915ad461513e7202a16d7fec63c54fd822410d0962f8ca12385c4334891b9ae6dd2
+ languageName: node
+ linkType: hard
+
+"structured-headers@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "structured-headers@npm:0.4.1"
+ checksum: 2f3073b2c8b4f2515367a1647ba0b6764ce6d35b3943605940de41077c2afd2513257f4bf6fbfd67a3455f25a3e844905da6fddde6b6ad7974256495311a25a3
+ languageName: node
+ linkType: hard
+
+"sucrase@npm:^3.20.0":
+ version: 3.34.0
+ resolution: "sucrase@npm:3.34.0"
+ dependencies:
+ "@jridgewell/gen-mapping": ^0.3.2
+ commander: ^4.0.0
+ glob: 7.1.6
+ lines-and-columns: ^1.1.6
+ mz: ^2.7.0
+ pirates: ^4.0.1
+ ts-interface-checker: ^0.1.9
+ bin:
+ sucrase: bin/sucrase
+ sucrase-node: bin/sucrase-node
+ checksum: 61860063bdf6103413698e13247a3074d25843e91170825a9752e4af7668ffadd331b6e99e92fc32ee5b3c484ee134936f926fa9039d5711fafff29d017a2110
+ languageName: node
+ linkType: hard
+
+"sudo-prompt@npm:9.1.1":
+ version: 9.1.1
+ resolution: "sudo-prompt@npm:9.1.1"
+ checksum: 20fe5bde6a27725d87938e68d6f99c0798ce9bf3a8fdebd58392a0436df713c66ebf67863e682941ff98ee7611e40ed599e12be7f264c9286106feb0f3db3860
+ languageName: node
+ linkType: hard
+
+"sudo-prompt@npm:^8.2.0":
+ version: 8.2.5
+ resolution: "sudo-prompt@npm:8.2.5"
+ checksum: bacff1f18a8ab8dba345cc1f3cf3a02b4cc571f71585df79af95af31278f56107f7c29402f5347b07c489888c63f2deb78d544b93a6347e83d0ed0847f4bc163
+ languageName: node
+ linkType: hard
+
+"sudo-prompt@npm:^9.0.0":
+ version: 9.2.1
+ resolution: "sudo-prompt@npm:9.2.1"
+ checksum: 50a29eec2f264f2b78d891452a64112d839a30bffbff4ec065dba4af691a35b23cdb8f9107d413e25c1a9f1925644a19994c00602495cab033d53f585fdfd665
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^5.3.0":
+ version: 5.5.0
+ resolution: "supports-color@npm:5.5.0"
+ dependencies:
+ has-flag: ^3.0.0
+ checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0":
+ version: 7.2.0
+ resolution: "supports-color@npm:7.2.0"
+ dependencies:
+ has-flag: ^4.0.0
+ checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^8.0.0":
+ version: 8.1.1
+ resolution: "supports-color@npm:8.1.1"
+ dependencies:
+ has-flag: ^4.0.0
+ checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406
+ languageName: node
+ linkType: hard
+
+"supports-hyperlinks@npm:^2.0.0":
+ version: 2.3.0
+ resolution: "supports-hyperlinks@npm:2.3.0"
+ dependencies:
+ has-flag: ^4.0.0
+ supports-color: ^7.0.0
+ checksum: 9ee0de3c8ce919d453511b2b1588a8205bd429d98af94a01df87411391010fe22ca463f268c84b2ce2abad019dfff8452aa02806eeb5c905a8d7ad5c4f4c52b8
+ 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: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae
+ languageName: node
+ linkType: hard
+
+"tar@npm:^6.0.2, tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.2":
+ version: 6.2.0
+ resolution: "tar@npm:6.2.0"
+ dependencies:
+ chownr: ^2.0.0
+ fs-minipass: ^2.0.0
+ minipass: ^5.0.0
+ minizlib: ^2.1.1
+ mkdirp: ^1.0.3
+ yallist: ^4.0.0
+ checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c
+ languageName: node
+ linkType: hard
+
+"temp-dir@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "temp-dir@npm:1.0.0"
+ checksum: cb2b58ddfb12efa83e939091386ad73b425c9a8487ea0095fe4653192a40d49184a771a1beba99045fbd011e389fd563122d79f54f82be86a55620667e08a6b2
+ languageName: node
+ linkType: hard
+
+"temp-dir@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "temp-dir@npm:2.0.0"
+ checksum: cc4f0404bf8d6ae1a166e0e64f3f409b423f4d1274d8c02814a59a5529f07db6cd070a749664141b992b2c1af337fa9bb451a460a43bb9bcddc49f235d3115aa
+ languageName: node
+ linkType: hard
+
+"temp@npm:^0.8.4":
+ version: 0.8.4
+ resolution: "temp@npm:0.8.4"
+ dependencies:
+ rimraf: ~2.6.2
+ checksum: f35bed78565355dfdf95f730b7b489728bd6b7e35071bcc6497af7c827fb6c111fbe9063afc7b8cbc19522a072c278679f9a0ee81e684aa2c8617cc0f2e9c191
+ languageName: node
+ linkType: hard
+
+"tempy@npm:0.3.0":
+ version: 0.3.0
+ resolution: "tempy@npm:0.3.0"
+ dependencies:
+ temp-dir: ^1.0.0
+ type-fest: ^0.3.1
+ unique-string: ^1.0.0
+ checksum: f81ef72a7ee6d512439af8d8891e4fc6595309451910d7ac9d760f1242a1f87272b2b97c830c8f74aaa93a3aa550483bb16db17e6345601f64d614d240edc322
+ languageName: node
+ linkType: hard
+
+"tempy@npm:^0.7.1":
+ version: 0.7.1
+ resolution: "tempy@npm:0.7.1"
+ dependencies:
+ del: ^6.0.0
+ is-stream: ^2.0.0
+ temp-dir: ^2.0.0
+ type-fest: ^0.16.0
+ unique-string: ^2.0.0
+ checksum: 265652f94eed077c311777e0290c4b4f3ec670c71c62c979efcbbd67ee506d677ff2741a72d7160556e9b0fba8fc5fbd7b3c482ac94c8acc48d85411f1f079c3
+ languageName: node
+ linkType: hard
+
+"terminal-link@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "terminal-link@npm:2.1.1"
+ dependencies:
+ ansi-escapes: ^4.2.1
+ supports-hyperlinks: ^2.0.0
+ checksum: ce3d2cd3a438c4a9453947aa664581519173ea40e77e2534d08c088ee6dda449eabdbe0a76d2a516b8b73c33262fedd10d5270ccf7576ae316e3db170ce6562f
+ languageName: node
+ linkType: hard
+
+"terser@npm:^5.15.0":
+ version: 5.24.0
+ resolution: "terser@npm:5.24.0"
+ dependencies:
+ "@jridgewell/source-map": ^0.3.3
+ acorn: ^8.8.2
+ commander: ^2.20.0
+ source-map-support: ~0.5.20
+ bin:
+ terser: bin/terser
+ checksum: d88f774b6fa711a234fcecefd7657f99189c367e17dbe95a51c2776d426ad0e4d98d1ffe6edfdf299877c7602e495bdd711d21b2caaec188410795e5447d0f6c
+ languageName: node
+ linkType: hard
+
+"text-table@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "text-table@npm:0.2.0"
+ checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a
+ languageName: node
+ linkType: hard
+
+"thenify-all@npm:^1.0.0":
+ version: 1.6.0
+ resolution: "thenify-all@npm:1.6.0"
+ dependencies:
+ thenify: ">= 3.1.0 < 4"
+ checksum: dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e
+ languageName: node
+ linkType: hard
+
+"thenify@npm:>= 3.1.0 < 4":
+ version: 3.3.1
+ resolution: "thenify@npm:3.3.1"
+ dependencies:
+ any-promise: ^1.0.0
+ checksum: 84e1b804bfec49f3531215f17b4a6e50fd4397b5f7c1bccc427b9c656e1ecfb13ea79d899930184f78bc2f57285c54d9a50a590c8868f4f0cef5c1d9f898b05e
+ languageName: node
+ linkType: hard
+
+"throat@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "throat@npm:5.0.0"
+ checksum: 031ff7f4431618036c1dedd99c8aa82f5c33077320a8358ed829e84b320783781d1869fe58e8f76e948306803de966f5f7573766a437562c9f5c033297ad2fe2
+ languageName: node
+ linkType: hard
+
+"through2@npm:^2.0.1":
+ version: 2.0.5
+ resolution: "through2@npm:2.0.5"
+ dependencies:
+ readable-stream: ~2.3.6
+ xtend: ~4.0.1
+ checksum: beb0f338aa2931e5660ec7bf3ad949e6d2e068c31f4737b9525e5201b824ac40cac6a337224856b56bd1ddd866334bbfb92a9f57cd6f66bc3f18d3d86fc0fe50
+ languageName: node
+ linkType: hard
+
+"through@npm:2":
+ version: 2.3.8
+ resolution: "through@npm:2.3.8"
+ checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd
+ languageName: node
+ linkType: hard
+
+"tmp@npm:^0.0.33":
+ version: 0.0.33
+ resolution: "tmp@npm:0.0.33"
+ dependencies:
+ os-tmpdir: ~1.0.2
+ checksum: 902d7aceb74453ea02abbf58c203f4a8fc1cead89b60b31e354f74ed5b3fb09ea817f94fb310f884a5d16987dd9fa5a735412a7c2dd088dd3d415aa819ae3a28
+ languageName: node
+ linkType: hard
+
+"tmpl@npm:1.0.5":
+ version: 1.0.5
+ resolution: "tmpl@npm:1.0.5"
+ checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873
+ languageName: node
+ linkType: hard
+
+"to-fast-properties@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "to-fast-properties@npm:2.0.0"
+ checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168
+ 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: ^7.0.0
+ checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed
+ languageName: node
+ linkType: hard
+
+"toidentifier@npm:1.0.1":
+ version: 1.0.1
+ resolution: "toidentifier@npm:1.0.1"
+ checksum: 952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45
+ languageName: node
+ linkType: hard
+
+"tr46@npm:~0.0.3":
+ version: 0.0.3
+ resolution: "tr46@npm:0.0.3"
+ checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3
+ languageName: node
+ linkType: hard
+
+"traverse@npm:~0.6.6":
+ version: 0.6.7
+ resolution: "traverse@npm:0.6.7"
+ checksum: 21018085ab72f717991597e12e2b52446962ed59df591502e4d7e1a709bc0a989f7c3d451aa7d882666ad0634f1546d696c5edecda1f2fc228777df7bb529a1e
+ languageName: node
+ linkType: hard
+
+"ts-interface-checker@npm:^0.1.9":
+ version: 0.1.13
+ resolution: "ts-interface-checker@npm:0.1.13"
+ checksum: 20c29189c2dd6067a8775e07823ddf8d59a33e2ffc47a1bd59a5cb28bb0121a2969a816d5e77eda2ed85b18171aa5d1c4005a6b88ae8499ec7cc49f78571cb5e
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.4.0":
+ version: 2.6.2
+ resolution: "tslib@npm:2.6.2"
+ checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad
+ languageName: node
+ linkType: hard
+
+"type-detect@npm:4.0.8":
+ version: 4.0.8
+ resolution: "type-detect@npm:4.0.8"
+ checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.12.0":
+ version: 0.12.0
+ resolution: "type-fest@npm:0.12.0"
+ checksum: 407d6c1a6fcc907f6124c37e977ba4966205014787a32a27579da6e47c3b1bd210b68cc1c7764d904c8aa55fb4efa6945586f9b4fae742c63ed026a4559da07d
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.16.0":
+ version: 0.16.0
+ resolution: "type-fest@npm:0.16.0"
+ checksum: 1a4102c06dc109db00418c753062e206cab65befd469d000ece4452ee649bf2a9cf57686d96fb42326bc9d918d9a194d4452897b486dcc41989e5c99e4e87094
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.21.3":
+ version: 0.21.3
+ resolution: "type-fest@npm:0.21.3"
+ checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.3.1":
+ version: 0.3.1
+ resolution: "type-fest@npm:0.3.1"
+ checksum: 347ff46c2285616635cb59f722e7f396bee81b8988b6fc1f1536b725077f2abf6ccfa22ab7a78e9b6ce7debea0e6614bbf5946cbec6674ec1bde12113af3a65c
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.7.1":
+ version: 0.7.1
+ resolution: "type-fest@npm:0.7.1"
+ checksum: 5b1b113529d59949d97b76977d545989ddc11b81bb0c766b6d2ccc65473cb4b4a5c7d24f5be2c2bb2de302a5d7a13c1732ea1d34c8c59b7e0ec1f890cf7fc424
+ languageName: node
+ linkType: hard
+
+"type-is@npm:~1.6.18":
+ version: 1.6.18
+ resolution: "type-is@npm:1.6.18"
+ dependencies:
+ media-typer: 0.3.0
+ mime-types: ~2.1.24
+ checksum: 2c8e47675d55f8b4e404bcf529abdf5036c537a04c2b20177bcf78c9e3c1da69da3942b1346e6edb09e823228c0ee656ef0e033765ec39a70d496ef601a0c657
+ languageName: node
+ linkType: hard
+
+"typescript@npm:^5.2.2":
+ version: 5.3.2
+ resolution: "typescript@npm:5.3.2"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: d92534dda639eb825db013203404c1fabca8ac630564283c9e7dc9e64fd9c9346c2de95ecebdf3e6e8c1c32941bca1cfe0da37877611feb9daf8feeaea58d230
+ languageName: node
+ linkType: hard
+
+"typescript@patch:typescript@^5.2.2#~builtin":
+ version: 5.3.2
+ resolution: "typescript@patch:typescript@npm%3A5.3.2#~builtin::version=5.3.2&hash=1f5320"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: c034461079fbfde3cb584ddee52afccb15b6e32a0ce186d0b2719968786f7ca73e1b07f71fac4163088790b16811c6ccf79680de190664ef66ff0ba9c1fe4a23
+ languageName: node
+ linkType: hard
+
+"ua-parser-js@npm:^1.0.35":
+ version: 1.0.37
+ resolution: "ua-parser-js@npm:1.0.37"
+ checksum: 4d481c720d523366d7762dc8a46a1b58967d979aacf786f9ceceb1cd767de069f64a4bdffb63956294f1c0696eb465ddb950f28ba90571709e33521b4bd75e07
+ languageName: node
+ linkType: hard
+
+"uglify-es@npm:^3.1.9":
+ version: 3.3.10
+ resolution: "uglify-es@npm:3.3.10"
+ dependencies:
+ commander: ~2.14.1
+ source-map: ~0.6.1
+ bin:
+ uglifyjs: bin/uglifyjs
+ checksum: 22b028b6454c4d684c76617e9ac5b8da0e56611b32cd5d89e797225d6f1022f697a5642d9084319436df3aed462225749f8287d37bf67dccda1ac9d0365dd950
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~5.26.4":
+ version: 5.26.5
+ resolution: "undici-types@npm:5.26.5"
+ checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487
+ languageName: node
+ linkType: hard
+
+"unicode-canonical-property-names-ecmascript@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0"
+ checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45
+ 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: ^2.0.0
+ unicode-property-aliases-ecmascript: ^2.0.0
+ checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a
+ languageName: node
+ linkType: hard
+
+"unicode-match-property-value-ecmascript@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "unicode-match-property-value-ecmascript@npm:2.1.0"
+ checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220
+ languageName: node
+ linkType: hard
+
+"unicode-property-aliases-ecmascript@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "unicode-property-aliases-ecmascript@npm:2.1.0"
+ checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b
+ languageName: node
+ linkType: hard
+
+"unique-filename@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "unique-filename@npm:1.1.1"
+ dependencies:
+ unique-slug: ^2.0.0
+ checksum: cf4998c9228cc7647ba7814e255dec51be43673903897b1786eff2ac2d670f54d4d733357eb08dea969aa5e6875d0e1bd391d668fbdb5a179744e7c7551a6f80
+ languageName: node
+ linkType: hard
+
+"unique-filename@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "unique-filename@npm:3.0.0"
+ dependencies:
+ unique-slug: ^4.0.0
+ checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df
+ languageName: node
+ linkType: hard
+
+"unique-slug@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "unique-slug@npm:2.0.2"
+ dependencies:
+ imurmurhash: ^0.1.4
+ checksum: 5b6876a645da08d505dedb970d1571f6cebdf87044cb6b740c8dbb24f0d6e1dc8bdbf46825fd09f994d7cf50760e6f6e063cfa197d51c5902c00a861702eb75a
+ languageName: node
+ linkType: hard
+
+"unique-slug@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "unique-slug@npm:4.0.0"
+ dependencies:
+ imurmurhash: ^0.1.4
+ checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15
+ languageName: node
+ linkType: hard
+
+"unique-string@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "unique-string@npm:1.0.0"
+ dependencies:
+ crypto-random-string: ^1.0.0
+ checksum: 588f16bd4ec99b5130f237793d1a5694156adde20460366726573238e41e93b739b87987e863792aeb2392b26f8afb292490ace119c82ed12c46816c9c859f5f
+ languageName: node
+ linkType: hard
+
+"unique-string@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "unique-string@npm:2.0.0"
+ dependencies:
+ crypto-random-string: ^2.0.0
+ checksum: ef68f639136bcfe040cf7e3cd7a8dff076a665288122855148a6f7134092e6ed33bf83a7f3a9185e46c98dddc445a0da6ac25612afa1a7c38b8b654d6c02498e
+ languageName: node
+ linkType: hard
+
+"universalify@npm:^0.1.0":
+ version: 0.1.2
+ resolution: "universalify@npm:0.1.2"
+ checksum: 40cdc60f6e61070fe658ca36016a8f4ec216b29bf04a55dce14e3710cc84c7448538ef4dad3728d0bfe29975ccd7bfb5f414c45e7b78883567fb31b246f02dff
+ languageName: node
+ linkType: hard
+
+"universalify@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "universalify@npm:1.0.0"
+ checksum: 095a808f2b915e3b89d29b6f3b4ee4163962b02fa5b7cb686970b8d0439f4ca789bc43f319b7cbb1ce552ae724e631d148e5aee9ce04c4f46a7fe0c5bbfd2b9e
+ languageName: node
+ linkType: hard
+
+"universalify@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "universalify@npm:2.0.1"
+ checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60
+ languageName: node
+ linkType: hard
+
+"unpipe@npm:1.0.0, unpipe@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "unpipe@npm:1.0.0"
+ checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2
+ languageName: node
+ linkType: hard
+
+"update-browserslist-db@npm:^1.0.13":
+ version: 1.0.13
+ resolution: "update-browserslist-db@npm:1.0.13"
+ dependencies:
+ escalade: ^3.1.1
+ picocolors: ^1.0.0
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+ bin:
+ update-browserslist-db: cli.js
+ checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322
+ languageName: node
+ linkType: hard
+
+"url-join@npm:4.0.0":
+ version: 4.0.0
+ resolution: "url-join@npm:4.0.0"
+ checksum: d2ac05f8ac276edbcd2b234745415abe27ef6b0c18c4d7a8e7f88fbafa1e9470912392b09391fb47f097f470d4c8b93bf2219b5638286852b2bf65d693e207ee
+ languageName: node
+ linkType: hard
+
+"url-parse@npm:^1.5.9":
+ version: 1.5.10
+ resolution: "url-parse@npm:1.5.10"
+ dependencies:
+ querystringify: ^2.1.1
+ requires-port: ^1.0.0
+ checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf
+ languageName: node
+ linkType: hard
+
+"use-sync-external-store@npm:^1.0.0":
+ version: 1.2.0
+ resolution: "use-sync-external-store@npm:1.2.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ checksum: 5c639e0f8da3521d605f59ce5be9e094ca772bd44a4ce7322b055a6f58eeed8dda3c94cabd90c7a41fb6fa852210092008afe48f7038792fd47501f33299116a
+ languageName: node
+ linkType: hard
+
+"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1":
+ version: 1.0.2
+ resolution: "util-deprecate@npm:1.0.2"
+ checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2
+ languageName: node
+ linkType: hard
+
+"utils-merge@npm:1.0.1":
+ version: 1.0.1
+ resolution: "utils-merge@npm:1.0.1"
+ checksum: c81095493225ecfc28add49c106ca4f09cdf56bc66731aa8dabc2edbbccb1e1bfe2de6a115e5c6a380d3ea166d1636410b62ef216bb07b3feb1cfde1d95d5080
+ languageName: node
+ linkType: hard
+
+"uuid@npm:^3.3.2, uuid@npm:^3.4.0":
+ version: 3.4.0
+ resolution: "uuid@npm:3.4.0"
+ bin:
+ uuid: ./bin/uuid
+ checksum: 58de2feed61c59060b40f8203c0e4ed7fd6f99d42534a499f1741218a1dd0c129f4aa1de797bcf822c8ea5da7e4137aa3673431a96dae729047f7aca7b27866f
+ languageName: node
+ linkType: hard
+
+"uuid@npm:^7.0.3":
+ version: 7.0.3
+ resolution: "uuid@npm:7.0.3"
+ bin:
+ uuid: dist/bin/uuid
+ checksum: f5b7b5cc28accac68d5c083fd51cca64896639ebd4cca88c6cfb363801aaa83aa439c86dfc8446ea250a7a98d17afd2ad9e88d9d4958c79a412eccb93bae29de
+ languageName: node
+ linkType: hard
+
+"uuid@npm:^8.0.0, uuid@npm:^8.3.2":
+ version: 8.3.2
+ resolution: "uuid@npm:8.3.2"
+ bin:
+ uuid: dist/bin/uuid
+ checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df
+ languageName: node
+ linkType: hard
+
+"valid-url@npm:~1.0.9":
+ version: 1.0.9
+ resolution: "valid-url@npm:1.0.9"
+ checksum: 3ecb030559404441c2cf104cbabab8770efb0f36d117db03d1081052ef133015a68806148ce954bb4dd0b5c42c14b709a88783c93d66b0916cb67ba771c98702
+ languageName: node
+ linkType: hard
+
+"validate-npm-package-name@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "validate-npm-package-name@npm:3.0.0"
+ dependencies:
+ builtins: ^1.0.3
+ checksum: ce4c68207abfb22c05eedb09ff97adbcedc80304a235a0844f5344f1fd5086aa80e4dbec5684d6094e26e35065277b765c1caef68bcea66b9056761eddb22967
+ languageName: node
+ linkType: hard
+
+"vary@npm:~1.1.2":
+ version: 1.1.2
+ resolution: "vary@npm:1.1.2"
+ checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b
+ languageName: node
+ linkType: hard
+
+"vlq@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "vlq@npm:1.0.1"
+ checksum: 67ab6dd35c787eaa02c0ff1a869dd07a230db08722fb6014adaaf432634808ddb070765f70958b47997e438c331790cfcf20902411b0d6453f1a2a5923522f55
+ languageName: node
+ linkType: hard
+
+"walker@npm:^1.0.7":
+ version: 1.0.8
+ resolution: "walker@npm:1.0.8"
+ dependencies:
+ makeerror: 1.0.12
+ checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c
+ languageName: node
+ linkType: hard
+
+"wcwidth@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "wcwidth@npm:1.0.1"
+ dependencies:
+ defaults: ^1.0.3
+ checksum: 814e9d1ddcc9798f7377ffa448a5a3892232b9275ebb30a41b529607691c0491de47cba426e917a4d08ded3ee7e9ba2f3fe32e62ee3cd9c7d3bafb7754bd553c
+ languageName: node
+ linkType: hard
+
+"webidl-conversions@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "webidl-conversions@npm:3.0.1"
+ checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c
+ languageName: node
+ linkType: hard
+
+"whatwg-fetch@npm:^3.0.0":
+ version: 3.6.19
+ resolution: "whatwg-fetch@npm:3.6.19"
+ checksum: 2896bc9ca867ea514392c73e2a272f65d5c4916248fe0837a9df5b1b92f247047bc76cf7c29c28a01ac6c5fb4314021d2718958c8a08292a96d56f72b2f56806
+ languageName: node
+ linkType: hard
+
+"whatwg-url@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "whatwg-url@npm:5.0.0"
+ dependencies:
+ tr46: ~0.0.3
+ webidl-conversions: ^3.0.0
+ checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c
+ languageName: node
+ linkType: hard
+
+"which-module@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "which-module@npm:2.0.1"
+ checksum: 1967b7ce17a2485544a4fdd9063599f0f773959cca24176dbe8f405e55472d748b7c549cd7920ff6abb8f1ab7db0b0f1b36de1a21c57a8ff741f4f1e792c52be
+ languageName: node
+ linkType: hard
+
+"which@npm:^1.2.9":
+ version: 1.3.1
+ resolution: "which@npm:1.3.1"
+ dependencies:
+ isexe: ^2.0.0
+ bin:
+ which: ./bin/which
+ checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04
+ languageName: node
+ linkType: hard
+
+"which@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "which@npm:2.0.2"
+ dependencies:
+ isexe: ^2.0.0
+ bin:
+ node-which: ./bin/node-which
+ checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1
+ languageName: node
+ linkType: hard
+
+"which@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "which@npm:4.0.0"
+ dependencies:
+ isexe: ^3.1.1
+ bin:
+ node-which: bin/which.js
+ checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651
+ languageName: node
+ linkType: hard
+
+"wonka@npm:^4.0.14":
+ version: 4.0.15
+ resolution: "wonka@npm:4.0.15"
+ checksum: afbee7359ed2d0a9146bf682f3953cb093f47d5f827e767e6ef33cb70ca6f30631afe5fe31dbb8d6c7eaed26c4ac6426e7c13568917c017ef6f42c71139b38f7
+ languageName: node
+ linkType: hard
+
+"wonka@npm:^6.3.2":
+ version: 6.3.4
+ resolution: "wonka@npm:6.3.4"
+ checksum: 6bb57955cb2982fb469a7824484e6854b436f89a7f10b6a981348789d88fbc944665771adc4cc404f62416417eb47ab2b8657d898e5301ccd4a53eaac6a10508
+ languageName: node
+ linkType: hard
+
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "wrap-ansi@npm:7.0.0"
+ dependencies:
+ ansi-styles: ^4.0.0
+ string-width: ^4.1.0
+ strip-ansi: ^6.0.0
+ checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^6.2.0":
+ version: 6.2.0
+ resolution: "wrap-ansi@npm:6.2.0"
+ dependencies:
+ ansi-styles: ^4.0.0
+ string-width: ^4.1.0
+ strip-ansi: ^6.0.0
+ checksum: 6cd96a410161ff617b63581a08376f0cb9162375adeb7956e10c8cd397821f7eb2a6de24eb22a0b28401300bf228c86e50617cd568209b5f6775b93c97d2fe3a
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^8.1.0":
+ version: 8.1.0
+ resolution: "wrap-ansi@npm:8.1.0"
+ dependencies:
+ ansi-styles: ^6.1.0
+ string-width: ^5.0.1
+ strip-ansi: ^7.0.1
+ checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238
+ languageName: node
+ linkType: hard
+
+"wrappy@npm:1":
+ version: 1.0.2
+ resolution: "wrappy@npm:1.0.2"
+ checksum: 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: ^4.1.11
+ imurmurhash: ^0.1.4
+ signal-exit: ^3.0.2
+ checksum: 2db81f92ae974fd87ab4a5e7932feacaca626679a7c98fcc73ad8fcea5a1950eab32fa831f79e9391ac99b562ca091ad49be37a79045bd65f595efbb8f4596ae
+ languageName: node
+ linkType: hard
+
+"ws@npm:^6.2.2":
+ version: 6.2.2
+ resolution: "ws@npm:6.2.2"
+ dependencies:
+ async-limiter: ~1.0.0
+ checksum: aec3154ec51477c094ac2cb5946a156e17561a581fa27005cbf22c53ac57f8d4e5f791dd4bbba6a488602cb28778c8ab7df06251d590507c3c550fd8ebeee949
+ languageName: node
+ linkType: hard
+
+"ws@npm:^7, ws@npm:^7.5.1":
+ version: 7.5.9
+ resolution: "ws@npm:7.5.9"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138
+ languageName: node
+ linkType: hard
+
+"ws@npm:^8.12.1":
+ version: 8.14.2
+ resolution: "ws@npm:8.14.2"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ">=5.0.2"
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 3ca0dad26e8cc6515ff392b622a1467430814c463b3368b0258e33696b1d4bed7510bc7030f7b72838b9fdeb8dbd8839cbf808367d6aae2e1d668ce741d4308b
+ languageName: node
+ linkType: hard
+
+"xcode@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "xcode@npm:3.0.1"
+ dependencies:
+ simple-plist: ^1.1.0
+ uuid: ^7.0.3
+ checksum: 908ff85851f81aec6e36ca24427db092e1cc068f052716e14de5e762196858039efabbe053a1abe8920184622501049e74a93618e8692b982f7604a9847db108
+ languageName: node
+ linkType: hard
+
+"xml2js@npm:0.6.0":
+ version: 0.6.0
+ resolution: "xml2js@npm:0.6.0"
+ dependencies:
+ sax: ">=0.6.0"
+ xmlbuilder: ~11.0.0
+ checksum: 437f353fd66d367bf158e9555a0625df9965d944e499728a5c6bc92a54a2763179b144f14b7e1c725040f56bbd22b0fa6cfcb09ec4faf39c45ce01efe631f40b
+ languageName: node
+ linkType: hard
+
+"xmlbuilder@npm:^14.0.0":
+ version: 14.0.0
+ resolution: "xmlbuilder@npm:14.0.0"
+ checksum: 9e93d3c73957dbb21acde63afa5d241b19057bdbdca9d53534d8351e70f1d5c9db154e3ca19bd3e9ea84c082539ab6e7845591c8778a663e8b5d3470d5427a8b
+ languageName: node
+ linkType: hard
+
+"xmlbuilder@npm:^15.1.1":
+ version: 15.1.1
+ resolution: "xmlbuilder@npm:15.1.1"
+ checksum: 14f7302402e28d1f32823583d121594a9dca36408d40320b33f598bd589ca5163a352d076489c9c64d2dc1da19a790926a07bf4191275330d4de2b0d85bb1843
+ languageName: node
+ linkType: hard
+
+"xmlbuilder@npm:~11.0.0":
+ version: 11.0.1
+ resolution: "xmlbuilder@npm:11.0.1"
+ checksum: 7152695e16f1a9976658215abab27e55d08b1b97bca901d58b048d2b6e106b5af31efccbdecf9b07af37c8377d8e7e821b494af10b3a68b0ff4ae60331b415b0
+ languageName: node
+ linkType: hard
+
+"xtend@npm:~4.0.1":
+ version: 4.0.2
+ resolution: "xtend@npm:4.0.2"
+ checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a
+ languageName: node
+ linkType: hard
+
+"y18n@npm:^4.0.0":
+ version: 4.0.3
+ resolution: "y18n@npm:4.0.3"
+ checksum: 014dfcd9b5f4105c3bb397c1c8c6429a9df004aa560964fb36732bfb999bfe83d45ae40aeda5b55d21b1ee53d8291580a32a756a443e064317953f08025b1aa4
+ languageName: node
+ linkType: hard
+
+"y18n@npm:^5.0.5":
+ version: 5.0.8
+ resolution: "y18n@npm:5.0.8"
+ checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^3.0.2":
+ version: 3.1.1
+ resolution: "yallist@npm:3.1.1"
+ checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "yallist@npm:4.0.0"
+ checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5
+ languageName: node
+ linkType: hard
+
+"yaml@npm:^2.2.1":
+ version: 2.3.4
+ resolution: "yaml@npm:2.3.4"
+ checksum: e6d1dae1c6383bcc8ba11796eef3b8c02d5082911c6723efeeb5ba50fc8e881df18d645e64de68e421b577296000bea9c75d6d9097c2f6699da3ae0406c030d8
+ languageName: node
+ linkType: hard
+
+"yargs-parser@npm:^18.1.2":
+ version: 18.1.3
+ resolution: "yargs-parser@npm:18.1.3"
+ dependencies:
+ camelcase: ^5.0.0
+ decamelize: ^1.2.0
+ checksum: 60e8c7d1b85814594d3719300ecad4e6ae3796748b0926137bfec1f3042581b8646d67e83c6fc80a692ef08b8390f21ddcacb9464476c39bbdf52e34961dd4d9
+ languageName: node
+ linkType: hard
+
+"yargs-parser@npm:^21.1.1":
+ version: 21.1.1
+ resolution: "yargs-parser@npm:21.1.1"
+ checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c
+ languageName: node
+ linkType: hard
+
+"yargs@npm:^15.1.0":
+ version: 15.4.1
+ resolution: "yargs@npm:15.4.1"
+ dependencies:
+ cliui: ^6.0.0
+ decamelize: ^1.2.0
+ find-up: ^4.1.0
+ get-caller-file: ^2.0.1
+ require-directory: ^2.1.1
+ require-main-filename: ^2.0.0
+ set-blocking: ^2.0.0
+ string-width: ^4.2.0
+ which-module: ^2.0.0
+ y18n: ^4.0.0
+ yargs-parser: ^18.1.2
+ checksum: 40b974f508d8aed28598087720e086ecd32a5fd3e945e95ea4457da04ee9bdb8bdd17fd91acff36dc5b7f0595a735929c514c40c402416bbb87c03f6fb782373
+ languageName: node
+ linkType: hard
+
+"yargs@npm:^17.6.2":
+ version: 17.7.2
+ resolution: "yargs@npm:17.7.2"
+ dependencies:
+ cliui: ^8.0.1
+ escalade: ^3.1.1
+ get-caller-file: ^2.0.5
+ require-directory: ^2.1.1
+ string-width: ^4.2.3
+ y18n: ^5.0.5
+ yargs-parser: ^21.1.1
+ checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a
+ languageName: node
+ linkType: hard
+
+"yocto-queue@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "yocto-queue@npm:0.1.0"
+ checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700
+ languageName: node
+ linkType: hard
diff --git a/packages/sdk/react-native/link-dev.sh b/packages/sdk/react-native/link-dev.sh
index da6e062ed..8b6c91f56 100755
--- a/packages/sdk/react-native/link-dev.sh
+++ b/packages/sdk/react-native/link-dev.sh
@@ -8,10 +8,12 @@ declare -a examples=(example)
for example in "${examples[@]}"
do
echo "===== Linking to $example"
- MODULES_DIR=$example/node_modules
- SDK_DIR=$MODULES_DIR/@launchdarkly/react-native-client-sdk
- COMMON_DIR="$SDK_DIR"/node_modules/@launchdarkly/js-sdk-common
- CLIENT_COMMON_DIR="$SDK_DIR"/node_modules/@launchdarkly/js-client-sdk-common
+ MODULES_DIR="$example"/node_modules
+ SDK_DIR="$MODULES_DIR"/@launchdarkly/react-native-client-sdk
+ SDK_DIR_MODULES="$SDK_DIR"/node_modules
+ SDK_LD_DIR="$SDK_DIR_MODULES"/@launchdarkly
+ COMMON_DIR="$SDK_LD_DIR"/js-sdk-common
+ CLIENT_COMMON_DIR="$SDK_LD_DIR"/js-client-sdk-common
mkdir -p "$MODULES_DIR"
rm -rf "$SDK_DIR"
@@ -22,6 +24,7 @@ do
rsync -aq src "$SDK_DIR"
rsync -aq package.json "$SDK_DIR"
rsync -aq LICENSE "$SDK_DIR"
+ rsync -aq node_modules/@react-native-async-storage "$SDK_DIR"/node_modules
rsync -aq node_modules/base64-js "$SDK_DIR"/node_modules
rsync -aq node_modules/event-target-shim "$SDK_DIR"/node_modules
@@ -33,4 +36,5 @@ do
rsync -aq ../../shared/sdk-client/dist "$CLIENT_COMMON_DIR"
rsync -aq ../../shared/sdk-client/src "$CLIENT_COMMON_DIR"
rsync -aq ../../shared/sdk-client/package.json "$CLIENT_COMMON_DIR"
+
done
diff --git a/packages/sdk/react-native/package.json b/packages/sdk/react-native/package.json
index a5349c85a..78f2fa9bc 100644
--- a/packages/sdk/react-native/package.json
+++ b/packages/sdk/react-native/package.json
@@ -36,14 +36,15 @@
"coverage": "yarn test --coverage",
"check": "yarn prettier && yarn lint && yarn build && yarn test",
"link-dev": "./link-dev.sh",
- "android": "yarn ./example && yarn build && yarn ./example android",
- "ios": "yarn ./example && yarn build && yarn ./example ios"
+ "android": "yarn && yarn ./example && yarn build && (cd example/ && yarn android-release)",
+ "ios": "yarn && yarn ./example && yarn build && (cd example/ && yarn ios-go)"
},
"peerDependencies": {
"react": "*"
},
"dependencies": {
"@launchdarkly/js-client-sdk-common": "0.0.1",
+ "@react-native-async-storage/async-storage": "^1.21.0",
"base64-js": "^1.5.1",
"event-target-shim": "^6.0.2"
},
diff --git a/packages/sdk/react-native/src/ReactNativeLDClient.test.ts b/packages/sdk/react-native/src/ReactNativeLDClient.test.ts
index 1f0ff848c..1bbcb4f0a 100644
--- a/packages/sdk/react-native/src/ReactNativeLDClient.test.ts
+++ b/packages/sdk/react-native/src/ReactNativeLDClient.test.ts
@@ -9,8 +9,16 @@ describe('ReactNativeLDClient', () => {
ldc = new ReactNativeLDClient('mob-test', { sendEvents: false });
});
- test('constructor', () => {
+ test('constructing a new client', () => {
expect(ldc.sdkKey).toEqual('mob-test');
+ expect(ldc.config.serviceEndpoints).toEqual({
+ analyticsEventPath: '/mobile',
+ diagnosticEventPath: '/mobile/events/diagnostic',
+ events: 'https://events.launchdarkly.com',
+ includeAuthorizationHeader: true,
+ polling: 'https://sdk.launchdarkly.com',
+ streaming: 'https://clientstream.launchdarkly.com',
+ });
});
test('createStreamUriPath', () => {
diff --git a/packages/sdk/react-native/src/ReactNativeLDClient.ts b/packages/sdk/react-native/src/ReactNativeLDClient.ts
index 4a23619dd..d642c5acf 100644
--- a/packages/sdk/react-native/src/ReactNativeLDClient.ts
+++ b/packages/sdk/react-native/src/ReactNativeLDClient.ts
@@ -1,26 +1,33 @@
import {
base64UrlEncode,
BasicLogger,
+ internal,
LDClientImpl,
type LDContext,
type LDOptions,
} from '@launchdarkly/js-client-sdk-common';
-import platform from './platform';
+import createPlatform from './platform';
export default class ReactNativeLDClient extends LDClientImpl {
constructor(sdkKey: string, options: LDOptions = {}) {
const logger =
options.logger ??
new BasicLogger({
- level: 'info',
+ level: 'debug',
// eslint-disable-next-line no-console
destination: console.log,
});
- super(sdkKey, platform, { ...options, logger });
+
+ const internalOptions: internal.LDInternalOptions = {
+ analyticsEventPath: `/mobile`,
+ diagnosticEventPath: `/mobile/events/diagnostic`,
+ };
+
+ super(sdkKey, createPlatform(logger), { ...options, logger }, internalOptions);
}
override createStreamUriPath(context: LDContext) {
- return `/meval/${base64UrlEncode(JSON.stringify(context), platform.encoding!)}`;
+ return `/meval/${base64UrlEncode(JSON.stringify(context), this.platform.encoding!)}`;
}
}
diff --git a/packages/sdk/react-native/src/hooks/index.ts b/packages/sdk/react-native/src/hooks/index.ts
index 5cbe59c5e..c2b2c2bce 100644
--- a/packages/sdk/react-native/src/hooks/index.ts
+++ b/packages/sdk/react-native/src/hooks/index.ts
@@ -1,6 +1,5 @@
import useLDClient from './useLDClient';
-import useLDDataSourceStatus from './useLDDataSourceStatus';
export * from './variation';
-export { useLDDataSourceStatus, useLDClient };
+export { useLDClient };
diff --git a/packages/sdk/react-native/src/hooks/useLDDataSourceStatus.ts b/packages/sdk/react-native/src/hooks/useLDDataSourceStatus.ts
deleted file mode 100644
index 2b775de82..000000000
--- a/packages/sdk/react-native/src/hooks/useLDDataSourceStatus.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { useContext } from 'react';
-
-import { context, ReactContext } from '../provider/reactContext';
-
-const useLDDataSourceStatus = () => {
- const { dataSource } = useContext(context);
- return dataSource;
-};
-
-export default useLDDataSourceStatus;
diff --git a/packages/sdk/react-native/src/platform.ts b/packages/sdk/react-native/src/platform.ts
index f209ce2dd..ee85050cf 100644
--- a/packages/sdk/react-native/src/platform.ts
+++ b/packages/sdk/react-native/src/platform.ts
@@ -1,4 +1,20 @@
/* eslint-disable max-classes-per-file */
+
+/**
+ * The LaunchDarkly SDK uses async-storage for bootstrapping and this is a native
+ * dependency.
+ *
+ * If you are using expo, then adding the LaunchDarkly React Native
+ * SDK from npm and re-running pod install should suffice.
+ *
+ * If you are not using expo, you will need to explicitly add
+ * @react-native-async-storage/async-storage as a dependency to your project
+ * and re-run pod install for auto-linking to work. This is because auto-link
+ * does not work with transitive dependencies:
+ * https://github.com/react-native-community/cli/issues/1347
+ */
+import AsyncStorage from '@react-native-async-storage/async-storage';
+
import type {
Crypto,
Encoding,
@@ -8,12 +24,14 @@ import type {
Hasher,
Hmac,
Info,
+ LDLogger,
Options,
Platform,
PlatformData,
Requests,
Response,
SdkData,
+ Storage,
} from '@launchdarkly/js-client-sdk-common';
import { name, version } from '../package.json';
@@ -68,11 +86,38 @@ class PlatformCrypto implements Crypto {
return uuidv4();
}
}
-const platform: Platform = {
+
+class PlatformStorage implements Storage {
+ constructor(private readonly logger: LDLogger) {}
+ async clear(key: string): Promise {
+ await AsyncStorage.removeItem(key);
+ }
+
+ async get(key: string): Promise {
+ try {
+ const value = await AsyncStorage.getItem(key);
+ return value ?? null;
+ } catch (error) {
+ this.logger.debug(`Error getting AsyncStorage key: ${key}, error: ${error}`);
+ return null;
+ }
+ }
+
+ async set(key: string, value: string): Promise {
+ try {
+ await AsyncStorage.setItem(key, value);
+ } catch (error) {
+ this.logger.debug(`Error saving AsyncStorage key: ${key}, value: ${value}, error: ${error}`);
+ }
+ }
+}
+
+const createPlatform = (logger: LDLogger): Platform => ({
crypto: new PlatformCrypto(),
info: new PlatformInfo(),
requests: new PlatformRequests(),
encoding: new PlatformEncoding(),
-};
+ storage: new PlatformStorage(logger),
+});
-export default platform;
+export default createPlatform;
diff --git a/packages/sdk/react-native/src/provider/LDProvider.tsx b/packages/sdk/react-native/src/provider/LDProvider.tsx
index e57ed12b1..ec2db2798 100644
--- a/packages/sdk/react-native/src/provider/LDProvider.tsx
+++ b/packages/sdk/react-native/src/provider/LDProvider.tsx
@@ -11,8 +11,20 @@ type LDProps = {
context?: LDContext;
};
+/**
+ * This is the LaunchDarkly Provider which uses the React context api to store
+ * and pass data to child components through hooks.
+ *
+ * @param client The ReactNativeLDClient object. Initialize this object separately
+ * and then set this prop when declaring the LDProvider.
+ * @param context Optional. The LDContext object. If set, the LDProvider will
+ * `identify` this context on application mount. If not set, default flag values
+ * will be returned. You can run `identify` at a later time.
+ * @param children
+ * @constructor
+ */
const LDProvider = ({ client, context, children }: PropsWithChildren) => {
- const [state, setState] = useState({ client, context, dataSource: {} });
+ const [state, setState] = useState({ client });
useEffect(() => {
setupListeners(client, setState);
diff --git a/packages/sdk/react-native/src/provider/reactContext.ts b/packages/sdk/react-native/src/provider/reactContext.ts
index 57f7a0e4b..2ada7da80 100644
--- a/packages/sdk/react-native/src/provider/reactContext.ts
+++ b/packages/sdk/react-native/src/provider/reactContext.ts
@@ -1,19 +1,13 @@
import { createContext } from 'react';
-import { LDClient, LDContext } from '@launchdarkly/js-client-sdk-common';
+import { LDClient } from '@launchdarkly/js-client-sdk-common';
export type ReactContext = {
client: LDClient;
- context?: LDContext;
- dataSource: {
- status?: 'connecting' | 'ready' | 'error';
- error?: Error;
- };
};
export const context = createContext({
client: {} as any,
- dataSource: {},
});
const { Provider, Consumer } = context;
diff --git a/packages/sdk/react-native/src/provider/setupListeners.ts b/packages/sdk/react-native/src/provider/setupListeners.ts
index bde53b1c7..111e30ce6 100644
--- a/packages/sdk/react-native/src/provider/setupListeners.ts
+++ b/packages/sdk/react-native/src/provider/setupListeners.ts
@@ -1,7 +1,5 @@
import type { Dispatch, SetStateAction } from 'react';
-import { LDContext } from '@launchdarkly/js-client-sdk-common';
-
import ReactNativeLDClient from '../ReactNativeLDClient';
import { ReactContext } from './reactContext';
@@ -9,16 +7,8 @@ const setupListeners = (
client: ReactNativeLDClient,
setState: Dispatch>,
) => {
- client.on('connecting', (c: LDContext) => {
- setState({ client, context: c, dataSource: { status: 'connecting' } });
- });
-
- client.on('ready', (c: LDContext) => {
- setState({ client, context: c, dataSource: { status: 'ready' } });
- });
-
- client.on('error', (c: LDContext, e: any) => {
- setState({ client, context: c, dataSource: { status: 'error', error: e } });
+ client.on('change', () => {
+ setState({ client });
});
};
diff --git a/packages/shared/common/src/api/platform/Platform.ts b/packages/shared/common/src/api/platform/Platform.ts
index 6c667dcaf..c7c7e67d5 100644
--- a/packages/shared/common/src/api/platform/Platform.ts
+++ b/packages/shared/common/src/api/platform/Platform.ts
@@ -3,6 +3,7 @@ import { Encoding } from './Encoding';
import { Filesystem } from './Filesystem';
import { Info } from './Info';
import { Requests } from './Requests';
+import { Storage } from './Storage';
export interface Platform {
/**
@@ -31,4 +32,10 @@ export interface Platform {
* The interface for performing http/https requests.
*/
requests: Requests;
+
+ /**
+ * The interface for session specific storage object. If the platform does not
+ * support local storage access, this may be undefined.
+ */
+ storage?: Storage;
}
diff --git a/packages/shared/common/src/api/platform/Storage.ts b/packages/shared/common/src/api/platform/Storage.ts
new file mode 100644
index 000000000..ec4379230
--- /dev/null
+++ b/packages/shared/common/src/api/platform/Storage.ts
@@ -0,0 +1,5 @@
+export interface Storage {
+ get: (key: string) => Promise;
+ set: (key: string, value: string) => Promise;
+ clear: (key: string) => Promise;
+}
diff --git a/packages/shared/common/src/api/platform/index.ts b/packages/shared/common/src/api/platform/index.ts
index 0e488004e..ff46f3af4 100644
--- a/packages/shared/common/src/api/platform/index.ts
+++ b/packages/shared/common/src/api/platform/index.ts
@@ -5,3 +5,4 @@ export * from './Info';
export * from './Platform';
export * from './Requests';
export * from './EventSource';
+export * from './Storage';
diff --git a/packages/shared/common/src/utils/clone.ts b/packages/shared/common/src/utils/clone.ts
index 5ae8a7abe..14e19d8e3 100644
--- a/packages/shared/common/src/utils/clone.ts
+++ b/packages/shared/common/src/utils/clone.ts
@@ -1,3 +1,3 @@
-export default function clone(obj: any) {
- return JSON.parse(JSON.stringify(obj));
+export default function clone(obj: any) {
+ return JSON.parse(JSON.stringify(obj)) as T;
}
diff --git a/packages/shared/common/src/utils/fast-deep-equal/LICENSE b/packages/shared/common/src/utils/fast-deep-equal/LICENSE
new file mode 100644
index 000000000..7f1543566
--- /dev/null
+++ b/packages/shared/common/src/utils/fast-deep-equal/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 Evgeny Poberezkin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/shared/common/src/utils/fast-deep-equal/index.ts b/packages/shared/common/src/utils/fast-deep-equal/index.ts
new file mode 100644
index 000000000..4025edcad
--- /dev/null
+++ b/packages/shared/common/src/utils/fast-deep-equal/index.ts
@@ -0,0 +1,78 @@
+/* eslint-disable */
+// Ripped from https://github.com/epoberezkin/fast-deep-fastDeepEqual
+
+// {{? it.es6 }}
+// var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';
+// {{?}}
+
+export default function fastDeepEqual(a: any, b: any) {
+ if (a === b) return true;
+
+ if (a && b && typeof a == 'object' && typeof b == 'object') {
+ if (a.constructor !== b.constructor) return false;
+
+ var length, i, keys;
+ if (Array.isArray(a)) {
+ length = a.length;
+ if (length != b.length) return false;
+ for (i = length; i-- !== 0; ) if (!fastDeepEqual(a[i], b[i])) return false;
+ return true;
+ }
+
+ // {{? it.es6 }}
+ if (a instanceof Map && b instanceof Map) {
+ if (a.size !== b.size) return false;
+ for (i of a.entries()) if (!b.has(i[0])) return false;
+ for (i of a.entries()) if (!fastDeepEqual(i[1], b.get(i[0]))) return false;
+ return true;
+ }
+
+ if (a instanceof Set && b instanceof Set) {
+ if (a.size !== b.size) return false;
+ for (i of a.entries()) if (!b.has(i[0])) return false;
+ return true;
+ }
+
+ if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
+ // @ts-ignore
+ length = a.length;
+ // @ts-ignore
+ if (length != b.length) return false;
+ for (i = length; i-- !== 0; ) {
+ // @ts-ignore
+ if (a[i] !== b[i]) return false;
+ }
+ return true;
+ }
+ // {{?}}
+
+ if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
+ if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
+ if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
+
+ keys = Object.keys(a);
+ length = keys.length;
+ if (length !== Object.keys(b).length) return false;
+
+ for (i = length; i-- !== 0; )
+ if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
+
+ for (i = length; i-- !== 0; ) {
+ var key = keys[i];
+ // {{? it.react }}
+ // if (key === '_owner' && a.$$typeof) {
+ // // React-specific: avoid traversing React elements' _owner.
+ // // _owner contains circular references
+ // // and is not needed when comparing the actual elements (and not their owners)
+ // continue;
+ // }
+ // {{?}}
+ if (!fastDeepEqual(a[key], b[key])) return false;
+ }
+
+ return true;
+ }
+
+ // true if both NaN, false otherwise
+ return a !== a && b !== b;
+}
diff --git a/packages/shared/common/src/utils/index.ts b/packages/shared/common/src/utils/index.ts
index 693e3afb7..7424ac658 100644
--- a/packages/shared/common/src/utils/index.ts
+++ b/packages/shared/common/src/utils/index.ts
@@ -1,5 +1,6 @@
import clone from './clone';
import { secondsToMillis } from './date';
+import fastDeepEqual from './fast-deep-equal';
import { base64UrlEncode, defaultHeaders, httpErrorMessage, LDHeaders, shouldRetry } from './http';
import noop from './noop';
import sleep from './sleep';
@@ -9,6 +10,7 @@ export {
base64UrlEncode,
clone,
defaultHeaders,
+ fastDeepEqual,
httpErrorMessage,
noop,
LDHeaders,
diff --git a/packages/shared/mocks/src/platform.ts b/packages/shared/mocks/src/platform.ts
index 7b11b5c71..ed08a80c9 100644
--- a/packages/shared/mocks/src/platform.ts
+++ b/packages/shared/mocks/src/platform.ts
@@ -1,4 +1,4 @@
-import type { Encoding, Info, Platform, PlatformData, Requests, SdkData } from '@common';
+import type { Encoding, Info, Platform, PlatformData, Requests, SdkData, Storage } from '@common';
import { crypto } from './hasher';
@@ -36,11 +36,18 @@ const requests: Requests = {
createEventSource: jest.fn(),
};
+const storage: Storage = {
+ get: jest.fn(),
+ set: jest.fn(),
+ clear: jest.fn(),
+};
+
const basicPlatform: Platform = {
encoding,
info,
crypto,
requests,
+ storage,
};
export default basicPlatform;
diff --git a/packages/shared/mocks/src/streamingProcessor.ts b/packages/shared/mocks/src/streamingProcessor.ts
index dbf9bf8e0..e8891a89e 100644
--- a/packages/shared/mocks/src/streamingProcessor.ts
+++ b/packages/shared/mocks/src/streamingProcessor.ts
@@ -11,6 +11,8 @@ export const MockStreamingProcessor = jest.fn();
export const setupMockStreamingProcessor = (
shouldError: boolean = false,
putResponseJson: any = { data: { flags: {}, segments: {} } },
+ patchResponseJson?: any,
+ deleteResponseJson?: any,
) => {
MockStreamingProcessor.mockImplementation(
(
@@ -24,7 +26,7 @@ export const setupMockStreamingProcessor = (
) => ({
start: jest.fn(async () => {
if (shouldError) {
- process.nextTick(() => {
+ setTimeout(() => {
const unauthorized: LDStreamingError = {
code: 401,
name: 'LaunchDarklyStreamingError',
@@ -33,8 +35,16 @@ export const setupMockStreamingProcessor = (
errorHandler(unauthorized);
});
} else {
- // execute put which will resolve the init promise
- process.nextTick(() => listeners.get('put')?.processJson(putResponseJson));
+ // execute put which will resolve the identify promise
+ setTimeout(() => listeners.get('put')?.processJson(putResponseJson));
+
+ if (patchResponseJson) {
+ setTimeout(() => listeners.get('patch')?.processJson(patchResponseJson));
+ }
+
+ if (deleteResponseJson) {
+ setTimeout(() => listeners.get('delete')?.processJson(deleteResponseJson));
+ }
}
}),
close: jest.fn(),
diff --git a/packages/shared/sdk-client/src/LDClientImpl.storage.test.ts b/packages/shared/sdk-client/src/LDClientImpl.storage.test.ts
new file mode 100644
index 000000000..13b295d3b
--- /dev/null
+++ b/packages/shared/sdk-client/src/LDClientImpl.storage.test.ts
@@ -0,0 +1,403 @@
+import { clone, type LDContext, noop } from '@launchdarkly/js-sdk-common';
+import { basicPlatform, logger, setupMockStreamingProcessor } from '@launchdarkly/private-js-mocks';
+
+import LDEmitter from './api/LDEmitter';
+import * as mockResponseJson from './evaluation/mockResponse.json';
+import LDClientImpl from './LDClientImpl';
+import { DeleteFlag, Flag, Flags, PatchFlag } from './types';
+
+jest.mock('@launchdarkly/js-sdk-common', () => {
+ const actual = jest.requireActual('@launchdarkly/js-sdk-common');
+ const { MockStreamingProcessor } = jest.requireActual('@launchdarkly/private-js-mocks');
+ return {
+ ...actual,
+ ...{
+ internal: {
+ ...actual.internal,
+ StreamingProcessor: MockStreamingProcessor,
+ },
+ },
+ };
+});
+
+const testSdkKey = 'test-sdk-key';
+const context: LDContext = { kind: 'org', key: 'Testy Pizza' };
+let ldc: LDClientImpl;
+let emitter: LDEmitter;
+let defaultPutResponse: Flags;
+let defaultFlagKeys: string[];
+
+// Promisify on.change listener so we can await it in tests.
+const onChangePromise = () =>
+ new Promise((res) => {
+ ldc.on('change', (_context: LDContext, changes: string[]) => {
+ res(changes);
+ });
+ });
+
+// Common setup code for all tests
+// 1. Sets up streamer
+// 2. Sets up the change listener
+// 3. Runs identify
+// 4. Get all flags
+const identifyGetAllFlags = async (
+ shouldError: boolean = false,
+ putResponse = defaultPutResponse,
+ patchResponse?: PatchFlag,
+ deleteResponse?: DeleteFlag,
+ waitForChange: boolean = true,
+) => {
+ setupMockStreamingProcessor(shouldError, putResponse, patchResponse, deleteResponse);
+ const changePromise = onChangePromise();
+
+ try {
+ await ldc.identify(context);
+ } catch (e) {
+ /* empty */
+ }
+ jest.runAllTimers();
+
+ // if streamer errors, don't wait for 'change' because it will not be sent.
+ if (waitForChange && !shouldError) {
+ await changePromise;
+ }
+
+ return ldc.allFlags();
+};
+
+describe('sdk-client storage', () => {
+ beforeEach(() => {
+ jest.useFakeTimers();
+ defaultPutResponse = clone(mockResponseJson);
+ defaultFlagKeys = Object.keys(defaultPutResponse);
+
+ basicPlatform.storage.get.mockImplementation(() => JSON.stringify(defaultPutResponse));
+ jest
+ .spyOn(LDClientImpl.prototype as any, 'createStreamUriPath')
+ .mockReturnValue('/stream/path');
+
+ ldc = new LDClientImpl(testSdkKey, basicPlatform, { logger, sendEvents: false });
+
+ // @ts-ignore
+ emitter = ldc.emitter;
+ jest.spyOn(emitter as LDEmitter, 'emit');
+ });
+
+ afterEach(() => {
+ jest.resetAllMocks();
+ });
+
+ test('initialize from storage succeeds without streamer', async () => {
+ // make sure streamer errors
+ const allFlags = await identifyGetAllFlags(true, defaultPutResponse);
+
+ expect(basicPlatform.storage.get).toHaveBeenCalledWith('org:Testy Pizza');
+
+ // 'change' should not have been emitted
+ expect(emitter.emit).toHaveBeenCalledTimes(3);
+ expect(emitter.emit).toHaveBeenNthCalledWith(1, 'identifying', context);
+ expect(emitter.emit).toHaveBeenNthCalledWith(2, 'change', context, defaultFlagKeys);
+ expect(emitter.emit).toHaveBeenNthCalledWith(
+ 3,
+ 'error',
+ context,
+ expect.objectContaining({ message: 'test-error' }),
+ );
+ expect(allFlags).toEqual({
+ 'dev-test-flag': true,
+ 'easter-i-tunes-special': false,
+ 'easter-specials': 'no specials',
+ fdsafdsafdsafdsa: true,
+ 'log-level': 'warn',
+ 'moonshot-demo': true,
+ test1: 's1',
+ 'this-is-a-test': true,
+ });
+ });
+
+ test('no storage, cold start from streamer', async () => {
+ // fake previously cached flags even though there's no storage for this context
+ // @ts-ignore
+ ldc.flags = defaultPutResponse;
+ basicPlatform.storage.get.mockImplementation(() => undefined);
+ setupMockStreamingProcessor(false, defaultPutResponse);
+
+ ldc.identify(context).then(noop);
+ await jest.runAllTimersAsync();
+
+ expect(emitter.emit).toHaveBeenCalledTimes(1);
+ expect(emitter.emit).toHaveBeenNthCalledWith(1, 'identifying', context);
+ expect(basicPlatform.storage.set).toHaveBeenNthCalledWith(
+ 1,
+ 'org:Testy Pizza',
+ JSON.stringify(defaultPutResponse),
+ );
+ expect(ldc.logger.debug).toHaveBeenCalledWith('Not emitting changes from PUT');
+
+ // this is defaultPutResponse
+ expect(ldc.allFlags()).toEqual({
+ 'dev-test-flag': true,
+ 'easter-i-tunes-special': false,
+ 'easter-specials': 'no specials',
+ fdsafdsafdsafdsa: true,
+ 'log-level': 'warn',
+ 'moonshot-demo': true,
+ test1: 's1',
+ 'this-is-a-test': true,
+ });
+ });
+
+ test('syncing storage when a flag is deleted', async () => {
+ const putResponse = clone(defaultPutResponse);
+ delete putResponse['dev-test-flag'];
+ const allFlags = await identifyGetAllFlags(false, putResponse);
+
+ expect(allFlags).not.toHaveProperty('dev-test-flag');
+ expect(basicPlatform.storage.set).toHaveBeenCalledWith(
+ 'org:Testy Pizza',
+ JSON.stringify(putResponse),
+ );
+ expect(emitter.emit).toHaveBeenNthCalledWith(1, 'identifying', context);
+ expect(emitter.emit).toHaveBeenNthCalledWith(2, 'change', context, defaultFlagKeys);
+ expect(emitter.emit).toHaveBeenNthCalledWith(3, 'change', context, ['dev-test-flag']);
+ });
+
+ test('syncing storage when a flag is added', async () => {
+ const putResponse = clone(defaultPutResponse);
+ const newFlag = {
+ version: 1,
+ flagVersion: 2,
+ value: false,
+ variation: 1,
+ trackEvents: false,
+ };
+ putResponse['another-dev-test-flag'] = newFlag;
+ const allFlags = await identifyGetAllFlags(false, putResponse);
+
+ expect(allFlags).toMatchObject({ 'another-dev-test-flag': false });
+ expect(basicPlatform.storage.set).toHaveBeenCalledWith(
+ 'org:Testy Pizza',
+ JSON.stringify(putResponse),
+ );
+ expect(emitter.emit).toHaveBeenNthCalledWith(3, 'change', context, ['another-dev-test-flag']);
+ });
+
+ test('syncing storage when a flag is updated', async () => {
+ const putResponse = clone(defaultPutResponse);
+ putResponse['dev-test-flag'].version = 999;
+ putResponse['dev-test-flag'].value = false;
+ const allFlags = await identifyGetAllFlags(false, putResponse);
+
+ expect(allFlags).toMatchObject({ 'dev-test-flag': false });
+ expect(emitter.emit).toHaveBeenNthCalledWith(3, 'change', context, ['dev-test-flag']);
+ });
+
+ test('syncing storage on multiple flag operations', async () => {
+ const putResponse = clone(defaultPutResponse);
+ const newFlag = clone(putResponse['dev-test-flag']);
+
+ // flag updated, added and deleted
+ putResponse['dev-test-flag'].value = false;
+ putResponse['another-dev-test-flag'] = newFlag;
+ delete putResponse['moonshot-demo'];
+ const allFlags = await identifyGetAllFlags(false, putResponse);
+
+ expect(allFlags).toMatchObject({ 'dev-test-flag': false, 'another-dev-test-flag': true });
+ expect(allFlags).not.toHaveProperty('moonshot-demo');
+ expect(emitter.emit).toHaveBeenNthCalledWith(3, 'change', context, [
+ 'moonshot-demo',
+ 'dev-test-flag',
+ 'another-dev-test-flag',
+ ]);
+ });
+
+ test('syncing storage when PUT is consistent so no change', async () => {
+ const allFlags = await identifyGetAllFlags(
+ false,
+ defaultPutResponse,
+ undefined,
+ undefined,
+ false,
+ );
+
+ expect(basicPlatform.storage.set).toHaveBeenNthCalledWith(
+ 1,
+ 'org:Testy Pizza',
+ JSON.stringify(defaultPutResponse),
+ );
+ expect(emitter.emit).toHaveBeenCalledTimes(2);
+ expect(emitter.emit).toHaveBeenNthCalledWith(2, 'change', context, defaultFlagKeys);
+
+ // this is defaultPutResponse
+ expect(allFlags).toEqual({
+ 'dev-test-flag': true,
+ 'easter-i-tunes-special': false,
+ 'easter-specials': 'no specials',
+ fdsafdsafdsafdsa: true,
+ 'log-level': 'warn',
+ 'moonshot-demo': true,
+ test1: 's1',
+ 'this-is-a-test': true,
+ });
+ });
+
+ test('an update to inExperiment should emit change event', async () => {
+ const putResponse = clone(defaultPutResponse);
+ putResponse['dev-test-flag'].reason = { kind: 'RULE_MATCH', inExperiment: true };
+
+ const allFlags = await identifyGetAllFlags(false, putResponse);
+ const flagsInStorage = JSON.parse(basicPlatform.storage.set.mock.calls[0][1]) as Flags;
+
+ expect(allFlags).toMatchObject({ 'dev-test-flag': true });
+ expect(flagsInStorage['dev-test-flag'].reason).toEqual({
+ kind: 'RULE_MATCH',
+ inExperiment: true,
+ });
+
+ // both previous and current are true but inExperiment has changed
+ // so a change event should be emitted
+ expect(emitter.emit).toHaveBeenNthCalledWith(3, 'change', context, ['dev-test-flag']);
+ });
+
+ test('patch should emit change event', async () => {
+ const patchResponse = clone(defaultPutResponse['dev-test-flag']);
+ patchResponse.key = 'dev-test-flag';
+ patchResponse.value = false;
+ patchResponse.version += 1;
+
+ const allFlags = await identifyGetAllFlags(false, defaultPutResponse, patchResponse);
+ const flagsInStorage = JSON.parse(basicPlatform.storage.set.mock.lastCall[1]) as Flags;
+
+ expect(allFlags).toMatchObject({ 'dev-test-flag': false });
+ expect(basicPlatform.storage.set).toHaveBeenCalledWith(
+ 'org:Testy Pizza',
+ expect.stringContaining(JSON.stringify(patchResponse)),
+ );
+ expect(flagsInStorage['dev-test-flag'].version).toEqual(patchResponse.version);
+ expect(emitter.emit).toHaveBeenCalledTimes(3);
+ expect(emitter.emit).toHaveBeenNthCalledWith(3, 'change', context, ['dev-test-flag']);
+ });
+
+ test('patch should add new flags', async () => {
+ const patchResponse = clone(defaultPutResponse['dev-test-flag']);
+ patchResponse.key = 'another-dev-test-flag';
+
+ const allFlags = await identifyGetAllFlags(false, defaultPutResponse, patchResponse);
+ const flagsInStorage = JSON.parse(basicPlatform.storage.set.mock.lastCall[1]) as Flags;
+
+ expect(allFlags).toHaveProperty('another-dev-test-flag');
+ expect(basicPlatform.storage.set).toHaveBeenCalledWith(
+ 'org:Testy Pizza',
+ expect.stringContaining(JSON.stringify(patchResponse)),
+ );
+ expect(flagsInStorage).toHaveProperty('another-dev-test-flag');
+ expect(emitter.emit).toHaveBeenCalledTimes(3);
+ expect(emitter.emit).toHaveBeenNthCalledWith(3, 'change', context, ['another-dev-test-flag']);
+ });
+
+ test('patch should ignore older version', async () => {
+ const patchResponse = clone(defaultPutResponse['dev-test-flag']);
+ patchResponse.key = 'dev-test-flag';
+ patchResponse.value = false;
+ patchResponse.version -= 1;
+
+ const allFlags = await identifyGetAllFlags(
+ false,
+ defaultPutResponse,
+ patchResponse,
+ undefined,
+ false,
+ );
+
+ expect(basicPlatform.storage.set).toHaveBeenCalledTimes(1);
+ expect(emitter.emit).not.toHaveBeenCalledWith('change');
+
+ // this is defaultPutResponse
+ expect(allFlags).toEqual({
+ 'dev-test-flag': true,
+ 'easter-i-tunes-special': false,
+ 'easter-specials': 'no specials',
+ fdsafdsafdsafdsa: true,
+ 'log-level': 'warn',
+ 'moonshot-demo': true,
+ test1: 's1',
+ 'this-is-a-test': true,
+ });
+ });
+
+ test('delete should emit change event', async () => {
+ const deleteResponse = {
+ key: 'dev-test-flag',
+ version: defaultPutResponse['dev-test-flag'].version + 1,
+ };
+
+ const allFlags = await identifyGetAllFlags(
+ false,
+ defaultPutResponse,
+ undefined,
+ deleteResponse,
+ );
+ const flagsInStorage = JSON.parse(basicPlatform.storage.set.mock.lastCall[1]) as Flags;
+
+ expect(allFlags).not.toHaveProperty('dev-test-flag');
+ expect(basicPlatform.storage.set).toHaveBeenCalledWith(
+ 'org:Testy Pizza',
+ expect.stringContaining('dev-test-flag'),
+ );
+ expect(flagsInStorage['dev-test-flag']).toMatchObject({ ...deleteResponse, deleted: true });
+ expect(emitter.emit).toHaveBeenCalledTimes(3);
+ expect(emitter.emit).toHaveBeenNthCalledWith(3, 'change', context, ['dev-test-flag']);
+ });
+
+ test('delete should not delete equal version', async () => {
+ const deleteResponse = {
+ key: 'dev-test-flag',
+ version: defaultPutResponse['dev-test-flag'].version,
+ };
+
+ const allFlags = await identifyGetAllFlags(
+ false,
+ defaultPutResponse,
+ undefined,
+ deleteResponse,
+ false,
+ );
+
+ expect(allFlags).toHaveProperty('dev-test-flag');
+ expect(basicPlatform.storage.set).toHaveBeenCalledTimes(1);
+ expect(emitter.emit).not.toHaveBeenCalledWith('change');
+ });
+
+ test('delete should not delete newer version', async () => {
+ const deleteResponse = {
+ key: 'dev-test-flag',
+ version: defaultPutResponse['dev-test-flag'].version - 1,
+ };
+
+ const allFlags = await identifyGetAllFlags(
+ false,
+ defaultPutResponse,
+ undefined,
+ deleteResponse,
+ false,
+ );
+
+ expect(allFlags).toHaveProperty('dev-test-flag');
+ expect(basicPlatform.storage.set).toHaveBeenCalledTimes(1);
+ expect(emitter.emit).not.toHaveBeenCalledWith('change');
+ });
+
+ test('delete should add and tombstone non-existing flag', async () => {
+ const deleteResponse = {
+ key: 'does-not-exist',
+ version: 1,
+ };
+
+ await identifyGetAllFlags(false, defaultPutResponse, undefined, deleteResponse, false);
+ const flagsInStorage = JSON.parse(basicPlatform.storage.set.mock.lastCall[1]) as Flags;
+
+ expect(basicPlatform.storage.set).toHaveBeenCalledTimes(2);
+ expect(flagsInStorage['does-not-exist']).toMatchObject({ ...deleteResponse, deleted: true });
+ expect(emitter.emit).toHaveBeenCalledWith('change', context, ['does-not-exist']);
+ });
+});
diff --git a/packages/shared/sdk-client/src/LDClientImpl.test.ts b/packages/shared/sdk-client/src/LDClientImpl.test.ts
index 509b2438a..bbc396a0b 100644
--- a/packages/shared/sdk-client/src/LDClientImpl.test.ts
+++ b/packages/shared/sdk-client/src/LDClientImpl.test.ts
@@ -1,17 +1,13 @@
-import { LDContext } from '@launchdarkly/js-sdk-common';
-import {
- basicPlatform,
- logger,
- MockStreamingProcessor,
- setupMockStreamingProcessor,
-} from '@launchdarkly/private-js-mocks';
+import { clone, LDContext } from '@launchdarkly/js-sdk-common';
+import { basicPlatform, logger, setupMockStreamingProcessor } from '@launchdarkly/private-js-mocks';
import * as mockResponseJson from './evaluation/mockResponse.json';
import LDClientImpl from './LDClientImpl';
+import { Flags } from './types';
-jest.mock('./evaluation/fetchFlags');
jest.mock('@launchdarkly/js-sdk-common', () => {
const actual = jest.requireActual('@launchdarkly/js-sdk-common');
+ const { MockStreamingProcessor } = jest.requireActual('@launchdarkly/private-js-mocks');
return {
...actual,
...{
@@ -22,15 +18,18 @@ jest.mock('@launchdarkly/js-sdk-common', () => {
},
};
});
-describe('sdk-client object', () => {
- const testSdkKey = 'test-sdk-key';
- const context: LDContext = { kind: 'org', key: 'Testy Pizza' };
- let ldc: LDClientImpl;
+const testSdkKey = 'test-sdk-key';
+const context: LDContext = { kind: 'org', key: 'Testy Pizza' };
+let ldc: LDClientImpl;
+let defaultPutResponse: Flags;
+
+describe('sdk-client object', () => {
beforeEach(() => {
- setupMockStreamingProcessor(false, mockResponseJson);
+ defaultPutResponse = clone(mockResponseJson);
+ setupMockStreamingProcessor(false, defaultPutResponse);
- ldc = new LDClientImpl(testSdkKey, basicPlatform, { logger });
+ ldc = new LDClientImpl(testSdkKey, basicPlatform, { logger, sendEvents: false });
jest
.spyOn(LDClientImpl.prototype as any, 'createStreamUriPath')
.mockReturnValue('/stream/path');
@@ -96,8 +95,32 @@ describe('sdk-client object', () => {
expect(devTestFlag).toBe(true);
});
+ test('variationDetail flag not found', async () => {
+ await ldc.identify(context);
+ const flag = ldc.variationDetail('does-not-exist', 'not-found');
+
+ expect(flag).toEqual({
+ reason: { errorKind: 'FLAG_NOT_FOUND', kind: 'ERROR' },
+ value: 'not-found',
+ variationIndex: null,
+ });
+ });
+
+ test('variationDetail deleted flag not found', async () => {
+ await ldc.identify(context);
+ // @ts-ignore
+ ldc.flags['dev-test-flag'].deleted = true;
+ const flag = ldc.variationDetail('dev-test-flag', 'deleted');
+
+ expect(flag).toEqual({
+ reason: { errorKind: 'FLAG_NOT_FOUND', kind: 'ERROR' },
+ value: 'deleted',
+ variationIndex: null,
+ });
+ });
+
test('identify success', async () => {
- mockResponseJson['dev-test-flag'].value = false;
+ defaultPutResponse['dev-test-flag'].value = false;
const carContext: LDContext = { kind: 'car', key: 'mazda-cx7' };
await ldc.identify(carContext);
@@ -131,7 +154,7 @@ describe('sdk-client object', () => {
expect(ldc.getContext()).toBeUndefined();
});
- test('identify ready and error listeners', async () => {
+ test('identify change and error listeners', async () => {
// @ts-ignore
const { emitter } = ldc;
@@ -143,7 +166,7 @@ describe('sdk-client object', () => {
const carContext2: LDContext = { kind: 'car', key: 'subaru-forrester' };
await ldc.identify(carContext2);
- expect(emitter.listenerCount('ready')).toEqual(1);
+ expect(emitter.listenerCount('change')).toEqual(1);
expect(emitter.listenerCount('error')).toEqual(1);
});
});
diff --git a/packages/shared/sdk-client/src/LDClientImpl.ts b/packages/shared/sdk-client/src/LDClientImpl.ts
index 03f0c1b81..cfa3a7179 100644
--- a/packages/shared/sdk-client/src/LDClientImpl.ts
+++ b/packages/shared/sdk-client/src/LDClientImpl.ts
@@ -1,8 +1,4 @@
-// temporarily allow unused vars for the duration of the migration
-
-/* eslint-disable @typescript-eslint/no-unused-vars */
import {
- base64UrlEncode,
ClientContext,
clone,
Context,
@@ -25,9 +21,10 @@ import { LDClient, type LDOptions } from './api';
import LDEmitter, { EventName } from './api/LDEmitter';
import Configuration from './configuration';
import createDiagnosticsManager from './diagnostics/createDiagnosticsManager';
-import { Flags } from './evaluation/fetchFlags';
import createEventProcessor from './events/createEventProcessor';
import EventFactory from './events/EventFactory';
+import { DeleteFlag, Flags, PatchFlag } from './types';
+import { calculateFlagChanges } from './utils';
const { createErrorEvaluationDetail, createSuccessEvaluationDetail, ClientMessages, ErrorKinds } =
internal;
@@ -44,10 +41,11 @@ export default class LDClientImpl implements LDClient {
private eventFactoryWithReasons = new EventFactory(true);
private emitter: LDEmitter;
private flags: Flags = {};
- private identifyReadyListener?: (c: LDContext) => void;
+ private identifyChangeListener?: (c: LDContext, changedKeys: string[]) => void;
private identifyErrorListener?: (c: LDContext, err: any) => void;
private readonly clientContext: ClientContext;
+
/**
* Creates the client object synchronously. No async, no network calls.
*/
@@ -55,6 +53,7 @@ export default class LDClientImpl implements LDClient {
public readonly sdkKey: string,
public readonly platform: Platform,
options: LDOptions,
+ internalOptions?: internal.LDInternalOptions,
) {
if (!sdkKey) {
throw new Error('You must configure the client with a client-side SDK key');
@@ -64,7 +63,7 @@ export default class LDClientImpl implements LDClient {
throw new Error('Platform must implement Encoding because btoa is required.');
}
- this.config = new Configuration(options);
+ this.config = new Configuration(options, internalOptions);
this.clientContext = new ClientContext(sdkKey, this.config, platform);
this.logger = this.config.logger;
this.diagnosticsManager = createDiagnosticsManager(sdkKey, this.config, platform);
@@ -80,7 +79,9 @@ export default class LDClientImpl implements LDClient {
allFlags(): LDFlagSet {
const result: LDFlagSet = {};
Object.entries(this.flags).forEach(([k, r]) => {
- result[k] = r.value;
+ if (!r.deleted) {
+ result[k] = r.value;
+ }
});
return result;
}
@@ -88,6 +89,7 @@ export default class LDClientImpl implements LDClient {
async close(): Promise {
await this.flush();
this.eventProcessor.close();
+ this.streamer?.close();
}
async flush(): Promise<{ error?: Error; result: boolean }> {
@@ -99,41 +101,78 @@ export default class LDClientImpl implements LDClient {
return { result: true };
}
- getContext(): LDContext {
- return this.context ? clone(this.context) : undefined;
+ getContext(): LDContext | undefined {
+ return this.context ? clone(this.context) : undefined;
}
- private createStreamListeners(context: LDContext): Map {
+ private createStreamListeners(
+ context: LDContext,
+ canonicalKey: string,
+ identifyResolve: any,
+ ): Map {
const listeners = new Map();
listeners.set('put', {
deserializeData: JSON.parse,
- processJson: (dataJson) => {
- this.logger.debug('Initializing all data');
+ processJson: async (dataJson: Flags) => {
+ this.logger.debug(`Streamer PUT: ${Object.keys(dataJson)}`);
+ const changedKeys = calculateFlagChanges(this.flags, dataJson);
this.context = context;
- this.flags = {};
- Object.keys(dataJson).forEach((key) => {
- this.flags[key] = dataJson[key];
- });
- this.emitter.emit('ready', context);
+ this.flags = dataJson;
+ await this.platform.storage?.set(canonicalKey, JSON.stringify(this.flags));
+
+ if (changedKeys.length > 0) {
+ this.logger.debug(`Emitting changes from PUT: ${changedKeys}`);
+ // emitting change resolves identify
+ this.emitter.emit('change', context, changedKeys);
+ } else {
+ // manually resolve identify
+ this.logger.debug('Not emitting changes from PUT');
+ identifyResolve();
+ }
},
});
listeners.set('patch', {
deserializeData: JSON.parse,
- processJson: (dataJson) => {
- this.logger.debug(`Updating ${dataJson.key}`);
- this.flags[dataJson.key] = dataJson;
- this.emitter.emit('change', context, dataJson.key);
+ processJson: async (dataJson: PatchFlag) => {
+ this.logger.debug(`Streamer PATCH ${JSON.stringify(dataJson, null, 2)}`);
+ const existing = this.flags[dataJson.key];
+
+ // add flag if it doesn't exist or update it if version is newer
+ if (!existing || (existing && dataJson.version > existing.version)) {
+ this.flags[dataJson.key] = dataJson;
+ await this.platform.storage?.set(canonicalKey, JSON.stringify(this.flags));
+ const changedKeys = [dataJson.key];
+ this.logger.debug(`Emitting changes from PATCH: ${changedKeys}`);
+ this.emitter.emit('change', context, changedKeys);
+ }
},
});
listeners.set('delete', {
deserializeData: JSON.parse,
- processJson: (dataJson) => {
- this.logger.debug(`Deleting ${dataJson.key}`);
- delete this.flags[dataJson.key];
- this.emitter.emit('change', context, dataJson.key);
+ processJson: async (dataJson: DeleteFlag) => {
+ this.logger.debug(`Streamer DELETE ${JSON.stringify(dataJson, null, 2)}`);
+ const existing = this.flags[dataJson.key];
+
+ // the deleted flag is saved as tombstoned
+ if (!existing || existing.version < dataJson.version) {
+ this.flags[dataJson.key] = {
+ ...dataJson,
+ deleted: true,
+ // props below are set to sensible defaults. they are irrelevant
+ // because this flag has been deleted.
+ flagVersion: 0,
+ value: undefined,
+ variation: 0,
+ trackEvents: false,
+ };
+ await this.platform.storage?.set(canonicalKey, JSON.stringify(this.flags));
+ const changedKeys = [dataJson.key];
+ this.logger.debug(`Emitting changes from DELETE: ${changedKeys}`);
+ this.emitter.emit('change', context, changedKeys);
+ }
},
});
@@ -146,29 +185,32 @@ export default class LDClientImpl implements LDClient {
* For mobile key: /meval/${base64-encoded-context}
* For clientSideId: /eval/${envId}/${base64-encoded-context}
*
- * @param context The LD context object to be base64 encoded and appended to
* the path.
*
* @protected This function must be overridden in subclasses for streamer
* to work.
+ * @param _context The LDContext object
*/
- protected createStreamUriPath(context: LDContext): string {
+ protected createStreamUriPath(_context: LDContext): string {
throw new Error(
'createStreamUriPath not implemented. client sdks must implement createStreamUriPath for streamer to work',
);
}
- private createIdentifyPromise() {
- return new Promise((resolve, reject) => {
- if (this.identifyReadyListener) {
- this.emitter.off('ready', this.identifyReadyListener);
+ private createPromiseWithListeners() {
+ let res: any;
+ const p = new Promise((resolve, reject) => {
+ res = resolve;
+
+ if (this.identifyChangeListener) {
+ this.emitter.off('change', this.identifyChangeListener);
}
if (this.identifyErrorListener) {
this.emitter.off('error', this.identifyErrorListener);
}
- this.identifyReadyListener = (c: LDContext) => {
- this.logger.debug(`ready: ${JSON.stringify(c)}`);
+ this.identifyChangeListener = (c: LDContext, changedKeys: string[]) => {
+ this.logger.debug(`change: context: ${JSON.stringify(c)}, flags: ${changedKeys}`);
resolve();
};
this.identifyErrorListener = (c: LDContext, err: any) => {
@@ -176,9 +218,16 @@ export default class LDClientImpl implements LDClient {
reject(err);
};
- this.emitter.on('ready', this.identifyReadyListener);
+ this.emitter.on('change', this.identifyChangeListener);
this.emitter.on('error', this.identifyErrorListener);
});
+
+ return { identifyPromise: p, identifyResolve: res };
+ }
+
+ private async getFlagsFromStorage(canonicalKey: string): Promise {
+ const f = await this.platform.storage?.get(canonicalKey);
+ return f ? JSON.parse(f) : undefined;
}
// TODO: implement secure mode
@@ -191,25 +240,38 @@ export default class LDClientImpl implements LDClient {
return Promise.reject(error);
}
+ const { identifyPromise, identifyResolve } = this.createPromiseWithListeners();
+ this.logger.debug(`Identifying ${JSON.stringify(context)}`);
+ this.emitter.emit('identifying', context);
+
+ const flagsStorage = await this.getFlagsFromStorage(checkedContext.canonicalKey);
+ if (flagsStorage) {
+ this.logger.debug('Using storage');
+
+ const changedKeys = calculateFlagChanges(this.flags, flagsStorage);
+ this.context = context;
+ this.flags = flagsStorage;
+ this.emitter.emit('change', context, changedKeys);
+ }
+
this.streamer?.close();
this.streamer = new internal.StreamingProcessor(
this.sdkKey,
this.clientContext,
this.createStreamUriPath(context),
- this.createStreamListeners(context),
+ this.createStreamListeners(context, checkedContext.canonicalKey, identifyResolve),
this.diagnosticsManager,
(e) => {
this.logger.error(e);
this.emitter.emit('error', context, e);
},
);
- this.emitter.emit('connecting', context);
this.streamer.start();
- return this.createIdentifyPromise();
+ return identifyPromise;
}
- off(eventName: EventName, listener?: Function): void {
+ off(eventName: EventName, listener: Function): void {
this.emitter.off(eventName, listener);
}
@@ -217,10 +279,6 @@ export default class LDClientImpl implements LDClient {
this.emitter.on(eventName, listener);
}
- setStreaming(value?: boolean): void {
- // TODO:
- }
-
track(key: string, data?: any, metricValue?: number): void {
if (!this.context) {
this.logger?.warn(ClientMessages.missingContextKeyNoEvent);
@@ -237,6 +295,8 @@ export default class LDClientImpl implements LDClient {
);
}
+ // TODO: move variation functions to a separate file to make this file size
+ // more manageable.
private variationInternal(
flagKey: string,
defaultValue: any,
@@ -251,11 +311,15 @@ export default class LDClientImpl implements LDClient {
const evalContext = Context.fromLDContext(this.context);
const found = this.flags[flagKey];
- if (!found) {
- const error = new LDClientError(`Unknown feature flag "${flagKey}"; returning default value`);
+ if (!found || found.deleted) {
+ const defVal = defaultValue ?? null;
+ const error = new LDClientError(
+ `Unknown feature flag "${flagKey}"; returning default value ${defVal}`,
+ );
+ this.logger.error(error);
this.emitter.emit('error', this.context, error);
this.eventProcessor.sendEvent(
- this.eventFactoryDefault.unknownFlagEvent(flagKey, defaultValue ?? null, evalContext),
+ this.eventFactoryDefault.unknownFlagEvent(flagKey, defVal, evalContext),
);
return createErrorEvaluationDetail(ErrorKinds.FlagNotFound, defaultValue);
}
@@ -278,6 +342,7 @@ export default class LDClientImpl implements LDClient {
const error = new LDClientError(
`Wrong type "${type}" for feature flag "${flagKey}"; returning default value`,
);
+ this.logger.error(error);
this.emitter.emit('error', this.context, error);
return createErrorEvaluationDetail(ErrorKinds.WrongType, defaultValue);
}
@@ -360,14 +425,4 @@ export default class LDClientImpl implements LDClient {
jsonVariationDetail(key: string, defaultValue: unknown): LDEvaluationDetailTyped {
return this.variationDetail(key, defaultValue);
}
-
- waitForInitialization(): Promise {
- // TODO:
- return Promise.resolve(undefined);
- }
-
- waitUntilReady(): Promise {
- // TODO:
- return Promise.resolve(undefined);
- }
}
diff --git a/packages/shared/sdk-client/src/api/LDClient.ts b/packages/shared/sdk-client/src/api/LDClient.ts
index 1ad4373a6..d378bad45 100644
--- a/packages/shared/sdk-client/src/api/LDClient.ts
+++ b/packages/shared/sdk-client/src/api/LDClient.ts
@@ -21,7 +21,7 @@ export interface LDClient {
* @returns
* An object in which each key is a feature flag key and each value is the flag value.
* Note that there is no way to specify a default value for each flag as there is with
- * {@link variation}, so any flag that cannot be evaluated will have a null value.
+ * {@link variation}, so any flag that cannot be evaluated will be undefined.
*/
allFlags(): LDFlagSet;
@@ -39,7 +39,7 @@ export interface LDClient {
boolVariation(key: string, defaultValue: boolean): boolean;
/**
- * Determines the boolean variation of a feature flag for a context, along with information about
+ * Determines the boolean variation of a feature flag, along with information about
* how it was calculated.
*
* The `reason` property of the result will also be included in analytics events, if you are
@@ -82,27 +82,26 @@ export interface LDClient {
* Returns the client's current context.
*
* This is the context that was most recently passed to {@link identify}, or, if {@link identify} has never
- * been called, the initial context specified when the client was created.
+ * been called, this will be undefined.
*/
- getContext(): LDContext;
+ getContext(): LDContext | undefined;
/**
* Identifies a context to LaunchDarkly.
*
* Unlike the server-side SDKs, the client-side JavaScript SDKs maintain a current context state,
- * which is set at initialization time. You only need to call `identify()` if the context has changed
- * since then.
+ * which is set when you call `identify()`.
*
* Changing the current context also causes all feature flag values to be reloaded. Until that has
* finished, calls to {@link variation} will still return flag values for the previous context. You can
- * use a callback or a Promise to determine when the new flag values are available.
+ * await the Promise to determine when the new flag values are available.
*
* @param context
- * The context properties. Must contain at least the `key` property.
+ * The LDContext object.
* @param hash
* The signed context key if you are using [Secure Mode](https://docs.launchdarkly.com/sdk/features/secure-mode#configuring-secure-mode-in-the-javascript-client-side-sdk).
* @returns
- * A Promise which resolve once the flag values for the new context are available.
+ * A Promise which resolves when the flag values for the specified context are available.
*/
identify(context: LDContext, hash?: string): Promise;
@@ -121,7 +120,7 @@ export interface LDClient {
jsonVariation(key: string, defaultValue: unknown): unknown;
/**
- * Determines the json variation of a feature flag for a context, along with information about how it
+ * Determines the json variation of a feature flag, along with information about how it
* was calculated.
*
* The `reason` property of the result will also be included in analytics events, if you are
@@ -137,8 +136,7 @@ export interface LDClient {
* @param defaultValue The default value of the flag, to be used if the value is not available
* from LaunchDarkly.
* @returns
- * If you provided a callback, then nothing. Otherwise, a Promise which will be resolved with
- * the result (as an{@link LDEvaluationDetailTyped}).
+ * The result (as an {@link LDEvaluationDetailTyped}).
*/
jsonVariationDetail(key: string, defaultValue: unknown): LDEvaluationDetailTyped;
@@ -184,67 +182,36 @@ export interface LDClient {
numberVariationDetail(key: string, defaultValue: number): LDEvaluationDetailTyped;
/**
- * Deregisters an event listener. See {@link on} for the available event types.
+ * Removes an event listener. See {@link on} for the available event types.
*
* @param key
* The name of the event for which to stop listening.
* @param callback
* The function to deregister.
- * @param context
- * The `this` context for the callback, if one was specified for {@link on}.
*/
- off(key: string, callback: (...args: any[]) => void, context?: any): void;
+ off(key: string, callback: (...args: any[]) => void): void;
/**
* Registers an event listener.
*
* The following event names (keys) are used by the client:
*
- * - `"ready"`: The client has finished starting up. This event will be sent regardless
- * of whether it successfully connected to LaunchDarkly, or encountered an error
- * and had to give up; to distinguish between these cases, see below.
- * - `"initialized"`: The client successfully started up and has valid feature flag
- * data. This will always be accompanied by `"ready"`.
- * - `"failed"`: The client encountered an error that prevented it from connecting to
- * LaunchDarkly, such as an invalid environment ID. All flag evaluations will
- * therefore receive default values. This will always be accompanied by `"ready"`.
+ * - `"identifying"`: The client starts to fetch feature flags.
* - `"error"`: General event for any kind of error condition during client operation.
* The callback parameter is an Error object. If you do not listen for "error"
* events, then the errors will be logged with `console.log()`.
* - `"change"`: The client has received new feature flag data. This can happen either
* because you have switched contexts with {@link identify}, or because the client has a
* stream connection and has received a live change to a flag value (see below).
- * The callback parameter is an {@link LDFlagChangeset}.
- * - `"change:FLAG-KEY"`: The client has received a new value for a specific flag
- * whose key is `FLAG-KEY`. The callback receives two parameters: the current (new)
- * flag value, and the previous value. This is always accompanied by a general
- * `"change"` event as described above; you can listen for either or both.
- *
- * The `"change"` and `"change:FLAG-KEY"` events have special behavior: by default, the
- * client will open a streaming connection to receive live changes if and only if
- * you are listening for one of these events. This behavior can be overridden by
- * setting `streaming` in {@link LDOptions} or calling {@link LDClient.setStreaming}.
+ * The callback parameters are the context and an array of flag keys that have changed.
*
* @param key
* The name of the event for which to listen.
* @param callback
* The function to execute when the event fires. The callback may or may not
* receive parameters, depending on the type of event.
- * @param context
- * The `this` context to use for the callback.
*/
- on(key: string, callback: (...args: any[]) => void, context?: any): void;
-
- /**
- * Specifies whether or not to open a streaming connection to LaunchDarkly for live flag updates.
- *
- * If this is true, the client will always attempt to maintain a streaming connection; if false,
- * it never will. If you leave the value undefined (the default), the client will open a streaming
- * connection if you subscribe to `"change"` or `"change:flag-key"` events (see {@link LDClient.on}).
- *
- * This can also be set as the `streaming` property of {@link LDOptions}.
- */
- setStreaming(value?: boolean): void;
+ on(key: string, callback: (...args: any[]) => void): void;
/**
* Determines the string variation of a feature flag.
@@ -281,14 +248,10 @@ export interface LDClient {
stringVariationDetail(key: string, defaultValue: string): LDEvaluationDetailTyped;
/**
- * Track page events to use in goals or A/B tests.
- *
- * LaunchDarkly automatically tracks pageviews and clicks that are specified in the
- * Goals section of their dashboard. This can be used to track custom goals or other
- * events that do not currently have goals.
+ * Track events for experiments.
*
* @param key
- * The name of the event, which may correspond to a goal in A/B tests.
+ * The name of the event, which may correspond to a goal in an experiment.
* @param data
* Additional information to associate with the event.
* @param metricValue
@@ -300,7 +263,10 @@ export interface LDClient {
track(key: string, data?: any, metricValue?: number): void;
/**
- * Determines the variation of a feature flag for the current context.
+ * We recommend using strongly typed variation methods which perform
+ * type checks and handle type errors.
+ *
+ * Determines the variation of a feature flag.
*
* In the client-side JavaScript SDKs, this is always a fast synchronous operation because all of
* the feature flag values for the current context have already been loaded into memory.
@@ -315,6 +281,9 @@ export interface LDClient {
variation(key: string, defaultValue?: LDFlagValue): LDFlagValue;
/**
+ * We recommend using strongly typed variation detail methods which perform
+ * type checks and handle type errors.
+ *
* Determines the variation of a feature flag for a context, along with information about how it was
* calculated.
*
@@ -335,70 +304,4 @@ export interface LDClient {
* An {@link LDEvaluationDetail} object containing the value and explanation.
*/
variationDetail(key: string, defaultValue?: LDFlagValue): LDEvaluationDetail;
-
- /**
- * Returns a Promise that tracks the client's initialization state.
- *
- * The Promise will be resolved if the client successfully initializes, or rejected if client
- * initialization has irrevocably failed (for instance, if it detects that the SDK key is invalid).
- *
- * ```
- * // using Promise then() and catch() handlers
- * client.waitForInitialization().then(() => {
- * doSomethingWithSuccessfullyInitializedClient();
- * }).catch(err => {
- * doSomethingForFailedStartup(err);
- * });
- *
- * // using async/await
- * try {
- * await client.waitForInitialization();
- * doSomethingWithSuccessfullyInitializedClient();
- * } catch (err) {
- * doSomethingForFailedStartup(err);
- * }
- * ```
- *
- * It is important that you handle the rejection case; otherwise it will become an unhandled Promise
- * rejection, which is a serious error on some platforms. The Promise is not created unless you
- * request it, so if you never call `waitForInitialization()` then you do not have to worry about
- * unhandled rejections.
- *
- * Note that you can also use event listeners ({@link on}) for the same purpose: the event `"initialized"`
- * indicates success, and `"failed"` indicates failure.
- *
- * @returns
- * A Promise that will be resolved if the client initializes successfully, or rejected if it
- * fails.
- */
- waitForInitialization(): Promise;
-
- /**
- * Returns a Promise that tracks the client's initialization state.
- *
- * The returned Promise will be resolved once the client has either successfully initialized
- * or failed to initialize (e.g. due to an invalid environment key or a server error). It will
- * never be rejected.
- *
- * ```
- * // using a Promise then() handler
- * client.waitUntilReady().then(() => {
- * doSomethingWithClient();
- * });
- *
- * // using async/await
- * await client.waitUntilReady();
- * doSomethingWithClient();
- * ```
- *
- * If you want to distinguish between these success and failure conditions, use
- * {@link waitForInitialization} instead.
- *
- * If you prefer to use event listeners ({@link on}) rather than Promises, you can listen on the
- * client for a `"ready"` event, which will be fired in either case.
- *
- * @returns
- * A Promise that will be resolved once the client is no longer trying to initialize.
- */
- waitUntilReady(): Promise;
}
diff --git a/packages/shared/sdk-client/src/api/LDEmitter.test.ts b/packages/shared/sdk-client/src/api/LDEmitter.test.ts
index 8a66a1718..6cf6a7593 100644
--- a/packages/shared/sdk-client/src/api/LDEmitter.test.ts
+++ b/packages/shared/sdk-client/src/api/LDEmitter.test.ts
@@ -57,11 +57,11 @@ describe('LDEmitter', () => {
const changeHandler = jest.fn();
const readyHandler = jest.fn();
+ emitter.on('identifying', readyHandler);
emitter.on('error', errorHandler1);
emitter.on('change', changeHandler);
- emitter.on('ready', readyHandler);
- expect(emitter.eventNames()).toEqual(['error', 'change', 'ready']);
+ expect(emitter.eventNames()).toEqual(['identifying', 'error', 'change']);
});
test('listener count', () => {
diff --git a/packages/shared/sdk-client/src/api/LDEmitter.ts b/packages/shared/sdk-client/src/api/LDEmitter.ts
index 8c5350748..9248f5874 100644
--- a/packages/shared/sdk-client/src/api/LDEmitter.ts
+++ b/packages/shared/sdk-client/src/api/LDEmitter.ts
@@ -1,4 +1,4 @@
-export type EventName = 'connecting' | 'ready' | 'error' | 'change';
+export type EventName = 'identifying' | 'error' | 'change';
type CustomEventListeners = {
original: Function;
diff --git a/packages/shared/sdk-client/src/api/LDOptions.ts b/packages/shared/sdk-client/src/api/LDOptions.ts
index a5db76b65..946cce96e 100644
--- a/packages/shared/sdk-client/src/api/LDOptions.ts
+++ b/packages/shared/sdk-client/src/api/LDOptions.ts
@@ -44,52 +44,6 @@ export interface LDOptions {
*/
streamUri?: string;
- /**
- * Whether or not to open a streaming connection to LaunchDarkly for live flag updates.
- *
- * If this is true, the client will always attempt to maintain a streaming connection; if false,
- * it never will. If you leave the value undefined (the default), the client will open a streaming
- * connection if you subscribe to `"change"` or `"change:flag-key"` events (see {@link LDClient.on}).
- *
- * This is equivalent to calling `client.setStreaming()` with the same value.
- */
- stream?: boolean;
-
- /**
- * Whether or not to use the REPORT verb to fetch flag settings.
- *
- * If this is true, flag settings will be fetched with a REPORT request
- * including a JSON entity body with the context object.
- *
- * Otherwise (by default) a GET request will be issued with the context passed as
- * a base64 uri-encoded path parameter.
- *
- * Do not use unless advised by LaunchDarkly.
- */
- useReport?: boolean;
-
- /**
- * Whether or not to include custom HTTP headers when requesting flags from LaunchDarkly.
- *
- * These are used to send metadata about the SDK (such as the version). They
- * are also used to send the application.id and application.version set in
- * the options.
- *
- * This defaults to true (custom headers will be sent). One reason you might
- * want to set it to false is that the presence of custom headers causes
- * browsers to make an extra OPTIONS request (a CORS preflight check) before
- * each flag request, which could affect performance.
- */
- sendLDHeaders?: boolean;
-
- /**
- * A transform function for dynamic configuration of HTTP headers.
- *
- * This method will run last in the header generation sequence, so the function should have
- * all system generated headers in case those also need to be modified.
- */
- requestHeaderTransform?: (headers: Map) => Map;
-
/**
* Whether LaunchDarkly should provide additional information about how flag values were
* calculated.
diff --git a/packages/shared/sdk-client/src/configuration/Configuration.test.ts b/packages/shared/sdk-client/src/configuration/Configuration.test.ts
index e501b3d84..6a569b296 100644
--- a/packages/shared/sdk-client/src/configuration/Configuration.test.ts
+++ b/packages/shared/sdk-client/src/configuration/Configuration.test.ts
@@ -36,8 +36,8 @@ describe('Configuration', () => {
});
test('specified options should be set', () => {
- const config = new Configuration({ wrapperName: 'test', stream: true });
- expect(config).toMatchObject({ wrapperName: 'test', stream: true });
+ const config = new Configuration({ wrapperName: 'test' });
+ expect(config).toMatchObject({ wrapperName: 'test' });
});
test('unknown option', () => {
@@ -52,7 +52,7 @@ describe('Configuration', () => {
// @ts-ignore
const config = new Configuration({ sendEvents: 0 });
- expect(config.stream).toBeFalsy();
+ expect(config.sendEvents).toBeFalsy();
expect(console.error).toHaveBeenCalledWith(
expect.stringContaining('should be a boolean, got number, converting'),
);
@@ -78,29 +78,6 @@ describe('Configuration', () => {
);
});
- test('undefined stream should not log warning', () => {
- const config = new Configuration({ stream: undefined });
-
- expect(config.stream).toBeUndefined();
- expect(console.error).not.toHaveBeenCalled();
- });
-
- test('null stream should default to undefined', () => {
- // @ts-ignore
- const config = new Configuration({ stream: null });
-
- expect(config.stream).toBeUndefined();
- expect(console.error).not.toHaveBeenCalled();
- });
-
- test('wrong stream type should be converted to boolean', () => {
- // @ts-ignore
- const config = new Configuration({ stream: 1 });
-
- expect(config.stream).toBeTruthy();
- expect(console.error).toHaveBeenCalled();
- });
-
test('invalid bootstrap should use default', () => {
// @ts-ignore
const config = new Configuration({ bootstrap: 'localStora' });
diff --git a/packages/shared/sdk-client/src/configuration/Configuration.ts b/packages/shared/sdk-client/src/configuration/Configuration.ts
index 27d10e8f5..52fe58799 100644
--- a/packages/shared/sdk-client/src/configuration/Configuration.ts
+++ b/packages/shared/sdk-client/src/configuration/Configuration.ts
@@ -1,6 +1,7 @@
import {
ApplicationTags,
createSafeLogger,
+ internal,
LDFlagSet,
NumberWithMinimum,
OptionMessages,
@@ -51,11 +52,18 @@ export default class Configuration {
// Allow indexing Configuration by a string
[index: string]: any;
- constructor(pristineOptions: LDOptions = {}) {
+ constructor(pristineOptions: LDOptions = {}, internalOptions: internal.LDInternalOptions = {}) {
const errors = this.validateTypesAndNames(pristineOptions);
errors.forEach((e: string) => this.logger.warn(e));
- this.serviceEndpoints = new ServiceEndpoints(this.streamUri, this.baseUri, this.eventsUri);
+ this.serviceEndpoints = new ServiceEndpoints(
+ this.streamUri,
+ this.baseUri,
+ this.eventsUri,
+ internalOptions.analyticsEventPath,
+ internalOptions.diagnosticEventPath,
+ internalOptions.includeAuthorizationHeader,
+ );
this.tags = new ApplicationTags({ application: this.application, logger: this.logger });
}
diff --git a/packages/shared/sdk-client/src/configuration/validators.ts b/packages/shared/sdk-client/src/configuration/validators.ts
index f8a95f2c3..a48f9c5cf 100644
--- a/packages/shared/sdk-client/src/configuration/validators.ts
+++ b/packages/shared/sdk-client/src/configuration/validators.ts
@@ -29,8 +29,6 @@ const validators: Record = {
diagnosticOptOut: TypeValidators.Boolean,
withReasons: TypeValidators.Boolean,
sendEvents: TypeValidators.Boolean,
- sendLDHeaders: TypeValidators.Boolean,
- useReport: TypeValidators.Boolean,
inspectors: TypeValidators.createTypeArray('LDInspection[]', {
type: 'flag-used',
@@ -41,8 +39,6 @@ const validators: Record = {
application: TypeValidators.Object,
bootstrap: new BootStrapValidator(),
- requestHeaderTransform: TypeValidators.Function,
- stream: TypeValidators.NullableBoolean,
wrapperName: TypeValidators.String,
wrapperVersion: TypeValidators.String,
hash: TypeValidators.String,
diff --git a/packages/shared/sdk-client/src/diagnostics/createDiagnosticsInitConfig.test.ts b/packages/shared/sdk-client/src/diagnostics/createDiagnosticsInitConfig.test.ts
index 64f741044..c25c0a353 100644
--- a/packages/shared/sdk-client/src/diagnostics/createDiagnosticsInitConfig.test.ts
+++ b/packages/shared/sdk-client/src/diagnostics/createDiagnosticsInitConfig.test.ts
@@ -23,7 +23,6 @@ describe('createDiagnosticsInitConfig', () => {
eventsCapacity: 100,
eventsFlushIntervalMillis: secondsToMillis(2),
reconnectTimeMillis: secondsToMillis(1),
- streamingDisabled: true,
usingSecureMode: false,
});
});
@@ -38,7 +37,6 @@ describe('createDiagnosticsInitConfig', () => {
flushInterval: 2,
streamInitialReconnectDelay: 3,
diagnosticRecordingInterval: 4,
- stream: true,
allAttributesPrivate: true,
hash: 'test-hash',
bootstrap: 'localStorage',
@@ -54,7 +52,6 @@ describe('createDiagnosticsInitConfig', () => {
eventsCapacity: 1,
eventsFlushIntervalMillis: 2000,
reconnectTimeMillis: 3000,
- streamingDisabled: false,
usingSecureMode: true,
});
});
diff --git a/packages/shared/sdk-client/src/diagnostics/createDiagnosticsInitConfig.ts b/packages/shared/sdk-client/src/diagnostics/createDiagnosticsInitConfig.ts
index 6bf267381..f653b581f 100644
--- a/packages/shared/sdk-client/src/diagnostics/createDiagnosticsInitConfig.ts
+++ b/packages/shared/sdk-client/src/diagnostics/createDiagnosticsInitConfig.ts
@@ -11,7 +11,6 @@ export type DiagnosticsInitConfig = {
eventsFlushIntervalMillis: number;
reconnectTimeMillis: number;
diagnosticRecordingIntervalMillis: number;
- streamingDisabled: boolean;
allAttributesPrivate: boolean;
// client specific properties
@@ -26,7 +25,6 @@ const createDiagnosticsInitConfig = (config: Configuration): DiagnosticsInitConf
eventsFlushIntervalMillis: secondsToMillis(config.flushInterval),
reconnectTimeMillis: secondsToMillis(config.streamInitialReconnectDelay),
diagnosticRecordingIntervalMillis: secondsToMillis(config.diagnosticRecordingInterval),
- streamingDisabled: !config.stream,
allAttributesPrivate: config.allAttributesPrivate,
usingSecureMode: !!config.hash,
bootstrapMode: !!config.bootstrap,
diff --git a/packages/shared/sdk-client/src/evaluation/fetchFlags.test.ts b/packages/shared/sdk-client/src/evaluation/fetchFlags.test.ts
index 4a5975af9..2f6bbc9a9 100644
--- a/packages/shared/sdk-client/src/evaluation/fetchFlags.test.ts
+++ b/packages/shared/sdk-client/src/evaluation/fetchFlags.test.ts
@@ -14,12 +14,6 @@ describe('fetchFeatures', () => {
'user-agent': 'TestUserAgent/2.0.2',
'x-launchdarkly-wrapper': 'Rapper/1.2.3',
};
- const reportHeaders = {
- authorization: 'testSdkKey1',
- 'content-type': 'application/json',
- 'user-agent': 'TestUserAgent/2.0.2',
- 'x-launchdarkly-wrapper': 'Rapper/1.2.3',
- };
let config: Configuration;
const platformFetch = basicPlatform.requests.fetch as jest.Mock;
@@ -46,21 +40,6 @@ describe('fetchFeatures', () => {
expect(json).toEqual(mockResponse);
});
- test('report', async () => {
- config = new Configuration({ useReport: true });
- const json = await fetchFlags(sdkKey, context, config, basicPlatform);
-
- expect(platformFetch).toBeCalledWith(
- 'https://sdk.launchdarkly.com/sdk/evalx/testSdkKey1/context',
- {
- method: 'REPORT',
- headers: reportHeaders,
- body: '{"kind":"user","key":"test-user-key-1"}',
- },
- );
- expect(json).toEqual(mockResponse);
- });
-
test('withReasons', async () => {
mockFetch(mockResponseWithReasons);
config = new Configuration({ withReasons: true });
diff --git a/packages/shared/sdk-client/src/evaluation/fetchFlags.ts b/packages/shared/sdk-client/src/evaluation/fetchFlags.ts
index ff714ea4d..755de56b8 100644
--- a/packages/shared/sdk-client/src/evaluation/fetchFlags.ts
+++ b/packages/shared/sdk-client/src/evaluation/fetchFlags.ts
@@ -1,23 +1,9 @@
-import { LDContext, LDEvaluationReason, LDFlagValue, Platform } from '@launchdarkly/js-sdk-common';
+import { LDContext, Platform } from '@launchdarkly/js-sdk-common';
import Configuration from '../configuration';
+import { Flags } from '../types';
import { createFetchOptions, createFetchUrl } from './fetchUtils';
-export type Flag = {
- version: number;
- flagVersion: number;
- value: LDFlagValue;
- variation: number;
- trackEvents: boolean;
- trackReason?: boolean;
- reason?: LDEvaluationReason;
- debugEventsUntilDate?: number;
-};
-
-export type Flags = {
- [k: string]: Flag;
-};
-
const fetchFlags = async (
sdkKey: string,
context: LDContext,
diff --git a/packages/shared/sdk-client/src/evaluation/fetchUtils.test.ts b/packages/shared/sdk-client/src/evaluation/fetchUtils.test.ts
index f078c08ca..be06225fb 100644
--- a/packages/shared/sdk-client/src/evaluation/fetchUtils.test.ts
+++ b/packages/shared/sdk-client/src/evaluation/fetchUtils.test.ts
@@ -1,4 +1,4 @@
-// TODO:
+// TODO: add fetchUtils tests
describe('fetchUtils', () => {
test('sucesss', () => {});
});
diff --git a/packages/shared/sdk-client/src/events/EventFactory.ts b/packages/shared/sdk-client/src/events/EventFactory.ts
index 69bf4f889..25ef0e055 100644
--- a/packages/shared/sdk-client/src/events/EventFactory.ts
+++ b/packages/shared/sdk-client/src/events/EventFactory.ts
@@ -1,6 +1,6 @@
import { Context, internal, LDEvaluationReason, LDFlagValue } from '@launchdarkly/js-sdk-common';
-import { Flag } from '../evaluation/fetchFlags';
+import { Flag } from '../types';
/**
* @internal
diff --git a/packages/shared/sdk-client/src/types/index.ts b/packages/shared/sdk-client/src/types/index.ts
new file mode 100644
index 000000000..18b24736d
--- /dev/null
+++ b/packages/shared/sdk-client/src/types/index.ts
@@ -0,0 +1,23 @@
+import { LDEvaluationReason, LDFlagValue } from '@launchdarkly/js-sdk-common';
+
+export interface Flag {
+ version: number;
+ flagVersion: number;
+ value: LDFlagValue;
+ variation: number;
+ trackEvents: boolean;
+ trackReason?: boolean;
+ reason?: LDEvaluationReason;
+ debugEventsUntilDate?: number;
+ deleted?: boolean;
+}
+
+export interface PatchFlag extends Flag {
+ key: string;
+}
+
+export type DeleteFlag = Pick;
+
+export type Flags = {
+ [k: string]: Flag;
+};
diff --git a/packages/shared/sdk-client/src/utils/index.ts b/packages/shared/sdk-client/src/utils/index.ts
new file mode 100644
index 000000000..9b443b96b
--- /dev/null
+++ b/packages/shared/sdk-client/src/utils/index.ts
@@ -0,0 +1,25 @@
+import { fastDeepEqual } from '@launchdarkly/js-sdk-common';
+
+import { Flags } from '../types';
+
+// eslint-disable-next-line import/prefer-default-export
+export function calculateFlagChanges(flags: Flags, incomingFlags: Flags) {
+ const changedKeys: string[] = [];
+
+ // flag deleted or updated
+ Object.entries(flags).forEach(([k, f]) => {
+ const incoming = incomingFlags[k];
+ if (!incoming || !fastDeepEqual(f, incoming)) {
+ changedKeys.push(k);
+ }
+ });
+
+ // flag added
+ Object.keys(incomingFlags).forEach((k) => {
+ if (!flags[k]) {
+ changedKeys.push(k);
+ }
+ });
+
+ return changedKeys;
+}