= ({ navigation, title = "Calc's name" }) => {
+ return (
+
+ navigation.goBack()} />
+
+
+ );
+ };
+
+ return (
+
+
+ ,
+ }}
+ >
+
+ ({
+ title: '',
+ headerTitle: '',
+ headerShown: false,
+ })}
+ />
+
+
+
+ );
+}
+
+export default App;
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..567e598
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,6 @@
+source 'https://rubygems.org'
+
+# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
+ruby File.read(File.join(__dir__, '.ruby-version')).strip
+
+gem 'cocoapods', '~> 1.11', '>= 1.11.3'
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..fd21a6b
--- /dev/null
+++ b/README.md
@@ -0,0 +1,8 @@
+# AnyCheck - набор калькуляторов, опросников и шкал.
+
+AnyCheck — это актуальный набор калькуляторов, опросников и шкал, как для медицинских работников — в случае принятия клинических решений, так и для пациентов с целью самотестирования.
+Не является медицинским инструментом. Проконсультируйтесь с врачом.
+
+[Скачать в RuStore](https://www.rustore.ru/catalog/app/com.awesomeproject)
+
+- ключи: /android/gradle.properties
diff --git a/__tests__/App-test.tsx b/__tests__/App-test.tsx
new file mode 100644
index 0000000..1784766
--- /dev/null
+++ b/__tests__/App-test.tsx
@@ -0,0 +1,14 @@
+/**
+ * @format
+ */
+
+import 'react-native';
+import React from 'react';
+import App from '../App';
+
+// Note: test renderer must be required after react-native.
+import renderer from 'react-test-renderer';
+
+it('renders correctly', () => {
+ renderer.create();
+});
diff --git a/android/app/build.gradle b/android/app/build.gradle
new file mode 100644
index 0000000..640468e
--- /dev/null
+++ b/android/app/build.gradle
@@ -0,0 +1,171 @@
+apply plugin: "com.android.application"
+apply plugin: "com.facebook.react"
+
+import com.android.build.OutputFile
+
+/**
+ * This is the configuration block to customize your React Native Android app.
+ * By default you don't need to apply any configuration, just uncomment the lines you need.
+ */
+react {
+ /* Folders */
+ // The root of your project, i.e. where "package.json" lives. Default is '..'
+ // root = file("../")
+ // The folder where the react-native NPM package is. Default is ../node_modules/react-native
+ // reactNativeDir = file("../node_modules/react-native")
+ // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen
+ // codegenDir = file("../node_modules/react-native-codegen")
+ // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js
+ // cliFile = file("../node_modules/react-native/cli.js")
+
+ /* Variants */
+ // The list of variants to that are debuggable. For those we're going to
+ // skip the bundling of the JS bundle and the assets. By default is just 'debug'.
+ // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
+ // debuggableVariants = ["liteDebug", "prodDebug"]
+
+ /* Bundling */
+ // A list containing the node command and its flags. Default is just 'node'.
+ // nodeExecutableAndArgs = ["node"]
+ //
+ // The command to run when bundling. By default is 'bundle'
+ // bundleCommand = "ram-bundle"
+ //
+ // The path to the CLI configuration file. Default is empty.
+ // bundleConfig = file(../rn-cli.config.js)
+ //
+ // The name of the generated asset file containing your JS bundle
+ // bundleAssetName = "MyApplication.android.bundle"
+ //
+ // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
+ // entryFile = file("../js/MyApplication.android.js")
+ //
+ // A list of extra flags to pass to the 'bundle' commands.
+ // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
+ // extraPackagerArgs = []
+
+ /* Hermes Commands */
+ // The hermes compiler command to run. By default it is 'hermesc'
+ // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
+ //
+ // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
+ // hermesFlags = ["-O", "-output-source-map"]
+}
+
+/**
+ * Set this to true to create four separate APKs instead of one,
+ * one for each native architecture. This is useful if you don't
+ * use App Bundles (https://developer.android.com/guide/app-bundle/)
+ * and want to have separate APKs to upload to the Play Store.
+ */
+def enableSeparateBuildPerCPUArchitecture = false
+
+/**
+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
+ */
+def enableProguardInReleaseBuilds = false
+
+/**
+ * The preferred build flavor of JavaScriptCore (JSC)
+ *
+ * For example, to use the international variant, you can use:
+ * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
+ *
+ * The international variant includes ICU i18n library and necessary data
+ * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
+ * give correct results when using with locales other than en-US. Note that
+ * this variant is about 6MiB larger per architecture than default.
+ */
+def jscFlavor = 'org.webkit:android-jsc:+'
+
+/**
+ * Private function to get the list of Native Architectures you want to build.
+ * This reads the value from reactNativeArchitectures in your gradle.properties
+ * file and works together with the --active-arch-only flag of react-native run-android.
+ */
+def reactNativeArchitectures() {
+ def value = project.getProperties().get("reactNativeArchitectures")
+ return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
+}
+
+android {
+ ndkVersion rootProject.ext.ndkVersion
+
+ compileSdkVersion rootProject.ext.compileSdkVersion
+
+ namespace "com.awesomeproject"
+ defaultConfig {
+ applicationId "com.awesomeproject"
+ minSdkVersion rootProject.ext.minSdkVersion
+ targetSdkVersion rootProject.ext.targetSdkVersion
+ versionCode 1
+ versionName "1.0"
+ }
+
+ splits {
+ abi {
+ reset()
+ enable enableSeparateBuildPerCPUArchitecture
+ universalApk false // If true, also generate a universal APK
+ include (*reactNativeArchitectures())
+ }
+ }
+ signingConfigs {
+ debug {
+ storeFile file('debug.keystore')
+ storePassword 'android'
+ keyAlias 'androiddebugkey'
+ keyPassword 'android'
+ }
+ }
+ buildTypes {
+ debug {
+ signingConfig signingConfigs.debug
+ }
+ release {
+ // Caution! In production, you need to generate your own keystore file.
+ // see https://reactnative.dev/docs/signed-apk-android.
+ signingConfig signingConfigs.debug
+ minifyEnabled enableProguardInReleaseBuilds
+ proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
+ }
+ }
+
+ // applicationVariants are e.g. debug, release
+ applicationVariants.all { variant ->
+ variant.outputs.each { output ->
+ // For each separate APK per architecture, set a unique version code as described here:
+ // https://developer.android.com/studio/build/configure-apk-splits.html
+ // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
+ def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
+ def abi = output.getFilter(OutputFile.ABI)
+ if (abi != null) { // null for the universal-debug, universal-release variants
+ output.versionCodeOverride =
+ defaultConfig.versionCode * 1000 + versionCodes.get(abi)
+ }
+
+ }
+ }
+}
+
+dependencies {
+ // The version of react-native is set by the React Native Gradle Plugin
+ implementation("com.facebook.react:react-android")
+
+ implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0")
+
+ debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}")
+ debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
+ exclude group:'com.squareup.okhttp3', module:'okhttp'
+ }
+
+ debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}")
+ if (hermesEnabled.toBoolean()) {
+ implementation("com.facebook.react:hermes-android")
+ } else {
+ implementation jscFlavor
+ }
+}
+
+apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
+apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
\ No newline at end of file
diff --git a/android/app/debug.keystore b/android/app/debug.keystore
new file mode 100644
index 0000000..364e105
Binary files /dev/null and b/android/app/debug.keystore differ
diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro
new file mode 100644
index 0000000..11b0257
--- /dev/null
+++ b/android/app/proguard-rules.pro
@@ -0,0 +1,10 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000..4b185bc
--- /dev/null
+++ b/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/android/app/src/debug/java/com/awesomeproject/ReactNativeFlipper.java b/android/app/src/debug/java/com/awesomeproject/ReactNativeFlipper.java
new file mode 100644
index 0000000..7b91910
--- /dev/null
+++ b/android/app/src/debug/java/com/awesomeproject/ReactNativeFlipper.java
@@ -0,0 +1,75 @@
+/**
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the LICENSE file in the root
+ * directory of this source tree.
+ */
+package com.awesomeproject;
+
+import android.content.Context;
+import com.facebook.flipper.android.AndroidFlipperClient;
+import com.facebook.flipper.android.utils.FlipperUtils;
+import com.facebook.flipper.core.FlipperClient;
+import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
+import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
+import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
+import com.facebook.flipper.plugins.inspector.DescriptorMapping;
+import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
+import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
+import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
+import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
+import com.facebook.react.ReactInstanceEventListener;
+import com.facebook.react.ReactInstanceManager;
+import com.facebook.react.bridge.ReactContext;
+import com.facebook.react.modules.network.NetworkingModule;
+import okhttp3.OkHttpClient;
+
+/**
+ * Class responsible of loading Flipper inside your React Native application. This is the debug
+ * flavor of it. Here you can add your own plugins and customize the Flipper setup.
+ */
+public class ReactNativeFlipper {
+ public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
+ if (FlipperUtils.shouldEnableFlipper(context)) {
+ final FlipperClient client = AndroidFlipperClient.getInstance(context);
+
+ client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
+ client.addPlugin(new DatabasesFlipperPlugin(context));
+ client.addPlugin(new SharedPreferencesFlipperPlugin(context));
+ client.addPlugin(CrashReporterPlugin.getInstance());
+
+ NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
+ NetworkingModule.setCustomClientBuilder(
+ new NetworkingModule.CustomClientBuilder() {
+ @Override
+ public void apply(OkHttpClient.Builder builder) {
+ builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
+ }
+ });
+ client.addPlugin(networkFlipperPlugin);
+ client.start();
+
+ // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
+ // Hence we run if after all native modules have been initialized
+ ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
+ if (reactContext == null) {
+ reactInstanceManager.addReactInstanceEventListener(
+ new ReactInstanceEventListener() {
+ @Override
+ public void onReactContextInitialized(ReactContext reactContext) {
+ reactInstanceManager.removeReactInstanceEventListener(this);
+ reactContext.runOnNativeModulesQueueThread(
+ new Runnable() {
+ @Override
+ public void run() {
+ client.addPlugin(new FrescoFlipperPlugin());
+ }
+ });
+ }
+ });
+ } else {
+ client.addPlugin(new FrescoFlipperPlugin());
+ }
+ }
+ }
+}
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..4122f36
--- /dev/null
+++ b/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/java/com/awesomeproject/MainActivity.java b/android/app/src/main/java/com/awesomeproject/MainActivity.java
new file mode 100644
index 0000000..28113b2
--- /dev/null
+++ b/android/app/src/main/java/com/awesomeproject/MainActivity.java
@@ -0,0 +1,35 @@
+package com.awesomeproject;
+
+import com.facebook.react.ReactActivity;
+import com.facebook.react.ReactActivityDelegate;
+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
+import com.facebook.react.defaults.DefaultReactActivityDelegate;
+
+public class MainActivity extends ReactActivity {
+
+ /**
+ * Returns the name of the main component registered from JavaScript. This is used to schedule
+ * rendering of the component.
+ */
+ @Override
+ protected String getMainComponentName() {
+ return "AwesomeProject";
+ }
+
+ /**
+ * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link
+ * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React
+ * (aka React 18) with two boolean flags.
+ */
+ @Override
+ protected ReactActivityDelegate createReactActivityDelegate() {
+ return new DefaultReactActivityDelegate(
+ this,
+ getMainComponentName(),
+ // If you opted-in for the New Architecture, we enable the Fabric Renderer.
+ DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled
+ // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18).
+ DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled
+ );
+ }
+}
diff --git a/android/app/src/main/java/com/awesomeproject/MainApplication.java b/android/app/src/main/java/com/awesomeproject/MainApplication.java
new file mode 100644
index 0000000..105e48c
--- /dev/null
+++ b/android/app/src/main/java/com/awesomeproject/MainApplication.java
@@ -0,0 +1,62 @@
+package com.awesomeproject;
+
+import android.app.Application;
+import com.facebook.react.PackageList;
+import com.facebook.react.ReactApplication;
+import com.facebook.react.ReactNativeHost;
+import com.facebook.react.ReactPackage;
+import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
+import com.facebook.react.defaults.DefaultReactNativeHost;
+import com.facebook.soloader.SoLoader;
+import java.util.List;
+
+public class MainApplication extends Application implements ReactApplication {
+
+ private final ReactNativeHost mReactNativeHost =
+ new DefaultReactNativeHost(this) {
+ @Override
+ public boolean getUseDeveloperSupport() {
+ return BuildConfig.DEBUG;
+ }
+
+ @Override
+ protected List getPackages() {
+ @SuppressWarnings("UnnecessaryLocalVariable")
+ List packages = new PackageList(this).getPackages();
+ // Packages that cannot be autolinked yet can be added manually here, for example:
+ // packages.add(new MyReactNativePackage());
+ return packages;
+ }
+
+ @Override
+ protected String getJSMainModuleName() {
+ return "index";
+ }
+
+ @Override
+ protected boolean isNewArchEnabled() {
+ return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
+ }
+
+ @Override
+ protected Boolean isHermesEnabled() {
+ return BuildConfig.IS_HERMES_ENABLED;
+ }
+ };
+
+ @Override
+ public ReactNativeHost getReactNativeHost() {
+ return mReactNativeHost;
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ SoLoader.init(this, /* native exopackage */ false);
+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
+ // If you opted-in for the New Architecture, we load the native entry point for this app.
+ DefaultNewArchitectureEntryPoint.load();
+ }
+ ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
+ }
+}
diff --git a/android/app/src/main/res/drawable/rn_edit_text_material.xml b/android/app/src/main/res/drawable/rn_edit_text_material.xml
new file mode 100644
index 0000000..f35d996
--- /dev/null
+++ b/android/app/src/main/res/drawable/rn_edit_text_material.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..345888d
--- /dev/null
+++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..bd30c79
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png
new file mode 100644
index 0000000..7cb95b4
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png differ
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..ec6d011
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png
new file mode 100644
index 0000000..2ab39d1
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png differ
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..1b52399
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..64e6994
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png
new file mode 100644
index 0000000..1eafec4
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..aa8214c
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png
new file mode 100644
index 0000000..b13b87d
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..115a4c7
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..1f6fe79
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..70fc4e1
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..be5efa7
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png
new file mode 100644
index 0000000..79a6a52
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..459ca60
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..ace9dbe
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..de1682a
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..e29137d
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png
new file mode 100644
index 0000000..889d3e7
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..8e19b41
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..b8ed5e3
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..95ca4ba
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..ec92a28
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png
new file mode 100644
index 0000000..cf62bd3
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..4c19a13
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/android/app/src/main/res/play_store_512.png b/android/app/src/main/res/play_store_512.png
new file mode 100644
index 0000000..3797daf
Binary files /dev/null and b/android/app/src/main/res/play_store_512.png differ
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..d66c9ff
--- /dev/null
+++ b/android/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ AnyCheck
+
diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..7ba83a2
--- /dev/null
+++ b/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/android/app/src/main/res_20230413.7z b/android/app/src/main/res_20230413.7z
new file mode 100644
index 0000000..7120efc
Binary files /dev/null and b/android/app/src/main/res_20230413.7z differ
diff --git a/android/app/src/release/java/com/awesomeproject/ReactNativeFlipper.java b/android/app/src/release/java/com/awesomeproject/ReactNativeFlipper.java
new file mode 100644
index 0000000..72b9eef
--- /dev/null
+++ b/android/app/src/release/java/com/awesomeproject/ReactNativeFlipper.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the LICENSE file in the root
+ * directory of this source tree.
+ */
+package com.awesomeproject;
+
+import android.content.Context;
+import com.facebook.react.ReactInstanceManager;
+
+/**
+ * Class responsible of loading Flipper inside your React Native application. This is the release
+ * flavor of it so it's empty as we don't want to load Flipper.
+ */
+public class ReactNativeFlipper {
+ public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
+ // Do nothing as we don't want to initialize Flipper on Release.
+ }
+}
diff --git a/android/build.gradle b/android/build.gradle
new file mode 100644
index 0000000..67d887b
--- /dev/null
+++ b/android/build.gradle
@@ -0,0 +1,21 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ ext {
+ buildToolsVersion = "33.0.0"
+ minSdkVersion = 21
+ compileSdkVersion = 33
+ targetSdkVersion = 33
+
+ // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
+ ndkVersion = "23.1.7779620"
+ }
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath("com.android.tools.build:gradle:7.3.1")
+ classpath("com.facebook.react:react-native-gradle-plugin")
+ }
+}
diff --git a/android/gradle.properties b/android/gradle.properties
new file mode 100644
index 0000000..4fde9ea
--- /dev/null
+++ b/android/gradle.properties
@@ -0,0 +1,49 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
+org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
+
+# Version of flipper SDK to use with React Native
+FLIPPER_VERSION=0.125.0
+
+# Use this property to specify which architecture you want to build.
+# You can also override it from the CLI using
+# ./gradlew -PreactNativeArchitectures=x86_64
+reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
+
+# Use this property to enable support to the new architecture.
+# This will allow you to use TurboModules and the Fabric render in
+# your application. You should enable this flag either if you want
+# to write custom TurboModules/Fabric components OR use libraries that
+# are providing them.
+newArchEnabled=false
+
+# Use this property to enable or disable the Hermes JS engine.
+# If set to false, you will be using JSC instead.
+hermesEnabled=true
+
+MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
+MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
+MYAPP_UPLOAD_STORE_PASSWORD=xxx
+MYAPP_UPLOAD_KEY_PASSWORD=xxx
\ No newline at end of file
diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..41d9927
Binary files /dev/null and b/android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..8fad3f5
--- /dev/null
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/android/gradlew b/android/gradlew
new file mode 100644
index 0000000..1b6c787
--- /dev/null
+++ b/android/gradlew
@@ -0,0 +1,234 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+APP_NAME="Gradle"
+APP_BASE_NAME=${0##*/}
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/android/gradlew.bat b/android/gradlew.bat
new file mode 100644
index 0000000..107acd3
--- /dev/null
+++ b/android/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/android/settings.gradle b/android/settings.gradle
new file mode 100644
index 0000000..c587703
--- /dev/null
+++ b/android/settings.gradle
@@ -0,0 +1,4 @@
+rootProject.name = 'AwesomeProject'
+apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
+include ':app'
+includeBuild('../node_modules/react-native-gradle-plugin')
diff --git a/app.json b/app.json
new file mode 100644
index 0000000..d181213
--- /dev/null
+++ b/app.json
@@ -0,0 +1,4 @@
+{
+ "name": "AwesomeProject",
+ "displayName": "AnyCheck"
+}
\ No newline at end of file
diff --git a/assets/logo_bg_dark.jpg b/assets/logo_bg_dark.jpg
new file mode 100644
index 0000000..6fdbf64
Binary files /dev/null and b/assets/logo_bg_dark.jpg differ
diff --git a/assets/logo_bg_light.jpg b/assets/logo_bg_light.jpg
new file mode 100644
index 0000000..6421b42
Binary files /dev/null and b/assets/logo_bg_light.jpg differ
diff --git a/babel.config.js b/babel.config.js
new file mode 100644
index 0000000..48d2ed8
--- /dev/null
+++ b/babel.config.js
@@ -0,0 +1,4 @@
+module.exports = {
+ presets: ["module:metro-react-native-babel-preset"],
+ plugins: ["react-native-reanimated/plugin"],
+};
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..a850d03
--- /dev/null
+++ b/index.js
@@ -0,0 +1,9 @@
+/**
+ * @format
+ */
+
+import {AppRegistry} from 'react-native';
+import App from './App';
+import {name as appName} from './app.json';
+
+AppRegistry.registerComponent(appName, () => App);
diff --git a/ios/.xcode.env b/ios/.xcode.env
new file mode 100644
index 0000000..3d5782c
--- /dev/null
+++ b/ios/.xcode.env
@@ -0,0 +1,11 @@
+# This `.xcode.env` file is versioned and is used to source the environment
+# used when running script phases inside Xcode.
+# To customize your local environment, you can create an `.xcode.env.local`
+# file that is not versioned.
+
+# NODE_BINARY variable contains the PATH to the node executable.
+#
+# Customize the NODE_BINARY variable here.
+# For example, to use nvm with brew, add the following line
+# . "$(brew --prefix nvm)/nvm.sh" --no-use
+export NODE_BINARY=$(command -v node)
diff --git a/ios/AwesomeProject.xcodeproj/project.pbxproj b/ios/AwesomeProject.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..b1d77e0
--- /dev/null
+++ b/ios/AwesomeProject.xcodeproj/project.pbxproj
@@ -0,0 +1,702 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 54;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */; };
+ 0C80B921A6F3F58F76C31292 /* libPods-AwesomeProject.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */; };
+ 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
+ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
+ 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
+ 7699B88040F8A987B510C191 /* libPods-AwesomeProject-AwesomeProjectTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */; };
+ 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
+ remoteInfo = AwesomeProject;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AwesomeProjectTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AwesomeProjectTests.m; sourceTree = ""; };
+ 13B07F961A680F5B00A75B9A /* AwesomeProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AwesomeProject.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = AwesomeProject/AppDelegate.h; sourceTree = ""; };
+ 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = AwesomeProject/AppDelegate.mm; sourceTree = ""; };
+ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AwesomeProject/Images.xcassets; sourceTree = ""; };
+ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AwesomeProject/Info.plist; sourceTree = ""; };
+ 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = AwesomeProject/main.m; sourceTree = ""; };
+ 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AwesomeProject-AwesomeProjectTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject.debug.xcconfig"; path = "Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject.debug.xcconfig"; sourceTree = ""; };
+ 5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject.release.xcconfig"; path = "Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject.release.xcconfig"; sourceTree = ""; };
+ 5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig"; path = "Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig"; sourceTree = ""; };
+ 5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AwesomeProject.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = AwesomeProject/LaunchScreen.storyboard; sourceTree = ""; };
+ 89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig"; path = "Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig"; sourceTree = ""; };
+ ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 00E356EB1AD99517003FC87E /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7699B88040F8A987B510C191 /* libPods-AwesomeProject-AwesomeProjectTests.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 0C80B921A6F3F58F76C31292 /* libPods-AwesomeProject.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 00E356EF1AD99517003FC87E /* AwesomeProjectTests */ = {
+ isa = PBXGroup;
+ children = (
+ 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */,
+ 00E356F01AD99517003FC87E /* Supporting Files */,
+ );
+ path = AwesomeProjectTests;
+ sourceTree = "";
+ };
+ 00E356F01AD99517003FC87E /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 00E356F11AD99517003FC87E /* Info.plist */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ 13B07FAE1A68108700A75B9A /* AwesomeProject */ = {
+ isa = PBXGroup;
+ children = (
+ 13B07FAF1A68108700A75B9A /* AppDelegate.h */,
+ 13B07FB01A68108700A75B9A /* AppDelegate.mm */,
+ 13B07FB51A68108700A75B9A /* Images.xcassets */,
+ 13B07FB61A68108700A75B9A /* Info.plist */,
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
+ 13B07FB71A68108700A75B9A /* main.m */,
+ );
+ name = AwesomeProject;
+ sourceTree = "";
+ };
+ 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
+ 5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */,
+ 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = Libraries;
+ sourceTree = "";
+ };
+ 83CBB9F61A601CBA00E9B192 = {
+ isa = PBXGroup;
+ children = (
+ 13B07FAE1A68108700A75B9A /* AwesomeProject */,
+ 832341AE1AAA6A7D00B99B32 /* Libraries */,
+ 00E356EF1AD99517003FC87E /* AwesomeProjectTests */,
+ 83CBBA001A601CBA00E9B192 /* Products */,
+ 2D16E6871FA4F8E400B85C8A /* Frameworks */,
+ BBD78D7AC51CEA395F1C20DB /* Pods */,
+ );
+ indentWidth = 2;
+ sourceTree = "";
+ tabWidth = 2;
+ usesTabs = 0;
+ };
+ 83CBBA001A601CBA00E9B192 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 13B07F961A680F5B00A75B9A /* AwesomeProject.app */,
+ 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ BBD78D7AC51CEA395F1C20DB /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ 3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */,
+ 5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */,
+ 5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */,
+ 89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */,
+ );
+ path = Pods;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 00E356ED1AD99517003FC87E /* AwesomeProjectTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */;
+ buildPhases = (
+ A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */,
+ 00E356EA1AD99517003FC87E /* Sources */,
+ 00E356EB1AD99517003FC87E /* Frameworks */,
+ 00E356EC1AD99517003FC87E /* Resources */,
+ C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */,
+ F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 00E356F51AD99517003FC87E /* PBXTargetDependency */,
+ );
+ name = AwesomeProjectTests;
+ productName = AwesomeProjectTests;
+ productReference = 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
+ 13B07F861A680F5B00A75B9A /* AwesomeProject */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */;
+ buildPhases = (
+ C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */,
+ FD10A7F022414F080027D42C /* Start Packager */,
+ 13B07F871A680F5B00A75B9A /* Sources */,
+ 13B07F8C1A680F5B00A75B9A /* Frameworks */,
+ 13B07F8E1A680F5B00A75B9A /* Resources */,
+ 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
+ 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */,
+ E235C05ADACE081382539298 /* [CP] Copy Pods Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = AwesomeProject;
+ productName = AwesomeProject;
+ productReference = 13B07F961A680F5B00A75B9A /* AwesomeProject.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 83CBB9F71A601CBA00E9B192 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 1210;
+ TargetAttributes = {
+ 00E356ED1AD99517003FC87E = {
+ CreatedOnToolsVersion = 6.2;
+ TestTargetID = 13B07F861A680F5B00A75B9A;
+ };
+ 13B07F861A680F5B00A75B9A = {
+ LastSwiftMigration = 1120;
+ };
+ };
+ };
+ buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */;
+ compatibilityVersion = "Xcode 12.0";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ Base,
+ );
+ mainGroup = 83CBB9F61A601CBA00E9B192;
+ productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 13B07F861A680F5B00A75B9A /* AwesomeProject */,
+ 00E356ED1AD99517003FC87E /* AwesomeProjectTests */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 00E356EC1AD99517003FC87E /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 13B07F8E1A680F5B00A75B9A /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
+ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "$(SRCROOT)/.xcode.env.local",
+ "$(SRCROOT)/.xcode.env",
+ );
+ name = "Bundle React Native code and images";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
+ };
+ 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-AwesomeProject-AwesomeProjectTests-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-AwesomeProject-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ FD10A7F022414F080027D42C /* Start Packager */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Start Packager";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n";
+ showEnvVarsInLog = 0;
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 00E356EA1AD99517003FC87E /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 13B07F871A680F5B00A75B9A /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
+ 13B07FC11A68108700A75B9A /* main.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 13B07F861A680F5B00A75B9A /* AwesomeProject */;
+ targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 00E356F61AD99517003FC87E /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ INFOPLIST_FILE = AwesomeProjectTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.4;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ OTHER_LDFLAGS = (
+ "-ObjC",
+ "-lc++",
+ "$(inherited)",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject";
+ };
+ name = Debug;
+ };
+ 00E356F71AD99517003FC87E /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ COPY_PHASE_STRIP = NO;
+ INFOPLIST_FILE = AwesomeProjectTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.4;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ OTHER_LDFLAGS = (
+ "-ObjC",
+ "-lc++",
+ "$(inherited)",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject";
+ };
+ name = Release;
+ };
+ 13B07F941A680F5B00A75B9A /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
+ CURRENT_PROJECT_VERSION = 1;
+ ENABLE_BITCODE = NO;
+ INFOPLIST_FILE = AwesomeProject/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ MARKETING_VERSION = 1.0;
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_NAME = AwesomeProject;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Debug;
+ };
+ 13B07F951A680F5B00A75B9A /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
+ CURRENT_PROJECT_VERSION = 1;
+ INFOPLIST_FILE = AwesomeProject/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ MARKETING_VERSION = 1.0;
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_NAME = AwesomeProject;
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Release;
+ };
+ 83CBBA201A601CBA00E9B192 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "c++17";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.4;
+ LD_RUNPATH_SEARCH_PATHS = (
+ /usr/lib/swift,
+ "$(inherited)",
+ );
+ LIBRARY_SEARCH_PATHS = (
+ "\"$(SDKROOT)/usr/lib/swift\"",
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
+ "\"$(inherited)\"",
+ );
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_CPLUSPLUSFLAGS = (
+ "$(OTHER_CFLAGS)",
+ "-DFOLLY_NO_CONFIG",
+ "-DFOLLY_MOBILE=1",
+ "-DFOLLY_USE_LIBCPP=1",
+ );
+ SDKROOT = iphoneos;
+ };
+ name = Debug;
+ };
+ 83CBBA211A601CBA00E9B192 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "c++17";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.4;
+ LD_RUNPATH_SEARCH_PATHS = (
+ /usr/lib/swift,
+ "$(inherited)",
+ );
+ LIBRARY_SEARCH_PATHS = (
+ "\"$(SDKROOT)/usr/lib/swift\"",
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
+ "\"$(inherited)\"",
+ );
+ MTL_ENABLE_DEBUG_INFO = NO;
+ OTHER_CPLUSPLUSFLAGS = (
+ "$(OTHER_CFLAGS)",
+ "-DFOLLY_NO_CONFIG",
+ "-DFOLLY_MOBILE=1",
+ "-DFOLLY_USE_LIBCPP=1",
+ );
+ SDKROOT = iphoneos;
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 00E356F61AD99517003FC87E /* Debug */,
+ 00E356F71AD99517003FC87E /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 13B07F941A680F5B00A75B9A /* Debug */,
+ 13B07F951A680F5B00A75B9A /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 83CBBA201A601CBA00E9B192 /* Debug */,
+ 83CBBA211A601CBA00E9B192 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
+}
diff --git a/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme b/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme
new file mode 100644
index 0000000..20f13d1
--- /dev/null
+++ b/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/AwesomeProject/AppDelegate.h b/ios/AwesomeProject/AppDelegate.h
new file mode 100644
index 0000000..5d28082
--- /dev/null
+++ b/ios/AwesomeProject/AppDelegate.h
@@ -0,0 +1,6 @@
+#import
+#import
+
+@interface AppDelegate : RCTAppDelegate
+
+@end
diff --git a/ios/AwesomeProject/AppDelegate.mm b/ios/AwesomeProject/AppDelegate.mm
new file mode 100644
index 0000000..029aa44
--- /dev/null
+++ b/ios/AwesomeProject/AppDelegate.mm
@@ -0,0 +1,36 @@
+#import "AppDelegate.h"
+
+#import
+
+@implementation AppDelegate
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ self.moduleName = @"AwesomeProject";
+ // You can add your custom initial props in the dictionary below.
+ // They will be passed down to the ViewController used by React Native.
+ self.initialProps = @{};
+
+ return [super application:application didFinishLaunchingWithOptions:launchOptions];
+}
+
+- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
+{
+#if DEBUG
+ return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
+#else
+ return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
+#endif
+}
+
+/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.
+///
+/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html
+/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).
+/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`.
+- (BOOL)concurrentRootEnabled
+{
+ return true;
+}
+
+@end
diff --git a/ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..8121323
--- /dev/null
+++ b/ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,53 @@
+{
+ "images" : [
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/AwesomeProject/Images.xcassets/Contents.json b/ios/AwesomeProject/Images.xcassets/Contents.json
new file mode 100644
index 0000000..2d92bd5
--- /dev/null
+++ b/ios/AwesomeProject/Images.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
diff --git a/ios/AwesomeProject/Info.plist b/ios/AwesomeProject/Info.plist
new file mode 100644
index 0000000..c6aa299
--- /dev/null
+++ b/ios/AwesomeProject/Info.plist
@@ -0,0 +1,55 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleDisplayName
+ AwesomeProject
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ $(MARKETING_VERSION)
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+ LSRequiresIPhoneOS
+
+ NSAppTransportSecurity
+
+ NSExceptionDomains
+
+ localhost
+
+ NSExceptionAllowsInsecureHTTPLoads
+
+
+
+
+ NSLocationWhenInUseUsageDescription
+
+ UILaunchStoryboardName
+ LaunchScreen
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UIViewControllerBasedStatusBarAppearance
+
+
+
diff --git a/ios/AwesomeProject/LaunchScreen.storyboard b/ios/AwesomeProject/LaunchScreen.storyboard
new file mode 100644
index 0000000..1ba1a64
--- /dev/null
+++ b/ios/AwesomeProject/LaunchScreen.storyboard
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/AwesomeProject/main.m b/ios/AwesomeProject/main.m
new file mode 100644
index 0000000..d645c72
--- /dev/null
+++ b/ios/AwesomeProject/main.m
@@ -0,0 +1,10 @@
+#import
+
+#import "AppDelegate.h"
+
+int main(int argc, char *argv[])
+{
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+ }
+}
diff --git a/ios/AwesomeProjectTests/AwesomeProjectTests.m b/ios/AwesomeProjectTests/AwesomeProjectTests.m
new file mode 100644
index 0000000..adc7bf1
--- /dev/null
+++ b/ios/AwesomeProjectTests/AwesomeProjectTests.m
@@ -0,0 +1,66 @@
+#import
+#import
+
+#import
+#import
+
+#define TIMEOUT_SECONDS 600
+#define TEXT_TO_LOOK_FOR @"Welcome to React"
+
+@interface AwesomeProjectTests : XCTestCase
+
+@end
+
+@implementation AwesomeProjectTests
+
+- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test
+{
+ if (test(view)) {
+ return YES;
+ }
+ for (UIView *subview in [view subviews]) {
+ if ([self findSubviewInView:subview matching:test]) {
+ return YES;
+ }
+ }
+ return NO;
+}
+
+- (void)testRendersWelcomeScreen
+{
+ UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
+ BOOL foundElement = NO;
+
+ __block NSString *redboxError = nil;
+#ifdef DEBUG
+ RCTSetLogFunction(
+ ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
+ if (level >= RCTLogLevelError) {
+ redboxError = message;
+ }
+ });
+#endif
+
+ while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
+ [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
+ [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
+
+ foundElement = [self findSubviewInView:vc.view
+ matching:^BOOL(UIView *view) {
+ if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
+ return YES;
+ }
+ return NO;
+ }];
+ }
+
+#ifdef DEBUG
+ RCTSetLogFunction(RCTDefaultLogFunction);
+#endif
+
+ XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
+ XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
+}
+
+@end
diff --git a/ios/AwesomeProjectTests/Info.plist b/ios/AwesomeProjectTests/Info.plist
new file mode 100644
index 0000000..ba72822
--- /dev/null
+++ b/ios/AwesomeProjectTests/Info.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1
+
+
diff --git a/ios/Podfile b/ios/Podfile
new file mode 100644
index 0000000..c253829
--- /dev/null
+++ b/ios/Podfile
@@ -0,0 +1,60 @@
+require_relative '../node_modules/react-native/scripts/react_native_pods'
+require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
+
+platform :ios, min_ios_version_supported
+prepare_react_native_project!
+
+# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
+# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
+#
+# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
+# ```js
+# module.exports = {
+# dependencies: {
+# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
+# ```
+flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
+
+linkage = ENV['USE_FRAMEWORKS']
+if linkage != nil
+ Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
+ use_frameworks! :linkage => linkage.to_sym
+end
+
+target 'AwesomeProject' do
+ config = use_native_modules!
+
+ # Flags change depending on the env values.
+ flags = get_default_flags()
+
+ use_react_native!(
+ :path => config[:reactNativePath],
+ # Hermes is now enabled by default. Disable by setting this flag to false.
+ # Upcoming versions of React Native may rely on get_default_flags(), but
+ # we make it explicit here to aid in the React Native upgrade process.
+ :hermes_enabled => flags[:hermes_enabled],
+ :fabric_enabled => flags[:fabric_enabled],
+ # Enables Flipper.
+ #
+ # Note that if you have use_frameworks! enabled, Flipper will not work and
+ # you should disable the next line.
+ :flipper_configuration => flipper_config,
+ # An absolute path to your application root.
+ :app_path => "#{Pod::Config.instance.installation_root}/.."
+ )
+
+ target 'AwesomeProjectTests' do
+ inherit! :complete
+ # Pods for testing
+ end
+
+ post_install do |installer|
+ react_native_post_install(
+ installer,
+ # Set `mac_catalyst_enabled` to `true` in order to apply patches
+ # necessary for Mac Catalyst builds
+ :mac_catalyst_enabled => false
+ )
+ __apply_Xcode_12_5_M1_post_install_workaround(installer)
+ end
+end
diff --git a/metro.config.js b/metro.config.js
new file mode 100644
index 0000000..e91aba9
--- /dev/null
+++ b/metro.config.js
@@ -0,0 +1,17 @@
+/**
+ * Metro configuration for React Native
+ * https://github.com/facebook/react-native
+ *
+ * @format
+ */
+
+module.exports = {
+ transformer: {
+ getTransformOptions: async () => ({
+ transform: {
+ experimentalImportSupport: false,
+ inlineRequires: true,
+ },
+ }),
+ },
+};
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..42801d2
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,12998 @@
+{
+ "name": "AwesomeProject",
+ "version": "0.0.1",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "AwesomeProject",
+ "version": "0.0.1",
+ "dependencies": {
+ "@react-native-async-storage/async-storage": "^1.18.1",
+ "@react-navigation/bottom-tabs": "^6.5.7",
+ "@react-navigation/drawer": "^6.6.2",
+ "@react-navigation/native": "^6.1.6",
+ "@react-navigation/native-stack": "^6.9.12",
+ "@react-navigation/stack": "^6.3.16",
+ "deepmerge": "^4.3.1",
+ "i18next": "^22.4.15",
+ "react": "18.2.0",
+ "react-hook-form": "^7.43.9",
+ "react-i18next": "^12.2.2",
+ "react-native": "^0.71.8",
+ "react-native-config": "^1.5.1",
+ "react-native-device-info": "^10.6.0",
+ "react-native-dropdown-picker": "^5.4.6",
+ "react-native-gesture-handler": "^2.10.0",
+ "react-native-localize": "^3.0.0",
+ "react-native-modalize": "^2.1.1",
+ "react-native-paper": "^5.7.2",
+ "react-native-reanimated": "^3.1.0",
+ "react-native-safe-area-context": "^4.5.2",
+ "react-native-screens": "*",
+ "react-native-vector-icons": "^9.2.0"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.21.8",
+ "@babel/preset-env": "^7.21.5",
+ "@babel/runtime": "^7.21.5",
+ "@react-native-community/eslint-config": "^3.2.0",
+ "@tsconfig/react-native": "^3.0.1",
+ "@types/jest": "^29.5.1",
+ "@types/react": "^18.2.6",
+ "@types/react-native": "^0.72.0",
+ "@types/react-native-vector-icons": "^6.4.13",
+ "@types/react-test-renderer": "^18.0.0",
+ "babel-jest": "^29.2.1",
+ "eslint": "^8.40.0",
+ "eslint-config-prettier": "^8.8.0",
+ "jest": "^29.2.1",
+ "metro-react-native-babel-preset": "^0.76.4",
+ "prettier": "^2.8.8",
+ "react-test-renderer": "18.2.0",
+ "typescript": "^5.0.4"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
+ "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.1.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
+ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
+ "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
+ "dependencies": {
+ "@babel/highlight": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.21.7",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz",
+ "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.21.8",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz",
+ "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.21.5",
+ "@babel/helper-compilation-targets": "^7.21.5",
+ "@babel/helper-module-transforms": "^7.21.5",
+ "@babel/helpers": "^7.21.5",
+ "@babel/parser": "^7.21.8",
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.21.5",
+ "@babel/types": "^7.21.5",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.2",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/eslint-parser": {
+ "version": "7.21.3",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz",
+ "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
+ "eslint-visitor-keys": "^2.1.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || >=14.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7.11.0",
+ "eslint": "^7.5.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz",
+ "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==",
+ "dependencies": {
+ "@babel/types": "^7.21.5",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
+ "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
+ "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-explode-assignable-expression": "^7.18.6",
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz",
+ "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==",
+ "dependencies": {
+ "@babel/compat-data": "^7.21.5",
+ "@babel/helper-validator-option": "^7.21.0",
+ "browserslist": "^4.21.3",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz",
+ "integrity": "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-member-expression-to-functions": "^7.21.0",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.20.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
+ "@babel/helper-split-export-declaration": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz",
+ "integrity": "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "regexpu-core": "^5.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz",
+ "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.17.7",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0-0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz",
+ "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-explode-assignable-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
+ "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz",
+ "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.20.7",
+ "@babel/types": "^7.21.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz",
+ "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.21.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.21.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz",
+ "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
+ "dependencies": {
+ "@babel/types": "^7.21.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz",
+ "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.21.5",
+ "@babel/helper-module-imports": "^7.21.4",
+ "@babel/helper-simple-access": "^7.21.5",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.21.5",
+ "@babel/types": "^7.21.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
+ "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+ "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
+ "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-wrap-function": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz",
+ "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.20.7",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.7",
+ "@babel/types": "^7.20.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz",
+ "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==",
+ "dependencies": {
+ "@babel/types": "^7.21.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz",
+ "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.20.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz",
+ "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.19.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+ "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz",
+ "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz",
+ "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-function-name": "^7.19.0",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz",
+ "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==",
+ "dependencies": {
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.21.5",
+ "@babel/types": "^7.21.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "license": "MIT"
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.21.8",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz",
+ "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==",
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz",
+ "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz",
+ "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.20.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz",
+ "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==",
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-class-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-class-static-block": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz",
+ "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.21.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-dynamic-import": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
+ "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-export-default-from": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz",
+ "integrity": "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-export-default-from": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
+ "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-json-strings": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
+ "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz",
+ "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-numeric-separator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
+ "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
+ "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-optional-chaining": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
+ "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-methods": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
+ "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz",
+ "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.21.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
+ "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-export-default-from": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz",
+ "integrity": "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-flow": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz",
+ "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz",
+ "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
+ "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz",
+ "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz",
+ "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.21.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz",
+ "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-remap-async-to-generator": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
+ "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz",
+ "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz",
+ "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-replace-supers": "^7.20.7",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-computed-properties": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz",
+ "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.21.5",
+ "@babel/template": "^7.20.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.21.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz",
+ "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
+ "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
+ "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
+ "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-flow-strip-types": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz",
+ "integrity": "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-flow": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz",
+ "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.21.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
+ "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
+ "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-member-expression-literals": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
+ "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz",
+ "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz",
+ "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.21.5",
+ "@babel/helper-plugin-utils": "^7.21.5",
+ "@babel/helper-simple-access": "^7.21.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz",
+ "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-validator-identifier": "^7.19.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
+ "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz",
+ "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.20.5",
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
+ "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-assign": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz",
+ "integrity": "sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
+ "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.21.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz",
+ "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-property-literals": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
+ "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-display-name": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz",
+ "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz",
+ "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-jsx": "^7.18.6",
+ "@babel/types": "^7.21.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz",
+ "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.19.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz",
+ "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.19.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz",
+ "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.21.5",
+ "regenerator-transform": "^0.15.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
+ "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz",
+ "integrity": "sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "babel-plugin-polyfill-corejs2": "^0.3.3",
+ "babel-plugin-polyfill-corejs3": "^0.6.0",
+ "babel-plugin-polyfill-regenerator": "^0.4.1",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
+ "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz",
+ "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
+ "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
+ "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
+ "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.21.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz",
+ "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.21.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-typescript": "^7.20.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz",
+ "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.21.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
+ "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz",
+ "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==",
+ "dependencies": {
+ "@babel/compat-data": "^7.21.5",
+ "@babel/helper-compilation-targets": "^7.21.5",
+ "@babel/helper-plugin-utils": "^7.21.5",
+ "@babel/helper-validator-option": "^7.21.0",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7",
+ "@babel/plugin-proposal-async-generator-functions": "^7.20.7",
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
+ "@babel/plugin-proposal-class-static-block": "^7.21.0",
+ "@babel/plugin-proposal-dynamic-import": "^7.18.6",
+ "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
+ "@babel/plugin-proposal-json-strings": "^7.18.6",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
+ "@babel/plugin-proposal-numeric-separator": "^7.18.6",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
+ "@babel/plugin-proposal-optional-chaining": "^7.21.0",
+ "@babel/plugin-proposal-private-methods": "^7.18.6",
+ "@babel/plugin-proposal-private-property-in-object": "^7.21.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.18.6",
+ "@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.20.0",
+ "@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-transform-arrow-functions": "^7.21.5",
+ "@babel/plugin-transform-async-to-generator": "^7.20.7",
+ "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
+ "@babel/plugin-transform-block-scoping": "^7.21.0",
+ "@babel/plugin-transform-classes": "^7.21.0",
+ "@babel/plugin-transform-computed-properties": "^7.21.5",
+ "@babel/plugin-transform-destructuring": "^7.21.3",
+ "@babel/plugin-transform-dotall-regex": "^7.18.6",
+ "@babel/plugin-transform-duplicate-keys": "^7.18.9",
+ "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
+ "@babel/plugin-transform-for-of": "^7.21.5",
+ "@babel/plugin-transform-function-name": "^7.18.9",
+ "@babel/plugin-transform-literals": "^7.18.9",
+ "@babel/plugin-transform-member-expression-literals": "^7.18.6",
+ "@babel/plugin-transform-modules-amd": "^7.20.11",
+ "@babel/plugin-transform-modules-commonjs": "^7.21.5",
+ "@babel/plugin-transform-modules-systemjs": "^7.20.11",
+ "@babel/plugin-transform-modules-umd": "^7.18.6",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5",
+ "@babel/plugin-transform-new-target": "^7.18.6",
+ "@babel/plugin-transform-object-super": "^7.18.6",
+ "@babel/plugin-transform-parameters": "^7.21.3",
+ "@babel/plugin-transform-property-literals": "^7.18.6",
+ "@babel/plugin-transform-regenerator": "^7.21.5",
+ "@babel/plugin-transform-reserved-words": "^7.18.6",
+ "@babel/plugin-transform-shorthand-properties": "^7.18.6",
+ "@babel/plugin-transform-spread": "^7.20.7",
+ "@babel/plugin-transform-sticky-regex": "^7.18.6",
+ "@babel/plugin-transform-template-literals": "^7.18.9",
+ "@babel/plugin-transform-typeof-symbol": "^7.18.9",
+ "@babel/plugin-transform-unicode-escapes": "^7.21.5",
+ "@babel/plugin-transform-unicode-regex": "^7.18.6",
+ "@babel/preset-modules": "^0.1.5",
+ "@babel/types": "^7.21.5",
+ "babel-plugin-polyfill-corejs2": "^0.3.3",
+ "babel-plugin-polyfill-corejs3": "^0.6.0",
+ "babel-plugin-polyfill-regenerator": "^0.4.1",
+ "core-js-compat": "^3.25.1",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-flow": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz",
+ "integrity": "sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-validator-option": "^7.18.6",
+ "@babel/plugin-transform-flow-strip-types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
+ "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-typescript": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz",
+ "integrity": "sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-validator-option": "^7.21.0",
+ "@babel/plugin-transform-typescript": "^7.21.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/register": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz",
+ "integrity": "sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==",
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
+ "license": "MIT"
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz",
+ "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==",
+ "dependencies": {
+ "regenerator-runtime": "^0.13.11"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
+ "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz",
+ "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==",
+ "dependencies": {
+ "@babel/code-frame": "^7.21.4",
+ "@babel/generator": "^7.21.5",
+ "@babel/helper-environment-visitor": "^7.21.5",
+ "@babel/helper-function-name": "^7.21.0",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.21.5",
+ "@babel/types": "^7.21.5",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.21.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz",
+ "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.21.5",
+ "@babel/helper-validator-identifier": "^7.19.1",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@callstack/react-theme-provider": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.8.tgz",
+ "integrity": "sha512-5U231sYY2sqQOaELX0WBCn+iluV8bFaXIS7em03k4W5Xz0AhGvKlnpLIhDGFP8im/SvNW7/2XoR0BsClhn9t6Q==",
+ "dependencies": {
+ "deepmerge": "^3.2.0",
+ "hoist-non-react-statics": "^3.3.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.3.0"
+ }
+ },
+ "node_modules/@callstack/react-theme-provider/node_modules/deepmerge": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
+ "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@egjs/hammerjs": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz",
+ "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==",
+ "dependencies": {
+ "@types/hammerjs": "^2.0.36"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz",
+ "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz",
+ "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz",
+ "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.5.2",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.40.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz",
+ "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
+ },
+ "node_modules/@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/console": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz",
+ "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/core": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz",
+ "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/console": "^29.5.0",
+ "@jest/reporters": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^29.5.0",
+ "jest-config": "^29.5.0",
+ "jest-haste-map": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-regex-util": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-resolve-dependencies": "^29.5.0",
+ "jest-runner": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "jest-watcher": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.5.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/create-cache-key-function": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.5.0.tgz",
+ "integrity": "sha512-LIDZyZgnZss7uikvBKBB/USWwG+GO8+GnwRWT+YkCGDGsqLQlhm9BC3z6+7+eMs1kUlvXQIWEzBR8Q2Pnvx6lg==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/environment": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz",
+ "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "jest-mock": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/expect": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz",
+ "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "expect": "^29.5.0",
+ "jest-snapshot": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/expect-utils": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz",
+ "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jest-get-type": "^29.4.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz",
+ "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.5.0",
+ "jest-mock": "^29.5.0",
+ "jest-util": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/globals": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz",
+ "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.5.0",
+ "@jest/expect": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "jest-mock": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/reporters": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz",
+ "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^5.1.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-worker": "^29.5.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0",
+ "v8-to-istanbul": "^9.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz",
+ "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==",
+ "license": "MIT",
+ "dependencies": {
+ "@sinclair/typebox": "^0.25.16"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/source-map": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz",
+ "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/test-result": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz",
+ "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/console": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/test-sequencer": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz",
+ "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/test-result": "^29.5.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/transform": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz",
+ "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.5.0",
+ "@jridgewell/trace-mapping": "^0.3.15",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "jest-regex-util": "^29.4.3",
+ "jest-util": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.2"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/transform/node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jest/types": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz",
+ "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "^29.4.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"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz",
+ "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ }
+ },
+ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
+ "version": "5.1.1-v1",
+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
+ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-scope": "5.1.1"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@react-native-async-storage/async-storage": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.18.1.tgz",
+ "integrity": "sha512-70aFW8fVCKl+oA1AKPFDpE6s4t9pulj2QeLX+MabEmzfT3urd/3cckv45WJvtocdoIH/oXA3Y+YcCRJCcNa8mA==",
+ "dependencies": {
+ "merge-options": "^3.0.4"
+ },
+ "peerDependencies": {
+ "react-native": "^0.0.0-0 || 0.60 - 0.72 || 1000.0.0"
+ }
+ },
+ "node_modules/@react-native-community/cli": {
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-10.2.2.tgz",
+ "integrity": "sha512-aZVcVIqj+OG6CrliR/Yn8wHxrvyzbFBY9cj7n0MvRw/P54QUru2nNqUTSSbqv0Qaa297yHJbe6kFDojDMSTM8Q==",
+ "dependencies": {
+ "@react-native-community/cli-clean": "^10.1.1",
+ "@react-native-community/cli-config": "^10.1.1",
+ "@react-native-community/cli-debugger-ui": "^10.0.0",
+ "@react-native-community/cli-doctor": "^10.2.2",
+ "@react-native-community/cli-hermes": "^10.2.0",
+ "@react-native-community/cli-plugin-metro": "^10.2.2",
+ "@react-native-community/cli-server-api": "^10.1.1",
+ "@react-native-community/cli-tools": "^10.1.1",
+ "@react-native-community/cli-types": "^10.0.0",
+ "chalk": "^4.1.2",
+ "commander": "^9.4.1",
+ "execa": "^1.0.0",
+ "find-up": "^4.1.0",
+ "fs-extra": "^8.1.0",
+ "graceful-fs": "^4.1.3",
+ "prompts": "^2.4.0",
+ "semver": "^6.3.0"
+ },
+ "bin": {
+ "react-native": "build/bin.js"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@react-native-community/cli-clean": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-10.1.1.tgz",
+ "integrity": "sha512-iNsrjzjIRv9yb5y309SWJ8NDHdwYtnCpmxZouQDyOljUdC9MwdZ4ChbtA4rwQyAwgOVfS9F/j56ML3Cslmvrxg==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "^10.1.1",
+ "chalk": "^4.1.2",
+ "execa": "^1.0.0",
+ "prompts": "^2.4.0"
+ }
+ },
+ "node_modules/@react-native-community/cli-config": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-10.1.1.tgz",
+ "integrity": "sha512-p4mHrjC+s/ayiNVG6T35GdEGdP6TuyBUg5plVGRJfTl8WT6LBfLYLk+fz/iETrEZ/YkhQIsQcEUQC47MqLNHog==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "^10.1.1",
+ "chalk": "^4.1.2",
+ "cosmiconfig": "^5.1.0",
+ "deepmerge": "^3.2.0",
+ "glob": "^7.1.3",
+ "joi": "^17.2.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-config/node_modules/deepmerge": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
+ "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@react-native-community/cli-debugger-ui": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-10.0.0.tgz",
+ "integrity": "sha512-8UKLcvpSNxnUTRy8CkCl27GGLqZunQ9ncGYhSrWyKrU9SWBJJGeZwi2k2KaoJi5FvF2+cD0t8z8cU6lsq2ZZmA==",
+ "dependencies": {
+ "serve-static": "^1.13.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor": {
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-10.2.2.tgz",
+ "integrity": "sha512-49Ep2aQOF0PkbAR/TcyMjOm9XwBa8VQr+/Zzf4SJeYwiYLCT1NZRAVAVjYRXl0xqvq5S5mAGZZShS4AQl4WsZw==",
+ "dependencies": {
+ "@react-native-community/cli-config": "^10.1.1",
+ "@react-native-community/cli-platform-ios": "^10.2.1",
+ "@react-native-community/cli-tools": "^10.1.1",
+ "chalk": "^4.1.2",
+ "command-exists": "^1.2.8",
+ "envinfo": "^7.7.2",
+ "execa": "^1.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": "^6.3.0",
+ "strip-ansi": "^5.2.0",
+ "sudo-prompt": "^9.0.0",
+ "wcwidth": "^1.0.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@react-native-community/cli-hermes": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-10.2.0.tgz",
+ "integrity": "sha512-urfmvNeR8IiO/Sd92UU3xPO+/qI2lwCWQnxOkWaU/i2EITFekE47MD6MZrfVulRVYRi5cuaFqKZO/ccOdOB/vQ==",
+ "dependencies": {
+ "@react-native-community/cli-platform-android": "^10.2.0",
+ "@react-native-community/cli-tools": "^10.1.1",
+ "chalk": "^4.1.2",
+ "hermes-profile-transformer": "^0.0.6",
+ "ip": "^1.1.5"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-android": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.2.0.tgz",
+ "integrity": "sha512-CBenYwGxwFdObZTn1lgxWtMGA5ms2G/ALQhkS+XTAD7KHDrCxFF9yT/fnAjFZKM6vX/1TqGI1RflruXih3kAhw==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "^10.1.1",
+ "chalk": "^4.1.2",
+ "execa": "^1.0.0",
+ "glob": "^7.1.3",
+ "logkitty": "^0.7.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-platform-ios": {
+ "version": "10.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.1.tgz",
+ "integrity": "sha512-hz4zu4Y6eyj7D0lnZx8Mf2c2si8y+zh/zUTgCTaPPLzQD8jSZNNBtUUiA1cARm2razpe8marCZ1QbTMAGbf3mg==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "^10.1.1",
+ "chalk": "^4.1.2",
+ "execa": "^1.0.0",
+ "fast-xml-parser": "^4.0.12",
+ "glob": "^7.1.3",
+ "ora": "^5.4.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-plugin-metro": {
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.2.tgz",
+ "integrity": "sha512-sTGjZlD3OGqbF9v1ajwUIXhGmjw9NyJ/14Lo0sg7xH8Pv4qUd5ZvQ6+DWYrQn3IKFUMfGFWYyL81ovLuPylrpw==",
+ "dependencies": {
+ "@react-native-community/cli-server-api": "^10.1.1",
+ "@react-native-community/cli-tools": "^10.1.1",
+ "chalk": "^4.1.2",
+ "execa": "^1.0.0",
+ "metro": "0.73.9",
+ "metro-config": "0.73.9",
+ "metro-core": "0.73.9",
+ "metro-react-native-babel-transformer": "0.73.9",
+ "metro-resolver": "0.73.9",
+ "metro-runtime": "0.73.9",
+ "readline": "^1.3.0"
+ }
+ },
+ "node_modules/@react-native-community/cli-server-api": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-10.1.1.tgz",
+ "integrity": "sha512-NZDo/wh4zlm8as31UEBno2bui8+ufzsZV+KN7QjEJWEM0levzBtxaD+4je0OpfhRIIkhaRm2gl/vVf7OYAzg4g==",
+ "dependencies": {
+ "@react-native-community/cli-debugger-ui": "^10.0.0",
+ "@react-native-community/cli-tools": "^10.1.1",
+ "compression": "^1.7.1",
+ "connect": "^3.6.5",
+ "errorhandler": "^1.5.0",
+ "nocache": "^3.0.1",
+ "pretty-format": "^26.6.2",
+ "serve-static": "^1.13.1",
+ "ws": "^7.5.1"
+ }
+ },
+ "node_modules/@react-native-community/cli-server-api/node_modules/@jest/types": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
+ "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "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"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/@react-native-community/cli-server-api/node_modules/@types/yargs": {
+ "version": "15.0.15",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz",
+ "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@react-native-community/cli-server-api/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@react-native-community/cli-server-api/node_modules/react-is": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
+ },
+ "node_modules/@react-native-community/cli-tools": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-10.1.1.tgz",
+ "integrity": "sha512-+FlwOnZBV+ailEzXjcD8afY2ogFEBeHOw/8+XXzMgPaquU2Zly9B+8W089tnnohO3yfiQiZqkQlElP423MY74g==",
+ "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": "^6.3.0",
+ "shell-quote": "^1.7.3"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-tools/node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-native-community/cli-types": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-10.0.0.tgz",
+ "integrity": "sha512-31oUM6/rFBZQfSmDQsT1DX/5fjqfxg7sf2u8kTPJK7rXVya5SRpAMaCXsPAG0omsmJxXt+J9HxUi3Ic+5Ux5Iw==",
+ "dependencies": {
+ "joi": "^17.2.1"
+ }
+ },
+ "node_modules/@react-native-community/eslint-config": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/eslint-config/-/eslint-config-3.2.0.tgz",
+ "integrity": "sha512-ZjGvoeiBtCbd506hQqwjKmkWPgynGUoJspG8/MuV/EfKnkjCtBmeJvq2n+sWbWEvL9LWXDp2GJmPzmvU5RSvKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.14.0",
+ "@babel/eslint-parser": "^7.18.2",
+ "@react-native-community/eslint-plugin": "^1.1.0",
+ "@typescript-eslint/eslint-plugin": "^5.30.5",
+ "@typescript-eslint/parser": "^5.30.5",
+ "eslint-config-prettier": "^8.5.0",
+ "eslint-plugin-eslint-comments": "^3.2.0",
+ "eslint-plugin-ft-flow": "^2.0.1",
+ "eslint-plugin-jest": "^26.5.3",
+ "eslint-plugin-prettier": "^4.2.1",
+ "eslint-plugin-react": "^7.30.1",
+ "eslint-plugin-react-hooks": "^4.6.0",
+ "eslint-plugin-react-native": "^4.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=8",
+ "prettier": ">=2"
+ }
+ },
+ "node_modules/@react-native-community/eslint-plugin": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/eslint-plugin/-/eslint-plugin-1.3.0.tgz",
+ "integrity": "sha512-+zDZ20NUnSWghj7Ku5aFphMzuM9JulqCW+aPXT6IfIXFbb8tzYTTOSeRFOtuekJ99ibW2fUCSsjuKNlwDIbHFg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@react-native/assets": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz",
+ "integrity": "sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==",
+ "license": "MIT"
+ },
+ "node_modules/@react-native/normalize-color": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz",
+ "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==",
+ "license": "MIT"
+ },
+ "node_modules/@react-native/polyfills": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz",
+ "integrity": "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==",
+ "license": "MIT"
+ },
+ "node_modules/@react-native/virtualized-lists": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.72.4.tgz",
+ "integrity": "sha512-2t8WBVACkKEadtsiGYJaYTix575J/5VQJyqnyL7iDIsd3iG7ODjfMDsTGsVyAA2Av/xeVIuVQRUX0ZzV3cucug==",
+ "dev": true,
+ "dependencies": {
+ "invariant": "^2.2.4",
+ "nullthrows": "^1.1.1"
+ },
+ "peerDependencies": {
+ "react-native": "*",
+ "react-test-renderer": "18.2.0"
+ }
+ },
+ "node_modules/@react-navigation/bottom-tabs": {
+ "version": "6.5.7",
+ "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.7.tgz",
+ "integrity": "sha512-9oZYyRu2z7+1pr2dX5V54rHFPmlj4ztwQxFe85zwpnGcPtGIsXj7VCIdlHnjRHJBBFCszvJGQpYY6/G2+DfD+A==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.17",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/bottom-tabs/node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
+ "node_modules/@react-navigation/core": {
+ "version": "6.4.8",
+ "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.8.tgz",
+ "integrity": "sha512-klZ9Mcf/P2j+5cHMoGyIeurEzyBM2Uq9+NoSFrF6sdV5iCWHLFhrCXuhbBiQ5wVLCKf4lavlkd/DDs47PXs9RQ==",
+ "dependencies": {
+ "@react-navigation/routers": "^6.1.8",
+ "escape-string-regexp": "^4.0.0",
+ "nanoid": "^3.1.23",
+ "query-string": "^7.1.3",
+ "react-is": "^16.13.0",
+ "use-latest-callback": "^0.1.5"
+ },
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
+ "node_modules/@react-navigation/core/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-navigation/core/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
+ "node_modules/@react-navigation/drawer": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.2.tgz",
+ "integrity": "sha512-6qt4guBdz7bkdo/8BLSCcFNdQdSPYyNn05D9cD+VCY3mGThSiD8bRiP9ju+64im7LsSU+bNWXaP8RxA/FtTVQg==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.17",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-gesture-handler": ">= 1.0.0",
+ "react-native-reanimated": ">= 1.0.0",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/drawer/node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
+ "node_modules/@react-navigation/elements": {
+ "version": "1.3.17",
+ "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.17.tgz",
+ "integrity": "sha512-sui8AzHm6TxeEvWT/NEXlz3egYvCUog4tlXA4Xlb2Vxvy3purVXDq/XsM56lJl344U5Aj/jDzkVanOTMWyk4UA==",
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/native": {
+ "version": "6.1.6",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.6.tgz",
+ "integrity": "sha512-14PmSy4JR8HHEk04QkxQ0ZLuqtiQfb4BV9kkMXD2/jI4TZ+yc43OnO6fQ2o9wm+Bq8pY3DxyerC2AjNUz+oH7Q==",
+ "dependencies": {
+ "@react-navigation/core": "^6.4.8",
+ "escape-string-regexp": "^4.0.0",
+ "fast-deep-equal": "^3.1.3",
+ "nanoid": "^3.1.23"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/@react-navigation/native-stack": {
+ "version": "6.9.12",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.12.tgz",
+ "integrity": "sha512-kS2zXCWP0Rgt7uWaCUKrRl7U2U1Gp19rM1kyRY2YzBPXhWGVPjQ2ygBp88CTQzjgy8M07H/79jvGiZ0mlEJI+g==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.17",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/native/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-navigation/routers": {
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.8.tgz",
+ "integrity": "sha512-CEge+ZLhb1HBrSvv4RwOol7EKLW1QoqVIQlE9TN5MpxS/+VoQvP+cLbuz0Op53/iJfYhtXRFd1ZAd3RTRqto9w==",
+ "dependencies": {
+ "nanoid": "^3.1.23"
+ }
+ },
+ "node_modules/@react-navigation/stack": {
+ "version": "6.3.16",
+ "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.3.16.tgz",
+ "integrity": "sha512-KTOn9cNuZ6p154Htbl2DiR95Wl+c7niLPRiGs7gjOkyVDGiaGQF9ODNQTYBDE1OxZGHe/EyYc6T2CbmiItLWDg==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.17",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-gesture-handler": ">= 1.0.0",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/stack/node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
+ "node_modules/@sideway/address": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
+ "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@sideway/formula": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
+ },
+ "node_modules/@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.25.24",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
+ "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==",
+ "license": "MIT"
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz",
+ "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz",
+ "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@sinonjs/commons": "^2.0.0"
+ }
+ },
+ "node_modules/@tsconfig/react-native": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@tsconfig/react-native/-/react-native-3.0.1.tgz",
+ "integrity": "sha512-7C4WVvuKjATN8DU4+l9nuauakWFwNks4ZDNzM00asa3SBdywzqpVrXbN5nwlneivs3Y+98Nk//HNRlIzSMWEBw==",
+ "dev": true
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz",
+ "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
+ "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
+ "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz",
+ "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.3.0"
+ }
+ },
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
+ "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/hammerjs": {
+ "version": "2.0.41",
+ "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz",
+ "integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA=="
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
+ "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
+ "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/jest": {
+ "version": "29.5.1",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz",
+ "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==",
+ "dev": true,
+ "dependencies": {
+ "expect": "^29.0.0",
+ "pretty-format": "^29.0.0"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "18.15.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz",
+ "integrity": "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/prettier": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz",
+ "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "18.2.6",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz",
+ "integrity": "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==",
+ "dev": true,
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-native": {
+ "version": "0.72.0",
+ "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.72.0.tgz",
+ "integrity": "sha512-g1PJXUQ0SnYTimfTeN9dRqj8VfzvgJjt/eakEH7+tlm/ZiEPiL9xCool4iKmqalthwtM0/BkGhjwrKnJyg1JDA==",
+ "dev": true,
+ "dependencies": {
+ "@react-native/virtualized-lists": "^0.72.4",
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/react-native-vector-icons": {
+ "version": "6.4.13",
+ "resolved": "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.13.tgz",
+ "integrity": "sha512-1PqFoKuXTSzMHwGMAr+REdYJBQAbe9xrww3ecZR0FsHcD1K+vGS/rxuAriL4rsI6+p69sZQjDzpEVAbDQcjSwA==",
+ "dev": true,
+ "dependencies": {
+ "@types/react": "*",
+ "@types/react-native": "^0.70"
+ }
+ },
+ "node_modules/@types/react-native-vector-icons/node_modules/@types/react-native": {
+ "version": "0.70.13",
+ "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.13.tgz",
+ "integrity": "sha512-VnC/ny8Eynk3fvY4cnNKXpo/0zUhA2gO64RX51yzVofblOP6TR6jciga0kIjI4c+2eUyWNGrahmiolNm+QU6Cw==",
+ "dev": true,
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/react-test-renderer": {
+ "version": "18.0.0",
+ "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz",
+ "integrity": "sha512-C7/5FBJ3g3sqUahguGi03O79b8afNeSD6T8/GU50oQrJCU0bVCCGQHaGKUbg2Ce8VQEEqTw8/HiS6lXHHdgkdQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/scheduler": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/semver": {
+ "version": "7.3.13",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
+ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.22",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz",
+ "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
+ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
+ "license": "MIT"
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "5.55.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz",
+ "integrity": "sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.4.0",
+ "@typescript-eslint/scope-manager": "5.55.0",
+ "@typescript-eslint/type-utils": "5.55.0",
+ "@typescript-eslint/utils": "5.55.0",
+ "debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^5.0.0",
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "5.55.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.55.0.tgz",
+ "integrity": "sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.55.0",
+ "@typescript-eslint/types": "5.55.0",
+ "@typescript-eslint/typescript-estree": "5.55.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.55.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz",
+ "integrity": "sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "5.55.0",
+ "@typescript-eslint/visitor-keys": "5.55.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "5.55.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz",
+ "integrity": "sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "5.55.0",
+ "@typescript-eslint/utils": "5.55.0",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "5.55.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz",
+ "integrity": "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.55.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz",
+ "integrity": "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/types": "5.55.0",
+ "@typescript-eslint/visitor-keys": "5.55.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "5.55.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.55.0.tgz",
+ "integrity": "sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.55.0",
+ "@typescript-eslint/types": "5.55.0",
+ "@typescript-eslint/typescript-estree": "5.55.0",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.55.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz",
+ "integrity": "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "5.55.0",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "dependencies": {
+ "event-target-shim": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6.5"
+ }
+ },
+ "node_modules/absolute-path": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz",
+ "integrity": "sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA=="
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/anser": {
+ "version": "1.4.10",
+ "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz",
+ "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==",
+ "license": "MIT"
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-escapes/node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-fragments": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz",
+ "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==",
+ "dependencies": {
+ "colorette": "^1.0.7",
+ "slice-ansi": "^2.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-fragments/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/appdirsjs": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz",
+ "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="
+ },
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
+ "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.tosorted": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
+ "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+ "license": "MIT"
+ },
+ "node_modules/assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ast-types": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz",
+ "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
+ },
+ "node_modules/async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "license": "MIT"
+ },
+ "node_modules/atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "license": "(MIT OR Apache-2.0)",
+ "bin": {
+ "atob": "bin/atob.js"
+ },
+ "engines": {
+ "node": ">= 4.5.0"
+ }
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/babel-core": {
+ "version": "7.0.0-bridge.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
+ "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/babel-jest": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz",
+ "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/transform": "^29.5.0",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^29.5.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.8.0"
+ }
+ },
+ "node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-jest-hoist": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz",
+ "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.1.14",
+ "@types/babel__traverse": "^7.0.6"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz",
+ "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.17.7",
+ "@babel/helper-define-polyfill-provider": "^0.3.3",
+ "semver": "^6.1.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz",
+ "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.3.3",
+ "core-js-compat": "^3.25.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz",
+ "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.3.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/babel-plugin-syntax-trailing-function-commas": {
+ "version": "7.0.0-beta.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
+ "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
+ },
+ "node_modules/babel-plugin-transform-flow-enums": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz",
+ "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/plugin-syntax-flow": "^7.12.1"
+ }
+ },
+ "node_modules/babel-preset-current-node-syntax": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
+ "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@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-top-level-await": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-preset-fbjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz",
+ "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==",
+ "dependencies": {
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-syntax-class-properties": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.0.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.0.0",
+ "@babel/plugin-transform-for-of": "^7.0.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-member-expression-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-object-super": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-property-literals": "^7.0.0",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-template-literals": "^7.0.0",
+ "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-preset-jest": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz",
+ "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "babel-plugin-jest-hoist": "^29.5.0",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "license": "MIT"
+ },
+ "node_modules/base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "license": "MIT",
+ "dependencies": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.21.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001449",
+ "electron-to-chromium": "^1.4.284",
+ "node-releases": "^2.0.8",
+ "update-browserslist-db": "^1.0.10"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "license": "MIT"
+ },
+ "node_modules/bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==",
+ "dependencies": {
+ "callsites": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-callsite/node_modules/callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==",
+ "dependencies": {
+ "caller-callsite": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001466",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz",
+ "integrity": "sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz",
+ "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cjs-module-lexer": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
+ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "license": "MIT",
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-spinners": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz",
+ "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/collect-v8-coverage": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
+ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
+ "license": "MIT",
+ "dependencies": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/color/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/colorette": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
+ },
+ "node_modules/command-exists": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
+ },
+ "node_modules/commander": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+ "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "engines": {
+ "node": "^12.20.0 || >=14"
+ }
+ },
+ "node_modules/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "license": "MIT"
+ },
+ "node_modules/component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "license": "MIT"
+ },
+ "node_modules/compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "dependencies": {
+ "mime-db": ">= 1.43.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/compression": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+ "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+ "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"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/compression/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/compression/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "license": "MIT"
+ },
+ "node_modules/connect": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+ "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "finalhandler": "1.1.2",
+ "parseurl": "~1.3.3",
+ "utils-merge": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/connect/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/connect/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "license": "MIT"
+ },
+ "node_modules/copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.29.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz",
+ "integrity": "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.21.5"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "node_modules/cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cosmiconfig/node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cosmiconfig/node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cosmiconfig/node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/cross-spawn/node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
+ "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.7",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz",
+ "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "dependencies": {
+ "clone": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
+ "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/define-property/node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/denodeify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz",
+ "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg=="
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/deprecated-react-native-prop-types": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-3.0.1.tgz",
+ "integrity": "sha512-J0jCJcsk4hMlIb7xwOZKLfMpuJn6l8UtrPEzzQV5ewz5gvKNYakhBuq9h2rWX7YwHHJZFhU5W8ye7dB9oN8VcQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@react-native/normalize-color": "*",
+ "invariant": "*",
+ "prop-types": "*"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/diff-sequences": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz",
+ "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.330",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.330.tgz",
+ "integrity": "sha512-PqyefhybrVdjAJ45HaPLtuVaehiSw7C3ya0aad+rvmV53IVyXmYRk3pwIOb2TxTDTnmgQdn46NjMMaysx79/6Q==",
+ "license": "ISC"
+ },
+ "node_modules/emittery": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/envinfo": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
+ "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==",
+ "bin": {
+ "envinfo": "dist/cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/error-stack-parser": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
+ "dependencies": {
+ "stackframe": "^1.3.4"
+ }
+ },
+ "node_modules/errorhandler": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
+ "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==",
+ "dependencies": {
+ "accepts": "~1.3.7",
+ "escape-html": "~1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.21.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
+ "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.2.0",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.10",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
+ "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has": "^1.0.3"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.40.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz",
+ "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.3",
+ "@eslint/js": "8.40.0",
+ "@humanwhocodes/config-array": "^0.11.8",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.0",
+ "eslint-visitor-keys": "^3.4.1",
+ "espree": "^9.5.2",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-sdsl": "^4.1.4",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz",
+ "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-eslint-comments": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz",
+ "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5",
+ "ignore": "^5.0.5"
+ },
+ "engines": {
+ "node": ">=6.5.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=4.19.1"
+ }
+ },
+ "node_modules/eslint-plugin-ft-flow": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-ft-flow/-/eslint-plugin-ft-flow-2.0.3.tgz",
+ "integrity": "sha512-Vbsd/b+LYA99jUbsL6viEUWShFaYQt2YQs3QN3f+aeszOhh2sgdcU0mjzDyD4yyBvMc8qy2uwvBBWfMzEX06tg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lodash": "^4.17.21",
+ "string-natural-compare": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=12.22.0"
+ },
+ "peerDependencies": {
+ "@babel/eslint-parser": "^7.12.0",
+ "eslint": "^8.1.0"
+ }
+ },
+ "node_modules/eslint-plugin-jest": {
+ "version": "26.9.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.9.0.tgz",
+ "integrity": "sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/utils": "^5.10.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/eslint-plugin": "^5.0.0",
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@typescript-eslint/eslint-plugin": {
+ "optional": true
+ },
+ "jest": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-prettier": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
+ "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.28.0",
+ "prettier": ">=2.0.0"
+ },
+ "peerDependenciesMeta": {
+ "eslint-config-prettier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.32.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz",
+ "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "array.prototype.tosorted": "^1.1.1",
+ "doctrine": "^2.1.0",
+ "estraverse": "^5.3.0",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.6",
+ "object.fromentries": "^2.0.6",
+ "object.hasown": "^1.1.2",
+ "object.values": "^1.1.6",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.4",
+ "semver": "^6.3.0",
+ "string.prototype.matchall": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
+ "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
+ }
+ },
+ "node_modules/eslint-plugin-react-native": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-4.0.0.tgz",
+ "integrity": "sha512-kMmdxrSY7A1WgdqaGC+rY/28rh7kBGNBRsk48ovqkQmdg5j4K+DaFmegENDzMrdLkoufKGRNkKX6bgSwQTCAxQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.7.4",
+ "eslint-plugin-react-native-globals": "^0.1.1"
+ },
+ "peerDependencies": {
+ "eslint": "^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-react-native-globals": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz",
+ "integrity": "sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/eslint-plugin-react/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.4",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
+ "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-scope/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
+ "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/eslint/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
+ "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/eslint/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.5.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz",
+ "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "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"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/execa/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/execa/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/execa/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/execa/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/execa/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/expect": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz",
+ "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/expect-utils": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "license": "MIT",
+ "dependencies": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "license": "MIT"
+ },
+ "node_modules/fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "dev": true,
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-xml-parser": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.2.tgz",
+ "integrity": "sha512-DLzIPtQqmvmdq3VUKR7T6omPK/VCRNqgFlGtbESfyhcH2R4I8EzK1/K6E8PkRCK2EabWrUHK32NjYRbEFnnz0Q==",
+ "funding": [
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/naturalintelligence"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "dependencies": {
+ "strnum": "^1.0.5"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/filter-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "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"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "license": "MIT",
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/flow-parser": {
+ "version": "0.185.2",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.185.2.tgz",
+ "integrity": "sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
+ "license": "MIT",
+ "dependencies": {
+ "map-cache": "^0.2.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "license": "ISC"
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "license": "MIT"
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "license": "ISC",
+ "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"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
+ "license": "ISC"
+ },
+ "node_modules/grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/growly": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==",
+ "dev": true,
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
+ "license": "MIT",
+ "dependencies": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/hermes-estree": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz",
+ "integrity": "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q=="
+ },
+ "node_modules/hermes-parser": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz",
+ "integrity": "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA==",
+ "dependencies": {
+ "hermes-estree": "0.8.0"
+ }
+ },
+ "node_modules/hermes-profile-transformer": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz",
+ "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==",
+ "dependencies": {
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/hermes-profile-transformer/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "dependencies": {
+ "react-is": "^16.7.0"
+ }
+ },
+ "node_modules/hoist-non-react-statics/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/html-parse-stringify": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz",
+ "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==",
+ "dependencies": {
+ "void-elements": "3.1.0"
+ }
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-errors/node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/i18next": {
+ "version": "22.4.15",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.15.tgz",
+ "integrity": "sha512-yYudtbFrrmWKLEhl6jvKUYyYunj4bTBCe2qIUYAxbXoPusY7YmdwPvOE6fx6UIfWvmlbCWDItr7wIs8KEBZ5Zg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://locize.com"
+ },
+ {
+ "type": "individual",
+ "url": "https://locize.com/i18next.html"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
+ }
+ ],
+ "dependencies": {
+ "@babel/runtime": "^7.20.6"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/image-size": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz",
+ "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==",
+ "bin": {
+ "image-size": "bin/image-size.js"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-fresh/node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/import-local": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
+ "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
+ "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.2.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/ip": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
+ },
+ "node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-array-buffer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
+ "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "license": "MIT"
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "license": "MIT"
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "license": "MIT",
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-interactive": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
+ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
+ "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "license": "ISC"
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-reports": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz",
+ "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/core": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "import-local": "^3.0.2",
+ "jest-cli": "^29.5.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-changed-files": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz",
+ "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "execa": "^5.0.0",
+ "p-limit": "^3.1.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-changed-files/node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/jest-changed-files/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-changed-files/node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-changed-files/node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-changed-files/node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-circus": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz",
+ "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.5.0",
+ "@jest/expect": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^0.7.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^29.5.0",
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "p-limit": "^3.1.0",
+ "pretty-format": "^29.5.0",
+ "pure-rand": "^6.0.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-cli": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz",
+ "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/core": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "import-local": "^3.0.2",
+ "jest-config": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "prompts": "^2.0.1",
+ "yargs": "^17.3.1"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz",
+ "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/test-sequencer": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "babel-jest": "^29.5.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^29.5.0",
+ "jest-environment-node": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "jest-regex-util": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-runner": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^29.5.0",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@types/node": "*",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-diff": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz",
+ "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.4.3",
+ "jest-get-type": "^29.4.3",
+ "pretty-format": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-docblock": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz",
+ "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz",
+ "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.4.3",
+ "jest-util": "^29.5.0",
+ "pretty-format": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz",
+ "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.5.0",
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "jest-mock": "^29.5.0",
+ "jest-util": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-get-type": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz",
+ "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-haste-map": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz",
+ "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "@types/graceful-fs": "^4.1.3",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^29.4.3",
+ "jest-util": "^29.5.0",
+ "jest-worker": "^29.5.0",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-leak-detector": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz",
+ "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jest-get-type": "^29.4.3",
+ "pretty-format": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz",
+ "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "pretty-format": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz",
+ "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.5.0",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.5.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-mock": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz",
+ "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "jest-util": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-regex-util": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz",
+ "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz",
+ "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^29.5.0",
+ "jest-validate": "^29.5.0",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^2.0.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz",
+ "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jest-regex-util": "^29.4.3",
+ "jest-snapshot": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runner": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz",
+ "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/console": "^29.5.0",
+ "@jest/environment": "^29.5.0",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^29.4.3",
+ "jest-environment-node": "^29.5.0",
+ "jest-haste-map": "^29.5.0",
+ "jest-leak-detector": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-resolve": "^29.5.0",
+ "jest-runtime": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "jest-watcher": "^29.5.0",
+ "jest-worker": "^29.5.0",
+ "p-limit": "^3.1.0",
+ "source-map-support": "0.5.13"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/jest-runtime": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz",
+ "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.5.0",
+ "@jest/fake-timers": "^29.5.0",
+ "@jest/globals": "^29.5.0",
+ "@jest/source-map": "^29.4.3",
+ "@jest/test-result": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-mock": "^29.5.0",
+ "jest-regex-util": "^29.4.3",
+ "jest-resolve": "^29.5.0",
+ "jest-snapshot": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-serializer": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
+ "dependencies": {
+ "@types/node": "*",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-snapshot": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz",
+ "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-jsx": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/traverse": "^7.7.2",
+ "@babel/types": "^7.3.3",
+ "@jest/expect-utils": "^29.5.0",
+ "@jest/transform": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/babel__traverse": "^7.0.6",
+ "@types/prettier": "^2.1.5",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^29.5.0",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^29.5.0",
+ "jest-get-type": "^29.4.3",
+ "jest-matcher-utils": "^29.5.0",
+ "jest-message-util": "^29.5.0",
+ "jest-util": "^29.5.0",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^29.5.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/jest-util": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz",
+ "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz",
+ "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.5.0",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.4.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-watcher": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz",
+ "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/test-result": "^29.5.0",
+ "@jest/types": "^29.5.0",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "jest-util": "^29.5.0",
+ "string-length": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz",
+ "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.5.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/joi": {
+ "version": "17.9.2",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz",
+ "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==",
+ "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"
+ }
+ },
+ "node_modules/js-sdsl": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz",
+ "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/js-sdsl"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsc-android": {
+ "version": "250231.0.0",
+ "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz",
+ "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/jscodeshift": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.13.1.tgz",
+ "integrity": "sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ==",
+ "license": "MIT",
+ "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": "^3.1.10",
+ "neo-async": "^2.5.0",
+ "node-dir": "^0.1.17",
+ "recast": "^0.20.4",
+ "temp": "^0.8.4",
+ "write-file-atomic": "^2.3.0"
+ },
+ "bin": {
+ "jscodeshift": "bin/jscodeshift.js"
+ },
+ "peerDependencies": {
+ "@babel/preset-env": "^7.1.6"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "license": "MIT",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/braces/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/fill-range/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/flow-parser": {
+ "version": "0.201.0",
+ "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.201.0.tgz",
+ "integrity": "sha512-G4oeDNpNGyIrweF9EnoHatncAihMT0tQgV6NMdyM5I7fhrz9Pr13PJ2KLQ673O4wj9KooTdBpeeYHdDNAQoyyw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "license": "MIT",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jscodeshift/node_modules/write-file-atomic": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+ "license": "ISC",
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/jsx-ast-utils": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
+ "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-includes": "^3.1.5",
+ "object.assign": "^4.1.3"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/logkitty": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz",
+ "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==",
+ "dependencies": {
+ "ansi-fragments": "^0.2.1",
+ "dayjs": "^1.8.15",
+ "yargs": "^15.1.0"
+ },
+ "bin": {
+ "logkitty": "bin/logkitty.js"
+ }
+ },
+ "node_modules/logkitty/node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/logkitty/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/logkitty/node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ },
+ "node_modules/logkitty/node_modules/yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "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"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/logkitty/node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tmpl": "1.0.5"
+ }
+ },
+ "node_modules/map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
+ "license": "MIT",
+ "dependencies": {
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/memoize-one": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
+ "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==",
+ "license": "MIT"
+ },
+ "node_modules/merge-options": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
+ "dependencies": {
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "license": "MIT"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/metro": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.73.9.tgz",
+ "integrity": "sha512-BlYbPmTF60hpetyNdKhdvi57dSqutb+/oK0u3ni4emIh78PiI0axGo7RfdsZ/mn3saASXc94tDbpC5yn7+NpEg==",
+ "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",
+ "absolute-path": "^0.0.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.8.0",
+ "image-size": "^0.6.0",
+ "invariant": "^2.2.4",
+ "jest-worker": "^27.2.0",
+ "lodash.throttle": "^4.1.1",
+ "metro-babel-transformer": "0.73.9",
+ "metro-cache": "0.73.9",
+ "metro-cache-key": "0.73.9",
+ "metro-config": "0.73.9",
+ "metro-core": "0.73.9",
+ "metro-file-map": "0.73.9",
+ "metro-hermes-compiler": "0.73.9",
+ "metro-inspector-proxy": "0.73.9",
+ "metro-minify-terser": "0.73.9",
+ "metro-minify-uglify": "0.73.9",
+ "metro-react-native-babel-preset": "0.73.9",
+ "metro-resolver": "0.73.9",
+ "metro-runtime": "0.73.9",
+ "metro-source-map": "0.73.9",
+ "metro-symbolicate": "0.73.9",
+ "metro-transform-plugins": "0.73.9",
+ "metro-transform-worker": "0.73.9",
+ "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",
+ "temp": "0.8.3",
+ "throat": "^5.0.0",
+ "ws": "^7.5.1",
+ "yargs": "^17.5.1"
+ },
+ "bin": {
+ "metro": "src/cli.js"
+ }
+ },
+ "node_modules/metro-babel-transformer": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.73.9.tgz",
+ "integrity": "sha512-DlYwg9wwYIZTHtic7dyD4BP0SDftoltZ3clma76nHu43blMWsCnrImHeHsAVne3XsQ+RJaSRxhN5nkG2VyVHwA==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "hermes-parser": "0.8.0",
+ "metro-source-map": "0.73.9",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "node_modules/metro-cache": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.73.9.tgz",
+ "integrity": "sha512-upiRxY8rrQkUWj7ieACD6tna7xXuXdu2ZqrheksT79ePI0aN/t0memf6WcyUtJUMHZetke3j+ppELNvlmp3tOw==",
+ "dependencies": {
+ "metro-core": "0.73.9",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "node_modules/metro-cache-key": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.73.9.tgz",
+ "integrity": "sha512-uJg+6Al7UoGIuGfoxqPBy6y1Ewq7Y8/YapGYIDh6sohInwt/kYKnPZgLDYHIPvY2deORnQ/2CYo4tOeBTnhCXQ=="
+ },
+ "node_modules/metro-config": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.73.9.tgz",
+ "integrity": "sha512-NiWl1nkYtjqecDmw77tbRbXnzIAwdO6DXGZTuKSkH+H/c1NKq1eizO8Fe+NQyFtwR9YLqn8Q0WN1nmkwM1j8CA==",
+ "dependencies": {
+ "cosmiconfig": "^5.0.5",
+ "jest-validate": "^26.5.2",
+ "metro": "0.73.9",
+ "metro-cache": "0.73.9",
+ "metro-core": "0.73.9",
+ "metro-runtime": "0.73.9"
+ }
+ },
+ "node_modules/metro-config/node_modules/@jest/types": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
+ "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "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"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/metro-config/node_modules/@types/yargs": {
+ "version": "15.0.15",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz",
+ "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/metro-config/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/metro-config/node_modules/jest-get-type": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
+ "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/metro-config/node_modules/jest-validate": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz",
+ "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "camelcase": "^6.0.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^26.3.0",
+ "leven": "^3.1.0",
+ "pretty-format": "^26.6.2"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/metro-config/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/metro-config/node_modules/react-is": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
+ },
+ "node_modules/metro-core": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.73.9.tgz",
+ "integrity": "sha512-1NTs0IErlKcFTfYyRT3ljdgrISWpl1nys+gaHkXapzTSpvtX9F1NQNn5cgAuE+XIuTJhbsCdfIJiM2JXbrJQaQ==",
+ "dependencies": {
+ "lodash.throttle": "^4.1.1",
+ "metro-resolver": "0.73.9"
+ }
+ },
+ "node_modules/metro-file-map": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.73.9.tgz",
+ "integrity": "sha512-R/Wg3HYeQhYY3ehWtfedw8V0ne4lpufG7a21L3GWer8tafnC9pmjoCKEbJz9XZkVj9i1FtxE7UTbrtZNeIILxQ==",
+ "dependencies": {
+ "abort-controller": "^3.0.0",
+ "anymatch": "^3.0.3",
+ "debug": "^2.2.0",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "invariant": "^2.2.4",
+ "jest-regex-util": "^27.0.6",
+ "jest-serializer": "^27.0.6",
+ "jest-util": "^27.2.0",
+ "jest-worker": "^27.2.0",
+ "micromatch": "^4.0.4",
+ "nullthrows": "^1.1.1",
+ "walker": "^1.0.7"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/metro-file-map/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "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"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/metro-file-map/node_modules/@types/yargs": {
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/metro-file-map/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/metro-file-map/node_modules/jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/metro-file-map/node_modules/jest-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
+ "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"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/metro-file-map/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/metro-file-map/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/metro-file-map/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/metro-hermes-compiler": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.73.9.tgz",
+ "integrity": "sha512-5B3vXIwQkZMSh3DQQY23XpTCpX9kPLqZbA3rDuAcbGW0tzC3f8dCenkyBb0GcCzyTDncJeot/A7oVCVK6zapwg=="
+ },
+ "node_modules/metro-inspector-proxy": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.73.9.tgz",
+ "integrity": "sha512-B3WrWZnlYhtTrv0IaX3aUAhi2qVILPAZQzb5paO1e+xrz4YZHk9c7dXv7qe7B/IQ132e3w46y3AL7rFo90qVjA==",
+ "dependencies": {
+ "connect": "^3.6.5",
+ "debug": "^2.2.0",
+ "ws": "^7.5.1",
+ "yargs": "^17.5.1"
+ },
+ "bin": {
+ "metro-inspector-proxy": "src/cli.js"
+ }
+ },
+ "node_modules/metro-inspector-proxy/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/metro-inspector-proxy/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/metro-minify-terser": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.73.9.tgz",
+ "integrity": "sha512-MTGPu2qV5qtzPJ2SqH6s58awHDtZ4jd7lmmLR+7TXDwtZDjIBA0YVfI0Zak2Haby2SqoNKrhhUns/b4dPAQAVg==",
+ "dependencies": {
+ "terser": "^5.15.0"
+ }
+ },
+ "node_modules/metro-minify-uglify": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.73.9.tgz",
+ "integrity": "sha512-gzxD/7WjYcnCNGiFJaA26z34rjOp+c/Ft++194Wg91lYep3TeWQ0CnH8t2HRS7AYDHU81SGWgvD3U7WV0g4LGA==",
+ "dependencies": {
+ "uglify-es": "^3.1.9"
+ }
+ },
+ "node_modules/metro-react-native-babel-preset": {
+ "version": "0.76.4",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.4.tgz",
+ "integrity": "sha512-BKyfPz7mn3ncgRjqi8Z9nYLbzuuiBWns2AAEIGctQdz9OMMAisPlZmWscv09UjhPXkQc/XtToFETVN7fmHMfug==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-export-default-from": "^7.0.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-proposal-numeric-separator": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.0.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.0.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.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-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"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/metro-react-native-babel-transformer": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.9.tgz",
+ "integrity": "sha512-DSdrEHuQ22ixY7DyipyKkIcqhOJrt5s6h6X7BYJCP9AMUfXOwLe2biY3BcgJz5GOXv8/Akry4vTCvQscVS1otQ==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "babel-preset-fbjs": "^3.4.0",
+ "hermes-parser": "0.8.0",
+ "metro-babel-transformer": "0.73.9",
+ "metro-react-native-babel-preset": "0.73.9",
+ "metro-source-map": "0.73.9",
+ "nullthrows": "^1.1.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/metro-react-native-babel-transformer/node_modules/metro-react-native-babel-preset": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz",
+ "integrity": "sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-export-default-from": "^7.0.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.0.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.0.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.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-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-template-literals": "^7.0.0",
+ "@babel/plugin-transform-typescript": "^7.5.0",
+ "@babel/plugin-transform-unicode-regex": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "react-refresh": "^0.4.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/metro-resolver": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.73.9.tgz",
+ "integrity": "sha512-Ej3wAPOeNRPDnJmkK0zk7vJ33iU07n+oPhpcf5L0NFkWneMmSM2bflMPibI86UjzZGmRfn0AhGhs8yGeBwQ/Xg==",
+ "dependencies": {
+ "absolute-path": "^0.0.0"
+ }
+ },
+ "node_modules/metro-runtime": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.9.tgz",
+ "integrity": "sha512-d5Hs83FpKB9r8q8Vb95+fa6ESpwysmPr4lL1I2rM2qXAFiO7OAPT9Bc23WmXgidkBtD0uUFdB2lG+H1ATz8rZg==",
+ "dependencies": {
+ "@babel/runtime": "^7.0.0",
+ "react-refresh": "^0.4.0"
+ }
+ },
+ "node_modules/metro-source-map": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.9.tgz",
+ "integrity": "sha512-l4VZKzdqafipriETYR6lsrwtavCF1+CMhCOY9XbyWeTrpGSNgJQgdeJpttzEZTHQQTLR0csQo0nD1ef3zEP6IQ==",
+ "dependencies": {
+ "@babel/traverse": "^7.20.0",
+ "@babel/types": "^7.20.0",
+ "invariant": "^2.2.4",
+ "metro-symbolicate": "0.73.9",
+ "nullthrows": "^1.1.1",
+ "ob1": "0.73.9",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ }
+ },
+ "node_modules/metro-source-map/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro-symbolicate": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.73.9.tgz",
+ "integrity": "sha512-4TUOwxRHHqbEHxRqRJ3wZY5TA8xq7AHMtXrXcjegMH9FscgYztsrIG9aNBUBS+VLB6g1qc6BYbfIgoAnLjCDyw==",
+ "dependencies": {
+ "invariant": "^2.2.4",
+ "metro-source-map": "0.73.9",
+ "nullthrows": "^1.1.1",
+ "source-map": "^0.5.6",
+ "through2": "^2.0.1",
+ "vlq": "^1.0.0"
+ },
+ "bin": {
+ "metro-symbolicate": "src/index.js"
+ },
+ "engines": {
+ "node": ">=8.3"
+ }
+ },
+ "node_modules/metro-symbolicate/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro-transform-plugins": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.73.9.tgz",
+ "integrity": "sha512-r9NeiqMngmooX2VOKLJVQrMuV7PAydbqst5bFhdVBPcFpZkxxqyzjzo+kzrszGy2UpSQBZr2P1L6OMjLHwQwfQ==",
+ "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"
+ }
+ },
+ "node_modules/metro-transform-worker": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.73.9.tgz",
+ "integrity": "sha512-Rq4b489sIaTUENA+WCvtu9yvlT/C6zFMWhU4sq+97W29Zj0mPBjdk+qGT5n1ZBgtBIJzZWt1KxeYuc17f4aYtQ==",
+ "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.73.9",
+ "metro-babel-transformer": "0.73.9",
+ "metro-cache": "0.73.9",
+ "metro-cache-key": "0.73.9",
+ "metro-hermes-compiler": "0.73.9",
+ "metro-source-map": "0.73.9",
+ "metro-transform-plugins": "0.73.9",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "node_modules/metro/node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "node_modules/metro/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/metro/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/metro/node_modules/metro-react-native-babel-preset": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz",
+ "integrity": "sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw==",
+ "dependencies": {
+ "@babel/core": "^7.20.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-export-default-from": "^7.0.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.0.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.0.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.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-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-template-literals": "^7.0.0",
+ "@babel/plugin-transform-typescript": "^7.5.0",
+ "@babel/plugin-transform-unicode-regex": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "react-refresh": "^0.4.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/metro/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/metro/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/metro/node_modules/temp": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz",
+ "integrity": "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==",
+ "engines": [
+ "node >=0.8.0"
+ ],
+ "dependencies": {
+ "os-tmpdir": "^1.0.0",
+ "rimraf": "~2.2.6"
+ }
+ },
+ "node_modules/metro/node_modules/temp/node_modules/rimraf": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+ "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==",
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "license": "MIT",
+ "dependencies": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mixin-deep/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "license": "MIT"
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "license": "MIT",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nanomatch/node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nanomatch/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nanomatch/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "license": "MIT"
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
+ "node_modules/nocache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz",
+ "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/node-dir": {
+ "version": "0.1.17",
+ "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz",
+ "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==",
+ "license": "MIT",
+ "dependencies": {
+ "minimatch": "^3.0.2"
+ },
+ "engines": {
+ "node": ">= 0.10.5"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz",
+ "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "license": "MIT"
+ },
+ "node_modules/node-notifier": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz",
+ "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "growly": "^1.3.0",
+ "is-wsl": "^2.2.0",
+ "semver": "^7.3.5",
+ "shellwords": "^0.1.1",
+ "uuid": "^8.3.2",
+ "which": "^2.0.2"
+ }
+ },
+ "node_modules/node-notifier/node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/node-notifier/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-notifier/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-notifier/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
+ "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
+ "license": "MIT"
+ },
+ "node_modules/node-stream-zip": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz",
+ "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==",
+ "engines": {
+ "node": ">=0.12.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/antelle"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/nullthrows": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
+ "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==",
+ "license": "MIT"
+ },
+ "node_modules/ob1": {
+ "version": "0.73.9",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.73.9.tgz",
+ "integrity": "sha512-kHOzCOFXmAM26fy7V/YuXNKne2TyRiXbFAvPBIbuedJCZZWQZHLdPzMeXJI4Egt6IcfDttRzN3jQ90wOwq1iNw=="
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
+ "license": "MIT",
+ "dependencies": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.12.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.entries": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
+ "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz",
+ "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.hasown": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
+ "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/open": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
+ "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "dependencies": {
+ "is-wsl": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/ora": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
+ "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
+ "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"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-locate/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "license": "MIT"
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
+ "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-diff": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "^29.4.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "node_modules/promise": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
+ "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
+ "license": "MIT",
+ "dependencies": {
+ "asap": "~2.0.6"
+ }
+ },
+ "node_modules/prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/prop-types/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pure-rand": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz",
+ "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/dubzzz"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fast-check"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/query-string": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
+ "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
+ "dependencies": {
+ "decode-uri-component": "^0.2.2",
+ "filter-obj": "^1.1.0",
+ "split-on-first": "^1.0.0",
+ "strict-uri-encode": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/react": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
+ "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-devtools-core": {
+ "version": "4.27.2",
+ "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.27.2.tgz",
+ "integrity": "sha512-8SzmIkpO87alD7Xr6gWIEa1jHkMjawOZ+6egjazlnjB4UUcbnzGDf/vBJ4BzGuWWEM+pzrxuzsPpcMqlQkYK2g==",
+ "license": "MIT",
+ "dependencies": {
+ "shell-quote": "^1.6.1",
+ "ws": "^7"
+ }
+ },
+ "node_modules/react-freeze": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz",
+ "integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": ">=17.0.0"
+ }
+ },
+ "node_modules/react-hook-form": {
+ "version": "7.43.9",
+ "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.43.9.tgz",
+ "integrity": "sha512-AUDN3Pz2NSeoxQ7Hs6OhQhDr6gtF9YRuutGDwPQqhSUAHJSgGl2VeY3qN19MG0SucpjgDiuMJ4iC5T5uB+eaNQ==",
+ "engines": {
+ "node": ">=12.22.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/react-hook-form"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17 || ^18"
+ }
+ },
+ "node_modules/react-i18next": {
+ "version": "12.2.2",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-12.2.2.tgz",
+ "integrity": "sha512-KBB6buBmVKXUWNxXHdnthp+38gPyBT46hJCAIQ8rX19NFL/m2ahte2KARfIDf2tMnSAL7wwck6eDOd/9zn6aFg==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.6",
+ "html-parse-stringify": "^3.0.1"
+ },
+ "peerDependencies": {
+ "i18next": ">= 19.0.0",
+ "react": ">= 16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+ "license": "MIT"
+ },
+ "node_modules/react-native": {
+ "version": "0.71.8",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.8.tgz",
+ "integrity": "sha512-ftMAuhpgTkbHU9brrqsEyxcNrpYvXKeATY+if22Nfhhg1zW+6wn95w9otwTnA3xHkljPCbng8mUhmmERjGEl7g==",
+ "dependencies": {
+ "@jest/create-cache-key-function": "^29.2.1",
+ "@react-native-community/cli": "10.2.2",
+ "@react-native-community/cli-platform-android": "10.2.0",
+ "@react-native-community/cli-platform-ios": "10.2.1",
+ "@react-native/assets": "1.0.0",
+ "@react-native/normalize-color": "2.1.0",
+ "@react-native/polyfills": "2.0.0",
+ "abort-controller": "^3.0.0",
+ "anser": "^1.4.9",
+ "base64-js": "^1.1.2",
+ "deprecated-react-native-prop-types": "^3.0.1",
+ "event-target-shim": "^5.0.1",
+ "invariant": "^2.2.4",
+ "jest-environment-node": "^29.2.1",
+ "jsc-android": "^250231.0.0",
+ "memoize-one": "^5.0.0",
+ "metro-react-native-babel-transformer": "0.73.9",
+ "metro-runtime": "0.73.9",
+ "metro-source-map": "0.73.9",
+ "mkdirp": "^0.5.1",
+ "nullthrows": "^1.1.1",
+ "pretty-format": "^26.5.2",
+ "promise": "^8.3.0",
+ "react-devtools-core": "^4.26.1",
+ "react-native-codegen": "^0.71.5",
+ "react-native-gradle-plugin": "^0.71.18",
+ "react-refresh": "^0.4.0",
+ "react-shallow-renderer": "^16.15.0",
+ "regenerator-runtime": "^0.13.2",
+ "scheduler": "^0.23.0",
+ "stacktrace-parser": "^0.1.3",
+ "use-sync-external-store": "^1.0.0",
+ "whatwg-fetch": "^3.0.0",
+ "ws": "^6.2.2"
+ },
+ "bin": {
+ "react-native": "cli.js"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": "18.2.0"
+ }
+ },
+ "node_modules/react-native-codegen": {
+ "version": "0.71.5",
+ "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.71.5.tgz",
+ "integrity": "sha512-rfsuc0zkuUuMjFnrT55I1mDZ+pBRp2zAiRwxck3m6qeGJBGK5OV5JH66eDQ4aa+3m0of316CqrJDRzVlYufzIg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.14.0",
+ "flow-parser": "^0.185.0",
+ "jscodeshift": "^0.13.1",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "node_modules/react-native-config": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/react-native-config/-/react-native-config-1.5.1.tgz",
+ "integrity": "sha512-g1xNgt1tV95FCX+iWz6YJonxXkQX0GdD3fB8xQtR1GUBEqweB9zMROW77gi2TygmYmUkBI7LU4pES+zcTyK4HA==",
+ "peerDependencies": {
+ "react-native-windows": ">=0.61"
+ },
+ "peerDependenciesMeta": {
+ "react-native-windows": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-native-device-info": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.6.0.tgz",
+ "integrity": "sha512-/MmINdojWdw2/9rwYpH/dX+1gFP0o78p8yYPjwxiPhoySSL2rZaNi+Mq9VwC+zFi/yQmJUvHntkKSw2KUc7rFw==",
+ "peerDependencies": {
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-dropdown-picker": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/react-native-dropdown-picker/-/react-native-dropdown-picker-5.4.6.tgz",
+ "integrity": "sha512-T1XBHbE++M6aRU3wFYw3MvcOuabhWZ29RK/Ivdls2r1ZkZ62iEBZknLUPeVLMX3x6iUxj4Zgr3X2DGlEGXeHsA==",
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-gesture-handler": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.10.0.tgz",
+ "integrity": "sha512-vuNupfa8+6MAUMgbZMk5jSxrmqWyNnR/gR77/iuhdx6cPg1z2MJeeJNmqEtKQcF0InvHp45dOoyRK62peqTJ3Q==",
+ "dependencies": {
+ "@egjs/hammerjs": "^2.0.17",
+ "hoist-non-react-statics": "^3.3.0",
+ "invariant": "^2.2.4",
+ "lodash": "^4.17.21",
+ "prop-types": "^15.7.2"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-gradle-plugin": {
+ "version": "0.71.18",
+ "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.18.tgz",
+ "integrity": "sha512-7F6bD7B8Xsn3JllxcwHhFcsl9aHIig47+3eN4IHFNqfLhZr++3ElDrcqfMzugM+niWbaMi7bJ0kAkAL8eCpdWg=="
+ },
+ "node_modules/react-native-localize": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/react-native-localize/-/react-native-localize-3.0.0.tgz",
+ "integrity": "sha512-B8taYRLuLIYDzBTKIglA3K6ntjaEwbk6mwQ72ogZYl5ovM00NnpbiZ3sRq8KRVe/V1NGczxT33uVqG6BUWGWhg==",
+ "peerDependencies": {
+ "react": ">=18.1.0",
+ "react-native": ">=0.70.0",
+ "react-native-macos": ">=0.70.0"
+ },
+ "peerDependenciesMeta": {
+ "react-native-macos": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-native-modalize": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/react-native-modalize/-/react-native-modalize-2.1.1.tgz",
+ "integrity": "sha512-4/7EZWsrUqAAkkAVEnOsSdpAPQaEBewX7TvwFuzgvGDzxKpq3O58I9SnSeU8QtG/r91XYHJNaU5dAuDrcLjUaQ==",
+ "peerDependencies": {
+ "react": "> 15.0.0",
+ "react-native": "> 0.50.0",
+ "react-native-gesture-handler": "> 1.0.0"
+ }
+ },
+ "node_modules/react-native-paper": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-5.7.2.tgz",
+ "integrity": "sha512-v4py1Zx2OuZ85Pk4K0+0vOIi/VcfkufbXofiXsxVN/HMGd+YeShTITq8aK3p/zuq9qm5OlzxoHga7xA7D51CIQ==",
+ "dependencies": {
+ "@callstack/react-theme-provider": "^3.0.8",
+ "color": "^3.1.2",
+ "use-latest-callback": "^0.1.5"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": "*",
+ "react-native-vector-icons": "*"
+ }
+ },
+ "node_modules/react-native-reanimated": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.1.0.tgz",
+ "integrity": "sha512-8YJR7yHnrqK6yKWzkGLVEawi1WZqJ9bGIehKEnE8zG58yLrSwUZe1T220XTbftpkA3r37Sy0kJJ/HOOiaIU+HQ==",
+ "dependencies": {
+ "@babel/plugin-transform-object-assign": "^7.16.7",
+ "@babel/preset-typescript": "^7.16.7",
+ "convert-source-map": "^2.0.0",
+ "invariant": "^2.2.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0-0",
+ "@babel/plugin-proposal-optional-chaining": "^7.0.0-0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0-0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0-0",
+ "@babel/plugin-transform-template-literals": "^7.0.0-0",
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-reanimated/node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
+ },
+ "node_modules/react-native-safe-area-context": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.5.2.tgz",
+ "integrity": "sha512-oH4/Dm7/PWOOZtFRiA4HE08lsfA948BRq8Fn7TEndYjoDXFoNdbjQRahXzCV8JGP/tv3qrVNeaDE8rmdRRUOlA==",
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-screens": {
+ "version": "3.20.0",
+ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.20.0.tgz",
+ "integrity": "sha512-joWUKWAVHxymP3mL9gYApFHAsbd9L6ZcmpoZa6Sl3W/82bvvNVMqcfP7MeNqVCg73qZ8yL4fW+J/syusHleUgg==",
+ "dependencies": {
+ "react-freeze": "^1.0.0",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-vector-icons": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz",
+ "integrity": "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA==",
+ "dependencies": {
+ "prop-types": "^15.7.2",
+ "yargs": "^16.1.1"
+ },
+ "bin": {
+ "fa5-upgrade": "bin/fa5-upgrade.sh",
+ "generate-icon": "bin/generate-icon.js"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-native/node_modules/@jest/types": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
+ "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==",
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">= 10.14.2"
+ }
+ },
+ "node_modules/react-native/node_modules/@types/yargs": {
+ "version": "15.0.15",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz",
+ "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/react-native/node_modules/pretty-format": {
+ "version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz",
+ "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^26.6.2",
+ "ansi-regex": "^5.0.0",
+ "ansi-styles": "^4.0.0",
+ "react-is": "^17.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/react-native/node_modules/react-is": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
+ "license": "MIT"
+ },
+ "node_modules/react-native/node_modules/ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "license": "MIT",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz",
+ "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-shallow-renderer": {
+ "version": "16.15.0",
+ "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz",
+ "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==",
+ "license": "MIT",
+ "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"
+ }
+ },
+ "node_modules/react-test-renderer": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz",
+ "integrity": "sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "react-is": "^18.2.0",
+ "react-shallow-renderer": "^16.15.0",
+ "scheduler": "^0.23.0"
+ },
+ "peerDependencies": {
+ "react": "^18.2.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/readline": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
+ "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg=="
+ },
+ "node_modules/recast": {
+ "version": "0.20.5",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz",
+ "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ast-types": "0.14.2",
+ "esprima": "~4.0.0",
+ "source-map": "~0.6.1",
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "license": "MIT"
+ },
+ "node_modules/regenerate-unicode-properties": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz",
+ "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==",
+ "license": "MIT",
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
+ "license": "MIT"
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz",
+ "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regex-not/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regex-not/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/regexpu-core": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsparser": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "jsesc": "~0.5.0"
+ },
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/repeat-element": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "node_modules/resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
+ "license": "MIT"
+ },
+ "node_modules/resolve.exports": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.1.tgz",
+ "integrity": "sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
+ "license": "MIT",
+ "dependencies": {
+ "ret": "~0.1.10"
+ }
+ },
+ "node_modules/safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/scheduler": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
+ "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+ "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"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/send/node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/send/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/send/node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/send/node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/serialize-error": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz",
+ "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "dependencies": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+ },
+ "node_modules/set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz",
+ "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/shellwords": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
+ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
+ "dev": true,
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "license": "ISC"
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/simple-swizzle/node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "license": "MIT"
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "license": "MIT",
+ "dependencies": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "license": "MIT",
+ "dependencies": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/snapdragon/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "license": "MIT",
+ "dependencies": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/source-map-url": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+ "license": "MIT"
+ },
+ "node_modules/split-on-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
+ "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/split-string/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/split-string/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/stack-utils/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/stackframe": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
+ },
+ "node_modules/stacktrace-parser": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
+ "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.7.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/stacktrace-parser/node_modules/type-fest": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
+ "license": "MIT",
+ "dependencies": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/strict-uri-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+ "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string_decoder/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/string-natural-compare": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz",
+ "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
+ "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "regexp.prototype.flags": "^1.4.3",
+ "side-channel": "^1.0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
+ "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/strnum": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
+ "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
+ },
+ "node_modules/sudo-prompt": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz",
+ "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw=="
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/temp": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
+ "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
+ "license": "MIT",
+ "dependencies": {
+ "rimraf": "~2.6.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/temp/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.17.3",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.3.tgz",
+ "integrity": "sha512-AudpAZKmZHkG9jueayypz4duuCFJMMNGRMwaPvQKWfxKedh8Z2x3OCoDqIIi1xx5+iwx1u6Au8XQcc9Lke65Yg==",
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ },
+ "node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/throat": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
+ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/through2/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "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"
+ }
+ },
+ "node_modules/through2/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-object-path/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "license": "MIT",
+ "dependencies": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/to-regex-range/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/to-regex/node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "node_modules/tslib": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
+ "license": "0BSD"
+ },
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^1.8.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ }
+ },
+ "node_modules/tsutils/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
+ "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=12.20"
+ }
+ },
+ "node_modules/uglify-es": {
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
+ "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
+ "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0",
+ "dependencies": {
+ "commander": "~2.13.0",
+ "source-map": "~0.6.1"
+ },
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/uglify-es/node_modules/commander": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+ "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA=="
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+ "license": "MIT",
+ "dependencies": {
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-value-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "license": "MIT",
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
+ "license": "MIT",
+ "dependencies": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+ "license": "MIT",
+ "dependencies": {
+ "isarray": "1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "browserslist-lint": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
+ "license": "MIT"
+ },
+ "node_modules/use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/use-latest-callback": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.5.tgz",
+ "integrity": "sha512-HtHatS2U4/h32NlkhupDsPlrbiD27gSH5swBdtXbCAlc6pfOFzaj0FehW/FO12rx8j2Vy4/lJScCiJyM01E+bQ=="
+ },
+ "node_modules/use-sync-external-store": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
+ "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz",
+ "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vlq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz",
+ "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w=="
+ },
+ "node_modules/void-elements": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
+ "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/walker": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "makeerror": "1.0.12"
+ }
+ },
+ "node_modules/warn-once": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz",
+ "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="
+ },
+ "node_modules/wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "node_modules/whatwg-fetch": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
+ "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==",
+ "license": "MIT"
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
+ "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "license": "ISC"
+ },
+ "node_modules/write-file-atomic": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "license": "ISC"
+ },
+ "node_modules/yargs": {
+ "version": "17.7.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
+ "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..f8b2ab8
--- /dev/null
+++ b/package.json
@@ -0,0 +1,60 @@
+{
+ "name": "AnyCheck",
+ "version": "0.0.1",
+ "private": true,
+ "scripts": {
+ "android": "react-native run-android",
+ "ios": "react-native run-ios",
+ "lint": "eslint .",
+ "start": "react-native start",
+ "test": "jest"
+ },
+ "dependencies": {
+ "@react-native-async-storage/async-storage": "^1.18.1",
+ "@react-navigation/bottom-tabs": "^6.5.7",
+ "@react-navigation/drawer": "^6.6.2",
+ "@react-navigation/native": "^6.1.6",
+ "@react-navigation/native-stack": "^6.9.12",
+ "@react-navigation/stack": "^6.3.16",
+ "deepmerge": "^4.3.1",
+ "i18next": "^22.4.15",
+ "react": "18.2.0",
+ "react-hook-form": "^7.43.9",
+ "react-i18next": "^12.2.2",
+ "react-native": "^0.71.8",
+ "react-native-config": "^1.5.1",
+ "react-native-device-info": "^10.6.0",
+ "react-native-dropdown-picker": "^5.4.6",
+ "react-native-gesture-handler": "^2.10.0",
+ "react-native-localize": "^3.0.0",
+ "react-native-modalize": "^2.1.1",
+ "react-native-paper": "^5.7.2",
+ "react-native-reanimated": "^3.1.0",
+ "react-native-safe-area-context": "^4.5.2",
+ "react-native-screens": "*",
+ "react-native-vector-icons": "^9.2.0"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.21.8",
+ "@babel/preset-env": "^7.21.5",
+ "@babel/runtime": "^7.21.5",
+ "@react-native-community/eslint-config": "^3.2.0",
+ "@tsconfig/react-native": "^3.0.1",
+ "@types/jest": "^29.5.1",
+ "@types/react": "^18.2.6",
+ "@types/react-native": "^0.72.0",
+ "@types/react-native-vector-icons": "^6.4.13",
+ "@types/react-test-renderer": "^18.0.0",
+ "babel-jest": "^29.2.1",
+ "eslint": "^8.40.0",
+ "eslint-config-prettier": "^8.8.0",
+ "jest": "^29.2.1",
+ "metro-react-native-babel-preset": "^0.76.4",
+ "prettier": "^2.8.8",
+ "react-test-renderer": "18.2.0",
+ "typescript": "^5.0.4"
+ },
+ "jest": {
+ "preset": "react-native"
+ }
+}
diff --git a/run-build-release.bat b/run-build-release.bat
new file mode 100644
index 0000000..b6d10b5
--- /dev/null
+++ b/run-build-release.bat
@@ -0,0 +1,11 @@
+@echo off
+
+echo Deleting previous release APK...
+del /f /q android\app\build\outputs\apk\release\*.apk
+del /f /q android\app\build\outputs\apk\release\*.json
+
+echo Building release APK...
+npx react-native run-android --variant=release
+
+echo Opening Release folder
+explorer android\app\build\outputs\apk\release
\ No newline at end of file
diff --git a/run-debug.bat b/run-debug.bat
new file mode 100644
index 0000000..b71e8a8
--- /dev/null
+++ b/run-debug.bat
@@ -0,0 +1,2 @@
+@echo off
+npx react-native run-android
\ No newline at end of file
diff --git a/src/calcs/ascvd/api.ts b/src/calcs/ascvd/api.ts
new file mode 100644
index 0000000..45f754b
--- /dev/null
+++ b/src/calcs/ascvd/api.ts
@@ -0,0 +1,107 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+function calculateASCVDRisk(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: 0,
+ title: "",
+ description: "",
+ };
+ }
+
+ const age = Number(input.age);
+ const gender = input.gender;
+ const sbp = input.sbp;
+ const tchol = input.tchol;
+ const hdlc = input.hdlc;
+ const race = input.race;
+ const diabetes = input.diabetes;
+ const smoker = input.smoker;
+ const hypertension = input.hypertension;
+
+ let riskScore = 0;
+
+ if (gender === "male") {
+ riskScore += 0.957;
+ } else if (gender === "female") {
+ riskScore += 1.354;
+ }
+
+ if (race === "black") {
+ riskScore += 0.188;
+ }
+
+ if (age >= 20 && age <= 39) {
+ riskScore += 0.165;
+ } else if (age >= 40 && age <= 49) {
+ riskScore += 0.405;
+ } else if (age >= 50 && age <= 59) {
+ riskScore += 0.652;
+ } else if (age >= 60 && age <= 69) {
+ riskScore += 0.872;
+ } else if (age >= 70 && age <= 79) {
+ riskScore += 0.95;
+ }
+
+ if (tchol !== null) {
+ riskScore += Math.log(tchol);
+ }
+
+ if (hdlc !== null) {
+ riskScore -= Math.log(hdlc);
+ }
+
+ if (sbp !== null) {
+ riskScore += Math.log(sbp);
+ }
+
+ if (diabetes) {
+ riskScore += 0.573;
+ }
+
+ if (smoker) {
+ riskScore += 0.528;
+ }
+
+ if (hypertension) {
+ riskScore += 0.691;
+ }
+
+ let resultVariant: string;
+
+ if (riskScore < -7.5) {
+ resultVariant = "lowRisk";
+ } else if (riskScore >= -7.5 && riskScore < 7.5) {
+ resultVariant = "borderlineRisk";
+ } else if (riskScore >= 7.5 && riskScore < 20) {
+ resultVariant = "intermediateRisk";
+ } else {
+ resultVariant = "highRisk";
+ }
+
+ const selectedVariant = variants[prefs.language][resultVariant];
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score: riskScore,
+ title: selectedVariant.title,
+ description: selectedVariant.description,
+ };
+
+ return output;
+}
+
+export { calculateASCVDRisk };
diff --git a/src/calcs/ascvd/domain.ts b/src/calcs/ascvd/domain.ts
new file mode 100644
index 0000000..603ec22
--- /dev/null
+++ b/src/calcs/ascvd/domain.ts
@@ -0,0 +1,32 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ age: number | null;
+ gender: "male" | "female" | undefined;
+ sbp: number | null;
+ tchol: number | null;
+ hdlc: number | null;
+ race: "white" | "black" | "other" | undefined;
+ diabetes: boolean | undefined;
+ smoker: boolean | undefined;
+ hypertension: boolean | undefined;
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/ascvd/i18n/en.json b/src/calcs/ascvd/i18n/en.json
new file mode 100644
index 0000000..985d61a
--- /dev/null
+++ b/src/calcs/ascvd/i18n/en.json
@@ -0,0 +1,21 @@
+{
+ "age": "Age",
+ "ageUnit": "years",
+ "gender": "Gender",
+ "male": "Male",
+ "female": "Female",
+ "sbp": "Systolic Blood Pressure",
+ "sbpUnit": "mmHg",
+ "tchol": "Total Cholesterol",
+ "hdlc": "HDL Cholesterol",
+ "cholUnit": "mg/dL",
+ "race": "Race",
+ "white": "White",
+ "black": "Black",
+ "other": "Other",
+ "diabetes": "Diabetes",
+ "smoker": "Smoker",
+ "yes": "Yes",
+ "no": "No",
+ "hypertension": "Treatment for hypertension"
+}
diff --git a/src/calcs/ascvd/i18n/ru.json b/src/calcs/ascvd/i18n/ru.json
new file mode 100644
index 0000000..a114b4b
--- /dev/null
+++ b/src/calcs/ascvd/i18n/ru.json
@@ -0,0 +1,21 @@
+{
+ "age": "Возраст",
+ "ageUnit": "лет",
+ "gender": "Пол",
+ "male": "Мужской",
+ "female": "Женский",
+ "sbp": "Систолическое артериальное давление",
+ "sbpUnit": "мм рт.ст.",
+ "tchol": "Общий холестерин",
+ "hdlc": "Холестерин ЛПВП",
+ "cholUnit": "мг/дл",
+ "race": "Этническая принадлежность",
+ "white": "белокожий",
+ "black": "темнокожий",
+ "other": "Другая",
+ "diabetes": "Диабет",
+ "smoker": "Курящий",
+ "yes": "Да",
+ "no": "Нет",
+ "hypertension": "Лечение гипертонии"
+}
diff --git a/src/calcs/ascvd/ui.tsx b/src/calcs/ascvd/ui.tsx
new file mode 100644
index 0000000..e476f36
--- /dev/null
+++ b/src/calcs/ascvd/ui.tsx
@@ -0,0 +1,201 @@
+import React, { useEffect, useState } from 'react';
+import { useTranslation } from 'react-i18next';
+import { View, ScrollView } from 'react-native';
+
+import { SegmentContainer } from '../../components/segmentContainer';
+import { NumericContainer } from '../../components/numericContainer';
+import i18n from '../../i18n/i18n';
+
+import en from './i18n/en.json';
+import ru from './i18n/ru.json';
+import { Input, Result, Variants } from './domain';
+import { calculateASCVDRisk } from './api';
+
+i18n.addResourceBundle('en', 'Ascvd', en);
+i18n.addResourceBundle('ru', 'Ascvd', ru);
+
+const AscvdScreen: React.FC = ({ handleResult, handleResetClick, lang }: any) => {
+ // Use translation for specific calculator
+ const { t } = useTranslation('Ascvd');
+
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ age: null,
+ gender: undefined,
+ sbp: null,
+ tchol: null,
+ hdlc: null,
+ race: undefined,
+ diabetes: undefined,
+ smoker: undefined,
+ hypertension: undefined,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: keyof Input, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateASCVDRisk(
+ {
+ age: input.age,
+ gender: input.gender,
+ race: input.race,
+ sbp: input.sbp,
+ tchol: input.tchol,
+ hdlc: input.hdlc,
+ diabetes: input.diabetes,
+ smoker: input.smoker,
+ hypertension: input.hypertension,
+ },
+ {
+ language: lang,
+ }
+ )
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange('age', value);
+ }}
+ type={'absint'}
+ suffix={t('ageUnit')}
+ />
+ {
+ handleInputChange('gender', value);
+ }}
+ resetBy={'number'}
+ />
+ {
+ handleInputChange('race', value);
+ }}
+ resetBy={'number'}
+ />
+ {
+ handleInputChange('hypertension', value);
+ }}
+ resetBy={'number'}
+ />
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange('sbp', value);
+ }}
+ type={'float'}
+ suffix={t('sbpUnit')}
+ />
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange('tchol', value);
+ }}
+ type={'float'}
+ suffix={t('cholUnit')}
+ />
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange('hdlc', value);
+ }}
+ type={'float'}
+ suffix={t('sbpUnit')}
+ />
+ {
+ handleInputChange('diabetes', value);
+ }}
+ resetBy={'number'}
+ />
+ {
+ handleInputChange('smoker', value);
+ }}
+ resetBy={'number'}
+ />
+
+
+ );
+};
+
+export default AscvdScreen;
diff --git a/src/calcs/ascvd/variants.ts b/src/calcs/ascvd/variants.ts
new file mode 100644
index 0000000..7da7138
--- /dev/null
+++ b/src/calcs/ascvd/variants.ts
@@ -0,0 +1,46 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ lowRisk: {
+ title: "Low Risk",
+ description: "Low risk of developing ASCVD in the next 10 years.",
+ },
+ borderlineRisk: {
+ title: "Borderline Risk",
+ description:
+ "Borderline risk of developing ASCVD in the next 10 years.",
+ },
+ intermediateRisk: {
+ title: "Intermediate Risk",
+ description:
+ "Intermediate risk of developing ASCVD in the next 10 years.",
+ },
+ highRisk: {
+ title: "High Risk",
+ description: "High risk of developing ASCVD in the next 10 years.",
+ },
+ },
+ ru: {
+ lowRisk: {
+ title: "Низкий риск",
+ description:
+ "Низкий риск развития атеросклеротического сердечно-сосудистого заболевания в следующие 10 лет.",
+ },
+ borderlineRisk: {
+ title: "Граничный риск",
+ description:
+ "Граничный риск развития атеросклеротического сердечно-сосудистого заболевания в следующие 10 лет.",
+ },
+ intermediateRisk: {
+ title: "Промежуточный риск",
+ description:
+ "Промежуточный риск возникновения сердечно-сосудистых событий, таких как коронарная смерть, инсульт, инфаркт миокарда в следующие 10 лет.",
+ },
+ highRisk: {
+ title: "Высокий риск",
+ description:
+ "Высокий риск развития атеросклеротического сердечно-сосудистого заболевания в следующие 10 лет.",
+ },
+ },
+};
diff --git a/src/calcs/audit/README.md b/src/calcs/audit/README.md
new file mode 100644
index 0000000..5d438ed
--- /dev/null
+++ b/src/calcs/audit/README.md
@@ -0,0 +1,5 @@
+**Образец русскоязычной версии**
+https://psychiatry-test.ru/test/test-audit-ocenka-potrebleniya-alkogolya/fr4dbf8bf4b7113b5f5d0daa059ecda1c6af/
+
+**Референс**
+https://apps.who.int/iris/bitstream/handle/10665/67205/WHO_MSD_MSB_01.6a.pdf;jsessionid=1FAFA3CC325018FC69178F3AF9944665?sequence=1#page=32
diff --git a/src/calcs/audit/api.ts b/src/calcs/audit/api.ts
new file mode 100644
index 0000000..63a591c
--- /dev/null
+++ b/src/calcs/audit/api.ts
@@ -0,0 +1,90 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calc(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ let score =
+ Number(input.q1) +
+ Number(input.q2) +
+ Number(input.q3) +
+ Number(input.q4) +
+ Number(input.q5) +
+ Number(input.q6) +
+ Number(input.q7) +
+ Number(input.q8) +
+ Number(input.q9) +
+ Number(input.q10);
+
+ let result;
+ if (score <= 7) {
+ result = "0-7";
+ } else if (score <= 15) {
+ result = "8-15";
+ } else if (score <= 19) {
+ result = "16-19";
+ } else {
+ result = "20+";
+ }
+
+ let scoreUnit = "";
+ let selectedTranslation = {};
+ switch (prefs.language) {
+ case "en":
+ selectedTranslation = en;
+ break;
+ case "ru":
+ selectedTranslation = ru;
+ break;
+ default:
+ selectedTranslation = en;
+ }
+ scoreUnit = getScoreText(score, selectedTranslation);
+
+ let variant = variants[prefs.language][result];
+ let title = variant.title;
+ let description = variant.description;
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score,
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+function getScoreText(score: number, lang: any) {
+ if (score === 1) {
+ return `${lang.scoreUnit}`;
+ } else if (score >= 2 && score <= 4) {
+ return `${lang.scoreGenitiveSingular}`;
+ } else {
+ return `${lang.scoreGenitivePlural}`;
+ }
+}
+
+export { calc as calculateAuditScore };
diff --git a/src/calcs/audit/domain.ts b/src/calcs/audit/domain.ts
new file mode 100644
index 0000000..fae4b4c
--- /dev/null
+++ b/src/calcs/audit/domain.ts
@@ -0,0 +1,48 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ q1: number | null;
+ q2: number | null;
+ q3: number | null;
+ q4: number | null;
+ q5: number | null;
+ q6: number | null;
+ q7: number | null;
+ q8: number | null;
+ q9: number | null;
+ q10: number | null;
+}
+
+export interface Question {
+ name: string;
+ text: string;
+ options: {
+ label: string;
+ value: number;
+ score?: string;
+ }[];
+}
+
+export interface Questions {
+ [language: string]: Question[];
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/audit/i18n/en.json b/src/calcs/audit/i18n/en.json
new file mode 100644
index 0000000..62b1bd0
--- /dev/null
+++ b/src/calcs/audit/i18n/en.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "point",
+ "scoreGenitiveSingular": "points",
+ "scoreGenitivePlural": "points"
+}
diff --git a/src/calcs/audit/i18n/ru.json b/src/calcs/audit/i18n/ru.json
new file mode 100644
index 0000000..098d185
--- /dev/null
+++ b/src/calcs/audit/i18n/ru.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "балл",
+ "scoreGenitiveSingular": "балла",
+ "scoreGenitivePlural": "баллов"
+}
diff --git a/src/calcs/audit/questions.ts b/src/calcs/audit/questions.ts
new file mode 100644
index 0000000..9a9c5af
--- /dev/null
+++ b/src/calcs/audit/questions.ts
@@ -0,0 +1,222 @@
+import { Questions } from "./domain";
+
+const questions: Questions = {
+ en: [
+ {
+ name: "q1",
+ text: "How often do you have a drink containing alcohol?",
+ options: [
+ { label: "Never", value: 0 },
+ { label: "Monthly or less", value: 1 },
+ { label: "2-4 times a month", value: 2 },
+ { label: "2-3 times a week", value: 3 },
+ { label: "4 or more times a week", value: 4 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "How many standard drinks containing alcohol do you have on a typical day when you are drinking?",
+ options: [
+ { label: "1 or 2", value: 0 },
+ { label: "3 or 4", value: 1 },
+ { label: "5 or 6", value: 2 },
+ { label: "7, 8, or 9", value: 3 },
+ { label: "10 or more", value: 4 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "How often do you have six or more alcoholic drinks on one occasion?",
+ options: [
+ { label: "Never", value: 0 },
+ { label: "Less than monthly", value: 1 },
+ { label: "Monthly", value: 2 },
+ { label: "Weekly", value: 3 },
+ { label: "Daily or almost daily", value: 4 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "How often during the last year have you found that you were not able to stop drinking once you had started?",
+ options: [
+ { label: "Never", value: 0 },
+ { label: "Less than monthly", value: 1 },
+ { label: "Monthly", value: 2 },
+ { label: "Weekly", value: 3 },
+ { label: "Daily or almost daily", value: 4 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "How often during the last year have you failed to do what was normally expected of you because of drinking?",
+ options: [
+ { label: "Never", value: 0 },
+ { label: "Less than monthly", value: 1 },
+ { label: "Monthly", value: 2 },
+ { label: "Weekly", value: 3 },
+ { label: "Daily or almost daily", value: 4 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "How often during the last year have you needed a first drink in the morning to get yourself going after a heavy drinking session?",
+ options: [
+ { label: "Never", value: 0 },
+ { label: "Less than monthly", value: 1 },
+ { label: "Monthly", value: 2 },
+ { label: "Weekly", value: 3 },
+ { label: "Daily or almost daily", value: 4 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "How often during the last year have you had a feeling of guilt or remorse after drinking?",
+ options: [
+ { label: "Never", value: 0 },
+ { label: "Less than monthly", value: 1 },
+ { label: "Monthly", value: 2 },
+ { label: "Weekly", value: 3 },
+ { label: "Daily or almost daily", value: 4 },
+ ],
+ },
+ {
+ name: "q8",
+ text: "Has a relative, friend, doctor, or other healthcare worker been concerned about your drinking or suggested you cut down?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes, but not in the last year", value: 2 },
+ { label: "Yes, in the last year", value: 4 },
+ ],
+ },
+ {
+ name: "q9",
+ text: "Have you or someone else been injured as a result of your drinking?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes, but not in the last year", value: 2 },
+ { label: "Yes, in the last year", value: 4 },
+ ],
+ },
+ {
+ name: "q10",
+ text: "How often during the last year have you failed to do what was normally expected of you because of drinking?",
+ options: [
+ { label: "Never", value: 0 },
+ { label: "Less than monthly", value: 1 },
+ { label: "Monthly", value: 2 },
+ { label: "Weekly", value: 3 },
+ { label: "Daily or almost daily", value: 4 },
+ ],
+ },
+ ],
+ ru: [
+ {
+ name: "q1",
+ text: "Как часто вы выпиваете порцию напитка, содержащего алкоголь?",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Раз в месяц или реже", value: 1 },
+ { label: "2-4 раза в месяц", value: 2 },
+ { label: "2-3 раза в неделю", value: 3 },
+ { label: "4 или более раз в неделю", value: 4 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "Сколько стандартных порций напитков, содержащих алкоголь, вы выпиваете в типичный день, когда пьёте?",
+ options: [
+ { label: "1 или 2", value: 0 },
+ { label: "3 или 4", value: 1 },
+ { label: "5 или 6", value: 2 },
+ { label: "7, 8 или 9", value: 3 },
+ { label: "10 или более", value: 4 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Как часто вы употребляете шесть и более алкогольных напитков за один раз?",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Реже одного раза в месяц", value: 1 },
+ { label: "Ежемесячно", value: 2 },
+ { label: "Еженедельно", value: 3 },
+ { label: "Почти ежедневно или ежедневно", value: 4 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Как часто за последний год вы не могли прекратить употребление алкоголя после того, как начали?",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Реже одного раза в месяц", value: 1 },
+ { label: "Ежемесячно", value: 2 },
+ { label: "Еженедельно", value: 3 },
+ { label: "Почти ежедневно или ежедневно", value: 4 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Как часто за последний год из-за употребления алкоголя вы не делали чего-то, чего от вас ожидали?",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Реже одного раза в месяц", value: 1 },
+ { label: "Ежемесячно", value: 2 },
+ { label: "Еженедельно", value: 3 },
+ { label: "Ежедневно или почти ежедневно", value: 4 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Как часто за последний год вы нуждались в алкогольном напитке утром, чтобы преодолеть похмелье?",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Реже одного раза в месяц", value: 1 },
+ { label: "Ежемесячно", value: 2 },
+ { label: "Еженедельно", value: 3 },
+ { label: "Ежедневно или почти ежедневно", value: 4 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Как часто за последний год у вас было чувство вины или сожаления после употребления алкоголя?",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Реже одного раза в месяц", value: 1 },
+ { label: "Ежемесячно", value: 2 },
+ { label: "Еженедельно", value: 3 },
+ { label: "Ежедневно или почти ежедневно", value: 4 },
+ ],
+ },
+ {
+ name: "q8",
+ text: "Было ли так, что близкий человек, друг, врач или кто-то другой беспокоился об употреблении вами алкоголя либо советовал его сократить?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да, но не в последний год", value: 2 },
+ { label: "Да, в последний год", value: 4 },
+ ],
+ },
+ {
+ name: "q9",
+ text: "Вы сами или кто-кто другой получил травмы в результате употребления вами алкоголя?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да, но не в последний год", value: 2 },
+ { label: "Да, в последний год", value: 4 },
+ ],
+ },
+ {
+ name: "q10",
+ text: "Как часто за последний год вы не могли вспомнить, что было накануне вечером, из-за того, что выпивали?",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Реже одного раза в месяц", value: 1 },
+ { label: "Ежемесячно", value: 2 },
+ { label: "Еженедельно", value: 3 },
+ { label: "Ежедневно или практически каждый день", value: 4 },
+ ],
+ },
+ ],
+};
+
+export default questions;
diff --git a/src/calcs/audit/ui.tsx b/src/calcs/audit/ui.tsx
new file mode 100644
index 0000000..b83ff3e
--- /dev/null
+++ b/src/calcs/audit/ui.tsx
@@ -0,0 +1,83 @@
+import React, { useEffect, useState } from 'react';
+import { View, ScrollView } from 'react-native';
+
+import { SegmentContainer } from '../../components/segmentContainer';
+import questions from './questions';
+import { calculateAuditScore } from './api';
+import { Input, Question } from './domain';
+
+const CalcScreen: React.FC = ({ handleResult, handleResetClick, lang }: any) => {
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ q1: null,
+ q2: null,
+ q3: null,
+ q4: null,
+ q5: null,
+ q6: null,
+ q7: null,
+ q8: null,
+ q9: null,
+ q10: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // List of questions
+ const localQuestions: Question[] = questions[lang];
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateAuditScore(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+
+ {localQuestions.map((question) => (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ />
+ ))}
+
+
+
+ );
+};
+
+export default CalcScreen;
diff --git a/src/calcs/audit/variants.ts b/src/calcs/audit/variants.ts
new file mode 100644
index 0000000..c093d15
--- /dev/null
+++ b/src/calcs/audit/variants.ts
@@ -0,0 +1,48 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ "0-7": {
+ title: "Low risk",
+ description:
+ "A score of 7 or lower for men (6 for women) indicates that you have a low risk of alcohol-related problems. The likelihood of harming your health at this level of consumption is minimal, and the WHO recommends not increasing it.",
+ },
+ "8-15": {
+ title: "Hazardous and harmful alcohol use",
+ description:
+ "A score of 8 or higher for men (7 for women) indicates that you consume alcohol in a hazardous and/or harmful manner. At this level of alcohol consumption, there is an increased risk of health problems. It is recommended to reduce alcohol consumption.",
+ },
+ "16-19": {
+ title: "High risk",
+ description:
+ "This level of alcohol consumption is harmful to both mental and physical health. It is necessary to reduce alcohol consumption.",
+ },
+ "20+": {
+ title: "Possible dependence",
+ description:
+ "If you score a total of 20 points or more or if you have more than 0 points in responses to questions 4-6, you may have alcohol dependence or a risk of developing alcohol dependence. Such a level of alcohol consumption is harmful to both mental and physical health. It is necessary to reduce or abstain from alcohol consumption.",
+ },
+ },
+ ru: {
+ "0-7": {
+ title: "Низкий уровень риска",
+ description:
+ "Число баллов 7 или меньше у мужчин (6 баллов у женщин) показывает, что у вас пониженный риск возникновения проблем, обусловленных алкоголем.\n\nВероятность нанесения вреда здоровью при таком уровне употребления невелика.\n\nИ ВОЗ рекомендует его не увеличивать.",
+ },
+ "8-15": {
+ title: "Угрожающее здоровью потребление",
+ description:
+ "Число баллов 8 или больше у мужчин (7 баллов у женщин) показывает, что вы потребляете алкоголь опасным и/или вредным образом. При таком уровне употребления алкоголя повышен риск возникновения нарушений здоровья. Рекомендуется сократить его употребление.",
+ },
+ "16-19": {
+ title: "Злоупотребление",
+ description:
+ "Такой уровень потребления алкоголя наносит вред психическому и физическому здоровью. Необходимо сократить употребление алкоголя.",
+ },
+ "20+": {
+ title: "Возможная зависимость",
+ description:
+ "Если вы набрали в общей сложности 20 баллов и больше или если у вас больше 0 баллов в ответах на вопросы 4-6, у вас может быть алкогольная зависимость или риск развития алкогольной зависимости. Такой уровень потребления наносит вред психическому и физическому здоровью. Употребление алкоголя необходимо сократить или отказаться от него.",
+ },
+ },
+};
diff --git a/src/calcs/bmi/api.ts b/src/calcs/bmi/api.ts
new file mode 100644
index 0000000..5236a13
--- /dev/null
+++ b/src/calcs/bmi/api.ts
@@ -0,0 +1,84 @@
+import { Input, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calc(input: Input): Result {
+ if (
+ Number(input.weight) === 0 ||
+ Number(input.height) === 0 ||
+ input.weight === "" ||
+ input.height === "" ||
+ input.height === null ||
+ input.weight === null
+ ) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ let weight = Number(input.weight);
+ let height = Number(input.height);
+
+ input.prefs.heightMeasure === "in" ? (height = height * 2.54) : height;
+ input.prefs.weightMeasure === "lb" ? (weight = weight / 2.20462) : weight;
+
+ const score = weight / Math.pow(height / 100, 2);
+
+ let lang = variants[input.prefs.language];
+ if (!lang) {
+ lang = variants["en"];
+ }
+
+ let title: string;
+ let description: string;
+ if (score < 18.5) {
+ description = lang.underweight.description;
+ title = lang.underweight.title;
+ } else if (score < 25) {
+ description = lang.normal.description;
+ title = lang.normal.title;
+ } else if (score < 30) {
+ description = lang.overweight.description;
+ title = lang.overweight.title;
+ } else {
+ description = lang.obese.description;
+ title = lang.obese.title;
+ }
+
+ let scoreUnit = "";
+ switch (input.prefs.language) {
+ case "en":
+ scoreUnit = en.scoreUnit;
+ break;
+ case "ru":
+ scoreUnit = ru.scoreUnit;
+ break;
+ default:
+ scoreUnit = en.scoreUnit;
+ }
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ // Return Out object
+ const output: Result = {
+ id,
+ date,
+ score: Number(score.toFixed(2)),
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+export { calc as calculateBMI };
diff --git a/src/calcs/bmi/domain.ts b/src/calcs/bmi/domain.ts
new file mode 100644
index 0000000..91cff89
--- /dev/null
+++ b/src/calcs/bmi/domain.ts
@@ -0,0 +1,29 @@
+export interface Prefs {
+ language: "en" | "ru";
+ heightMeasure: "in" | "cm";
+ weightMeasure: "lb" | "kg";
+}
+
+export interface Input {
+ prefs: Prefs;
+ weight: string | number | null;
+ height: string | number | null;
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/bmi/i18n/en.json b/src/calcs/bmi/i18n/en.json
new file mode 100644
index 0000000..f5fee7e
--- /dev/null
+++ b/src/calcs/bmi/i18n/en.json
@@ -0,0 +1,9 @@
+{
+ "kg": "kg ",
+ "cm": "cm",
+ "lb": "lb",
+ "in": "in",
+ "height": "Height",
+ "weight": "Weight",
+ "scoreUnit": "kg/m²"
+}
diff --git a/src/calcs/bmi/i18n/ru.json b/src/calcs/bmi/i18n/ru.json
new file mode 100644
index 0000000..59bd6e6
--- /dev/null
+++ b/src/calcs/bmi/i18n/ru.json
@@ -0,0 +1,9 @@
+{
+ "kg": "кг",
+ "cm": "см",
+ "lb": "фунт",
+ "in": "дюйм",
+ "height": "Рост",
+ "weight": "Вес",
+ "scoreUnit": "кг/м²"
+}
diff --git a/src/calcs/bmi/ui.tsx b/src/calcs/bmi/ui.tsx
new file mode 100644
index 0000000..5eb4b73
--- /dev/null
+++ b/src/calcs/bmi/ui.tsx
@@ -0,0 +1,86 @@
+import React, { useEffect, useState } from "react";
+import { useTranslation } from "react-i18next";
+import { View, ScrollView, Alert } from "react-native";
+
+import { NumericContainer } from "../../components/numericContainer";
+import i18n from "../../i18n/i18n";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+import { calculateBMI } from "./api";
+
+i18n.addResourceBundle("en", "BmiCalculator", en);
+i18n.addResourceBundle("ru", "BmiCalculator", ru);
+
+const BmiCalculator = ({ handleResult, handleResetClick, lang }: any) => {
+ // Use translation for specific calculator
+ const { t } = useTranslation("BmiCalculator");
+
+ const [height, setHeight] = useState(null);
+ const [weight, setWeight] = useState(null);
+
+ const handleHeightChange = (value: number) => {
+ setHeight(value);
+ };
+
+ const handleWeightChange = (value: number) => {
+ setWeight(value);
+ };
+
+ // Result
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateBMI({
+ height,
+ weight,
+ prefs: {
+ language: lang,
+ heightMeasure: "cm",
+ weightMeasure: "kg",
+ },
+ })
+ );
+ }, [height, weight]);
+
+ useEffect(() => {
+ handleResult(result);
+ }, [result]);
+
+ // Reset
+ useEffect(() => {
+ if (handleResetClick) {
+ setHeight(null);
+ setWeight(null);
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+
+
+
+
+ );
+};
+
+export default BmiCalculator;
diff --git a/src/calcs/bmi/variants.ts b/src/calcs/bmi/variants.ts
new file mode 100644
index 0000000..c2c395a
--- /dev/null
+++ b/src/calcs/bmi/variants.ts
@@ -0,0 +1,40 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ underweight: {
+ title: "Underweight",
+ description: "",
+ },
+ normal: {
+ title: "Normal",
+ description: "",
+ },
+ overweight: {
+ title: "Overweight",
+ description: "",
+ },
+ obese: {
+ title: "Obese",
+ description: "",
+ },
+ },
+ ru: {
+ underweight: {
+ title: "Дефицит веса",
+ description: "",
+ },
+ normal: {
+ title: "Норма",
+ description: "",
+ },
+ overweight: {
+ title: "Избыточный вес",
+ description: "",
+ },
+ obese: {
+ title: "Ожирение",
+ description: "",
+ },
+ },
+};
diff --git a/src/calcs/bsa/api.ts b/src/calcs/bsa/api.ts
new file mode 100644
index 0000000..d500c1d
--- /dev/null
+++ b/src/calcs/bsa/api.ts
@@ -0,0 +1,66 @@
+import { Input, Result } from "./domain";
+import { variants } from "./variants";
+
+function calculateBSA(input: Input): Result {
+ let weight = input.weight;
+ let height = input.height;
+
+ input.prefs.heightMeasure === "in" ? (height = height * 2.54) : height;
+ input.prefs.weightMeasure === "lb" ? (weight = weight / 2.20462) : weight;
+
+ const bsa = Math.sqrt((height * weight) / 3600);
+
+ let title: string;
+ let description: string;
+
+ let lang = variants[input.prefs.language];
+ if (!lang) {
+ // Set a default language if the selected language is not found
+ lang = variants["en"];
+ }
+
+ if (bsa < 1.6) {
+ description = lang.underweight.description;
+ title = lang.underweight.title;
+ } else if (bsa < 2.0) {
+ description = lang.normal.description;
+ title = lang.normal.title;
+ } else if (bsa < 2.5) {
+ description = lang.overweight.description;
+ title = lang.overweight.title;
+ } else {
+ description = lang.obese.description;
+ title = lang.obese.title;
+ }
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score: bsa,
+ title,
+ description,
+ input: input,
+ };
+ return output;
+}
+
+// Example usage
+// const input: Input = {
+// prefs: {
+// language: "english",
+// heightMeasure: "in",
+// weightMeasure: "lb",
+// },
+// weight: 212,
+// height: 75,
+// };
+
+// const result = calculateBSA(input);
+// console.log(result);
+
+export default calculateBSA;
diff --git a/src/calcs/bsa/domain.ts b/src/calcs/bsa/domain.ts
new file mode 100644
index 0000000..17d7e98
--- /dev/null
+++ b/src/calcs/bsa/domain.ts
@@ -0,0 +1,29 @@
+export interface Prefs {
+ language: "en" | "ru";
+ heightMeasure: "in"| "cm";
+ weightMeasure: "lb" | "kg";
+}
+
+export interface Input {
+ prefs: Prefs;
+ weight: number;
+ height: number;
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number;
+ title: string;
+ description: string;
+ input: Input;
+}
diff --git a/src/calcs/bsa/i18n/en.json b/src/calcs/bsa/i18n/en.json
new file mode 100644
index 0000000..55e6b08
--- /dev/null
+++ b/src/calcs/bsa/i18n/en.json
@@ -0,0 +1,8 @@
+{
+ "kg": "kg",
+ "cm": "cm",
+ "lb": "lb",
+ "in": "in",
+ "height": "Height",
+ "weight": "Weight"
+}
diff --git a/src/calcs/bsa/i18n/ru.json b/src/calcs/bsa/i18n/ru.json
new file mode 100644
index 0000000..e5f85a0
--- /dev/null
+++ b/src/calcs/bsa/i18n/ru.json
@@ -0,0 +1,8 @@
+{
+ "kg": "кг",
+ "cm": "см",
+ "lb": "фунт",
+ "in": "дюйм",
+ "height": "Рост",
+ "weight": "Вес"
+}
diff --git a/src/calcs/bsa/ui.tsx b/src/calcs/bsa/ui.tsx
new file mode 100644
index 0000000..12446c8
--- /dev/null
+++ b/src/calcs/bsa/ui.tsx
@@ -0,0 +1,16 @@
+import React from "react";
+import { ScrollView, View } from "react-native";
+
+import { Text } from "react-native-paper";
+
+const CalcScreen: React.FC = () => {
+ return (
+
+
+ Not implemented
+
+
+ );
+};
+
+export default CalcScreen;
diff --git a/src/calcs/bsa/variants.ts b/src/calcs/bsa/variants.ts
new file mode 100644
index 0000000..d80ef02
--- /dev/null
+++ b/src/calcs/bsa/variants.ts
@@ -0,0 +1,48 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ underweight: {
+ title: "Underweight",
+ description:
+ "Your BSA is below normal, which indicates you may be underweight.",
+ },
+ normal: {
+ title: "Normal",
+ description:
+ "Your BSA is within the normal range, which indicates a healthy body surface area.",
+ },
+ overweight: {
+ title: "Overweight",
+ description:
+ "Your BSA is above normal, which indicates you may be overweight.",
+ },
+ obese: {
+ title: "Obese",
+ description:
+ "Your BSA is significantly above normal, which indicates you may be obese.",
+ },
+ },
+ ru: {
+ underweight: {
+ title: "Недовес",
+ description:
+ "Ваша площадь поверхности тела (ППТ) ниже нормы, что может указывать на недостаточный вес.",
+ },
+ normal: {
+ title: "Норма",
+ description:
+ "Ваша ППТ находится в норме, что указывает на здоровую площадь поверхности тела.",
+ },
+ overweight: {
+ title: "Избыточный вес",
+ description:
+ "Ваша ППТ выше нормы, что может указывать на избыточный вес.",
+ },
+ obese: {
+ title: "Ожирение",
+ description:
+ "Ваша ППТ значительно превышает норму, что может указывать на ожирение.",
+ },
+ },
+};
diff --git a/src/calcs/calcs.ts b/src/calcs/calcs.ts
new file mode 100644
index 0000000..e797c64
--- /dev/null
+++ b/src/calcs/calcs.ts
@@ -0,0 +1,553 @@
+import Ascvd from "./ascvd/ui";
+import Audit from "./audit/ui";
+import Bmi from "./bmi/ui";
+import Bsa from "./bsa/ui";
+import Cow from "./cow/ui";
+import Gad7 from "./gad7/ui";
+import Gds from "./gds/ui";
+import GsPe from "./gs-pe/ui";
+import Hba1c from "./hba1c/ui";
+import WcPe from "./wc-pe/ui";
+import Phq9 from "./phq-9/ui";
+import Findrisk from "./findrisk/ui";
+import { HEARTScore } from "./heart/ui";
+import { CreatinineClearance } from "./cc/ui";
+import { CURB65 } from "./curb-65/ui";
+import { CardiacRisk } from "./rcri/ui";
+
+import i18n from "../i18n/i18n";
+import { GlomerularFiltrationRate } from "./gfr/ui";
+
+export type LocalizedContent = {
+ name: string;
+ shortname: string;
+ category: string;
+ introtext: string;
+ description: string;
+};
+
+export type Content = {
+ [key: string]: LocalizedContent;
+};
+
+export type CatalogItem = {
+ id: number; // unique ID
+ status: "" | "readonly" | "hidden";
+ screen: React.FC; // React Screen
+ favorite: boolean; // Is marked as favorite (default is false)
+ content: Content;
+};
+
+export function getCatalogItems(
+ categoryName: string | null = null
+): CatalogItem[] {
+ const language = i18n.resolvedLanguage;
+ let newCatalog = catalog.filter((item) => item.status.trim() !== "hidden");
+
+ if (categoryName !== null && categoryName !== "All") {
+ newCatalog = newCatalog.filter(
+ (item) => item.content[language].category === categoryName
+ );
+ }
+
+ newCatalog.sort((a, b) => {
+ if (
+ a.content[language as keyof Content].shortname <
+ b.content[language as keyof Content].shortname
+ ) {
+ return -1;
+ }
+ if (
+ a.content[language as keyof Content].shortname >
+ b.content[language as keyof Content].shortname
+ ) {
+ return 1;
+ }
+ return 0;
+ });
+ // console.log(newCatalog);
+ return newCatalog;
+}
+
+export function getCatalogItemByID(id: number): CatalogItem | null {
+ let item = getCatalogItems().filter((item) => {
+ return item.id == id;
+ });
+
+ if (!item.length) {
+ return null;
+ }
+ return item[0];
+}
+
+export interface Category {
+ label: string;
+ value: string | null;
+}
+
+export function getCatalogCategories(): Category[] {
+ const categories: string[] = [];
+
+ const language = i18n.resolvedLanguage;
+
+ // iterate through each item in the array
+ const catalog = getCatalogItems();
+
+ catalog.forEach((item) => {
+ // get the category label for the selected language
+ const label = item.content[language].category;
+
+ // add the label to the categories array if it doesn't already exist
+ if (!categories.includes(label)) {
+ categories.push(label);
+ }
+ });
+
+ // create an array of objects with label and value properties
+ const itemsCategory: Category[] = categories.map((label: string) => ({
+ label,
+ value: label,
+ }));
+
+ // add the "All" category as the first element
+ itemsCategory.unshift({ label: "All", value: "All" });
+
+ return itemsCategory;
+}
+
+const catalog: CatalogItem[] = [
+ {
+ id: 1,
+ status: "",
+ screen: WcPe,
+ favorite: false,
+ content: {
+ en: {
+ name: "Wells' Criteria for Pulmonary Embolism",
+ shortname: "Wells for PE",
+ category: "Cardiology",
+ introtext: "Objectifies risk of pulmonary embolism",
+ description:
+ "Wells Criteria is a clinical prediction rule that uses a scoring system to predict the likelihood of pulmonary embolism (PE).",
+ },
+ ru: {
+ name: "Шкала Уэллса для оценки вероятности ТЭЛА",
+ shortname: "Шкала Уэллса",
+ category: "Кардиология",
+ introtext: "Определение вероятности развития у пациента ТЭЛА",
+ description:
+ "Критерии Уэллса - это клиническое правило прогнозирования, которое использует систему баллов для предсказания вероятности развития глубокой венозной тромбоза (ВТЭО) и легочной эмболии (ЛЭТ). Критерии учитывают несколько факторов, таких как клинические признаки и симптомы, факторы риска и результаты лабораторных тестов для определения вероятности ВТЭО или ЛЭТ. Чем выше балл, тем выше вероятность наличия ВТЭО или ЛЭТ.",
+ },
+ },
+ },
+ {
+ id: 2,
+ status: "",
+ screen: Hba1c,
+ favorite: false,
+ content: {
+ en: {
+ name: "HbA1c Calculator",
+ shortname: "HbA1c",
+ category: "Endocrinology",
+ introtext:
+ "Estimates the average blood glucose level over the past 2-3 months.",
+ description:
+ "The HbA1c test is used to measure the average blood glucose level over the past 2-3 months in people with diabetes. The test measures the amount of glycated hemoglobin (HbA1c) in the blood. The HbA1c calculator estimates the average blood glucose level based on the HbA1c result.",
+ },
+ ru: {
+ name: "Калькулятор HbA1c",
+ shortname: "HbA1c",
+ category: "Эндокринология",
+ introtext:
+ "Оценивает средний уровень глюкозы в крови за последние 2-3 месяца.",
+ description:
+ "Тест на HbA1c используется для измерения среднего уровня глюкозы в крови за последние 2-3 месяца у людей с диабетом. Тест измеряет количество гликированного гемоглобина (HbA1c) в крови. Калькулятор HbA1c оценивает средний уровень глюкозы в крови на основе результата HbA1c.",
+ },
+ },
+ },
+ {
+ id: 3,
+ status: "",
+ screen: GsPe,
+ favorite: false,
+ content: {
+ en: {
+ name: "Revised Geneva Score for Pulmonary Embolism",
+ shortname: "Geneva Score for PE (revised)",
+ category: "Cardiology",
+ introtext:
+ "Predicts the probability of pulmonary embolism (PE).",
+ description:
+ "The Geneva Score is a clinical prediction rule that uses a scoring system to predict the probability of pulmonary embolism (PE).\n\nThe criteria take into account several factors such as clinical signs and symptoms, risk factors, and laboratory test results to determine the probability of PE. The higher the score, the more likely the presence of PE.",
+ },
+ ru: {
+ name: "Оценка Женева для ЛВТ",
+ shortname: "Оценка Женева",
+ category: "Кардиология",
+ introtext:
+ "Предсказывает вероятность тромбоэмболии легочной артерии (ЛВТ).",
+ description:
+ "Шкалы для оценки клинической вероятности ТЭЛА используются у стабильных пациентов (без шока, гипотензии) с подозрением на ТЭЛА.\n\nОни позволяют определить очередность диагностических процедур для подтверждения или исключения диагноза тромбоэмболии легочной артерии.",
+ },
+ },
+ },
+ {
+ id: 4,
+ status: "",
+ screen: Gds,
+ favorite: false,
+ content: {
+ en: {
+ name: "Geriatric Depression Scale (GDS)",
+ shortname: "GDS",
+ category: "Psychiatry",
+ introtext: "Assesses depression in elderly people.",
+ description:
+ "The Geriatric Depression Scale (GDS) is a screening tool used to assess depression in elderly people. The GDS consists of a series of questions that ask about the subject's mood, feelings, and activities. The score can be used to determine the severity of depression and the need for treatment.",
+ },
+ ru: {
+ name: "Гериатрическая шкала депрессии",
+ shortname: "ГШД (GDS)",
+ category: "Психиатрия",
+ introtext: "Оценивает депрессию у пожилых людей.",
+ description:
+ "Шкала самооценки для выявления депрессии у пожилых людей, используемая как часть комплексной гериатрической оценки.",
+ },
+ },
+ },
+ {
+ id: 5,
+ status: "",
+ screen: Gad7,
+ favorite: false,
+ content: {
+ en: {
+ name: "Generalized Anxiety Disorder 7",
+ shortname: "GAD-7",
+ category: "Psychiatry",
+ introtext:
+ "Assesses the severity of generalized anxiety disorder (GAD).",
+ description:
+ "The Generalized Anxiety Disorder 7-Item Scale (GAD-7) is a self-report questionnaire used to assess the severity of generalized anxiety disorder (GAD).",
+ },
+ ru: {
+ name: "Опросник генерализованного тревожного расстройства",
+ shortname: "ГТР-7 (GAD-7)",
+ category: "Психиатрия",
+ introtext:
+ "Оценивает степень тяжести общего тревожного расстройства (ГТР).",
+ description:
+ "Применяется для оценки уровня тревожности и скрининга генерализированного тревожного расстройства (ГТР)",
+ },
+ },
+ },
+ {
+ id: 6,
+ status: "",
+ screen: Cow,
+ favorite: false,
+ content: {
+ en: {
+ name: "COWS Score for Opiate Withdrawal",
+ shortname: "COWS",
+ category: "Psychiatry",
+ introtext: "Assesses severity of opioid withdrawal symptoms.",
+ description:
+ "The Clinical Opiate Withdrawal Scale (COWS) is an 11-item scale designed to be administered by a clinician to assess opioid withdrawal symptoms. The scale includes items such as pulse rate, pupil size, and sweating, and is used to monitor the progression of withdrawal and the effectiveness of treatment.",
+ },
+ ru: {
+ name: "Шкала оценки опийного абстинентного синдрома (ОАС)",
+ shortname: "COWS",
+ category: "Психиатрия",
+ introtext: "Оценивает тяжесть симптомов отмены опиоидов.",
+ description:
+ "Используется для отслеживания прогресса синдрома отмены и эффективности лечения.",
+ },
+ },
+ },
+ {
+ id: 7,
+ status: "",
+ screen: Bsa,
+ favorite: false,
+ content: {
+ en: {
+ name: "Body Surface Area Calculator",
+ shortname: "BSA",
+ category: "Dermatology",
+ introtext:
+ "Calculates body surface area based on height and weight.",
+ description:
+ "The Body Surface Area (BSA) Calculator is a tool used to estimate the total surface area of a person's body based on their height and weight. The calculation is important in determining medication dosages, radiation therapy, and other medical treatments.",
+ },
+ ru: {
+ name: "Калькулятор площади поверхности тела",
+ shortname: "ППТ",
+ category: "Дерматология",
+ introtext:
+ "Вычисляет площадь поверхности тела на основе роста и веса.",
+ description:
+ "Калькулятор площади поверхности тела (BSA) - это инструмент, используемый для оценки общей площади поверхности тела человека на основе его роста и веса. Расчет важен при определении дозировки лекарств, радиотерапии и других медицинских методов лечения.",
+ },
+ },
+ },
+ {
+ id: 8,
+ status: "",
+ screen: Bmi,
+ favorite: false,
+ content: {
+ en: {
+ name: "Body Mass Index",
+ shortname: "BMI",
+ category: "Endocrinology",
+ introtext:
+ "Calculates body mass index (BMI) based on height and weight.",
+ description:
+ "The Body Mass Index (BMI) Calculator is a tool used to estimate a person's body fat based on their height and weight. The calculation is commonly used to assess whether a person is underweight, normal weight, overweight, or obese, and is an important factor in assessing overall health risk.",
+ },
+ ru: {
+ name: "Калькулятор индекса массы тела",
+ shortname: "ИМТ",
+ category: "Эндокринология",
+ introtext:
+ "Вычисляет индекс массы тела (ИМТ) на основе роста и веса.",
+ description:
+ "Калькулятор индекса массы тела (ИМТ) - это инструмент, используемый для оценки процента жировой ткани в теле человека на основе его роста и веса. Расчет обычно используется для определения, находится ли человек в состоянии недостаточного веса, нормального веса, избыточного веса или ожирения, и является важным фактором при определении общего риска для здоровья.",
+ },
+ },
+ },
+ {
+ id: 9,
+ status: "",
+ screen: Audit,
+ favorite: false,
+ content: {
+ en: {
+ name: "Alcohol Use Disorders Identification Test (AUDIT)",
+ shortname: "AUDIT",
+ category: "Psychiatry",
+ introtext: "Screens for alcohol abuse and dependence.",
+ description:
+ "The Alcohol Use Disorder Identification Test (AUDIT) is a ten-item questionnaire approved by the World Health Organization to screen patients for hazardous (risky) and harmful alcohol use.\n\nIt was developed on the basis of a WHO multi-country collaborative study, with the items selected for AUDIT being the best of the approximately 150 items included in the original study.",
+ },
+ ru: {
+ name: "AUDIT — оценка потребления алкоголя",
+ shortname: "AUDIT",
+ category: "Психиатрия",
+ introtext:
+ "Проверяет на злоупотребление и зависимость от алкоголя.",
+ description:
+ "Тест на выявление расстройств, связанных с употреблением алкоголя (AUDIT ) - это вопросник из десяти пунктов, одобренный Всемирной организацией здравоохранения для проверки пациентов на опасное (рискованное) и вредное употребление алкоголя.\n\nОн был разработан на основе многостранового совместного исследования ВОЗ, при этом элементы, выбранные для AUDIT, являются лучшими из примерно 150 пунктов, включенных в исходное исследование.",
+ },
+ },
+ },
+ {
+ id: 10,
+ status: "",
+ screen: Ascvd,
+ favorite: false,
+ content: {
+ en: {
+ name: "ASCVD Risk Calculator",
+ shortname: "ASCVD",
+ category: "Cardiology",
+ introtext:
+ "Estimates 10-year risk of atherosclerotic cardiovascular disease.",
+ description:
+ "The Atherosclerotic Cardiovascular Disease (ASCVD) Risk Calculator is used to estimate a person's 10-year risk of developing cardiovascular disease, including heart attack and stroke. The calculation is based on factors such as age, sex, blood pressure, cholesterol levels, and smoking status, and is used to guide treatment decisions and lifestyle modifications to reduce overall risk.",
+ },
+ ru: {
+ name: "Шкала ASCVD",
+ shortname: "ASCVD",
+ category: "Кардиология",
+ introtext:
+ "Оценивает 10-летний риск развития атеросклеротических кардиоваскулярных заболеваний.",
+ description:
+ "Оценщик риска атеросклеротических кардиоваскулярных заболеваний (ASCVD) - это инструмент, используемый для оценки 10-летнего риска развития сердечно-сосудистых заболеваний, включая инфаркт и инсульт. Расчет основан на таких факторах, как возраст, пол, артериальное давление, уровень холестерина и курение, и используется для принятия решений о лечении и модификации образа жизни с целью снижения общего риска.",
+ },
+ },
+ },
+ {
+ id: 11,
+ status: "",
+ screen: Phq9,
+ favorite: false,
+ content: {
+ en: {
+ name: "Patient Health Questionnaire-9",
+ shortname: "PHQ-9",
+ category: "Psychiatry",
+ introtext:
+ "Assesses the severity of depression symptoms in patients.",
+ description:
+ "The Patient Health Questionnaire-9 (PHQ-9) is a widely used tool for assessing the severity of depression symptoms in patients. It consists of nine questions that ask about the frequency and severity of symptoms such as feelings of sadness, loss of interest in activities, and changes in appetite and sleep patterns. The results are used to guide treatment decisions and monitor changes in symptoms over time.",
+ },
+ ru: {
+ name: "Опросник для самодиагностики депрессии пациента PHQ-9",
+ shortname: "PHQ-9",
+ category: "Психиатрия",
+ introtext:
+ "Оценивает степень тяжести симптомов депрессии у пациентов.",
+ description:
+ "Вопросник о здоровье пациента-9 (PHQ-9) - широко используемый инструмент для оценки степени тяжести симптомов депрессии у пациентов. Он состоит из девяти вопросов, которые спрашивают о частоте и тяжести симптомов, таких как чувства грусти, потеря интереса к деятельности и изменения в аппетите и сна. Результаты используются для принятия решений о лечении и отслеживания изменений симптомов со временем.",
+ },
+ },
+ },
+ {
+ id: 23,
+ status: "",
+ screen: Findrisk,
+ favorite: false,
+ content: {
+ en: {
+ name: "Finnish Diabetes Risk Score",
+ shortname: "FINDRISC",
+ category: "Endocrinology",
+ introtext:
+ "Identifies patients at high risk for type 2 diabetes.",
+ description:
+ "The Finnish Diabetes Risk Score (FINDRISC) is a tool used to assess an individual's risk of developing type 2 diabetes. It consists of eight questions that ask about age, BMI, waist circumference, physical activity, diet, and family history of diabetes. The results are used to guide lifestyle changes and preventive measures to reduce the risk of developing diabetes.",
+ },
+ ru: {
+ name: "Определение риска развития диабета FINDRISC",
+ shortname: "FINDRISC",
+ category: "Эндокринология",
+ introtext: "Оценивает риск развития диабета 2 типа у человека.",
+ description:
+ "Шкала оценки риска развития диабета, разработанная Финской Ассоциацией Диабета, которая позволяет оценить 10-летний риск сахарного диабета (СД) 2 типа, включая бессимптомный сахарный диабет и нарушение толерантности к глюкозе (НТГ), с 85 % точностью.\n\nДанная шкала используется у людей старше 25 лет.",
+ },
+ },
+ },
+ {
+ id: 25,
+ status: "",
+ screen: HEARTScore,
+ favorite: false,
+ content: {
+ en: {
+ name: "HEART Score for Major Cardiac Events",
+ shortname: "HEART Score",
+ category: "Cardiology",
+ introtext:
+ "Assesses the risk of major cardiac events in patients presenting with chest pain.",
+ description:
+ "The HEART Score is a tool used to assess the risk of major cardiac events in patients presenting with chest pain. It takes into account factors such as age, gender, medical history, and the results of an electrocardiogram (ECG) and cardiac biomarkers. The results are used to guide diagnostic and treatment decisions to reduce the risk of major cardiac events.",
+ },
+ ru: {
+ name: "Шкала HEART - оценка риска развития сердечных осложнений",
+ shortname: "Шкала HEART",
+ category: "Кардиология",
+ introtext:
+ "Оценивает риск развития сердечных осложнений у пациентов, предъявляющих жалобы на боль в груди.",
+ description:
+ "Шкала HEART (Heart Score) - это инструмент, используемый для оценки риска развития сердечных осложнений у пациентов, предъявляющих жалобы на боль в груди. Учитываются факторы, такие как возраст, пол, медицинская история и результаты электрокардиограммы (ЭКГ) и сердечных биомаркеров. Результаты используются для руководства диагностическими и терапевтическими решениями, направленными на снижение риска серьезных сердечных осложнений.",
+ },
+ },
+ },
+ {
+ id: 26,
+ status: "",
+ screen: CreatinineClearance,
+ favorite: false,
+ content: {
+ en: {
+ name: "Creatinine Clearance (Cockcroft-Gault Equation)",
+ shortname: "Creatinine Clearance",
+ category: "Nephrology",
+ introtext:
+ "Calculates an individual's estimated creatinine clearance.",
+ description:
+ "The Cockcroft-Gault equation is used to estimate an individual's creatinine clearance based on their serum creatinine level, age, weight, and gender. The result can be used to adjust medication dosages and assess kidney function.",
+ },
+ ru: {
+ name: "Клиренс креатинина (уравнение Коккрофта-Гольта)",
+ shortname: "Клиренс креатинина",
+ category: "Нефрология",
+ introtext: "Рассчитывает клиренс креатинина у человека.",
+ description:
+ "Уравнение Коккрофта-Гольта используется для оценки клиренса креатинина у человека на основе уровня креатинина в крови, возраста, веса и пола. Результат можно использовать для корректировки дозировок лекарств и оценки функции почек.",
+ },
+ },
+ },
+ {
+ id: 29,
+ status: "",
+ screen: GlomerularFiltrationRate,
+ favorite: false,
+ content: {
+ en: {
+ name: "Glomerular Filtration Rate (GFR)",
+ shortname: "GFR",
+ category: "Nephrology",
+ introtext:
+ "Calculates an individual's estimated glomerular filtration rate.",
+ description:
+ "The Glomerular Filtration Rate (GFR) is a measure of how well the kidneys are functioning.\n\nIt estimates the rate at which blood is filtered through the glomeruli, the tiny blood vessels in the kidneys.\n\nGFR is a crucial indicator of kidney health and can be used to diagnose and monitor various kidney conditions.",
+ },
+ ru: {
+ name: "Скорость клубочковой фильтрации (СКФ)",
+ shortname: "СКФ",
+ category: "Нефрология",
+ introtext:
+ "Рассчитывает оценочную скорость клубочковой фильтрации у человека.",
+ description:
+ "Скорость клубочковой фильтрации (СКФ) является мерой функционирования почек.\n\nОна оценивает скорость фильтрации крови через гломерулы, маленькие кровеносные сосуды в почках.\n\nСКФ - это важный показатель состояния почек и может использоваться для диагностики и мониторинга различных почечных состояний.",
+ },
+ },
+ },
+ {
+ id: 27,
+ status: "",
+ screen: CURB65,
+ favorite: false,
+ content: {
+ en: {
+ name: "CURB-65 Score for Pneumonia Severity",
+ shortname: "CURB-65",
+ category: "Infections",
+ introtext:
+ "Assesses the severity of pneumonia in an individual.",
+ description:
+ "Evaluates the mortality risk of pneumonia to help determine the appropriate treatment approach – inpatient or outpatient care.\n\nThe CURB-65 calculator can also be used in emergency departments to stratify a patient's risk for making clinical decisions on the management strategy.",
+ },
+ ru: {
+ name: "Оценка тяжести пневмонии по шкале CURB-65",
+ shortname: "CURB-65",
+ category: "Инфекции",
+ introtext: "Оценивает тяжесть пневмонии у человека.",
+ description:
+ "Оценивает смертность от внебольничной пневмонии, чтобы помочь выбрать правильную тактику лечения пациента – стационарное или амбулаторное лечение.\n\nКалькулятор CURB-65 также можно использовать в отделениях неотложной помощи для стратификации риска пациента для принятия клинических решений по стратегии ведения.",
+ },
+ },
+ },
+ {
+ id: 28,
+ status: "",
+ screen: CardiacRisk,
+ favorite: false,
+ content: {
+ en: {
+ name: "Revised Cardiac Risk Index for Pre-Operative Risk",
+ shortname: "RCRI",
+ category: "Cardiology",
+ introtext:
+ "Calculates an individual's risk of cardiac complications after surgery.",
+ description:
+ "The Revised Cardiac Risk Index (RCRI) is a tool used to calculate an individual's risk of cardiac complications after surgery. It takes into account factors such as age, history of heart disease, history of stroke, diabetes, and renal insufficiency. The results are used to guide preventive measures and treatment options to reduce the risk of cardiac complications after surgery.",
+ },
+ ru: {
+ name: "RCRI - индекс риска развития сердечных осложнений при проведении операций",
+ shortname: "Сердечный риск",
+ category: "Кардиология",
+ introtext:
+ "Рассчитывает риск сердечных осложнений у человека после операции.",
+ description:
+ "Инструмент Revised Cardiac Risk Index (RCRI) используется для расчета риска сердечных осложнений у человека после операции. Учитываются факторы, такие как возраст, наличие сердечных заболеваний, история инсульта, диабет и почечная недостаточность. Результаты используются для рекомендации профилактических мер и методов лечения, направленных на снижение риска сердечных осложнений после операции.",
+ },
+ },
+ },
+];
+
+export default catalog;
diff --git a/src/calcs/calcs_list.txt b/src/calcs/calcs_list.txt
new file mode 100644
index 0000000..fb01aed
--- /dev/null
+++ b/src/calcs/calcs_list.txt
@@ -0,0 +1,75 @@
+Cardiology:
+CHA2DS2-VASc Score
+TIMI Risk Score
+GRACE Score
+HEART Score
+
+Endocrinology:
+Body Mass Index Calculator
+HbA1c Calculator
+ASCVD Risk Estimator
+QFracture-2019 Cardiovascular Disease Risk Calculator
+
+Gastroenterology:
+MELD Score
+Child-Pugh Score
+Rockall Score
+Blatchford Score
+
+Hematology:
+Wells Criteria for DVT and PE
+Geneva Score for PE
+HAS-BLED Score
+CHADS2 Score
+
+Neurology:
+NIH Stroke Scale
+Glasgow Coma Scale
+Hunt and Hess Scale
+Modified Rankin Scale
+
+Oncology:
+TNM Staging System
+Charlson Comorbidity Index
+Karnofsky Performance Scale
+ASCO Breast Cancer Risk Assessment Tool
+AKIN Criteria
+RIFLE Criteria
+MDRD Equation
+Urine Protein-to-Creatinine Ratio Calculator
+DAS28 Score
+BASDAI Score
+Fracture Risk Assessment Tool
+Systemic Lupus Erythematosus Disease Activity Index
+Bishop Score
+Fetal Biometry Calculator
+APGAR Score
+Revised FIGO Staging System
+AUA Symptom Score
+R.E.N.A.L. Nephrometry Score
+Bladder Cancer Risk Calculator
+Prostate Cancer Risk Calculator
+
+Geriatrics:
+Geriatric Depression Scale
+Frailty Index
+Short Portable Mental Status Questionnaire
+Functional Independence Measure
+
+Infectious Disease:
+CURB-65 Score
+APACHE II Score
+Acute Physiology and Chronic Health Evaluation (APACHE) IV Score
+Clinical Pulmonary Infection Score
+
+Psychiatry:
+Hamilton Depression Rating Scale
+Generalized Anxiety Disorder 7-Item Scale
+Alcohol Use Disorders Identification Test (AUDIT)
+Clinical Opiate Withdrawal Scale
+
+Dermatology:
+Body Surface Area Calculator
+Psoriasis Area and Severity Index
+Scoring Atopic Dermatitis (SCORAD) Index
+Melanoma Risk Assessment Tool
\ No newline at end of file
diff --git a/src/calcs/cc/README.md b/src/calcs/cc/README.md
new file mode 100644
index 0000000..a0b76ab
--- /dev/null
+++ b/src/calcs/cc/README.md
@@ -0,0 +1,2 @@
+**Скорость клубочковой фильтрации**
+https://evidence-neurology.ru/medical-calculators/hemorrhage/skf-creatinine-clearance/
diff --git a/src/calcs/cc/api.ts b/src/calcs/cc/api.ts
new file mode 100644
index 0000000..d60f18e
--- /dev/null
+++ b/src/calcs/cc/api.ts
@@ -0,0 +1,83 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calculateCreatinineClearanceScore(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ console.log("Input is not sufficient to do calculations, received input:");
+ console.log(input);
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ const { gender, age, weight, height, creatinine } = input;
+
+ let score = 0;
+ if (gender === 1) {
+ // For males
+ score =
+ ((140 - Number(age)) * Number(weight)) /
+ (0.818 * Number(creatinine));
+ } else if (gender === 2) {
+ // For females
+ score =
+ ((140 - Number(age)) * Number(weight) * 0.85) /
+ (0.818 * Number(creatinine));
+ }
+
+ let result = "";
+ if (score >= 90) {
+ result = "Normal";
+ } else if (score >= 60) {
+ result = "Mildly impaired";
+ } else if (score >= 30) {
+ result = "Moderately impaired";
+ } else {
+ result = "Severely impaired";
+ }
+
+ const variant = variants[prefs.language][result];
+ const title = variant.title;
+ const description = variant.description;
+
+ let scoreUnit = "";
+ switch (prefs.language) {
+ case "en":
+ scoreUnit = en.scoreUnit;
+ break;
+ case "ru":
+ scoreUnit = ru.scoreUnit;
+ break;
+ default:
+ scoreUnit = en.scoreUnit;
+ }
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score: Number(score.toFixed(0)),
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+export { calculateCreatinineClearanceScore };
diff --git a/src/calcs/cc/domain.ts b/src/calcs/cc/domain.ts
new file mode 100644
index 0000000..01d607a
--- /dev/null
+++ b/src/calcs/cc/domain.ts
@@ -0,0 +1,29 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ gender: number | null;
+ age: number | null;
+ weight: number | null;
+ height: number | null;
+ creatinine: number | null;
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/cc/i18n/en.json b/src/calcs/cc/i18n/en.json
new file mode 100644
index 0000000..f978afe
--- /dev/null
+++ b/src/calcs/cc/i18n/en.json
@@ -0,0 +1,14 @@
+{
+ "age": "Age",
+ "ageUnit": "years",
+ "gender": "Gender",
+ "male": "Male",
+ "female": "Female",
+ "height": "Height",
+ "heightUnit": "cm",
+ "weight": "Weight",
+ "weightUnit": "kg",
+ "creatinine": "Creatinine",
+ "creatinineUnit": "µmol/L",
+ "scoreUnit": "mL/min"
+}
diff --git a/src/calcs/cc/i18n/ru.json b/src/calcs/cc/i18n/ru.json
new file mode 100644
index 0000000..ed0bcad
--- /dev/null
+++ b/src/calcs/cc/i18n/ru.json
@@ -0,0 +1,14 @@
+{
+ "age": "Возраст",
+ "ageUnit": "лет",
+ "gender": "Пол",
+ "male": "Мужской",
+ "female": "Женский",
+ "height": "Рост",
+ "heightUnit": "см",
+ "weight": "Вес",
+ "weightUnit": "кг",
+ "creatinine": "Креатинин",
+ "creatinineUnit": "мкмоль/л",
+ "scoreUnit": "мл/мин"
+}
diff --git a/src/calcs/cc/ui.tsx b/src/calcs/cc/ui.tsx
new file mode 100644
index 0000000..82ae4c3
--- /dev/null
+++ b/src/calcs/cc/ui.tsx
@@ -0,0 +1,140 @@
+import React, { useEffect, useState } from "react";
+import { useTranslation } from "react-i18next";
+import { View, ScrollView } from "react-native";
+
+import { NumericContainer } from "../../components/numericContainer";
+import { SegmentContainer } from "../../components/segmentContainer";
+import i18n from "../../i18n/i18n";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+import { Input, Result } from "./domain";
+import { calculateCreatinineClearanceScore } from "./api";
+
+i18n.addResourceBundle("en", "CreatinineClearance", en);
+i18n.addResourceBundle("ru", "CreatinineClearance", ru);
+
+const CreatinineClearance: React.FC = ({
+ handleResult,
+ handleResetClick,
+ lang,
+}: any) => {
+ const { t } = useTranslation("CreatinineClearance");
+
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ gender: null,
+ age: null,
+ height: null,
+ weight: null,
+ creatinine: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateCreatinineClearanceScore(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+ {
+ handleInputChange("gender", value);
+ }}
+ resetBy="null"
+ />
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange("age", value);
+ }}
+ type={"absint"}
+ suffix={t("ageUnit")}
+ />
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange("weight", value);
+ }}
+ type={"absint"}
+ suffix={t("weightUnit")}
+ />
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange("height", value);
+ }}
+ type={"absint"}
+ suffix={t("heightUnit")}
+ />
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange("creatinine", value);
+ }}
+ type={"float"}
+ suffix={t("creatinineUnit")}
+ />
+
+
+ );
+};
+
+export { CreatinineClearance };
diff --git a/src/calcs/cc/variants.ts b/src/calcs/cc/variants.ts
new file mode 100644
index 0000000..e9e0b0d
--- /dev/null
+++ b/src/calcs/cc/variants.ts
@@ -0,0 +1,40 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ Normal: {
+ title: "Normal Creatinine Clearance",
+ description: "",
+ },
+ "Mildly impaired": {
+ title: "Mildly Impaired Creatinine Clearance",
+ description: "",
+ },
+ "Moderately impaired": {
+ title: "Moderately Impaired Creatinine Clearance",
+ description: "",
+ },
+ "Severely impaired": {
+ title: "Severely Impaired Creatinine Clearance",
+ description: "",
+ },
+ },
+ ru: {
+ Normal: {
+ title: "Нормальный клиренс креатинина",
+ description: "",
+ },
+ "Mildly impaired": {
+ title: "Незначительно нарушенный клиренс креатинина",
+ description: "",
+ },
+ "Moderately impaired": {
+ title: "Умеренно нарушенный клиренс креатинина",
+ description: "",
+ },
+ "Severely impaired": {
+ title: "Значительно нарушенный клиренс креатинина",
+ description: "",
+ },
+ },
+};
diff --git a/src/calcs/cow/README.md b/src/calcs/cow/README.md
new file mode 100644
index 0000000..7af73cc
--- /dev/null
+++ b/src/calcs/cow/README.md
@@ -0,0 +1,3 @@
+https://nida.nih.gov/sites/default/files/ClinicalOpiateWithdrawalScale.pdf
+
+https://psychiatr.ru/download/3782?view=1&name=046-071.pdf
diff --git a/src/calcs/cow/api.ts b/src/calcs/cow/api.ts
new file mode 100644
index 0000000..97946d0
--- /dev/null
+++ b/src/calcs/cow/api.ts
@@ -0,0 +1,62 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+function calculateCowScore(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ title: "",
+ description: "",
+ };
+ }
+
+ let score =
+ Number(input.q1) +
+ Number(input.q2) +
+ Number(input.q3) +
+ Number(input.q4) +
+ Number(input.q5) +
+ Number(input.q6) +
+ Number(input.q7) +
+ Number(input.q8) +
+ Number(input.q9) +
+ Number(input.q10) +
+ Number(input.q11);
+
+ let result;
+ if (score > 4 && score < 13) {
+ result = "Mild";
+ } else if (score < 25) {
+ result = "Moderate";
+ } else if (score < 37) {
+ result = "Moderately Severe";
+ } else {
+ result = "Severe Withdrawal";
+ }
+
+ let variant = variants[prefs.language][result];
+ let title = variant.title;
+ let description = variant.description;
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score,
+ title,
+ description,
+ };
+ return output;
+}
+
+export { calculateCowScore };
diff --git a/src/calcs/cow/domain.ts b/src/calcs/cow/domain.ts
new file mode 100644
index 0000000..67286ed
--- /dev/null
+++ b/src/calcs/cow/domain.ts
@@ -0,0 +1,48 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ q1: number | null;
+ q2: number | null;
+ q3: number | null;
+ q4: number | null;
+ q5: number | null;
+ q6: number | null;
+ q7: number | null;
+ q8: number | null;
+ q9: number | null;
+ q10: number | null;
+ q11: number | null;
+}
+
+export interface Question {
+ name: string;
+ text: string;
+ options: {
+ label: string;
+ value: number;
+ score?: string;
+ }[];
+}
+
+export interface Questions {
+ [language: string]: Question[];
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/cow/questions.ts b/src/calcs/cow/questions.ts
new file mode 100644
index 0000000..db665e6
--- /dev/null
+++ b/src/calcs/cow/questions.ts
@@ -0,0 +1,333 @@
+import { Questions } from "./domain";
+
+const questions: Questions = {
+ en: [
+ {
+ name: "q1",
+ text: "Resting Pulse Rate (BPM)",
+ options: [
+ { label: "≤80", value: 0 },
+ { label: "81-100", value: 1 },
+ { label: "101-120", value: 2 },
+ { label: ">120", value: 4 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "Sweating",
+ options: [
+ { label: "No report of chills or flushing", value: 0 },
+ { label: "Subjective report of chills or flushing", value: 1 },
+ { label: "Flushed or observable moistness on face", value: 2 },
+ { label: "Beads of sweat on brow or face", value: 3 },
+ { label: "Sweat streaming off face", value: 4 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Restlessness observation during assessment",
+ options: [
+ { label: "Able to sit still", value: 0 },
+ {
+ label: "Reports difficulty sitting still, but is able to do so",
+ value: 1,
+ },
+ {
+ label: "Frequent shifting or extraneous movements of legs/arms",
+ value: 3,
+ },
+ {
+ label: "Unable to sit still for more than a few seconds",
+ value: 5,
+ },
+ ],
+ },
+
+ {
+ name: "q4",
+ text: "Pupil size",
+ options: [
+ {
+ label: "Pupils pinned or normal size for room light",
+ value: 0,
+ },
+ {
+ label: "Pupils possibly larger than normal for room light",
+ value: 1,
+ },
+ { label: "Pupils moderately dilated", value: 2 },
+ {
+ label: "Pupils so dilated that only the rim of the iris is visible",
+ value: 5,
+ },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Bone or joint aches",
+ options: [
+ { label: "Not present", value: 0 },
+ { label: "Mild diffuse discomfort", value: 1 },
+ {
+ label: "Patient reports severe diffuse aching of joints/ muscles",
+ value: 2,
+ },
+ {
+ label: "Patient is rubbing joints or muscles and is unable to sit still because of discomfort",
+ value: 4,
+ },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Runny nose or tearing",
+ options: [
+ { label: "Not present", value: 0 },
+ { label: "Nasal stuffiness or unusually moist eyes", value: 1 },
+ { label: "Nose running or tearing", value: 2 },
+ {
+ label: "Nose constantly running or tears streaming down cheeks",
+ value: 4,
+ },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Gastrointestinal (GI) upset",
+ options: [
+ { label: "No GI symptoms", value: 0 },
+ { label: "Stomach Cramps", value: 1 },
+ { label: "Nausea or loose stool", value: 2 },
+ { label: "Vomiting or diarrhea", value: 3 },
+ {
+ label: "Multiple episodes of vomiting or diarrhea",
+ value: 5,
+ },
+ ],
+ },
+ {
+ name: "q8",
+ text: "Tremor observation of outstretched hands",
+ options: [
+ { label: "No tremor", value: 0 },
+ { label: "Tremor can be felt, but not observed", value: 1 },
+ { label: "Slight tremor observable", value: 2 },
+ { label: "Gross tremor or muscle twitching", value: 4 },
+ ],
+ },
+ {
+ name: "q9",
+ text: "Yawning observation during assessment",
+ options: [
+ { label: "No yawning", value: 0 },
+ { label: "Yawning once or twice during assessment", value: 1 },
+ {
+ label: "Yawning three or more times during assessment",
+ value: 2,
+ },
+ { label: "Yawning several times/minute", value: 4 },
+ ],
+ },
+ {
+ name: "q10",
+ text: "Anxiety or irritability",
+ options: [
+ { label: "None", value: 0 },
+ {
+ label: "Patient reports increasing irritability or anxiousness",
+ value: 1,
+ },
+ { label: "Patient obviously irritable/anxious", value: 2 },
+ {
+ label: "Patient so irritable or anxious that participation in the assessment is difficult",
+ value: 4,
+ },
+ ],
+ },
+ {
+ name: "q11",
+ text: "Gooseflesh skin",
+ options: [
+ { label: "Skin is smooth", value: 0 },
+ {
+ label: "Piloerection of skin can be felt or hairs standing up on arms",
+ value: 3,
+ },
+ { label: "Prominent piloerection", value: 5 },
+ ],
+ },
+ ],
+ ru: [
+ {
+ name: "q1",
+ text: "Частота пульса в покое (ударов в минуту)",
+ options: [
+ { label: "≤80", value: 0 },
+ { label: "81-100", value: 1 },
+ { label: "101-120", value: 2 },
+ { label: ">120", value: 4 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "Потоотделение",
+ options: [
+ {
+ label: "Отсутствует информация о ознобе или покраснении",
+ value: 0,
+ },
+ {
+ label: "Субъективные ощущения озноба или покраснения",
+ value: 1,
+ },
+ {
+ label: "Покраснение или наблюдаемая влажность лица",
+ value: 2,
+ },
+ { label: "Капли пота на лбу или лице", value: 3 },
+ { label: "Пот стекает с лица", value: 4 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Наблюдение за беспокойством во время оценки",
+ options: [
+ { label: "Может сидеть спокойно", value: 0 },
+ {
+ label: "Сообщает о трудностях в сидении, но способен делать это",
+ value: 1,
+ },
+ {
+ label: "Часто меняет положение или делает лишние движения ногами/руками",
+ value: 3,
+ },
+ {
+ label: "Не может сидеть спокойно больше нескольких секунд",
+ value: 5,
+ },
+ ],
+ },
+
+ {
+ name: "q4",
+ text: "Размер зрачков",
+ options: [
+ {
+ label: "Зрачки сужены или нормального размера для освещения в помещении",
+ value: 0,
+ },
+ {
+ label: "Зрачки, возможно, больше, чем нормально для освещения в помещении",
+ value: 1,
+ },
+ { label: "Умеренное расширение зрачков", value: 2 },
+ {
+ label: "Зрачки настолько расширены, что виден только ободок радужки",
+ value: 5,
+ },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Боли в костях или суставах",
+ options: [
+ { label: "Отсутствуют", value: 0 },
+ { label: "Легкое диффузное неприятное ощущение", value: 1 },
+ {
+ label: "Пациент сообщает о сильных диффузных болях в суставах/мышцах",
+ value: 2,
+ },
+ {
+ label: "Пациент трется о суставы или мышцы и не может сидеть спокойно из-за дискомфорта",
+ value: 4,
+ },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Насморк или слезотечение",
+ options: [
+ { label: "Отсутствует", value: 0 },
+ {
+ label: "Заложенность носа или необычно влажные глаза",
+ value: 1,
+ },
+ { label: "Нос течет или глаза слезятся", value: 2 },
+ {
+ label: "Нос постоянно текет или слезы стекают по щекам",
+ value: 4,
+ },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Повреждение желудочно-кишечного тракта",
+ options: [
+ { label: "Нет симптомов желудочно-кишечного тракта", value: 0 },
+ { label: "Боли в животе", value: 1 },
+ { label: "Тошнота или расстроенный стул", value: 2 },
+ { label: "Рвота или понос", value: 3 },
+ {
+ label: "Многократные эпизоды рвоты или поноса",
+ value: 5,
+ },
+ ],
+ },
+ {
+ name: "q8",
+ text: "Наблюдение за дрожью вытянутых рук",
+ options: [
+ { label: "Отсутствует дрожь", value: 0 },
+ { label: "Дрожь ощущается, но не наблюдается", value: 1 },
+ { label: "Наблюдается слабая дрожь", value: 2 },
+ {
+ label: "Грубая дрожь или судорожные движения мышц",
+ value: 4,
+ },
+ ],
+ },
+ {
+ name: "q9",
+ text: "Зевота во время оценки",
+ options: [
+ { label: "Нет зевоты", value: 0 },
+ { label: "Зевота один или два раза во время оценки", value: 1 },
+ {
+ label: "Зевота три или более раза во время оценки",
+ value: 2,
+ },
+ { label: "Зевота несколько раз в минуту", value: 4 },
+ ],
+ },
+ {
+ name: "q10",
+ text: "Тревожность или раздражительность",
+ options: [
+ { label: "Отсутствует", value: 0 },
+ {
+ label: "Пациент сообщает о нарастающей раздражительности или тревожности",
+ value: 1,
+ },
+ { label: "Пациент явно раздражителен/тревожен", value: 2 },
+ {
+ label: "Пациент настолько раздражителен или тревожен, что участие в оценке затруднительно",
+ value: 4,
+ },
+ ],
+ },
+ {
+ name: "q11",
+ text: "Мурашки по коже",
+ options: [
+ { label: "Кожа гладкая", value: 0 },
+ {
+ label: "Кожу можно потрогать, и волоски поднимаются на руках",
+ value: 3,
+ },
+ { label: "Заметное поднимание волосков", value: 5 },
+ ],
+ },
+ ],
+};
+
+export default questions;
diff --git a/src/calcs/cow/ui.tsx b/src/calcs/cow/ui.tsx
new file mode 100644
index 0000000..0022c9c
--- /dev/null
+++ b/src/calcs/cow/ui.tsx
@@ -0,0 +1,87 @@
+import React, { useEffect, useState } from "react";
+import { View, ScrollView } from "react-native";
+
+import { SegmentContainer } from "../../components/segmentContainer";
+import questions from "./questions";
+import { calculateCowScore } from "./api";
+import { Input, Question } from "./domain";
+
+const CalcScreen: React.FC = ({
+ handleResult,
+ handleResetClick,
+ lang,
+}: any) => {
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ q1: null,
+ q2: null,
+ q3: null,
+ q4: null,
+ q5: null,
+ q6: null,
+ q7: null,
+ q8: null,
+ q9: null,
+ q10: null,
+ q11: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // List of questions
+ const localQuestions: Question[] = questions[lang];
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateCowScore(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+
+ {localQuestions.map((question) => (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ />
+ ))}
+
+
+
+ );
+};
+export default CalcScreen;
diff --git a/src/calcs/cow/variants.ts b/src/calcs/cow/variants.ts
new file mode 100644
index 0000000..0cf69ba
--- /dev/null
+++ b/src/calcs/cow/variants.ts
@@ -0,0 +1,39 @@
+import { Variants } from "./domain";
+export const variants: Variants = {
+ en: {
+ Mild: {
+ title: "Mild Withdrawal",
+ description: "",
+ },
+ Moderate: {
+ title: "Moderate Withdrawal",
+ description: "",
+ },
+ "Moderately Severe": {
+ title: "Moderately Severe Withdrawal",
+ description: "",
+ },
+ "Severe Withdrawal": {
+ title: "Severe Withdrawal",
+ description: "",
+ },
+ },
+ ru: {
+ Mild: {
+ title: "Мягкий ОАС",
+ description: "",
+ },
+ Moderate: {
+ title: "Умеренный ОАС",
+ description: "",
+ },
+ "Moderately Severe": {
+ title: "Умеренно-тяжелый ОАС",
+ description: "",
+ },
+ "Severe Withdrawal": {
+ title: "Тяжелый ОАС",
+ description: "",
+ },
+ },
+};
diff --git a/src/calcs/curb-65/api.ts b/src/calcs/curb-65/api.ts
new file mode 100644
index 0000000..462db81
--- /dev/null
+++ b/src/calcs/curb-65/api.ts
@@ -0,0 +1,99 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calculateCURB65Score(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ let score = 0;
+
+ let data = {
+ confusion: input.confusion,
+ bun: input.bun,
+ respiratoryRate: input.respiratoryRate ? 30 : 0,
+ systolicBP: input.systolicBP ? 0 : 90,
+ age65: input.age65,
+ };
+
+ if (data.confusion === 1) score++;
+ if (data.bun === 1) score++;
+ if (data.respiratoryRate >= 30) score++;
+ if (data.systolicBP < 90) score++;
+ if (data.age65 === 1) score++;
+
+ let variantKey = "";
+ let severity = "";
+ if (score === 0 || score === 1) {
+ variantKey = "low";
+ severity = variants[prefs.language]["low"].title;
+ } else if (score === 2) {
+ variantKey = "moderate";
+ severity = variants[prefs.language]["moderate"].title;
+ } else if (score === 3) {
+ variantKey = "severe";
+ severity = variants[prefs.language]["severe"].title;
+ } else if (score === 4 || score === 5) {
+ variantKey = "highest";
+ severity = variants[prefs.language]["highest"].title;
+ }
+
+ let scoreUnit = "";
+ let selectedTranslation = {};
+ switch (prefs.language) {
+ case "en":
+ selectedTranslation = en;
+ break;
+ case "ru":
+ selectedTranslation = ru;
+ break;
+ default:
+ selectedTranslation = en;
+ }
+ scoreUnit = getScoreText(score, selectedTranslation);
+
+ let variant = variants[prefs.language][variantKey];
+ let title = variant.title;
+ let description = variant.description;
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score,
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+function getScoreText(score: number, lang: any) {
+ if (score === 1) {
+ return `${lang.scoreUnit}`;
+ } else if (score >= 2 && score <= 4) {
+ return `${lang.scoreGenitiveSingular}`;
+ } else {
+ return `${lang.scoreGenitivePlural}`;
+ }
+}
+
+export { calculateCURB65Score };
diff --git a/src/calcs/curb-65/domain.ts b/src/calcs/curb-65/domain.ts
new file mode 100644
index 0000000..cb516fd
--- /dev/null
+++ b/src/calcs/curb-65/domain.ts
@@ -0,0 +1,51 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ confusion: number | null;
+ bun: number | null;
+ respiratoryRate: number | null;
+ systolicBP: number | null;
+ age65: number | null;
+}
+
+// export interface Input {
+// q1: number | null;
+// q2: number | null;
+// q3: number | null;
+// q4: number | null;
+// q5: number | null;
+// }
+
+export interface Question {
+ name: string;
+ text: string;
+ options: {
+ label: string;
+ value: number;
+ score?: string;
+ }[];
+}
+
+export interface Questions {
+ [language: string]: Question[];
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/curb-65/i18n/en.json b/src/calcs/curb-65/i18n/en.json
new file mode 100644
index 0000000..62b1bd0
--- /dev/null
+++ b/src/calcs/curb-65/i18n/en.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "point",
+ "scoreGenitiveSingular": "points",
+ "scoreGenitivePlural": "points"
+}
diff --git a/src/calcs/curb-65/i18n/ru.json b/src/calcs/curb-65/i18n/ru.json
new file mode 100644
index 0000000..098d185
--- /dev/null
+++ b/src/calcs/curb-65/i18n/ru.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "балл",
+ "scoreGenitiveSingular": "балла",
+ "scoreGenitivePlural": "баллов"
+}
diff --git a/src/calcs/curb-65/questions.ts b/src/calcs/curb-65/questions.ts
new file mode 100644
index 0000000..a6b82a4
--- /dev/null
+++ b/src/calcs/curb-65/questions.ts
@@ -0,0 +1,88 @@
+import { Questions } from "./domain";
+
+export const questions: Questions = {
+ en: [
+ {
+ name: "confusion",
+ text: "Altered Mental Status",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "bun",
+ text: "Blood Urea Nitrogen (BUN) >7 mmol/L (>19 mg/dL)",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "respiratoryRate",
+ text: "Respiratory Rate ≥30/min",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "systolicBP",
+ text: "Systolic BP <90 mmHg or Diastolic BP ≤60 mmHg",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "age65",
+ text: "Age 65 or Older",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ ],
+ ru: [
+ {
+ name: "confusion",
+ text: "Нарушение сознания",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "bun",
+ text: "Уровень азота мочевины в крови > 7 ммоль/л",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "respiratoryRate",
+ text: "Частота дыхания ≥ 30/мин",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "systolicBP",
+ text: "Снижение систалического АД < 90 мм рт.ст.",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "age65",
+ text: "Возраст 65 лет и старше",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ ],
+};
diff --git a/src/calcs/curb-65/ui.tsx b/src/calcs/curb-65/ui.tsx
new file mode 100644
index 0000000..a75186c
--- /dev/null
+++ b/src/calcs/curb-65/ui.tsx
@@ -0,0 +1,77 @@
+import React, { useEffect, useState } from "react";
+import { View, ScrollView } from "react-native";
+import { SegmentContainer } from "../../components/segmentContainer";
+import { Input, Question } from "./domain";
+import { calculateCURB65Score } from "./api";
+import { questions } from "./questions";
+
+const CURB65: React.FC = ({ handleResult, handleResetClick, lang }: any) => {
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ confusion: null,
+ bun: null,
+ respiratoryRate: null,
+ systolicBP: null,
+ age65: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // List of questions
+ const localQuestions: Question[] = questions[lang];
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateCURB65Score(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+
+ {localQuestions.map((question) => (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ />
+ ))}
+
+
+
+ );
+};
+
+export { CURB65 };
diff --git a/src/calcs/curb-65/variants.ts b/src/calcs/curb-65/variants.ts
new file mode 100644
index 0000000..e66ef10
--- /dev/null
+++ b/src/calcs/curb-65/variants.ts
@@ -0,0 +1,40 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ low: {
+ title: "Low risk group",
+ description: "2.7% 30-day mortality",
+ },
+ moderate: {
+ title: "Moderate risk group",
+ description: "6.8% 30-day mortality",
+ },
+ severe: {
+ title: "Severe risk group",
+ description: "14.0% 30-day mortality",
+ },
+ highest: {
+ title: "Highest risk group",
+ description: "27.8% 30-day mortality",
+ },
+ },
+ ru: {
+ low: {
+ title: "Низкий риск",
+ description: "Низкий риск смертности",
+ },
+ moderate: {
+ title: "Умеренный риск",
+ description: "Умеренный риск смертности",
+ },
+ severe: {
+ title: "Высокий риск",
+ description: "Высокий риск смертности",
+ },
+ highest: {
+ title: "Очень высокий риск",
+ description: "Очень высокий риск смертности",
+ },
+ },
+};
diff --git a/src/calcs/findrisk/README.md b/src/calcs/findrisk/README.md
new file mode 100644
index 0000000..ff4b57a
--- /dev/null
+++ b/src/calcs/findrisk/README.md
@@ -0,0 +1,9 @@
+Пруфы
+
+https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6249987/
+https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6249987/#sec0120title
+
+https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9940497/
+
+http://ijomeh.eu/Evaluation-of-the-Finnish-Diabetes-Risk-Score-FINDRISC-for-diabetes-screening-in-occupational-health-care,2332,0,2.html
+http://ijomeh.eu/pdf-2332-2468?filename=Evaluation%20of%20the%20Finnish.pdf
\ No newline at end of file
diff --git a/src/calcs/findrisk/api.ts b/src/calcs/findrisk/api.ts
new file mode 100644
index 0000000..712349b
--- /dev/null
+++ b/src/calcs/findrisk/api.ts
@@ -0,0 +1,104 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calculateFindrisk(input: Input, prefs: Prefs): Result {
+ // The FINDRISK algorithm was originally published in this paper:
+ // https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2768210/
+ // We are using an adapted version of the algorithm that was published in this paper:
+ // https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3854070/
+
+ const isEmpty = Object.entries(input).some(([key, value]) => {
+ if (key === "waist_male" || key === "waist_female") {
+ return false;
+ }
+ return value === null || value === undefined;
+ });
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ let score = 0;
+
+ score += input.age !== null ? input.age : 0;
+ score += input.bmi !== null ? input.bmi : 0;
+ score += input.physicalActivity !== null ? input.physicalActivity : 0;
+ score +=
+ input.dailyFruitsVegetables !== null ? input.dailyFruitsVegetables : 0;
+ score +=
+ input.bloodPressureMedication !== null
+ ? input.bloodPressureMedication
+ : 0;
+ score += input.familyDiabetes !== null ? input.familyDiabetes : 0;
+ score += input.highBloodGlucose !== null ? input.highBloodGlucose : 0;
+
+ if (input.gender == 1) {
+ score += input.waist_female !== null ? input.waist_female : 0;
+ } else if (input.gender == 2) {
+ score += input.waist_male !== null ? input.waist_male : 0;
+ }
+
+ let resultTitle = "";
+ let resultDescription = "";
+ for (const variant in variants[prefs.language]) {
+ const range = variant.split(" ")[0];
+ const [minScore, maxScore] = range.split("-").map(Number);
+ if (score >= minScore && score <= maxScore) {
+ resultTitle = variants[prefs.language][variant].title;
+ resultDescription = variants[prefs.language][variant].description;
+ break;
+ }
+ }
+
+ let scoreUnit = "";
+ let selectedTranslation = {};
+ switch (prefs.language) {
+ case "en":
+ selectedTranslation = en;
+ break;
+ case "ru":
+ selectedTranslation = ru;
+ break;
+ default:
+ selectedTranslation = en;
+ }
+ scoreUnit = getScoreText(score, selectedTranslation);
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score: score,
+ scoreUnit,
+ title: resultTitle,
+ description: resultDescription,
+ };
+
+ return output;
+}
+
+function getScoreText(score: number, lang: any) {
+ if (score === 1) {
+ return `${lang.scoreUnit}`;
+ } else if (score >= 2 && score <= 4) {
+ return `${lang.scoreGenitiveSingular}`;
+ } else {
+ return `${lang.scoreGenitivePlural}`;
+ }
+}
+
+export { calculateFindrisk };
diff --git a/src/calcs/findrisk/domain.ts b/src/calcs/findrisk/domain.ts
new file mode 100644
index 0000000..a7aedc0
--- /dev/null
+++ b/src/calcs/findrisk/domain.ts
@@ -0,0 +1,49 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ gender: number | null;
+ age: number | null;
+ bmi: number | null;
+ waist_female: number | null;
+ waist_male: number | null;
+ physicalActivity: number | null;
+ dailyFruitsVegetables: number | null;
+ bloodPressureMedication: number | null;
+ highBloodGlucose: number | null;
+ familyDiabetes: number | null;
+}
+
+export interface Question {
+ name: string;
+ text: string;
+ options: {
+ label: string;
+ value: number;
+ score?: string;
+ }[];
+ forceVertical?: boolean;
+}
+
+export interface Questions {
+ [language: string]: Question[];
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/findrisk/i18n/en.json b/src/calcs/findrisk/i18n/en.json
new file mode 100644
index 0000000..62b1bd0
--- /dev/null
+++ b/src/calcs/findrisk/i18n/en.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "point",
+ "scoreGenitiveSingular": "points",
+ "scoreGenitivePlural": "points"
+}
diff --git a/src/calcs/findrisk/i18n/ru.json b/src/calcs/findrisk/i18n/ru.json
new file mode 100644
index 0000000..098d185
--- /dev/null
+++ b/src/calcs/findrisk/i18n/ru.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "балл",
+ "scoreGenitiveSingular": "балла",
+ "scoreGenitivePlural": "баллов"
+}
diff --git a/src/calcs/findrisk/questions.ts b/src/calcs/findrisk/questions.ts
new file mode 100644
index 0000000..1267034
--- /dev/null
+++ b/src/calcs/findrisk/questions.ts
@@ -0,0 +1,180 @@
+import { Questions } from "./domain";
+
+export const questions: Questions = {
+ en: [
+ {
+ name: "gender",
+ text: "Gender",
+ options: [
+ { label: "Female", value: 1 },
+ { label: "Male", value: 2 },
+ ],
+ },
+ {
+ name: "age",
+ text: "Age, years",
+ options: [
+ { label: "≤44", value: 0 },
+ { label: "45-54", value: 2 },
+ { label: "55-64", value: 3 },
+ { label: ">64", value: 4 },
+ ],
+ },
+ {
+ name: "bmi",
+ text: "BMI, kg/m²",
+ options: [
+ { label: "<25", value: 0 },
+ { label: "25-30", value: 1 },
+ { label: ">30", value: 3 },
+ ],
+ },
+ {
+ name: "waist_male",
+ text: "Waist circumference",
+ options: [
+ { label: "<94 cm (37 in)", value: 0 },
+ { label: "94 to <102 cm (37 to <40 in)", value: 3 },
+ { label: "≥102 cm (≥40 in)", value: 4 },
+ ],
+ },
+ {
+ name: "waist_female",
+ text: "Waist circumference",
+ options: [
+ { label: "< 80 cm (31 in)", value: 0 },
+ { label: "80 to <88 cm (31 to <35 in)", value: 3 },
+ { label: "≥88 cm (≥35 in)", value: 4 },
+ ],
+ },
+ {
+ name: "physicalActivity",
+ text: "Physical activity",
+ options: [
+ { label: "≥4 hr/week", value: 0 },
+ { label: "<4 hr/week", value: 2 },
+ ],
+ },
+ {
+ name: "dailyFruitsVegetables",
+ text: "Daily consumption of vegetables, fruits, or berries",
+ options: [
+ { label: "No", value: 1 },
+ { label: "Yes", value: 0 },
+ ],
+ },
+ {
+ name: "bloodPressureMedication",
+ text: "Use of blood pressure medication",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 2 },
+ ],
+ },
+ {
+ name: "highBloodGlucose",
+ text: "History of high blood glucose levels",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 5 },
+ ],
+ },
+ {
+ name: "familyDiabetes",
+ text: "Family history of diabetes",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes, 2nd degree relative", value: 3 },
+ { label: "Yes, 1st degree relative", value: 5 },
+ ],
+ },
+ ],
+ ru: [
+ {
+ name: "gender",
+ text: "Пол",
+ options: [
+ { label: "Женский", value: 1 },
+ { label: "Мужской", value: 2 },
+ ],
+ },
+ {
+ name: "age",
+ text: "Возраст, лет",
+ options: [
+ { label: "≤44", value: 0 },
+ { label: "45-54", value: 2 },
+ { label: "55-64", value: 3 },
+ { label: ">64", value: 4 },
+ ],
+ },
+ {
+ name: "bmi",
+ text: "Индекс массы тела кг/м²",
+ options: [
+ { label: "<25 кг/м²", value: 0 },
+ { label: "25-29.9 кг/м²", value: 1 },
+ { label: "≥30 кг/м²", value: 3 },
+ ],
+ },
+ {
+ name: "waist_male",
+ text: "Окружность талии",
+ options: [
+ { label: "<94 см", value: 0 },
+ { label: "94-102 см", value: 3 },
+ { label: ">102 см", value: 4 },
+ ],
+ },
+ {
+ name: "waist_female",
+ text: "Окружность талии",
+ options: [
+ { label: "<80 см", value: 0 },
+ { label: "80-88 см", value: 3 },
+ { label: ">88 см", value: 4 },
+ ],
+ },
+ {
+ name: "physicalActivity",
+ text: "Физическая активность",
+ options: [
+ { label: "от 4 часов в неделю", value: 0 },
+ { label: "до 4 часов в неделю", value: 2 },
+ ],
+ },
+ {
+ name: "dailyFruitsVegetables",
+ text: "Ежедневное употребление фруктов, ягод или овощей",
+ options: [
+ { label: "Нет", value: 1 },
+ { label: "Да", value: 0 },
+ ],
+ },
+ {
+ name: "bloodPressureMedication",
+ text: "Прием препаратов для снижения АД",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 2 },
+ ],
+ },
+ {
+ name: "highBloodGlucose",
+ text: "Скрининговое повышение глюкозы",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 5 },
+ ],
+ },
+ {
+ name: "familyDiabetes",
+ text: "Сахарные диабет у родственников",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да, 2 степень диабета", value: 3 },
+ { label: "Да, 1 степень диабета", value: 5 },
+ ],
+ },
+ ],
+};
diff --git a/src/calcs/findrisk/ui.tsx b/src/calcs/findrisk/ui.tsx
new file mode 100644
index 0000000..5ec0002
--- /dev/null
+++ b/src/calcs/findrisk/ui.tsx
@@ -0,0 +1,121 @@
+import React, { useEffect, useState } from "react";
+import { useTranslation } from "react-i18next";
+import { View, ScrollView } from "react-native";
+
+import { SegmentContainer } from "../../components/segmentContainer";
+import { Input, Question } from "./domain";
+import { calculateFindrisk } from "./api";
+import { questions } from "./questions";
+
+const CalcScreen: React.FC = ({
+ handleResult,
+ handleResetClick,
+ lang,
+}: any) => {
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ gender: null,
+ age: null,
+ bmi: null,
+ waist_female: null,
+ waist_male: null,
+ physicalActivity: null,
+ dailyFruitsVegetables: null,
+ bloodPressureMedication: null,
+ highBloodGlucose: null,
+ familyDiabetes: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+ const [selectedGender, setSelectedGender] = useState(null);
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ if (field === "gender") {
+ setSelectedGender(value);
+ }
+ };
+
+ // List of questions
+ const localQuestions: Question[] = questions[lang];
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateFindrisk(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setSelectedGender(null);
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+
+ {localQuestions.map((question) => {
+ // Check if the question should be displayed based on the selected gender
+ if (
+ (question.name === "waist_male" &&
+ selectedGender === 2) || // "Male"
+ (question.name === "waist_female" &&
+ selectedGender === 1) // "Female"
+ ) {
+ return (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ forceVertical={question.forceVertical}
+ />
+ );
+ } else if (
+ question.name !== "waist_male" &&
+ question.name !== "waist_female"
+ ) {
+ // Render all other questions except waist-related ones
+ return (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ forceVertical={question.forceVertical}
+ />
+ );
+ }
+ })}
+
+
+
+ );
+};
+
+export default CalcScreen;
diff --git a/src/calcs/findrisk/variants.ts b/src/calcs/findrisk/variants.ts
new file mode 100644
index 0000000..26fe3a8
--- /dev/null
+++ b/src/calcs/findrisk/variants.ts
@@ -0,0 +1,48 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ "0-4": {
+ title: "Very low risk",
+ description: "0.1% of 10-year risk of developing T2DM",
+ },
+ "5-9": {
+ title: "Low risk",
+ description: "0.4% of 10-year risk of developing T2DM",
+ },
+ "10-14": {
+ title: "Moderate risk",
+ description: "2.2% of 10-year risk of developing T2DM",
+ },
+ "15-20": {
+ title: "High risk",
+ description: "14.1% of 10-year risk of developing T2DM",
+ },
+ "21-999": {
+ title: "Very high risk",
+ description: "50% of 10-year risk of developing T2DM",
+ },
+ },
+ ru: {
+ "0-4": {
+ title: "Очень низкий риск",
+ description: "0,1% 10-летнего риска развития СД 2 типа",
+ },
+ "5-9": {
+ title: "Низкий риск",
+ description: "0,4% 10-летнего риска развития СД 2 типа",
+ },
+ "10-14": {
+ title: "Умеренный риск",
+ description: "2,2% 10-летнего риска развития СД 2 типа",
+ },
+ "15-20": {
+ title: "Высокий риск",
+ description: "14,1% 10-летнего риска развития СД 2 типа",
+ },
+ "21-999": {
+ title: "Очень высокий риск",
+ description: "50% 10-летнего риска развития СД 2 типа",
+ },
+ },
+};
diff --git a/src/calcs/gad7/api.ts b/src/calcs/gad7/api.ts
new file mode 100644
index 0000000..6160504
--- /dev/null
+++ b/src/calcs/gad7/api.ts
@@ -0,0 +1,87 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calculateGAD7Score(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ const score =
+ Number(input.q1) +
+ Number(input.q2) +
+ Number(input.q3) +
+ Number(input.q4) +
+ Number(input.q5) +
+ Number(input.q6) +
+ Number(input.q7);
+
+ let result: string;
+ if (score <= 4) {
+ result = "No anxiety";
+ } else if (score <= 9) {
+ result = "Mild anxiety";
+ } else if (score <= 14) {
+ result = "Moderate anxiety";
+ } else {
+ result = "Severe anxiety";
+ }
+
+ let scoreUnit = "";
+ let selectedTranslation = {};
+ switch (prefs.language) {
+ case "en":
+ selectedTranslation = en;
+ break;
+ case "ru":
+ selectedTranslation = ru;
+ break;
+ default:
+ selectedTranslation = en;
+ }
+ scoreUnit = getScoreText(score, selectedTranslation);
+
+ let variant = variants[prefs.language][result];
+ let title = variant.title;
+ let description = variant.description;
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score,
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+function getScoreText(score: number, lang: any) {
+ if (score === 1) {
+ return `${lang.scoreUnit}`;
+ } else if (score >= 2 && score <= 4) {
+ return `${lang.scoreGenitiveSingular}`;
+ } else {
+ return `${lang.scoreGenitivePlural}`;
+ }
+}
+
+export { calculateGAD7Score };
diff --git a/src/calcs/gad7/domain.ts b/src/calcs/gad7/domain.ts
new file mode 100644
index 0000000..8a19a7d
--- /dev/null
+++ b/src/calcs/gad7/domain.ts
@@ -0,0 +1,44 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ q1: number | null;
+ q2: number | null;
+ q3: number | null;
+ q4: number | null;
+ q5: number | null;
+ q6: number | null;
+ q7: number | null;
+}
+
+export interface Question {
+ name: string;
+ text: string;
+ options: {
+ label: string;
+ value: number;
+ }[];
+}
+
+export interface Questions {
+ [language: string]: Question[];
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/gad7/i18n/en.json b/src/calcs/gad7/i18n/en.json
new file mode 100644
index 0000000..62b1bd0
--- /dev/null
+++ b/src/calcs/gad7/i18n/en.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "point",
+ "scoreGenitiveSingular": "points",
+ "scoreGenitivePlural": "points"
+}
diff --git a/src/calcs/gad7/i18n/ru.json b/src/calcs/gad7/i18n/ru.json
new file mode 100644
index 0000000..098d185
--- /dev/null
+++ b/src/calcs/gad7/i18n/ru.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "балл",
+ "scoreGenitiveSingular": "балла",
+ "scoreGenitivePlural": "баллов"
+}
diff --git a/src/calcs/gad7/questions.ts b/src/calcs/gad7/questions.ts
new file mode 100644
index 0000000..a514294
--- /dev/null
+++ b/src/calcs/gad7/questions.ts
@@ -0,0 +1,150 @@
+import { Questions } from "./domain";
+
+const questions: Questions = {
+ en: [
+ {
+ name: "q1",
+ text: "Feeling nervous, anxious or on edge",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "Not being able to stop or control worrying",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Worrying too much about different things",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Trouble relaxing",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Being so restless that it is hard to sit still",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Becoming easily annoyed or irritable",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Feeling afraid, as if something awful might happen",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ ],
+ ru: [
+ {
+ name: "q1",
+ text: "Повышенная нервная возбудимость, беспокойство или раздражительность",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Больше половины дней", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "Неспособность справиться с волнением",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Больше половины дней", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Чрезмерное беспокойство по разному поводу",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Больше половины дней", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Неспособность расслабляться",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Больше половины дней", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Крайняя степень беспокойства: «не могу найти себе места»",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Больше половины дней", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Легко поддаюсь чувству беспокойства или раздражительности.",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Больше половины дней", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Опасение чего-то страшного",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколькодней", value: 1 },
+ { label: "Больше половины дней", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ ],
+};
+
+export default questions;
diff --git a/src/calcs/gad7/ui.tsx b/src/calcs/gad7/ui.tsx
new file mode 100644
index 0000000..4bb0472
--- /dev/null
+++ b/src/calcs/gad7/ui.tsx
@@ -0,0 +1,86 @@
+import React, { useEffect, useState } from "react";
+import { View, ScrollView } from "react-native";
+
+import { SegmentContainer } from "../../components/segmentContainer";
+
+import { Input, Question } from "./domain";
+import questions from "./questions";
+import { calculateGAD7Score } from "./api";
+
+const CalcScreen: React.FC = ({
+ handleResult,
+ handleResetClick,
+ lang,
+}: any) => {
+ // Initialize empty input state
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ q1: null,
+ q2: null,
+ q3: null,
+ q4: null,
+ q5: null,
+ q6: null,
+ q7: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // List of questions
+ const localQuestions: Question[] = questions[lang];
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateGAD7Score(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+
+ {localQuestions.map((question) => (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ />
+ ))}
+
+
+
+ );
+};
+
+export default CalcScreen;
diff --git a/src/calcs/gad7/variants.ts b/src/calcs/gad7/variants.ts
new file mode 100644
index 0000000..db87f6d
--- /dev/null
+++ b/src/calcs/gad7/variants.ts
@@ -0,0 +1,40 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ "No anxiety": {
+ title: "No anxiety disorder",
+ description: "",
+ },
+ "Mild anxiety": {
+ title: "Mild anxiety disorder",
+ description: "",
+ },
+ "Moderate anxiety": {
+ title: "Moderate anxiety disorder",
+ description: "",
+ },
+ "Severe anxiety": {
+ title: "Severe anxiety disorder",
+ description: "",
+ },
+ },
+ ru: {
+ "No anxiety": {
+ title: "Отсутствие тревожного расстройства",
+ description: "",
+ },
+ "Mild anxiety": {
+ title: "Легкое тревожное расстройство",
+ description: "",
+ },
+ "Moderate anxiety": {
+ title: "Умеренное тревожное расстройство",
+ description: "",
+ },
+ "Severe anxiety": {
+ title: "Тяжелое тревожное расстройство",
+ description: "",
+ },
+ },
+};
diff --git a/src/calcs/gds/README.md b/src/calcs/gds/README.md
new file mode 100644
index 0000000..fec8566
--- /dev/null
+++ b/src/calcs/gds/README.md
@@ -0,0 +1,2 @@
+**Перечень вопросов**
+https://sudact.ru/law/klinicheskie-rekomendatsii-starcheskaia-asteniia-utv-minzdravom-rossii/prilozhenie-g/prilozhenie-g19/
diff --git a/src/calcs/gds/api.ts b/src/calcs/gds/api.ts
new file mode 100644
index 0000000..13a28b6
--- /dev/null
+++ b/src/calcs/gds/api.ts
@@ -0,0 +1,92 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calculateGDSScore(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ // Calculate total score
+ const score =
+ Number(input.q1) +
+ Number(input.q2) +
+ Number(input.q3) +
+ Number(input.q4) +
+ Number(input.q5) +
+ Number(input.q6) +
+ Number(input.q7) +
+ Number(input.q8) +
+ Number(input.q9) +
+ Number(input.q10) +
+ Number(input.q11) +
+ Number(input.q12) +
+ Number(input.q13) +
+ Number(input.q14) +
+ Number(input.q15);
+
+ let result: string;
+ if (score < 6) {
+ result = "no depression";
+ } else {
+ result = "depression";
+ }
+
+ let scoreUnit = "";
+ let selectedTranslation = {};
+ switch (prefs.language) {
+ case "en":
+ selectedTranslation = en;
+ break;
+ case "ru":
+ selectedTranslation = ru;
+ break;
+ default:
+ selectedTranslation = en;
+ }
+ scoreUnit = getScoreText(score, selectedTranslation);
+
+ var variant = variants[prefs.language][result];
+ var title = variant.title;
+ var description = variant.description;
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score,
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+function getScoreText(score: number, lang: any) {
+ if (score === 1) {
+ return `${lang.scoreUnit}`;
+ } else if (score >= 2 && score <= 4) {
+ return `${lang.scoreGenitiveSingular}`;
+ } else {
+ return `${lang.scoreGenitivePlural}`;
+ }
+}
+
+export { calculateGDSScore };
diff --git a/src/calcs/gds/domain.ts b/src/calcs/gds/domain.ts
new file mode 100644
index 0000000..34e230c
--- /dev/null
+++ b/src/calcs/gds/domain.ts
@@ -0,0 +1,52 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ q1: number | null;
+ q2: number | null;
+ q3: number | null;
+ q4: number | null;
+ q5: number | null;
+ q6: number | null;
+ q7: number | null;
+ q8: number | null;
+ q9: number | null;
+ q10: number | null;
+ q11: number | null;
+ q12: number | null;
+ q13: number | null;
+ q14: number | null;
+ q15: number | null;
+}
+
+export interface Question {
+ name: string;
+ text: string;
+ options: {
+ label: string;
+ value: number;
+ }[];
+}
+
+export interface Questions {
+ [language: string]: Question[];
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/gds/i18n/en.json b/src/calcs/gds/i18n/en.json
new file mode 100644
index 0000000..62b1bd0
--- /dev/null
+++ b/src/calcs/gds/i18n/en.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "point",
+ "scoreGenitiveSingular": "points",
+ "scoreGenitivePlural": "points"
+}
diff --git a/src/calcs/gds/i18n/ru.json b/src/calcs/gds/i18n/ru.json
new file mode 100644
index 0000000..098d185
--- /dev/null
+++ b/src/calcs/gds/i18n/ru.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "балл",
+ "scoreGenitiveSingular": "балла",
+ "scoreGenitivePlural": "баллов"
+}
diff --git a/src/calcs/gds/questions.ts b/src/calcs/gds/questions.ts
new file mode 100644
index 0000000..9deb3e1
--- /dev/null
+++ b/src/calcs/gds/questions.ts
@@ -0,0 +1,250 @@
+import { Questions } from "./domain";
+
+export const questions: Questions = {
+ en: [
+ {
+ name: "q1",
+ text: "Are you satisfied with your life overall?",
+ options: [
+ { label: "No", value: 1 },
+ { label: "Yes", value: 0 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "Have you given up many of your activities and interests?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Do you feel that your life is empty?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Do you often feel bored?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Do you usually have a good mood?",
+ options: [
+ { label: "No", value: 1 },
+ { label: "Yes", value: 0 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Are you afraid that something bad is going to happen to you?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Do you feel mostly satisfied with yourself?",
+ options: [
+ { label: "No", value: 1 },
+ { label: "Yes", value: 0 },
+ ],
+ },
+ {
+ name: "q8",
+ text: "Do you often feel helpless?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q9",
+ text: "Do you prefer to stay at home rather than going out and doing new things?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q10",
+ text: "Do you think your memory is worse than most people's?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q11",
+ text: "Do you think life is good right now?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q12",
+ text: "Do you feel worthless at the moment?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q13",
+ text: "Do you feel full of energy?",
+ options: [
+ { label: "No", value: 1 },
+ { label: "Yes", value: 0 },
+ ],
+ },
+ {
+ name: "q14",
+ text: "Do you feel that your situation is hopeless?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q15",
+ text: "Do you think most people have a better life than yours?",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ ],
+ ru: [
+ {
+ name: "q1",
+ text: "Довольны ли Вы в целом жизнью?",
+ options: [
+ { label: "Нет", value: 1 },
+ { label: "Да", value: 0 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "От многих ли занятий и форм проведения досуга Вы отказались?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Есть ли у Вас чувство, что Ваша жизнь пуста?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Вы часто скучаете?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "У Вас обычно хорошее настроение?",
+ options: [
+ { label: "Нет", value: 1 },
+ { label: "Да", value: 0 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Боитесь ли Вы, что с Вами произойдет что-то плохое?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Ощущаете ли Вы себя по большей части удовлетворенным человеком?",
+ options: [
+ { label: "Нет", value: 1 },
+ { label: "Да", value: 0 },
+ ],
+ },
+ {
+ name: "q8",
+ text: "Часто ли Вы чувствуете себя беспомощным?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q9",
+ text: "Предпочитаете ли Вы остаться дома или выйти на прогулку за новыми впечатлениями?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q10",
+ text: "Считаете ли Вы, что у Вас память хуже, чем у большинства людей?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+
+ {
+ name: "q11",
+ text: "Считаете ли Вы, что сейчас жить хорошо?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+
+ {
+ name: "q12",
+ text: "Чувствуете ли Вы себя в данный момент ненужным?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q13",
+ text: "Ощущаете ли Вы себя полным энергии?",
+ options: [
+ { label: "Нет", value: 1 },
+ { label: "Да", value: 0 },
+ ],
+ },
+ {
+ name: "q14",
+ text: "Есть ли у Вас ощущение, что Ваше положение безнадежно?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q15",
+ text: "Считаете ли Вы, что большинству людей живется лучше, чем Вам?",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ ],
+};
diff --git a/src/calcs/gds/ui.tsx b/src/calcs/gds/ui.tsx
new file mode 100644
index 0000000..421fba3
--- /dev/null
+++ b/src/calcs/gds/ui.tsx
@@ -0,0 +1,92 @@
+import React, { useEffect, useState } from "react";
+import { View, ScrollView } from "react-native";
+
+import { SegmentContainer } from "../../components/segmentContainer";
+import { Input, Question } from "./domain";
+import { questions } from "./questions";
+import { calculateGDSScore } from "./api";
+
+const CalcScreen: React.FC = ({
+ handleResult,
+ handleResetClick,
+ lang,
+}: any) => {
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ q1: null,
+ q2: null,
+ q3: null,
+ q4: null,
+ q5: null,
+ q6: null,
+ q7: null,
+ q8: null,
+ q9: null,
+ q10: null,
+ q11: null,
+ q12: null,
+ q13: null,
+ q14: null,
+ q15: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // List of questions
+ const localQuestions: Question[] = questions[lang];
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateGDSScore(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+
+ {localQuestions.map((question) => (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ />
+ ))}
+
+
+
+ );
+};
+
+export default CalcScreen;
diff --git a/src/calcs/gds/variants.ts b/src/calcs/gds/variants.ts
new file mode 100644
index 0000000..d7acbb1
--- /dev/null
+++ b/src/calcs/gds/variants.ts
@@ -0,0 +1,23 @@
+import { Variants } from "./domain";
+export const variants: Variants = {
+ en: {
+ "no depression": {
+ title: "Low risk",
+ description: "",
+ },
+ depression: {
+ title: "Intermediate risk",
+ description: "",
+ },
+ },
+ ru: {
+ "no depression": {
+ title: "Нет признаков депресии",
+ description: "",
+ },
+ depression: {
+ title: "Обнаруживаются признаки депресии",
+ description: "",
+ },
+ },
+};
diff --git a/src/calcs/gfr/README.md b/src/calcs/gfr/README.md
new file mode 100644
index 0000000..9be937f
--- /dev/null
+++ b/src/calcs/gfr/README.md
@@ -0,0 +1,73 @@
+**Скорость клубочковой фильтрации**
+https://evidence-neurology.ru/medical-calculators/hemorrhage/skf-creatinine-clearance/
+
+```
+function Calculator(){
+ var error = false;
+ // Sex
+ var sex = '';
+ $('div.calculator.calc_2 div.item.sex input[name=sex]').each(function(){
+ if ($(this).prop('checked')){sex = $(this).attr('value');};
+ });
+ if (sex == ''){$('div.calculator.calc_2 div.item.sex').addClass('error'); error = true;};
+ // Creatinine
+ var creatinine = parseInt($('div.calculator.calc_2 div.item.creatinine input[name=creatinine]').val());
+ var creatinineunits = $('div.calculator.calc_2 div.item.creatinine input[name=creatinineunits]').val();
+ if (!creatinine||(creatinineunits == '')){$('div.calculator.calc_2 div.item.creatinine').addClass('error'); error = true;};
+ // Age
+ var age = parseInt($('div.calculator.calc_2 div.item.age input[name=age]').val());
+ if (!age||(age == 0)){$('div.calculator.calc_2 div.item.age').addClass('error'); error = true;};
+ // Weight
+ var weight = parseInt($('div.calculator.calc_2 div.item.weight input[name=weight]').val());
+ if (!weight||(weight == 0)){$('div.calculator.calc_2 div.item.weight').addClass('error'); error = true;};
+ // Height
+ var height = parseInt($('div.calculator.calc_2 div.item.height input[name=height]').val());
+ if (!height||(height == 0)){$('div.calculator.calc_2 div.item.height').addClass('error'); error = true;};
+
+ if (!error){
+ if (sex == 'M'){sex = 1;} else {sex = 0.742;};
+ if (creatinine == 0){creatinine = 0.1;};
+ if (creatinineunits == 'mkmol-l'){creatinine_1 = creatinine/88.4;} else {creatinine_1 = creatinine; creatinine = creatinine*88.4;};
+ var result_mdrd = ''; var result_cg = ''; var result_ckdepi = ''; var result_total = ''; var result_total_color = '';
+ // MDRD
+ var MDRD = 1;
+ MDRD = 186 * sex * Math.pow(creatinine_1,-1.154);
+ MDRD = MDRD * Math.pow(age,-0.203);
+ if (MDRD > 60) {result_mdrd = 'MDRD: > 60 мл/мин / 1,73 кв.м';} else {result_mdrd = 'MDRD: ' + Math.round(MDRD) + ' мл/мин / 1,73 кв.м';};
+ // CG and CKDEPI
+ var CG = (140 - age);
+ CG = CG * weight / creatinine;
+ if (sex == 1){
+ CG = CG * 1.23; A = 141; B = 0.9; if (creatinine > 80){P = -1.209;} else {P = -0.411;};
+ } else {
+ A = 144; B = 0.7; if (creatinine > 62){P = -1.209;} else {P = -0.329;};
+ };
+ var CKDEPI = A*Math.pow((creatinine_1/B),P)*Math.pow(0.993,age);
+ result_cg = 'Кокрофт-Голт: ' + Math.round(CG) + ' мл/мин';
+ result_ckdepi = 'CKD-EPI: ' + Math.round(CKDEPI) + ' мл/мин / 1,73 кв.м';
+ // normalize CG
+ // BSA, Dubois
+ var BSA = 0.007184 * Math.pow(height,0.725) * Math.pow(weight,0.425);
+ BSA = BSA * 100;
+ BSA = Math.round(BSA);
+ BSA = BSA/100;
+ if (BSA > 0){
+ CGn = CG * 1.73 / BSA;
+ result_cg = 'Кокрофт-Голт: ' + Math.round(CG) + ' мл/мин (' + Math.round(CGn) + ' мл/мин / 1,73 кв.м)';
+ };
+ // RESULT
+ if (MDRD > 60){eGFR = CKDEPI;} else {eGFR = MDRD;};
+ if (eGFR >= 90){result_total = 'Нормальная или повышенная СКФ.';}
+ else if (eGFR >= 60){result_total = 'Начальное снижение СКФ.';}
+ else if (eGFR >= 30){result_total = 'Умеренное снижение СКФ — III стадия ХБП.';}
+ else if (eGFR >= 15){result_total = 'Выраженное снижение СКФ — IV стадия ХБП.';}
+ else {result_total = 'Терминальная почечная недостаточность — V стадия ХБП.';};
+
+ var text = result_ckdepi + '
' + result_mdrd + '
' + result_cg + '
' + result_total + '';
+ $('div.calculator.calc_2 div.result div.text').remove();
+ if (text != ''){$('div.calculator.calc_2 div.result').prepend(''+text+'
');};
+ $('div.calculator.calc_2 div.result').removeClass('hidden');
+ };
+ return false;
+};
+```
diff --git a/src/calcs/gfr/api.ts b/src/calcs/gfr/api.ts
new file mode 100644
index 0000000..e02fbbf
--- /dev/null
+++ b/src/calcs/gfr/api.ts
@@ -0,0 +1,102 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calculateBodySurfaceArea(weightKg: number, heightCm: number): number {
+ const heightM = heightCm / 100; // Convert height to meters
+ return Math.sqrt((weightKg * heightM) / 3600);
+}
+
+function calculateGlomerularFiltrationRate(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ console.log("Input is not sufficient to do calculations, received input:");
+ console.log(input);
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ const { age, creatinine, gender, height, weight } = input;
+
+ let alpha, Sex, kappa;
+ if (gender === 1) {
+ // Male
+ Sex = 1;
+ alpha = -0.411;
+ kappa = 0.9;
+ } else {
+ // Female
+ Sex = 1.018;
+ alpha = -0.329;
+ kappa = 0.7;
+ }
+
+ const creatinineUMolL = Number(creatinine) * 88.4;
+
+ const eGFR =
+ 141 *
+ Math.min(creatinineUMolL / kappa, 1) *
+ Math.pow(creatinineUMolL / kappa, alpha) *
+ Math.pow(0.993, Number(age)) *
+ Sex *
+ calculateBodySurfaceArea(weight as number, height as number);
+
+ const score = eGFR / 1.73;
+
+ let result = "";
+ if (score >= 90) {
+ result = "Normal";
+ } else if (score >= 60) {
+ result = "Initially impaired";
+ } else if (score >= 30) {
+ result = "Moderately impaired";
+ } else if (score >= 15) {
+ result = "Severely impaired";
+ } else {
+ result = "Terminally impaired";
+ }
+
+ const variant = variants[prefs.language][result];
+ const title = variant.title;
+ const description = variant.description;
+
+ let scoreUnit = "";
+ switch (prefs.language) {
+ case "en":
+ scoreUnit = en.scoreUnit;
+ break;
+ case "ru":
+ scoreUnit = ru.scoreUnit;
+ break;
+ default:
+ scoreUnit = en.scoreUnit;
+ }
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score: Number(eGFR.toFixed(2)),
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+export { calculateGlomerularFiltrationRate };
diff --git a/src/calcs/gfr/domain.ts b/src/calcs/gfr/domain.ts
new file mode 100644
index 0000000..01d607a
--- /dev/null
+++ b/src/calcs/gfr/domain.ts
@@ -0,0 +1,29 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ gender: number | null;
+ age: number | null;
+ weight: number | null;
+ height: number | null;
+ creatinine: number | null;
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/gfr/i18n/en.json b/src/calcs/gfr/i18n/en.json
new file mode 100644
index 0000000..e2e0878
--- /dev/null
+++ b/src/calcs/gfr/i18n/en.json
@@ -0,0 +1,14 @@
+{
+ "age": "Age",
+ "ageUnit": "years",
+ "gender": "Gender",
+ "male": "Male",
+ "female": "Female",
+ "height": "Height",
+ "heightUnit": "cm",
+ "weight": "Weight",
+ "weightUnit": "kg",
+ "creatinine": "Creatinine",
+ "creatinineUnit": "µmol/L",
+ "scoreUnit": "mL/min/1.73m2"
+}
diff --git a/src/calcs/gfr/i18n/ru.json b/src/calcs/gfr/i18n/ru.json
new file mode 100644
index 0000000..ed0bcad
--- /dev/null
+++ b/src/calcs/gfr/i18n/ru.json
@@ -0,0 +1,14 @@
+{
+ "age": "Возраст",
+ "ageUnit": "лет",
+ "gender": "Пол",
+ "male": "Мужской",
+ "female": "Женский",
+ "height": "Рост",
+ "heightUnit": "см",
+ "weight": "Вес",
+ "weightUnit": "кг",
+ "creatinine": "Креатинин",
+ "creatinineUnit": "мкмоль/л",
+ "scoreUnit": "мл/мин"
+}
diff --git a/src/calcs/gfr/ui.tsx b/src/calcs/gfr/ui.tsx
new file mode 100644
index 0000000..5bdbfce
--- /dev/null
+++ b/src/calcs/gfr/ui.tsx
@@ -0,0 +1,140 @@
+import React, { useEffect, useState } from "react";
+import { useTranslation } from "react-i18next";
+import { View, ScrollView } from "react-native";
+
+import { NumericContainer } from "../../components/numericContainer";
+import { SegmentContainer } from "../../components/segmentContainer";
+import i18n from "../../i18n/i18n";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+import { Input, Result } from "./domain";
+import { calculateGlomerularFiltrationRate } from "./api";
+
+i18n.addResourceBundle("en", "CreatinineClearance", en);
+i18n.addResourceBundle("ru", "CreatinineClearance", ru);
+
+const GlomerularFiltrationRate: React.FC = ({
+ handleResult,
+ handleResetClick,
+ lang,
+}: any) => {
+ const { t } = useTranslation("CreatinineClearance");
+
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ gender: null,
+ age: null,
+ height: null,
+ weight: null,
+ creatinine: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateGlomerularFiltrationRate(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+ {
+ handleInputChange("gender", value);
+ }}
+ resetBy="null"
+ />
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange("age", value);
+ }}
+ type={"absint"}
+ suffix={t("ageUnit")}
+ />
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange("weight", value);
+ }}
+ type={"absint"}
+ suffix={t("weightUnit")}
+ />
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange("height", value);
+ }}
+ type={"absint"}
+ suffix={t("heightUnit")}
+ />
+ {
+ if (parseInt(value) <= 0) {
+ return;
+ }
+ handleInputChange("creatinine", value);
+ }}
+ type={"float"}
+ suffix={t("creatinineUnit")}
+ />
+
+
+ );
+};
+
+export { GlomerularFiltrationRate };
diff --git a/src/calcs/gfr/variants.ts b/src/calcs/gfr/variants.ts
new file mode 100644
index 0000000..6da1e51
--- /dev/null
+++ b/src/calcs/gfr/variants.ts
@@ -0,0 +1,48 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ Normal: {
+ title: "Normal or Elevated GFR",
+ description: "",
+ },
+ "Initially impaired": {
+ title: "Mildly decline in GFR",
+ description: "",
+ },
+ "Moderately impaired": {
+ title: "Moderate GFR Decrease",
+ description: "",
+ },
+ "Severely impaired": {
+ title: "Severe decline in GFR",
+ description: "",
+ },
+ "Terminally impaired": {
+ title: "Terminal Renal Failure",
+ description: "",
+ },
+ },
+ ru: {
+ Normal: {
+ title: "Нормальная или повышенная СКФ",
+ description: "",
+ },
+ "Initially impaired": {
+ title: "Начальное снижение СКФ",
+ description: "",
+ },
+ "Moderately impaired": {
+ title: "Умеренное снижение СКФ — III стадия ХБП",
+ description: "",
+ },
+ "Severely impaired": {
+ title: "Выраженное снижение СКФ — IV стадия ХБП",
+ description: "",
+ },
+ "Terminally impaired": {
+ title: "Терминальная почечная недостаточность — V стадия ХБП",
+ description: "",
+ },
+ },
+};
diff --git a/src/calcs/gs-pe/README.md b/src/calcs/gs-pe/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/src/calcs/gs-pe/api.ts b/src/calcs/gs-pe/api.ts
new file mode 100644
index 0000000..9a46fd8
--- /dev/null
+++ b/src/calcs/gs-pe/api.ts
@@ -0,0 +1,86 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calculateGspeScore(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ let score =
+ Number(input.q1) +
+ Number(input.q2) +
+ Number(input.q3) +
+ Number(input.q4) +
+ Number(input.q5) +
+ Number(input.q6) +
+ Number(input.q7) +
+ Number(input.q8);
+
+ let result;
+ if (score < 4) {
+ result = "Low Probability";
+ } else if (score < 11) {
+ result = "Intermediate probability";
+ } else {
+ result = "High probability";
+ }
+
+ let scoreUnit = "";
+ let selectedTranslation = {};
+ switch (prefs.language) {
+ case "en":
+ selectedTranslation = en;
+ break;
+ case "ru":
+ selectedTranslation = ru;
+ break;
+ default:
+ selectedTranslation = en;
+ }
+ scoreUnit = getScoreText(score, selectedTranslation);
+
+ let variant = variants[prefs.language][result];
+ let title = variant.title;
+ let description = variant.description;
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score,
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+function getScoreText(score: number, lang: any) {
+ if (score === 1) {
+ return `${lang.scoreUnit}`;
+ } else if (score >= 2 && score <= 4) {
+ return `${lang.scoreGenitiveSingular}`;
+ } else {
+ return `${lang.scoreGenitivePlural}`;
+ }
+}
+
+export { calculateGspeScore };
diff --git a/src/calcs/gs-pe/domain.ts b/src/calcs/gs-pe/domain.ts
new file mode 100644
index 0000000..1e1e825
--- /dev/null
+++ b/src/calcs/gs-pe/domain.ts
@@ -0,0 +1,46 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ q1: number | null;
+ q2: number | null;
+ q3: number | null;
+ q4: number | null;
+ q5: number | null;
+ q6: number | null;
+ q7: number | null;
+ q8: number | null;
+}
+
+export interface Question {
+ name: string;
+ text: string;
+ options: {
+ label: string;
+ value: number;
+ score?: string;
+ }[];
+}
+
+export interface Questions {
+ [language: string]: Question[];
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/gs-pe/i18n/en.json b/src/calcs/gs-pe/i18n/en.json
new file mode 100644
index 0000000..62b1bd0
--- /dev/null
+++ b/src/calcs/gs-pe/i18n/en.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "point",
+ "scoreGenitiveSingular": "points",
+ "scoreGenitivePlural": "points"
+}
diff --git a/src/calcs/gs-pe/i18n/ru.json b/src/calcs/gs-pe/i18n/ru.json
new file mode 100644
index 0000000..098d185
--- /dev/null
+++ b/src/calcs/gs-pe/i18n/ru.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "балл",
+ "scoreGenitiveSingular": "балла",
+ "scoreGenitivePlural": "баллов"
+}
diff --git a/src/calcs/gs-pe/questions.ts b/src/calcs/gs-pe/questions.ts
new file mode 100644
index 0000000..fd1e908
--- /dev/null
+++ b/src/calcs/gs-pe/questions.ts
@@ -0,0 +1,138 @@
+import { Questions } from "./domain";
+
+export const questions: Questions = {
+ en: [
+ {
+ name: "q1",
+ text: "Age above 65",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "Previous DVT or PE",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 3 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Surgery (under general anesthesia) or lower limb fracture in past month",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 2 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Active malignant condition",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 2 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Unilateral lower limb pain",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 3 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Hemoptysis",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 2 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Heart rate",
+ options: [
+ { label: "<75", value: 0 },
+ { label: "75-94", value: 3 },
+ { label: "≥94", value: 5 },
+ ],
+ },
+ {
+ name: "q8",
+ text: "Pain on lower limb palpation and unilateral edema",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 4 },
+ ],
+ },
+ ],
+ ru: [
+ {
+ name: "q1",
+ text: "Возраст >65 лет",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "Предыдущие случаи ТЭЛА или ТГВ",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 3 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Хирургическое вмешательство или переломы течение последнего месяца",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 2 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Злокачественное новообразование (солидная опухоль или гематологическое злокачественное заболевание, активное или вылеченное в настоящее время <1 года)",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 2 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Боль в одной нижней конечности",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 3 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Кровохарканье",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 2 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Частота сердечных сокращений (уд/мин)",
+ options: [
+ { label: "<75", value: 0 },
+ { label: "75-94", value: 3 },
+ { label: "≥94", value: 5 },
+ ],
+ },
+ {
+ name: "q8",
+ text: "Боль при пальпации глубоких вен нижней конечности и отеки одной нижней конечности",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 4 },
+ ],
+ },
+ ],
+};
diff --git a/src/calcs/gs-pe/ui.tsx b/src/calcs/gs-pe/ui.tsx
new file mode 100644
index 0000000..c405684
--- /dev/null
+++ b/src/calcs/gs-pe/ui.tsx
@@ -0,0 +1,85 @@
+import React, { useEffect, useState } from "react";
+import { View, ScrollView } from "react-native";
+
+import { SegmentContainer } from "../../components/segmentContainer";
+import { questions } from "./questions";
+import { calculateGspeScore } from "./api";
+import { Input, Question } from "./domain";
+
+const CalcScreen: React.FC = ({
+ handleResult,
+ handleResetClick,
+ lang,
+}: any) => {
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ q1: null,
+ q2: null,
+ q3: null,
+ q4: null,
+ q5: null,
+ q6: null,
+ q7: null,
+ q8: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // List of questions
+ const localQuestions: Question[] = questions[lang];
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateGspeScore(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+
+ {localQuestions.map((question) => (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ />
+ ))}
+
+
+
+ );
+};
+
+export default CalcScreen;
diff --git a/src/calcs/gs-pe/variants.ts b/src/calcs/gs-pe/variants.ts
new file mode 100644
index 0000000..6cab887
--- /dev/null
+++ b/src/calcs/gs-pe/variants.ts
@@ -0,0 +1,34 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ "Low Probability": {
+ title: "Low Probability",
+ description: "The patient is considered low risk (Score 0-3), <10% incidence of PE.",
+ },
+ "Intermediate probability": {
+ title: "Intermediate probability",
+ description: "The patient is considered intermediate risk (Score 4-10).\n\nIf d-dimer testing is negative, consider stopping workup.\nIf d-dimer testing is positive, consider CT and US.\nIf CT is inconclusive, consider V/Q scan or angiography.",
+ },
+ "High probability": {
+ title: "High probability",
+ description: "If the patient is considered high risk (score 11+, >60% incidence of PE), consider CT and US.\n\nIf imaging is negative consider angiography.",
+ },
+ },
+ ru: {
+ "Low Probability": {
+ title: "Низкая вероятность",
+ description:
+ "Проведите анализ крови на Д-димер:\n\n-если D-димер отрицательный, рассмотрите возможность прекращения исследования,\n-если D-димер положительный, показано проведение КТ-ангиопульмонографии",
+ },
+ "Intermediate probability": {
+ title: "Промежуточная вероятность",
+ description:
+ "Проведите анализ крови на Д-димер:\n-если D-димер отрицательный, рассмотрите возможность прекращения исследования,\n-если D-димер положительный, показано проведение КТ-ангиопульмонографии",
+ },
+ "High probability": {
+ title: "Высокая вероятность",
+ description: "Показано проведение КТ-ангиопульмонографии",
+ },
+ },
+};
diff --git a/src/calcs/hba1c/api.ts b/src/calcs/hba1c/api.ts
new file mode 100644
index 0000000..6deca5c
--- /dev/null
+++ b/src/calcs/hba1c/api.ts
@@ -0,0 +1,70 @@
+interface Input {
+ hba1c: number;
+}
+
+interface Variant {
+ title: string;
+ description: string;
+}
+
+interface Result {
+ value: number;
+ interpretation: Variant;
+ date: Date;
+ id: string;
+}
+
+interface Variants {
+ [key: string]: Variant;
+}
+
+function calculate(input: Input): Result {
+ const eag = (28.7 * input.hba1c - 46.7).toFixed(0);
+ const interpretation = getInterpretation(input.hba1c);
+
+ return {
+ value: parseFloat(eag),
+ interpretation,
+ date: new Date(),
+ id: Math.random().toString(36).substr(2, 9),
+ };
+}
+
+function getInterpretation(hba1c: number): Variant {
+ const variants: Variants = {
+ normal: {
+ title: "Normal",
+ description: "Less than 5.7%",
+ },
+ prediabetes: {
+ title: "Prediabetes",
+ description: "5.7% to 6.4%",
+ },
+ diabetes: {
+ title: "Diabetes",
+ description: "6.5% or higher",
+ },
+ };
+
+ if (hba1c < 5.7) {
+ return variants.normal;
+ } else if (hba1c >= 5.7 && hba1c < 6.5) {
+ return variants.prediabetes;
+ } else {
+ return variants.diabetes;
+ }
+}
+
+// Example usage:
+const input: Input = {
+ hba1c: 7.2,
+};
+
+const result: Result = calculate(input);
+
+console.log(`Estimated Average Glucose (EAG): ${result.value}`);
+console.log(
+ `Interpretation: ${result.interpretation.title} - ${result.interpretation.description}`
+);
+console.log(`Date: ${result.date}`);
+console.log(`ID: ${result.id}`);
diff --git a/src/calcs/hba1c/i18n/en.json b/src/calcs/hba1c/i18n/en.json
new file mode 100644
index 0000000..017a18a
--- /dev/null
+++ b/src/calcs/hba1c/i18n/en.json
@@ -0,0 +1,17 @@
+{
+ "ageAbove65": "Age > 65",
+ "gender": "Gender",
+ "male": "Male",
+ "female": "Female",
+ "recentSurgeryOrFracture": "Recent Surgery or Fracture",
+ "activeCancer": "Active Cancer",
+ "unilateralLowerLimbPain": "Unilateral Lower Limb Pain",
+ "unilateralLowerLimbSwelling": "Unilateral Lower Limb Swelling",
+ "hemoptysis": "Hemoptysis",
+ "heartRate": "Heart Rate (beats per minute)",
+ "systolicBloodPressure": "Systolic Blood Pressure (mmHg)",
+ "painOnDeepPalpationOfLowerLimbVeins": "Pain on Deep Palpation of Lower Limb Veins",
+ "previousDVTOrPE": "Previous DVT or PE",
+ "yes": "Yes",
+ "no": "No"
+}
diff --git a/src/calcs/hba1c/i18n/ru.json b/src/calcs/hba1c/i18n/ru.json
new file mode 100644
index 0000000..12454ae
--- /dev/null
+++ b/src/calcs/hba1c/i18n/ru.json
@@ -0,0 +1,17 @@
+{
+ "ageAbove65": "Возраст > 65 лет",
+ "sex": "Пол",
+ "male": "Мужской",
+ "female": "Женский",
+ "recentSurgeryOrFracture": "Недавняя операция или перелом",
+ "activeCancer": "Активный рак",
+ "unilateralLowerLimbPain": "Односторонняя боль в нижних конечностях",
+ "unilateralLowerLimbSwelling": "Одностороннее отекание нижней конечности",
+ "hemoptysis": "Кровохарканье",
+ "heartRate": "Частота сердечных сокращений",
+ "systolicBloodPressure": "Систолическое давление",
+ "painOnDeepPalpationOfLowerLimbVeins": "Боль при глубокой пальпации вен нижних конечностей",
+ "previousDVTOrPE": "Ранее перенесенный ТЭЛА или ЛЖТ",
+ "yes": "Да",
+ "no": "Нет"
+}
diff --git a/src/calcs/hba1c/ui.tsx b/src/calcs/hba1c/ui.tsx
new file mode 100644
index 0000000..12446c8
--- /dev/null
+++ b/src/calcs/hba1c/ui.tsx
@@ -0,0 +1,16 @@
+import React from "react";
+import { ScrollView, View } from "react-native";
+
+import { Text } from "react-native-paper";
+
+const CalcScreen: React.FC = () => {
+ return (
+
+
+ Not implemented
+
+
+ );
+};
+
+export default CalcScreen;
diff --git a/src/calcs/heart/api.ts b/src/calcs/heart/api.ts
new file mode 100644
index 0000000..827615f
--- /dev/null
+++ b/src/calcs/heart/api.ts
@@ -0,0 +1,83 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calculateHeartScore(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ let score =
+ Number(input.q1) +
+ Number(input.q2) +
+ Number(input.q3) +
+ Number(input.q4) +
+ Number(input.q5);
+
+ let result;
+ if (score < 4) {
+ result = "low";
+ } else if (score < 7) {
+ result = "moderate";
+ } else {
+ result = "high";
+ }
+
+ let scoreUnit = "";
+ let selectedTranslation = {};
+ switch (prefs.language) {
+ case "en":
+ selectedTranslation = en;
+ break;
+ case "ru":
+ selectedTranslation = ru;
+ break;
+ default:
+ selectedTranslation = en;
+ }
+ scoreUnit = getScoreText(score, selectedTranslation);
+
+ const variant = variants[prefs.language][result];
+ const title = variant.title;
+ const description = variant.description;
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score,
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+function getScoreText(score: number, lang: any) {
+ if (score === 1) {
+ return `${lang.scoreUnit}`;
+ } else if (score >= 2 && score <= 4) {
+ return `${lang.scoreGenitiveSingular}`;
+ } else {
+ return `${lang.scoreGenitivePlural}`;
+ }
+}
+
+export { calculateHeartScore };
diff --git a/src/calcs/heart/domain.ts b/src/calcs/heart/domain.ts
new file mode 100644
index 0000000..49fb13b
--- /dev/null
+++ b/src/calcs/heart/domain.ts
@@ -0,0 +1,44 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ q1: number | null;
+ q2: number | null;
+ q3: number | null;
+ q4: number | null;
+ q5: number | null;
+}
+
+export interface Question {
+ name: string;
+ text: string;
+ comment: string;
+ options: {
+ label: string;
+ value: number;
+ score?: string;
+ }[];
+}
+
+export interface Questions {
+ [language: string]: Question[];
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/heart/i18n/en.json b/src/calcs/heart/i18n/en.json
new file mode 100644
index 0000000..62b1bd0
--- /dev/null
+++ b/src/calcs/heart/i18n/en.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "point",
+ "scoreGenitiveSingular": "points",
+ "scoreGenitivePlural": "points"
+}
diff --git a/src/calcs/heart/i18n/ru.json b/src/calcs/heart/i18n/ru.json
new file mode 100644
index 0000000..098d185
--- /dev/null
+++ b/src/calcs/heart/i18n/ru.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "балл",
+ "scoreGenitiveSingular": "балла",
+ "scoreGenitivePlural": "баллов"
+}
diff --git a/src/calcs/heart/questions.ts b/src/calcs/heart/questions.ts
new file mode 100644
index 0000000..352f9b8
--- /dev/null
+++ b/src/calcs/heart/questions.ts
@@ -0,0 +1,122 @@
+import { Questions } from "./domain";
+
+export const questions: Questions = {
+ en: [
+ {
+ name: "q1",
+ text: "History?",
+ comment: "",
+ options: [
+ { label: "Slightly suspicious", value: 0 },
+ { label: "Moderately suspicious", value: 1 },
+ { label: "Highly suspicious", value: 2 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "EKG",
+ comment:
+ "1 point: No ST deviation but LBBB, LVH, repolarization changes (e.g. digoxin); 2 points: ST deviation not due to LBBB, LVH, or digoxin",
+ options: [
+ { label: "Normal", value: 0 },
+ { label: "Non-specific repolarization disturbance", value: 1 },
+ { label: "Significant ST deviation", value: 2 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Age",
+ comment: "",
+ options: [
+ { label: "<45", value: 0 },
+ { label: "45-64", value: 1 },
+ { label: "≥65", value: 2 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Risk factors",
+ comment:
+ "Risk factors: HTN, hypercholesterolemia, DM, obesity (BMI >30 kg/m²), smoking (current, or smoking cessation ≤3 mo), positive family history (parent or sibling with CVD before age 65); atherosclerotic disease: prior MI, PCI/CABG, CVA/TIA, or peripheral arterial disease",
+ options: [
+ { label: "No known risk factors", value: 0 },
+ { label: "1-2 risk factors", value: 1 },
+ {
+ label: "≥3 risk factors or history of atherosclerotic disease",
+ value: 2,
+ },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Initial troponin",
+ comment: "",
+ options: [
+ { label: "≤normal limit", value: 0 },
+ { label: "1–3× normal limit", value: 1 },
+ { label: ">3× normal limit", value: 2 },
+ ],
+ },
+ ],
+ ru: [
+ {
+ name: "q1",
+ text: "Анамнез",
+ comment:
+ "Например, загрудинная боль, давящие боли, иррадиация в челюсти/левое плечо/руки, продолжительностью 5–15 мин, инициированная физическими нагрузками/холодом/эмоциями, сопровождающаяся потоотделением, тошнотой/рвотой, реакция на нитраты в течение нескольких минут, пациент ощущает симптомы. Признаки боли в груди низкого риска включают: хорошо локализованную, острую, без нагрузки, без потоотделения, без тошноты или рвоты и воспроизводимые при пальпации",
+ options: [
+ { label: "Небольшое подозрение", value: 0 },
+ { label: "Умеренное подозрение", value: 1 },
+ { label: "Высокое подозрение", value: 2 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "ЭКГ",
+ comment:
+ "1 балл: нет отклонения сегмента ST, но есть БЛНПГ, ГЛЖ, изменения реполяризации (например, дигоксин); 2 балла: отклонение ST не связано с БЛНПГ, ГЛЖ или дигоксином",
+ options: [
+ { label: "Норма", value: 0 },
+ {
+ label: "Неспецифическое нарушение реполяризации",
+ value: 1,
+ },
+ { label: "Значительное отклонение сегмента ST", value: 2 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Возраст",
+ comment: "",
+ options: [
+ { label: "<45", value: 0 },
+ { label: "45-64", value: 1 },
+ { label: "≥65", value: 2 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Факторы риска",
+ comment:
+ "гипертония, гиперхолестеринемия, СД, ожирение (ИМТ >30 кг/м²), курение (в настоящее время или отказ от курения ≤3 мес.), положительный семейный анамнез (родитель, или брат или сестра с ССЗ до 65 лет); атеросклеротическое заболевание: перенесенный ИМ, ЧКВ/АКШ, цереброваскулярное нарушение/ТИА или заболевание периферических артерий",
+ options: [
+ { label: "Нет установленных факторов риска", value: 0 },
+ { label: "1-2 фактора риска", value: 1 },
+ {
+ label: "≥3 факторов риска или наличие атеросклеротического заболевания в анамнезе",
+ value: 2,
+ },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Исходный тропонин",
+ comment: "",
+ options: [
+ { label: "≤нормальных значений", value: 0 },
+ { label: "1–3× предела нормальных значений", value: 1 },
+ { label: ">3× пределов нормальных значений", value: 2 },
+ ],
+ },
+ ],
+};
diff --git a/src/calcs/heart/ui.tsx b/src/calcs/heart/ui.tsx
new file mode 100644
index 0000000..592d746
--- /dev/null
+++ b/src/calcs/heart/ui.tsx
@@ -0,0 +1,82 @@
+import React, { useEffect, useState } from "react";
+import { View, ScrollView } from "react-native";
+import { SegmentContainer } from "../../components/segmentContainer";
+import { Input, Question } from "./domain";
+import { questions } from "./questions";
+import { calculateHeartScore } from "./api";
+
+const HEARTScore: React.FC = ({
+ handleResult,
+ handleResetClick,
+ lang,
+}: any) => {
+ // Initialize empty input state
+ const emptyInput = (): Input => {
+ return {
+ q1: null,
+ q2: null,
+ q3: null,
+ q4: null,
+ q5: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // List of questions
+ const localQuestions: Question[] = questions[lang];
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateHeartScore(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+
+ {localQuestions.map((question) => (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ />
+ ))}
+
+
+
+ );
+};
+
+export { HEARTScore };
diff --git a/src/calcs/heart/variants.ts b/src/calcs/heart/variants.ts
new file mode 100644
index 0000000..289f50c
--- /dev/null
+++ b/src/calcs/heart/variants.ts
@@ -0,0 +1,35 @@
+import { Variants } from "./domain";
+export const variants: Variants = {
+ en: {
+ low: {
+ title: "Low Score (0-3 points)",
+ description: "Risk of MACE of 0.9-1.7%.",
+ },
+ moderate: {
+ title: "Moderate Score (4-6 points)",
+ description:
+ "Risk of MACE of 12-16.6%.\n\nIf troponin is positive, many experts recommend further workup and admission even with a low HEART Score.",
+ },
+ high: {
+ title: "High Score (7-10 points)",
+ description: "Risk of MACE of 50-65%.",
+ },
+ },
+ ru: {
+ low: {
+ title: "Риск 0,9–1,7%",
+ description:
+ "Риск неблагоприятного кардиального события 0,9–1,7%\n\nВ исследовании оценки HEART эти пациенты были выписаны (0,99% в ретроспективном исследовании, 1,7% в проспективном исследовании)",
+ },
+ moderate: {
+ title: "Риск 12–16,6%",
+ description:
+ "Риск неблагоприятного кардиального события 12–16,6%\n\nВ исследовании оценки HEART эти пациенты были госпитализированы (11,6% ретроспективно, 16,6% проспективно)",
+ },
+ high: {
+ title: "Риск 50-65%",
+ description:
+ "Риск неблагоприятного кардиального события 50-65%\n\nВ исследовании оценки HEART эти пациенты были кандидатами на ранние инвазивные меры (65,2% ретроспективно, 50,1% проспективно)",
+ },
+ },
+};
diff --git a/src/calcs/phq-9/api.ts b/src/calcs/phq-9/api.ts
new file mode 100644
index 0000000..ed9b735
--- /dev/null
+++ b/src/calcs/phq-9/api.ts
@@ -0,0 +1,91 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calculatePhq9Score(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ let score =
+ Number(input.q1) +
+ Number(input.q2) +
+ Number(input.q3) +
+ Number(input.q4) +
+ Number(input.q5) +
+ Number(input.q6) +
+ Number(input.q7) +
+ Number(input.q8) +
+ Number(input.q9);
+
+ let result = "";
+ if (score <= 4) {
+ result = "0-4";
+ } else if (score <= 9) {
+ result = "5-9";
+ } else if (score <= 14) {
+ result = "10-14";
+ } else if (score <= 19) {
+ result = "15-19";
+ } else {
+ result = "20-27";
+ }
+
+ let scoreUnit = "";
+ let selectedTranslation = {};
+ switch (prefs.language) {
+ case "en":
+ selectedTranslation = en;
+ break;
+ case "ru":
+ selectedTranslation = ru;
+ break;
+ default:
+ selectedTranslation = en;
+ }
+ scoreUnit = getScoreText(score, selectedTranslation);
+
+ let variant = variants[prefs.language][result];
+ let title = variant.title;
+ let description = variant.description;
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score,
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+function getScoreText(score: number, lang: any) {
+ if (score === 1) {
+ return `${lang.scoreUnit}`;
+ } else if (score >= 2 && score <= 4) {
+ return `${lang.scoreGenitiveSingular}`;
+ } else {
+ return `${lang.scoreGenitivePlural}`;
+ }
+}
+
+export { calculatePhq9Score };
diff --git a/src/calcs/phq-9/domain.ts b/src/calcs/phq-9/domain.ts
new file mode 100644
index 0000000..d00cf06
--- /dev/null
+++ b/src/calcs/phq-9/domain.ts
@@ -0,0 +1,46 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ q1: number | null;
+ q2: number | null;
+ q3: number | null;
+ q4: number | null;
+ q5: number | null;
+ q6: number | null;
+ q7: number | null;
+ q8: number | null;
+ q9: number | null;
+}
+
+export interface Question {
+ name: string;
+ text: string;
+ options: {
+ label: string;
+ value: number;
+ }[];
+}
+
+export interface Questions {
+ [language: string]: Question[];
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/phq-9/i18n/en.json b/src/calcs/phq-9/i18n/en.json
new file mode 100644
index 0000000..62b1bd0
--- /dev/null
+++ b/src/calcs/phq-9/i18n/en.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "point",
+ "scoreGenitiveSingular": "points",
+ "scoreGenitivePlural": "points"
+}
diff --git a/src/calcs/phq-9/i18n/ru.json b/src/calcs/phq-9/i18n/ru.json
new file mode 100644
index 0000000..098d185
--- /dev/null
+++ b/src/calcs/phq-9/i18n/ru.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "балл",
+ "scoreGenitiveSingular": "балла",
+ "scoreGenitivePlural": "баллов"
+}
diff --git a/src/calcs/phq-9/questions.ts b/src/calcs/phq-9/questions.ts
new file mode 100644
index 0000000..158300c
--- /dev/null
+++ b/src/calcs/phq-9/questions.ts
@@ -0,0 +1,188 @@
+import { Questions } from "./domain";
+
+export const questions: Questions = {
+ en: [
+ {
+ name: "q1",
+ text: "Little interest or pleasure in doing things",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "Feeling down, depressed, or hopeless",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Trouble falling or staying asleep, or sleeping too much",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Feeling tired or having little energy",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Poor appetite or overeating",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Feeling bad about yourself — or that you are a failure or have let yourself or your family down",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Trouble concentrating on things, such as reading the newspaper or watching television",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q8",
+ text: "Moving or speaking so slowly that other people could have noticed? Or the opposite — being so fidgety or restless that you have been moving around a lot more than usual",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ {
+ name: "q9",
+ text: "Thoughts that you would be better off dead, or of hurting yourself",
+ options: [
+ { label: "Not at all", value: 0 },
+ { label: "Several days", value: 1 },
+ { label: "More than half the days", value: 2 },
+ { label: "Nearly every day", value: 3 },
+ ],
+ },
+ ],
+ ru: [
+ {
+ name: "q1",
+ text: "Вам не хотелось ничего делать",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Более недели", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "У вас было плохое настроение, вы были подавлены или испытывали чувство безысходности",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Более недели", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Вам было трудно заснуть, у вас был прерывистый сон, или Вы слишком много спали",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Более недели", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Вы были утомлены, или у вас было мало сил",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Более недели", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "У вас был плохой аппетит, или вы переедали",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Более недели", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Вы плохо о себе думали: считали себя неудачником(неудачницей), или были в себе разочарованы, или считали, что подвели свою семью",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Более недели", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Вам было трудно сосредоточиться (например, на чтении газеты или на просмотре телепередач)",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Более недели", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q8",
+ text: "Вы двигались или говорили настолько медленно, что окружающие это замечали? Или, наоборот, вы были настолько суетливы или взбудоражены, что двигались гораздо больше обычного",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Более недели", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ {
+ name: "q9",
+ text: "Вас посещали мысли о том, что Вам лучше было бы умереть, или о том, чтобы причинить себе какой-нибудь вред",
+ options: [
+ { label: "Никогда", value: 0 },
+ { label: "Несколько дней", value: 1 },
+ { label: "Более недели", value: 2 },
+ { label: "Почти каждый день", value: 3 },
+ ],
+ },
+ ],
+};
diff --git a/src/calcs/phq-9/ui.tsx b/src/calcs/phq-9/ui.tsx
new file mode 100644
index 0000000..d42dd22
--- /dev/null
+++ b/src/calcs/phq-9/ui.tsx
@@ -0,0 +1,86 @@
+import React, { useEffect, useState } from "react";
+import { View, ScrollView } from "react-native";
+
+import { SegmentContainer } from "../../components/segmentContainer";
+import { Input, Question } from "./domain";
+import { calculatePhq9Score } from "./api";
+import { questions } from "./questions";
+
+const CalcScreen: React.FC = ({
+ handleResult,
+ handleResetClick,
+ lang,
+}: any) => {
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ q1: null,
+ q2: null,
+ q3: null,
+ q4: null,
+ q5: null,
+ q6: null,
+ q7: null,
+ q8: null,
+ q9: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // List of questions
+ const localQuestions: Question[] = questions[lang];
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculatePhq9Score(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+
+ {localQuestions.map((question) => (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ />
+ ))}
+
+
+
+ );
+};
+
+export default CalcScreen;
diff --git a/src/calcs/phq-9/variants.ts b/src/calcs/phq-9/variants.ts
new file mode 100644
index 0000000..962d01d
--- /dev/null
+++ b/src/calcs/phq-9/variants.ts
@@ -0,0 +1,52 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ "0-4": {
+ title: "None or minimal depression",
+ description: "",
+ },
+ "5-9": {
+ title: "Mild depression",
+ description: "Repeat PHQ-9 at follow-up",
+ },
+ "10-14": {
+ title: "Moderate depression",
+ description:
+ "Make treatment plan, consider counseling, follow-up, and/or prescription drugs",
+ },
+ "15-19": {
+ title: "Moderately severe depression",
+ description: "Prescribe prescription drugs and counseling",
+ },
+ "20-27": {
+ title: "Severe depression",
+ description:
+ "Prescribe prescription drugs. If there are poor responses to treatment, immediately refer the patient to a mental health specialist for counseling.",
+ },
+ },
+ ru: {
+ "0-4": {
+ title: "Отсутствует-минимальный",
+ description: "",
+ },
+ "5-9": {
+ title: "Умеренная депрессия",
+ description: "Повтор PHQ-9 при последующем наблюдении",
+ },
+ "10-14": {
+ title: "Умеренная депрессия",
+ description:
+ "Составьте план лечения, подумайте о консультировании, последующем наблюдении и/или назначении лекарств",
+ },
+ "15-19": {
+ title: "Умеренно тяжелая депрессия",
+ description: "Назначать лекарства по рецепту и консультирование",
+ },
+ "20-27": {
+ title: "Тяжелая депрессия",
+ description:
+ "Назначайте лекарства, отпускаемые по рецепту. При плохой реакции на лечение немедленно направьте пациента к специалисту по психическому здоровью для консультации.",
+ },
+ },
+};
diff --git a/src/calcs/rcri/api.ts b/src/calcs/rcri/api.ts
new file mode 100644
index 0000000..a833af5
--- /dev/null
+++ b/src/calcs/rcri/api.ts
@@ -0,0 +1,86 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calculateRCRIScore(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ let score =
+ Number(input.q1) +
+ Number(input.q2) +
+ Number(input.q3) +
+ Number(input.q4) +
+ Number(input.q5) +
+ Number(input.q6);
+
+ let result: string;
+ if (score === 0) {
+ result = "low";
+ } else if (score === 1) {
+ result = "intermediate";
+ } else if (score === 2) {
+ result = "moderate";
+ } else {
+ result = "high";
+ }
+
+ let variant = variants[prefs.language][result];
+ let title = variant.title;
+ let description = variant.description;
+
+ let scoreUnit = "";
+ let selectedTranslation = {};
+ switch (prefs.language) {
+ case "en":
+ selectedTranslation = en;
+ break;
+ case "ru":
+ selectedTranslation = ru;
+ break;
+ default:
+ selectedTranslation = en;
+ }
+ scoreUnit = getScoreText(score, selectedTranslation);
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score,
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+function getScoreText(score: number, lang: any) {
+ if (score === 1) {
+ return `${lang.scoreUnit}`;
+ } else if (score >= 2 && score <= 4) {
+ return `${lang.scoreGenitiveSingular}`;
+ } else {
+ return `${lang.scoreGenitivePlural}`;
+ }
+}
+
+export { calculateRCRIScore };
diff --git a/src/calcs/rcri/domain.ts b/src/calcs/rcri/domain.ts
new file mode 100644
index 0000000..6fde568
--- /dev/null
+++ b/src/calcs/rcri/domain.ts
@@ -0,0 +1,44 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ q1: number | null;
+ q2: number | null;
+ q3: number | null;
+ q4: number | null;
+ q5: number | null;
+ q6: number | null;
+}
+
+export interface Question {
+ name: string;
+ text: string;
+ comment: string;
+ options: {
+ label: string;
+ value: number;
+ }[];
+}
+
+export interface Questions {
+ [language: string]: Question[];
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/rcri/i18n/en.json b/src/calcs/rcri/i18n/en.json
new file mode 100644
index 0000000..62b1bd0
--- /dev/null
+++ b/src/calcs/rcri/i18n/en.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "point",
+ "scoreGenitiveSingular": "points",
+ "scoreGenitivePlural": "points"
+}
diff --git a/src/calcs/rcri/i18n/ru.json b/src/calcs/rcri/i18n/ru.json
new file mode 100644
index 0000000..098d185
--- /dev/null
+++ b/src/calcs/rcri/i18n/ru.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "балл",
+ "scoreGenitiveSingular": "балла",
+ "scoreGenitivePlural": "баллов"
+}
diff --git a/src/calcs/rcri/questions.ts b/src/calcs/rcri/questions.ts
new file mode 100644
index 0000000..0ab9f6f
--- /dev/null
+++ b/src/calcs/rcri/questions.ts
@@ -0,0 +1,121 @@
+import { Questions } from "./domain";
+
+export const questions: Questions = {
+ en: [
+ {
+ name: "q1",
+ text: "Elevated-risk surgery",
+ comment: "Intraperitoneal; intrathoracic; suprainguinal vascular",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "History of ischemic heart disease",
+ comment:
+ "History of myocardial infarction (MI); history of positive exercise test; current chest pain considered due to myocardial ischemia; use of nitrate therapy or ECG with pathological Q waves",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "History of congestive heart failure",
+ comment:
+ "Pulmonary edema, bilateral rales or S3 gallop; paroxysmal nocturnal dyspnea; chest x-ray (CXR) showing pulmonary vascular redistribution",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "History of cerebrovascular disease",
+ comment: "Prior transient ischemic attack (TIA) or stroke",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Pre-operative treatment with insulin",
+ comment: "",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Pre-operative creatinine >2 mg/dL / 176.8 µmol/L",
+ comment: "",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ ],
+ ru: [
+ {
+ name: "q1",
+ text: "Хирургия повышенного риска",
+ comment: "Внутрибрюшная, внутригрудная, супраингвинальная операция",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "Анамнез ишемической болезни сердца",
+ comment:
+ "Положительный нагрузочный тест в анамнезе; наличие боли в груди в настоящее время, которая расценивается как следствие ишемии миокарда; применение нитратов или ЭКГ с патологическими зубцами Q",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Застойная сердечная недостаточность в анамнезе",
+ comment:
+ "Отек легких, двусторонние хрипы или ритм галопа S3; пароксизмальная ночная одышка; рентгенограмма грудной клетки (РГК), демонстрирующая перераспределение легочного рисунка",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Анамнез цереброваскулярных заболеваний",
+ comment:
+ "Перенесенная транзиторная ишемическая атака (ТИА) или инсульт в анамнезе",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Предоперационное лечение инсулином",
+ comment: "",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Предоперационный уровень креатинина > 2 мг/дл (> 176,8 мкмоль/л)",
+ comment: "",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ ],
+};
diff --git a/src/calcs/rcri/ui.tsx b/src/calcs/rcri/ui.tsx
new file mode 100644
index 0000000..8e1c490
--- /dev/null
+++ b/src/calcs/rcri/ui.tsx
@@ -0,0 +1,83 @@
+import React, { useEffect, useState } from "react";
+import { View, ScrollView } from "react-native";
+import { SegmentContainer } from "../../components/segmentContainer";
+import { Input, Question } from "./domain";
+import { questions } from "./questions";
+import { calculateRCRIScore } from "./api";
+
+const CardiacRisk: React.FC = ({
+ handleResult,
+ handleResetClick,
+ lang,
+}: any) => {
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ q1: null,
+ q2: null,
+ q3: null,
+ q4: null,
+ q5: null,
+ q6: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // List of questions
+ const localQuestions: Question[] = questions[lang];
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateRCRIScore(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+
+ return (
+
+
+
+ {localQuestions.map((question) => (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ />
+ ))}
+
+
+
+ );
+};
+
+export { CardiacRisk };
diff --git a/src/calcs/rcri/variants.ts b/src/calcs/rcri/variants.ts
new file mode 100644
index 0000000..59ace6f
--- /dev/null
+++ b/src/calcs/rcri/variants.ts
@@ -0,0 +1,48 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ low: {
+ title: "3.9% (2.8-5.4%)",
+ description:
+ "30-day risk of death, MI, or cardiac arrest: 3.9% (2.8-5.4%)",
+ },
+ intermediate: {
+ title: "6.0% (4.9-7.4%)",
+ description:
+ "30-day risk of death, MI, or cardiac arrest: 6.0% (4.9-7.4%)",
+ },
+ moderate: {
+ title: "10.1% (8.1-12.6%)",
+ description:
+ "30-day risk of death, MI, or cardiac arrest: 10.1% (8.1-12.6%)",
+ },
+ high: {
+ title: "15% (11.1-20.0%)",
+ description:
+ "30-day risk of death, MI, or cardiac arrest: 15% (11.1-20.0%)",
+ },
+ },
+ ru: {
+ low: {
+ title: "3,9% (2,8-5,4%)",
+ description:
+ "Риск большого кардиального события (95% ДИ) (смерть, инфаркт миокарда или остановка сердца через 30 дней после внекардиальной операции): 3,9% (2,8-5,4%)",
+ },
+ intermediate: {
+ title: "6,0% (4,9-7,4%)",
+ description:
+ "Риск большого кардиального события (95% ДИ) (смерть, инфаркт миокарда или остановка сердца через 30 дней после внекардиальной операции): 6,0% (4,9-7,4%)",
+ },
+ moderate: {
+ title: "10,1% (8,1-12,6%)",
+ description:
+ "Риск большого кардиального события (95% ДИ) (смерть, инфаркт миокарда или остановка сердца через 30 дней после внекардиальной операции): 10,1% (8,1-12,6%)",
+ },
+ high: {
+ title: "15% (11,1-20,0%)",
+ description:
+ "Риск большого кардиального события (95% ДИ) (смерть, инфаркт миокарда или остановка сердца через 30 дней после внекардиальной операции): 15% (11,1-20,0%)",
+ },
+ },
+};
diff --git a/src/calcs/wc-pe/api.ts b/src/calcs/wc-pe/api.ts
new file mode 100644
index 0000000..2c43132
--- /dev/null
+++ b/src/calcs/wc-pe/api.ts
@@ -0,0 +1,87 @@
+import { Input, Prefs, Result } from "./domain";
+import { variants } from "./variants";
+
+import en from "./i18n/en.json";
+import ru from "./i18n/ru.json";
+
+function calculateWellsDvtScore(input: Input, prefs: Prefs): Result {
+ const isEmpty = Object.values(input).some(
+ (value) => value === null || value === undefined
+ );
+
+ if (isEmpty) {
+ return {
+ id: "",
+ date: "",
+ score: null,
+ scoreUnit: "",
+ title: "",
+ description: "",
+ };
+ }
+
+ let score = 0.0;
+
+ score =
+ Number(input.q1) +
+ Number(input.q2) +
+ Number(input.q3) +
+ Number(input.q4) +
+ Number(input.q5) +
+ Number(input.q6) +
+ Number(input.q7);
+
+ let result: string;
+ if (score < 2) {
+ result = "low";
+ } else if (score < 7) {
+ result = "medium";
+ } else {
+ result = "high";
+ }
+
+ let variant = variants[prefs.language][result];
+ let title = variant.title;
+ let description = variant.description;
+
+ let scoreUnit = "";
+ let selectedTranslation = {};
+ switch (prefs.language) {
+ case "en":
+ selectedTranslation = en;
+ break;
+ case "ru":
+ selectedTranslation = ru;
+ break;
+ default:
+ selectedTranslation = en;
+ }
+ scoreUnit = getScoreText(score, selectedTranslation);
+
+ const date = new Date().toISOString();
+ const id =
+ Math.random().toString(36).substring(2, 15) +
+ Math.random().toString(36).substring(2, 15);
+
+ const output: Result = {
+ id,
+ date,
+ score,
+ scoreUnit,
+ title,
+ description,
+ };
+ return output;
+}
+
+function getScoreText(score: number, lang: any) {
+ if (score === 1) {
+ return `${lang.scoreUnit}`;
+ } else if (score >= 2 && score <= 4) {
+ return `${lang.scoreGenitiveSingular}`;
+ } else {
+ return `${lang.scoreGenitivePlural}`;
+ }
+}
+
+export { calculateWellsDvtScore };
diff --git a/src/calcs/wc-pe/domain.ts b/src/calcs/wc-pe/domain.ts
new file mode 100644
index 0000000..8a19a7d
--- /dev/null
+++ b/src/calcs/wc-pe/domain.ts
@@ -0,0 +1,44 @@
+export interface Prefs {
+ language: "en" | "ru";
+}
+
+export interface Input {
+ q1: number | null;
+ q2: number | null;
+ q3: number | null;
+ q4: number | null;
+ q5: number | null;
+ q6: number | null;
+ q7: number | null;
+}
+
+export interface Question {
+ name: string;
+ text: string;
+ options: {
+ label: string;
+ value: number;
+ }[];
+}
+
+export interface Questions {
+ [language: string]: Question[];
+}
+
+export interface Variants {
+ [language: string]: {
+ [result: string]: {
+ title: string;
+ description: string;
+ };
+ };
+}
+
+export interface Result {
+ id: string;
+ date: string;
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+}
diff --git a/src/calcs/wc-pe/i18n/en.json b/src/calcs/wc-pe/i18n/en.json
new file mode 100644
index 0000000..62b1bd0
--- /dev/null
+++ b/src/calcs/wc-pe/i18n/en.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "point",
+ "scoreGenitiveSingular": "points",
+ "scoreGenitivePlural": "points"
+}
diff --git a/src/calcs/wc-pe/i18n/ru.json b/src/calcs/wc-pe/i18n/ru.json
new file mode 100644
index 0000000..098d185
--- /dev/null
+++ b/src/calcs/wc-pe/i18n/ru.json
@@ -0,0 +1,5 @@
+{
+ "scoreUnit": "балл",
+ "scoreGenitiveSingular": "балла",
+ "scoreGenitivePlural": "баллов"
+}
diff --git a/src/calcs/wc-pe/questions.ts b/src/calcs/wc-pe/questions.ts
new file mode 100644
index 0000000..3a57ad2
--- /dev/null
+++ b/src/calcs/wc-pe/questions.ts
@@ -0,0 +1,120 @@
+import { Questions } from "./domain";
+
+export const questions: Questions = {
+ en: [
+ {
+ name: "q1",
+ text: "Clinical signs and symptoms of DVT",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 3 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "PE is #1 diagnosis OR equally likely",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 3 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Heart rate >100 bmp",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1.5 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Immobilization at least 3 days OR surgery in the previous 4 weeks",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1.5 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Previous, objectively diagnosed PE or DVT",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1.5 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Hemoptysis",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Malignancy w/ treatment within 6 months or palliative",
+ options: [
+ { label: "No", value: 0 },
+ { label: "Yes", value: 1 },
+ ],
+ },
+ ],
+ ru: [
+ {
+ name: "q1",
+ text: "Клинические признаки ТГВ",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 3 },
+ ],
+ },
+ {
+ name: "q2",
+ text: "Альтернативный диагноз менее вероятен чем ТЭЛА",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 3 },
+ ],
+ },
+ {
+ name: "q3",
+ text: "Частота сердечных сокращений ≥100 уд/мин",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1.5 },
+ ],
+ },
+ {
+ name: "q4",
+ text: "Хирургическое вмешательство или иммобилизация в течение последних 4 недель",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1.5 },
+ ],
+ },
+ {
+ name: "q5",
+ text: "Предыдущие случаи ТЭЛА или ТГВ",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1.5 },
+ ],
+ },
+ {
+ name: "q6",
+ text: "Кровохарканье",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ {
+ name: "q7",
+ text: "Активно развивающаяся или пролеченная в последние 6 месяцев злокачественная опухоль или паллиативное ведение",
+ options: [
+ { label: "Нет", value: 0 },
+ { label: "Да", value: 1 },
+ ],
+ },
+ ],
+};
diff --git a/src/calcs/wc-pe/ui.tsx b/src/calcs/wc-pe/ui.tsx
new file mode 100644
index 0000000..0191db9
--- /dev/null
+++ b/src/calcs/wc-pe/ui.tsx
@@ -0,0 +1,83 @@
+import React, { useEffect, useState } from "react";
+import { ScrollView, View } from "react-native";
+
+import { SegmentContainer } from "../../components/segmentContainer";
+import { calculateWellsDvtScore } from "./api";
+import { Input, Question } from "./domain";
+import { questions } from "./questions";
+
+const CalcScreen: React.FC = ({
+ handleResult,
+ handleResetClick,
+ lang,
+}: any) => {
+ // Initialize empty input state
+ const emptyInput = () => {
+ return {
+ q1: null,
+ q2: null,
+ q3: null,
+ q4: null,
+ q5: null,
+ q6: null,
+ q7: null,
+ };
+ };
+
+ const [input, setInput] = useState(emptyInput());
+
+ // Handle input field changes
+ const handleInputChange = (field: string, value: any) => {
+ setInput((prevInput) => ({
+ ...prevInput,
+ [field]: value,
+ }));
+ };
+
+ // List of questions
+ const localQuestions: Question[] = questions[lang];
+
+ // Calculate and update the result when input changes
+ const [result, setResult] = useState({});
+ useEffect(() => {
+ setResult(
+ calculateWellsDvtScore(input, {
+ language: lang,
+ })
+ );
+ }, [input]);
+
+ // Pass the result to the parent component
+ useEffect(() => {
+ handleResult(result);
+ console.log(result);
+ }, [result]);
+
+ // Reset input when handleResetClick changes
+ useEffect(() => {
+ if (handleResetClick) {
+ setInput(emptyInput());
+ }
+ }, [handleResetClick]);
+ return (
+
+
+
+ {localQuestions.map((question) => (
+ {
+ handleInputChange(question.name, value);
+ }}
+ resetBy="null"
+ />
+ ))}
+
+
+
+ );
+};
+
+export default CalcScreen;
diff --git a/src/calcs/wc-pe/variants.ts b/src/calcs/wc-pe/variants.ts
new file mode 100644
index 0000000..e7ba648
--- /dev/null
+++ b/src/calcs/wc-pe/variants.ts
@@ -0,0 +1,35 @@
+import { Variants } from "./domain";
+
+export const variants: Variants = {
+ en: {
+ low: {
+ title: "Low risk",
+ description:
+ "Pulmonary embolism rule-out criteria (PERC) can be considered as well as D-dimer",
+ },
+ medium: {
+ title: "Moderate risk",
+ description: "Consider D-dimer or CT pulmonary angiography",
+ },
+ high: {
+ title: "High risk",
+ description: "D-dimer not recommended",
+ },
+ },
+ ru: {
+ low: {
+ title: "Низкая вероятность",
+ description:
+ "Проведите анализ крови на Д-димер: -если D-димер отрицательный, рассмотрите возможность прекращения исследования, -если D-димер положительный, показано проведение КТ-ангиопульмонографии",
+ },
+ medium: {
+ title: "Средняя вероятность",
+ description:
+ "Проведите анализ крови на Д-димер: -если D-димер отрицательный, рассмотрите возможность прекращения исследования, -если D-димер положительный, показано проведение КТ-ангиопульмонографии",
+ },
+ high: {
+ title: "Высокая вероятность",
+ description: "Показано проведение КТ-ангиопульмонографии",
+ },
+ },
+};
diff --git a/src/components/confirmationDialog.tsx b/src/components/confirmationDialog.tsx
new file mode 100644
index 0000000..0161450
--- /dev/null
+++ b/src/components/confirmationDialog.tsx
@@ -0,0 +1,64 @@
+import React, { useEffect, useState } from "react";
+import { Button, Dialog, Paragraph, Portal } from "react-native-paper";
+import { useTranslation } from "react-i18next";
+
+type Props = {
+ title: string;
+ message: string;
+ onConfirm: () => void;
+ onCancel: () => void;
+ onDismiss: () => void;
+ isVisible: boolean;
+ confirmLabel: string;
+ cancelLabel: string;
+};
+
+const ConfirmationDialog = ({
+ title,
+ message = "",
+ onConfirm,
+ onCancel,
+ onDismiss,
+ isVisible,
+ confirmLabel,
+ cancelLabel,
+}: Props) => {
+ const [visible, setVisible] = useState(false);
+
+ useEffect(() => {
+ setVisible(isVisible);
+ }, [isVisible]);
+
+ return (
+
+
+
+ );
+};
+
+export default ConfirmationDialog;
diff --git a/src/components/dropdown.tsx b/src/components/dropdown.tsx
new file mode 100644
index 0000000..78165fe
--- /dev/null
+++ b/src/components/dropdown.tsx
@@ -0,0 +1,147 @@
+import React, { useEffect, useState } from 'react';
+import { View, StyleSheet, StyleProp, ViewStyle, ActivityIndicator } from 'react-native';
+import DropDownPicker, { ValueType } from 'react-native-dropdown-picker';
+import { useTheme } from 'react-native-paper';
+import i18n from '../i18n/i18n';
+import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
+
+interface Item {
+ label: string;
+ value: string;
+}
+
+interface Props {
+ value: ValueType;
+ items: Item[];
+ onChangeValue: (value: ValueType, index: number) => void;
+ containerStyle?: StyleProp;
+}
+
+const Dropdown: React.FC = ({ value, items, onChangeValue, containerStyle }) => {
+ const theme = useTheme();
+ const [open, setOpen] = useState(false);
+ const [selectedValue, setSelectedValue] = useState('');
+
+ const handleOpen = () => setOpen(!open);
+
+ const handleChangeValue = (value: ValueType, index: number) => {
+ setSelectedValue(value);
+ onChangeValue(value, index);
+ setOpen(false);
+ };
+
+ const styles = StyleSheet.create({
+ inputContainer: {
+ zIndex: 20, // Set the z-index of the dropdown container to be above other elements on the page
+ },
+ style: {
+ backgroundColor: theme.colors.elevation.level5,
+ borderColor: theme.colors.elevation.level3,
+ borderWidth: 0,
+ borderRadius: 7,
+ },
+ labelStyle: {
+ fontSize: 16,
+ color: theme.colors.secondary,
+ },
+ dropDownContainerStyle: {
+ backgroundColor: theme.colors.elevation.level1,
+ borderColor: theme.colors.elevation.level5,
+ borderWidth: 1,
+ borderRadius: 7,
+ },
+ textStyle: {
+ padding: 0,
+ color: theme.colors.secondary,
+ },
+ selectedItemLabelStyle: {
+ padding: 0,
+ margin: 0,
+ },
+ searchContainerStyle: {
+ padding: 0,
+ },
+ listChildLabelStyle: {
+ padding: 0,
+ },
+ });
+
+ const [loading, setLoading] = useState(true);
+
+ useEffect(() => {
+ setSelectedValue(value);
+ }, [value]);
+
+ useEffect(() => {
+ if (selectedValue) {
+ setLoading(false);
+ }
+ }, [selectedValue]);
+
+ return (
+
+ {loading ? (
+
+
+
+ ) : (
+ (
+
+ )}
+ ArrowDownIconComponent={({ style }) => (
+
+ )}
+ TickIconComponent={({ style }) => (
+
+ )}
+ />
+ )}
+
+ );
+};
+
+export { Dropdown };
diff --git a/src/components/dropdownMini.tsx b/src/components/dropdownMini.tsx
new file mode 100644
index 0000000..033c129
--- /dev/null
+++ b/src/components/dropdownMini.tsx
@@ -0,0 +1,133 @@
+import React, { useState } from 'react';
+
+import { View, StyleSheet, Dimensions, StyleProp, ViewStyle } from 'react-native';
+
+import DropDownPicker, { ValueType } from 'react-native-dropdown-picker';
+import { useTheme } from 'react-native-paper';
+import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
+
+// Define the shape of each item in the dropdown list
+interface Item {
+ label: string;
+ value: string;
+}
+
+interface Props {
+ value: ValueType;
+ items: Item[];
+ onChangeValue: (value: ValueType, index: number) => void;
+ containerStyle?: StyleProp;
+}
+
+const DropdownMini: React.FC = ({ value, items, onChangeValue, containerStyle }) => {
+ const theme = useTheme();
+ const [open, setOpen] = useState(false);
+ const [selectedValue, setSelectedValue] = useState(value);
+
+ const handleOpen = () => setOpen(!open);
+
+ const handleChangeValue = (value: ValueType, index: number) => {
+ setSelectedValue(value);
+ onChangeValue(value, index);
+ setOpen(false);
+ };
+
+ const screenWidth = Dimensions.get('window').width;
+ const longestItem = items.reduce((prev, current) => (prev.label.length > current.label.length ? prev : current));
+ const dropdownWidth = longestItem.label.length * 10 + 60;
+
+ const styles = StyleSheet.create({
+ inputContainer: {
+ zIndex: 20, // Set the z-index of the dropdown container to be above other elements on the page
+ },
+ style: {
+ borderColor: theme.colors.elevation.level5,
+ backgroundColor: theme.colors.secondary,
+ borderWidth: 0,
+ borderRadius: 7,
+ minHeight: 20,
+ },
+ labelStyle: {
+ fontSize: 16,
+ color: theme.colors.background,
+ },
+ dropDownContainerStyle: {
+ backgroundColor: theme.colors.elevation.level1,
+ borderColor: theme.colors.elevation.level5,
+ borderWidth: 0,
+ borderRadius: 7,
+ position: 'absolute',
+ // top: 0,
+ height: 500,
+ },
+ textStyle: {
+ padding: 0,
+ },
+ selectedItemLabelStyle: {
+ padding: 0,
+ margin: 0,
+ },
+ searchContainerStyle: {
+ padding: 0,
+ },
+ listChildLabelStyle: {
+ padding: 0,
+ },
+ });
+
+ return (
+
+ screenWidth
+ // ? screenWidth - 50
+ // : dropdownWidth,
+ }
+ }
+ style={styles.style}
+ labelStyle={styles.labelStyle}
+ dropDownContainerStyle={styles.dropDownContainerStyle}
+ listItemLabelStyle={{ color: theme.colors.onBackground }}
+ textStyle={styles.textStyle}
+ selectedItemLabelStyle={styles.selectedItemLabelStyle}
+ searchContainerStyle={styles.searchContainerStyle}
+ listChildLabelStyle={styles.listChildLabelStyle}
+ listMode="SCROLLVIEW"
+ scrollViewProps={{
+ nestedScrollEnabled: true,
+ }}
+ ArrowUpIconComponent={({ style }) => (
+
+ )}
+ ArrowDownIconComponent={({ style }) => (
+
+ )}
+ TickIconComponent={({ style }) => (
+
+ )}
+ />
+
+ );
+};
+
+export { DropdownMini };
diff --git a/src/components/numericContainer.tsx b/src/components/numericContainer.tsx
new file mode 100644
index 0000000..5d61dfa
--- /dev/null
+++ b/src/components/numericContainer.tsx
@@ -0,0 +1,51 @@
+import { StyleSheet, Text, View } from 'react-native';
+import { Divider, useTheme } from 'react-native-paper';
+import { NumericInput } from './numericInput';
+
+const NumericContainer = ({ title, subtitle, value, placeholder = '', onChangeValue, type = 'int', suffix = '', from, to }: any) => {
+ const styles = StyleSheet.create({
+ inputContainer: {
+ flexDirection: 'row',
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ alignItems: 'center',
+ padding: 13,
+ paddingLeft: 17,
+ },
+ title: { color: useTheme().colors.secondary },
+ subtitle: {
+ color: useTheme().colors.secondary,
+ opacity: 0.6,
+ paddingTop: 2,
+ },
+ });
+
+ return (
+
+
+
+ {title}
+ {subtitle && {subtitle}}
+
+
+
+
+
+
+
+ );
+};
+
+export { NumericContainer };
diff --git a/src/components/numericInput.tsx b/src/components/numericInput.tsx
new file mode 100644
index 0000000..f0f383f
--- /dev/null
+++ b/src/components/numericInput.tsx
@@ -0,0 +1,139 @@
+import React, { useEffect, useState } from 'react';
+import { StyleSheet, View, TextInput, Text } from 'react-native';
+import { HelperText, useTheme } from 'react-native-paper';
+
+const NumericInput = ({ value, placeholder = '', onChangeValue, error = '', type, suffix = '', from, to }: any) => {
+ const theme = useTheme();
+ const [inputValue, setInputValue] = useState(value ? value.toString() : '');
+ const [isFocused, setIsFocused] = useState(false);
+ const [isValid, setIsValid] = useState(true);
+
+ useEffect(() => {
+ if (value || value === 0) {
+ setInputValue(value.toString());
+ } else if (value === null) {
+ setInputValue(null);
+ }
+ }, [value]);
+
+ const handleInputChange = (text: string) => {
+ const regexMap: any = {
+ string: /^.*$/,
+ int: /^[0-9][0-9]*$/, // only allow digits
+ absint: /^[0-9][0-9]*$/, // only allow digits
+ float: /^[+-]?([0-9]+[.]?[0-9]*|[.][0-9]+)$/, // allow digits and a decimal point
+ absfloat: /^([0-9]+[.]?[0-9]*|[.][0-9]+)$/, // allow digits and a decimal point
+ };
+
+ const regex = regexMap[type];
+ let processedText = text.replace(regex, (match) => match);
+ let parsedValue;
+
+ switch (type) {
+ case 'int':
+ parsedValue = parseInt(processedText, 10);
+ break;
+ case 'absint':
+ parsedValue = Math.abs(parseInt(processedText, 10));
+ break;
+ case 'float':
+ if (processedText.indexOf('.') !== processedText.length - 1 && regex.test(processedText)) {
+ parsedValue = parseFloat(processedText);
+ } else {
+ parsedValue = processedText;
+ }
+ break;
+ case 'absfloat':
+ if (processedText.indexOf('.') !== processedText.length - 1 && regex.test(processedText)) {
+ parsedValue = Math.abs(parseFloat(processedText));
+ } else {
+ parsedValue = processedText;
+ }
+ break;
+ default:
+ parsedValue = text;
+ break;
+ }
+
+ if (isNaN(parsedValue)) {
+ parsedValue = type === 'string' ? text : '';
+ }
+
+ if (from !== undefined && to !== undefined) {
+ if (typeof parsedValue === 'number') {
+ if (from !== undefined && parsedValue < from) {
+ parsedValue = from;
+ } else if (to !== undefined && parsedValue > to) {
+ parsedValue = to;
+ }
+ }
+ }
+
+ setInputValue(parsedValue.toString());
+ onChangeValue(parsedValue);
+ };
+ const keyboardType = (() => {
+ switch (type) {
+ case 'int':
+ case 'absint':
+ return 'numeric';
+ case 'float':
+ case 'absfloat':
+ return 'numeric';
+ default:
+ return 'default';
+ }
+ })();
+
+ const styles = StyleSheet.create({
+ inputContainer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-around',
+ borderRadius: 7,
+ overflow: 'hidden',
+ backgroundColor: useTheme().colors.elevation.level3,
+ borderWidth: 1,
+ borderColor: useTheme().colors.backdrop,
+ ...(isFocused && {
+ borderColor: theme.colors.primary,
+ }),
+ },
+ input: {
+ flex: 1,
+ paddingVertical: 5,
+ paddingHorizontal: 10,
+ marginLeft: 0,
+ marginRight: 0,
+ },
+ suffix: {
+ flex: 0,
+ color: theme.colors.secondary,
+ backgroundColor: theme.colors.surfaceDisabled,
+ paddingHorizontal: 10,
+ marginLeft: 'auto',
+ marginTop: 'auto',
+ marginBottom: 'auto',
+ height: '100%',
+ verticalAlign: 'middle',
+ },
+ });
+
+ return (
+
+ setIsFocused(true)}
+ onBlur={() => setIsFocused(false)}
+ />
+ {suffix && {suffix}}
+ {/* {error && {error}} */}
+
+ );
+};
+
+export { NumericInput };
diff --git a/src/components/segmentContainer.tsx b/src/components/segmentContainer.tsx
new file mode 100644
index 0000000..ff9454e
--- /dev/null
+++ b/src/components/segmentContainer.tsx
@@ -0,0 +1,63 @@
+import React, { FC } from 'react';
+import { StyleSheet, Text, View } from 'react-native';
+import { Divider, useTheme } from 'react-native-paper';
+import { SegmentGroup, Option } from './segmentGroup';
+
+interface Props {
+ title: string;
+ subtitle?: string;
+ value: any | null;
+ options: Option[];
+ onChangeValue?: (value: any) => void;
+ forceVertical?: boolean;
+ resetBy: 'null' | 'undefined' | 'number';
+}
+
+const SegmentContainer: FC = ({ title, subtitle, value, options, onChangeValue, forceVertical = false, resetBy = 'undefined' }) => {
+ const isVertical = forceVertical || options.length > 2;
+ const styles = StyleSheet.create({
+ inputContainer: {
+ flexDirection: 'row',
+ marginBottom: 12,
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ alignItems: 'center',
+ padding: 13,
+ paddingLeft: 17,
+ },
+ title: { color: useTheme().colors.secondary },
+ subtitle: {
+ color: useTheme().colors.secondary,
+ opacity: 0.6,
+ paddingTop: 2,
+ },
+ });
+
+ return (
+
+
+
+ {title}
+ {subtitle && {subtitle}}
+
+
+
+
+
+
+
+ );
+};
+
+export { SegmentContainer };
diff --git a/src/components/segmentGroup.tsx b/src/components/segmentGroup.tsx
new file mode 100644
index 0000000..d440769
--- /dev/null
+++ b/src/components/segmentGroup.tsx
@@ -0,0 +1,100 @@
+import React, { FC, useEffect, useState } from 'react';
+import { View, StyleSheet, TouchableOpacity, Text } from 'react-native';
+import { useTheme } from 'react-native-paper';
+
+export interface Option {
+ label: string;
+ value: string | number | boolean | null | undefined;
+ point?: string;
+}
+
+interface Props {
+ value: string | null;
+ options: Option[];
+ onChangeValue?: (value: any) => void;
+ forceVertical?: boolean;
+ resetBy: 'null' | 'undefined' | 'number';
+}
+
+const SegmentGroup: FC = ({ value, options, onChangeValue, forceVertical = false, resetBy = 'undefined' }) => {
+ const [selectedValue, setSelectedValue] = useState(value);
+
+ useEffect(() => {
+ switch (resetBy) {
+ case 'null':
+ if (value === null) {
+ setSelectedValue(null);
+ }
+ break;
+
+ case 'undefined': {
+ if (value === undefined) {
+ setSelectedValue(undefined);
+ }
+ break;
+ }
+ case 'number': {
+ if (Number(value) == 0) {
+ setSelectedValue(0);
+ }
+ break;
+ }
+ }
+ }, [value]);
+
+ const handlePress = (option: Option) => {
+ setSelectedValue(option.value);
+ onChangeValue && onChangeValue(option.value);
+ };
+
+ const isVertical = forceVertical || options.length > 2;
+
+ const styles = StyleSheet.create({
+ container: {
+ flexDirection: 'row',
+ borderRadius: 7,
+ overflow: 'hidden',
+ backgroundColor: useTheme().colors.elevation.level3,
+ },
+ vertical: {
+ flexDirection: 'column',
+ },
+ button: {
+ flex: 1,
+ paddingVertical: 10,
+ alignItems: 'center',
+ flexDirection: 'row',
+ justifyContent: 'center',
+ },
+ verticalButton: {
+ paddingHorizontal: 10,
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ },
+ selected: {
+ backgroundColor: useTheme().colors.primary,
+ },
+ label: {
+ color: useTheme().colors.onSecondaryContainer,
+ },
+ selectedLabel: {
+ color: useTheme().colors.onPrimary,
+ },
+ });
+
+ return (
+
+ {options.map((option: Option) => (
+ handlePress(option)}
+ >
+ {option.label}
+ {option.point && {option.point}}
+
+ ))}
+
+ );
+};
+export { SegmentGroup };
diff --git a/src/i18n/en.json b/src/i18n/en.json
new file mode 100644
index 0000000..a0b87d9
--- /dev/null
+++ b/src/i18n/en.json
@@ -0,0 +1,81 @@
+{
+ "appName": "AnyCalc",
+ "appLongname": "Medical scores & calculators",
+ "main": {
+ "title": "Home"
+ },
+ "favorites": {
+ "title": "Favorites"
+ },
+ "recent": {
+ "title": "Recent",
+ "clearRecent": "Clear recent history"
+ },
+ "all": {
+ "title": "Catalog"
+ },
+ "settings": {
+ "title": "Settings",
+ "selectLanguage": "Select language",
+ "language": {
+ "system": "Based on system preference",
+ "english": "English",
+ "russian": "Russian"
+ },
+ "recent": "Recent history",
+ "clearRecent": "Clear",
+ "recentCleared": "Cleared",
+ "favorites": "Favorites",
+ "clearFavorites": "Clear",
+ "favoritesCleared": "Cleared",
+ "favoritesConfirm": {
+ "title": "Are you sure?",
+ "confirm": "Yes",
+ "cancel": "Cancel"
+ },
+ "formatTitle": "Display format",
+ "formatExample": "EXAMPLE PREVIEW",
+ "formatItems": {
+ "longAndCategory": "Long title, category",
+ "shortAndCategory": "Short title, category",
+ "longShortAndCategory": "Long & short titles, category",
+ "shortLongAndCategory": "Short & long titles, category",
+ "shortAndLong": "Short title, long title"
+ }
+ },
+ "legal": {
+ "title": "Legal Information",
+ "longtitle": "Official Legal Disclaimer"
+ },
+ "about": {
+ "title": "About",
+ "paragraph_1": "AnyCheck is an up-to-date set of calculators, questionnaires and scales, both for medical professionals - in the case of making clinical decisions, and for patients for the purpose of self-testing.\n\nWe plan to update the list of tools and the calculators themselves in accordance with feedback from the medical community and patients.\n\nWe do not currently include all medical calculators in the app because there is a certain quality threshold based on the strength of the evidence and validation testing.\n\nWe know how important it is that our users can trust AnyCheck's tools.\n\nOur clinical team evaluates factors such as evidence (the quality and quantity of data underlying the tool, including the level of external validation), usefulness (how easy the tool is to use at the bedside and how useful the result is from a clinical perspective), and popularity ( how often the tool is used, according to our analytics).",
+ "paragraph_2": "This app is not a medical instrument. Consult with a doctor",
+ "paragraph_3": "If you have any questions or feedback, please let us know!",
+ "feedbackButton": "Feedback",
+ "feedback": {
+ "title": "Share your ideas",
+ "content": "Please let us know how we can improve our app:",
+ "submitButton": "Submit Feedback",
+ "wait": "Please wait..",
+ "success": "Message sent successfully",
+ "fail": "Error sending message",
+ "dismiss": "Dismiss",
+ "agreement": "By submitting this form you agree to share the following about your device.",
+ "learnMore": "Learn More.."
+ },
+ "techinfo": {
+ "title": "Technical Information",
+ "content": "We collect technical information about your device to help us diagnose issues and improve our app. This information includes your device model, operating system version, and IP address.",
+ "close": "Close"
+ }
+ },
+ "search": {
+ "title": "Search.."
+ },
+ "opencalc": {
+ "enterValues": "Please fill-in all required fields.",
+ "clear": "Clear",
+ "close": "Close"
+ }
+}
diff --git a/src/i18n/i18n.ts b/src/i18n/i18n.ts
new file mode 100644
index 0000000..64ecafb
--- /dev/null
+++ b/src/i18n/i18n.ts
@@ -0,0 +1,62 @@
+import AsyncStorage from "@react-native-async-storage/async-storage";
+import i18n, { Resource } from "i18next";
+import { initReactI18next } from "react-i18next";
+import * as RNLocalize from "react-native-localize";
+import en from "./en.json";
+import ru from "./ru.json";
+
+const resources: Record = {
+ en: {
+ translation: en,
+ },
+ ru: {
+ translation: ru,
+ },
+};
+
+export const fallbackLanguage = "en";
+
+const initializeI18n = async (): Promise => {
+ let selectedLanguage = fallbackLanguage;
+ const systemLanguage = RNLocalize.getLocales()[0]?.languageCode;
+
+ if (systemLanguage in resources) {
+ selectedLanguage = systemLanguage;
+ }
+
+ i18n.use(initReactI18next).init({
+ resources, // Use the resources defined above
+ lng: selectedLanguage, // Use the selected language, or fallback to the default
+ fallbackLng: fallbackLanguage, // Fallback to the default language if a translation key is not found in the selected language
+ compatibilityJSON: "v3",
+ keySeparator: ":",
+ interpolation: {
+ escapeValue: false,
+ },
+ react: {
+ useSuspense: false,
+ },
+ });
+};
+
+initializeI18n();
+
+const changeLanguage = async (language: string): Promise => {
+ let selectedLanguage = fallbackLanguage;
+
+ if (language === "system") {
+ const systemLanguage = RNLocalize.getLocales()[0]?.languageCode;
+ if (systemLanguage in resources) {
+ selectedLanguage = systemLanguage;
+ }
+ } else {
+ selectedLanguage = language;
+ }
+
+ await AsyncStorage.setItem("language", selectedLanguage).then(() => {
+ i18n.changeLanguage(selectedLanguage);
+ });
+};
+
+export default i18n;
+export { changeLanguage };
diff --git a/src/i18n/ru.json b/src/i18n/ru.json
new file mode 100644
index 0000000..6ea99b7
--- /dev/null
+++ b/src/i18n/ru.json
@@ -0,0 +1,81 @@
+{
+ "appName": "AnyCalc",
+ "appLongname": "Медицинские калькуляторы и шкалы",
+ "main": {
+ "title": "Главная"
+ },
+ "favorites": {
+ "title": "Избранное"
+ },
+ "recent": {
+ "title": "Недавние",
+ "clearRecent": "Очистить историю"
+ },
+ "all": {
+ "title": "Каталог"
+ },
+ "settings": {
+ "title": "Настройки",
+ "selectLanguage": "Выберите язык",
+ "language": {
+ "system": "На основе настроек системы",
+ "english": "Английский",
+ "russian": "Русский"
+ },
+ "recent": "Недавняя история",
+ "clearRecent": "Очистить",
+ "recentCleared": "Готово, перезапустите приложение",
+ "favorites": "Список избранного",
+ "clearFavorites": "Очистить",
+ "favoritesCleared": "Готово",
+ "favoritesConfirm": {
+ "title": "Вы уверены?",
+ "confirm": "Да",
+ "cancel": "Отмена"
+ },
+ "formatTitle": "Формат отображения",
+ "formatExample": "Пример",
+ "formatItems": {
+ "longAndCategory": "Длинный заголовок, категория",
+ "shortAndCategory": "Краткий заголовок, категория",
+ "longShortAndCategory": "Длинный и краткий заголовки, категория",
+ "shortLongAndCategory": "Краткий и длинный заголовки, категория",
+ "shortAndLong": "Краткий заголовок, длинный заголовок"
+ }
+ },
+ "legal": {
+ "title": "Соглашения",
+ "longtitle": "Официальное юридическое заявление об отказе от ответственности"
+ },
+ "about": {
+ "title": "О приложении",
+ "paragraph_1": "AnyCheck — это актуальный набор калькуляторов, опросников и шкал, как для медицинских работников – в случае принятия клинических решений, так и для пациентов с целью самотестирования.\n\nМы планируем обновлять список инструментов и сами калькуляторы в соответствии с обратной связью от медицинского сообщества и пациентов. В настоящий момент мы не размещаем в приложении все медицинские калькуляторы, поскольку существует определенный порог качества, основанный на надежности доказательств и проверочных испытаний.\n\nМы знаем, насколько важно, чтобы наши пользователи могли доверять инструментам AnyCheck.\n\nНаша команда врачей оценивает такие факторы как: доказательность (качество и количество данных, лежащих в основе инструмента, включая уровень внешней проверки), полезность (насколько легко использовать инструмент в у постели больного и насколько полезен результат с клинической точки зрения), а также популярность (как часто используется инструмент, согласно нашей аналитике).",
+ "paragraph_2": "Не является медицинским инструментом. Проконсультруйтесь с врачом",
+ "paragraph_3": "Если у вас есть какие-либо вопросы или отзывы, пожалуйста, сообщите нам!",
+ "feedbackButton": "Обратная связь",
+ "feedback": {
+ "title": "Поделитесь своим мнением",
+ "content": "Пожалуйста, дайте обратную связь, чтобы мы сделали приложение лучше:",
+ "submitButton": "Отправить",
+ "wait": "Пожалуйста, подождите..",
+ "success": "Сообщение успешно отправлено",
+ "fail": "Возникла ошибка при отправке",
+ "dismiss": "Закрыть",
+ "agreement": "Отправляя эту форму, вы соглашаетесь на передачу технической информации о вашем устройстве.",
+ "learnMore": "Узнать больше.."
+ },
+ "techinfo": {
+ "title": "Техническая информация",
+ "content": "Мы собираем техническую информацию о вашем устройстве, чтобы помочь нам диагностировать проблемы и улучшить наше приложение. Эта информация включает модель вашего устройства, версию операционной системы и IP-адрес.",
+ "close": "Закрыть"
+ }
+ },
+ "search": {
+ "title": "Поиск.."
+ },
+ "opencalc": {
+ "enterValues": "Пожалуйста, заполните поля.",
+ "clear": "Очистить",
+ "close": "Закрыть"
+ }
+}
diff --git a/src/screens/about/AboutScreen.tsx b/src/screens/about/AboutScreen.tsx
new file mode 100644
index 0000000..0af665a
--- /dev/null
+++ b/src/screens/about/AboutScreen.tsx
@@ -0,0 +1,373 @@
+import React, { useState } from 'react';
+
+import { View, StyleSheet, ScrollView, useWindowDimensions, Image, TouchableOpacity } from 'react-native';
+
+import { Text, Title, Paragraph, Card, Divider, Button, Portal, Modal, TextInput, Snackbar, useTheme, ActivityIndicator, Dialog } from 'react-native-paper';
+
+import { useTranslation } from 'react-i18next';
+import MaterialIcon from 'react-native-vector-icons/MaterialIcons';
+import DeviceInfo from 'react-native-device-info';
+
+const BOT_TOKEN = 'xxxxxxx:xxxxxxxxxxxxxxxxx';
+const CHAT_ID = 'xxxxxxxxx';
+
+/**
+ * Sends a formatted message to a Telegram chat using the Telegram Bot API.
+ * @param message - The message to send to the chat
+ * @returns A boolean indicating whether the message was successfully sent
+ */
+async function sendTelegramMessage(message: string): Promise {
+ try {
+ // Get device information using DeviceInfo library
+ const deviceModel = DeviceInfo.getModel();
+ const deviceBrand = DeviceInfo.getBrand();
+ const deviceId = await DeviceInfo.getUniqueId();
+ const ipAddress = await DeviceInfo.getIpAddress();
+ const fontScale = await DeviceInfo.getFontScale();
+ const systemVersion = DeviceInfo.getSystemVersion();
+ const isEmulator = await DeviceInfo.isEmulator();
+ const isTablet = DeviceInfo.isTablet();
+
+ // Remove special characters from the message to prevent HTML injection
+ message = message.replace(/[|&;$%@"<>()+,]/g, '');
+
+ // Format the message to include device and OS information
+ const formattedMessage = `
+ New Feedback Received:
+ Device Information
+ ID: ${deviceId}
+ Model: ${deviceModel}
+ Brand: ${deviceBrand}
+ Is Emulator: ${isEmulator}
+ Is Tablet: ${isTablet}
+
+ OS Information
+ Version: ${systemVersion}
+ Font Scale: ${fontScale}
+ IP Address: ${ipAddress}
+
+ User Message
+ ${message}
+ `;
+
+ // Send the message using the Telegram Bot API
+ const response = await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify({
+ chat_id: CHAT_ID,
+ text: formattedMessage,
+ parse_mode: 'HTML',
+ }),
+ });
+
+ // Log the response and return true if the message was sent successfully
+ const data = await response.json();
+ console.log('Telegram message sent:', data);
+ return true;
+ } catch (error: any) {
+ // Log the error and return false if an error occurs
+ console.error('Error sending Telegram message:', error.message);
+ return false;
+ }
+}
+
+/**
+ *Renders a screen that allows users to send feedback to the developers.
+ *@returns JSX.Element
+ */
+function AboutScreen(): JSX.Element {
+ // Localization
+ const { t } = useTranslation();
+
+ // Theme
+ const theme = useTheme();
+
+ // Modal window
+ const [visible, setVisible] = useState(false);
+
+ // Open modal window
+ const showModal = () => setVisible(true);
+
+ // Close modal window
+ const hideModal = () => setVisible(false);
+
+ // Input message
+ const MAX_CHARACTERS = 1000;
+ const [message, setMessage] = useState('');
+
+ // Handle input change
+ const handleInputChange = (text: string) => {
+ if (text.length > 3) {
+ setButtonDisabled(false);
+ } else {
+ setButtonDisabled(true);
+ }
+ setMessage(text);
+ };
+
+ // Submit button
+ const [isLoading, setIsLoading] = useState(false);
+ const [buttonDisabled, setButtonDisabled] = useState(true);
+
+ // Handle submit button press
+ const handleSubmit = async () => {
+ if (!message) {
+ return;
+ }
+
+ setIsLoading(true);
+ setButtonDisabled(true);
+
+ // Send the message to the server
+ let success = await sendTelegramMessage(message);
+
+ if (success) {
+ setSnackbarMessage(String(t('about:feedback:success')));
+ hideModal();
+ setMessage('');
+ } else {
+ setSnackbarMessage(String(t('about:feedback:fail')));
+ }
+
+ setIsLoading(false);
+ setIsSnackbarVisible(true);
+ setButtonDisabled(false);
+ };
+
+ // Snack message
+ const [snackbarMessage, setSnackbarMessage] = useState('');
+ const [isSnackbarVisible, setIsSnackbarVisible] = useState(false);
+
+ // Handle snack message dismissal
+ const handleSnackbarDismiss = () => {
+ setIsSnackbarVisible(false);
+ setSnackbarMessage('');
+ };
+
+ const [learMoreDialogVisible, setLearMoreDialogVisible] = useState(false);
+
+ // Calculate image size based on window width and aspect ratio
+ const { width } = useWindowDimensions();
+ const imageAspectRatio = 1.59; // assuming a 4:3 aspect ratio for the image
+ const imageWidth = width - 30;
+ const imageHeight = imageWidth / imageAspectRatio;
+
+ const buildDate = '04-07-2023 18-05';
+
+ // Load logo image based on theme
+ const logo = theme.dark ? require('../../../assets/logo_bg_dark.jpg') : require('../../../assets/logo_bg_light.jpg');
+
+ return (
+
+
+
+
+
+
+ {t('appLongname')}
+
+
+
+ {t('about:paragraph_1')}
+
+
+
+
+
+
+ {t('about:paragraph_2')}
+
+
+
+
+
+
+
+ {t('about:paragraph_3')}
+
+
+
+
+
+
+ {t('about:feedback:title')}
+
+ {t('about:feedback:content')}
+ {`${message.length}/${MAX_CHARACTERS}`}
+
+ setLearMoreDialogVisible(true)}
+ style={{ marginBottom: 20 }}
+ >
+
+ {t('about:feedback:agreement')}{' '}
+
+ {t('about:feedback:learnMore')}
+ {' '}
+
+
+
+
+
+
+
+ {snackbarMessage}
+
+
+
+
+
+
+ Build date: {buildDate}
+
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ card: {
+ margin: 15,
+ },
+ feedbackCard: {
+ margin: 10,
+ padding: 5,
+ },
+ divider: {
+ marginVertical: 10,
+ },
+ paragraph: {
+ marginBottom: 10,
+ },
+ iconContainer: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginVertical: 15,
+ },
+ feedbackInput: {
+ marginBottom: 16,
+ },
+ button: {
+ marginTop: 16,
+ },
+
+ container: {
+ padding: 16,
+ },
+ title: {
+ fontSize: 24,
+ fontWeight: 'bold',
+ marginBottom: 16,
+ },
+ searchBar: {
+ marginBottom: 4,
+ },
+ rightContainer: {
+ flexDirection: 'row',
+ },
+ iconButton: {
+ marginHorizontal: 0,
+ },
+});
+
+export default AboutScreen;
diff --git a/src/screens/catalog/CatalogScreen.tsx b/src/screens/catalog/CatalogScreen.tsx
new file mode 100644
index 0000000..2b4ae41
--- /dev/null
+++ b/src/screens/catalog/CatalogScreen.tsx
@@ -0,0 +1,419 @@
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import { useNavigation, useIsFocused } from '@react-navigation/native';
+import { useState, useEffect, useContext, SetStateAction, useRef } from 'react';
+import { View, TouchableOpacity, Text, FlatList, ScrollView } from 'react-native';
+import { useTheme, List, Divider } from 'react-native-paper';
+import Icon from 'react-native-vector-icons/MaterialIcons';
+
+import { CatalogItem, getCatalogItems, getCatalogCategories } from '../../calcs/calcs';
+
+import { DropdownMini } from '../../components/dropdownMini';
+import { SearchContext } from '../../../App';
+import i18n from '../../i18n/i18n';
+
+interface CatalogScreenProps {
+ props: {
+ title: string;
+ showOnly: 'favorites' | 'recent' | 'all';
+ };
+}
+
+/**
+ * Catalog screen component.
+ *
+ * @param {Object} props - Component props.
+ * @param {string} props.title - The title of the catalog screen.
+ * @param {string} props.showOnly - Specifies which items to show in the catalog (e.g., "favorites", "recent", "all").
+ * @returns {JSX.Element} - The JSX element representing the catalog screen.
+ */
+function CatalogScreen({ props: { title, showOnly } }: CatalogScreenProps): JSX.Element {
+ // Selected langauge
+ const [language, setLanguage] = useState(i18n.resolvedLanguage);
+
+ // Retrieve the current theme from the context
+ const theme = useTheme();
+
+ // Get the navigation object from the React Navigation hooks
+ const navigation = useNavigation();
+
+ // Initialize the state for catalog items
+ const [favoritesItems, setFavoritesItems] = useState([]);
+ const [noFavs, setNoFavs] = useState(false);
+ const [recentItems, setRecentItems] = useState([]);
+ const [allItems, setAllItems] = useState([]);
+
+ // Initialize the state for stored IDs
+ const [storedIds, setStoredIds] = useState([]);
+
+ // Create a new state for the selected format
+ const [format, setFormat] = useState('');
+
+ // https://stackoverflow.com/questions/52805879/re-render-component-when-navigating-the-stack-with-react-navigation
+ // Determine if the screen is currently focused
+ const isFocused = useIsFocused();
+
+ /**
+ * useEffect hook to handle catalog screen updates when the screen is focused.
+ */
+ useEffect(() => {
+ // Only perform the following logic if the screen is focused
+ // Set current language
+ setLanguage(i18n.resolvedLanguage);
+
+ const getFormat = async () => {
+ // Retrieve the format from AsyncStorage
+ await AsyncStorage.getItem('format').then((result) => {
+ if (result) {
+ // Update the format state with the retrieved value
+ setFormat(result);
+ }
+ });
+ };
+ getFormat();
+
+ // Handle different showOnly options
+ if (showOnly === 'favorites') {
+ const getFavorite = async () => {
+ // Retrieve favorite item ids from AsyncStorage
+ const result = await AsyncStorage.getItem('favoriteIds');
+ const resultArr = JSON.parse(String(result));
+
+ if (resultArr || resultArr.length) {
+ // Retrieve the catalog items
+ const catalogItems = getCatalogItems();
+ // const catalogItems = allItems;
+
+ // Create a new array based on catalogItems
+ const newItems = catalogItems.map((item) => ({ ...item }));
+
+ // Mark catalog items as favorites based on parsedIds
+ for (let i = 0; i < resultArr.length; i++) {
+ const foundIndex = newItems.findIndex((x) => x.id === resultArr[i]);
+ if (foundIndex !== -1) {
+ newItems[foundIndex].favorite = true;
+ }
+ }
+
+ // Filter catalog items to include only favorites
+ const filteredItems = newItems.filter((elem) => elem.favorite === true);
+
+ // Format catalog items using the preferred format
+ const formattedItems = filteredItems.map((item) => ({
+ ...item,
+ title: getFormattedTitle(item, format, language),
+ description: getFormattedDescription(item, format, language),
+ }));
+
+ if (!formattedItems.length) {
+ setNoFavs(true);
+ } else {
+ setNoFavs(false);
+ }
+
+ // Update the state with the new catalog items
+ setFavoritesItems(formattedItems);
+ }
+ };
+
+ getFavorite();
+ } else if (showOnly === 'recent') {
+ const getRecent = async () => {
+ // Retrieve recent item ids from AsyncStorage
+ const result = await AsyncStorage.getItem('recentIds');
+ const resultArr = JSON.parse(String(result));
+
+ if (resultArr.length) {
+ // Retrieve the catalog items
+ const catalogItems = getCatalogItems();
+
+ // Filter catalogItems to include only items with ids in parsedIds
+ const newItems = catalogItems
+ .filter((item) => resultArr.includes(item.id))
+ .sort((a, b) => resultArr.indexOf(b.id) - resultArr.indexOf(a.id))
+ .map((item) => ({ ...item }));
+
+ // Format catalog items using the preferred format
+ const formattedItems = newItems.map((item) => ({
+ ...item,
+ title: getFormattedTitle(item, format, language),
+ description: getFormattedDescription(item, format, language),
+ }));
+
+ // Update the state with the new catalog items
+ setRecentItems(formattedItems);
+ }
+ };
+
+ getRecent();
+ } else if (showOnly === 'all') {
+ // Retrieve the catalog items
+ const catalogItems = getCatalogItems();
+
+ // Format catalog items using the preferred format
+ const formattedItems = catalogItems.map((item) => ({
+ ...item,
+ title: getFormattedTitle(item, format, language),
+ description: getFormattedDescription(item, format, language),
+ }));
+
+ // Update the state with the new catalog items
+ setAllItems(formattedItems);
+ }
+
+ // Log a message to indicate that the screen is focused
+ // console.log("Screen is focused");
+ }, [isFocused, showOnly, format]);
+
+ /**
+ * Handles the click event when a calculator item is pressed.
+ * Navigates to the calculator screen with the provided item ID.
+ *
+ * @param {CatalogItem} item - The catalog item being clicked.
+ */
+ const handleCalculatorPress = (item: CatalogItem) => {
+ // console.log(`Go to OpenedScreen and pass selected calc ID: ${item.id}`);
+
+ // Navigate to the calculator screen passing necessary data
+ navigation.navigate('OpenedScreen', {
+ id: item.id,
+ name: item.content[language].name,
+ shortname: item.content[language].shortname,
+ screen: item.screen,
+ });
+ };
+
+ /**
+ * Handles the click event when the favorite button is pressed.
+ * Updates the stored favorite IDs and AsyncStorage accordingly.
+ *
+ * @param {number} itemId - The ID of the item being favorited/unfavorited.
+ */
+ const handleFavoritePress = async (itemId: number) => {
+ // Create a new array to avoid mutating the state directly
+ const newIds = [...storedIds];
+
+ // Find the index of the item in the array
+ const index = newIds.indexOf(itemId);
+
+ // Toggle the favorite status based on whether the item ID is present
+ if (index > -1) {
+ // Item found in the array, remove it
+ newIds.splice(index, 1);
+ } else {
+ // Item not found, add it
+ newIds.push(itemId);
+ }
+
+ // Update the stored favorite IDs
+ setStoredIds(newIds);
+
+ // Update the AsyncStorage with the updated favorite IDs
+ await AsyncStorage.setItem('favoriteIds', JSON.stringify(newIds));
+ };
+
+ const renderItem = ({ item }: { item: CatalogItem }) => (
+
+ handleCalculatorPress(item) : undefined}
+ />
+
+
+ );
+
+ // Search query from the SearchContext
+ const searchQuery = useContext(SearchContext);
+
+ // Filter the formatted catalog items based on the search query
+ const filterCatalogItems = (item: CatalogItem) => {
+ const localizedContent = item.content[language];
+ const fieldsToSearch = [localizedContent.name, localizedContent.shortname, localizedContent.category, localizedContent.introtext, localizedContent.description];
+
+ return fieldsToSearch.some((field) => field.toLowerCase().includes(searchQuery.toLowerCase()));
+ };
+
+ let filteredCatalog: CatalogItem[];
+
+ if (showOnly === 'favorites') {
+ filteredCatalog = favoritesItems.filter(filterCatalogItems);
+ } else if (showOnly === 'recent') {
+ filteredCatalog = recentItems.filter(filterCatalogItems);
+ } else {
+ filteredCatalog = allItems.filter(filterCatalogItems);
+ }
+
+ // Create a state for the catalog item categories
+ const [itemsCategory, setItemsCategory] = useState(getCatalogCategories());
+
+ // Create a state for the selected category value
+ const [valueCategory, setValueCategory] = useState(itemsCategory[0].value);
+
+ return (
+
+
+ {showOnly !== 'all' ? (
+
+ {title}
+
+ ) : (
+
+
+
+ {title}
+
+
+
+ {
+ setAllItems(getCatalogItems(category));
+ }}
+ />
+
+
+ )}
+
+
+
+ item.id.toString()}
+ contentContainerStyle={[
+ {
+ // borderWidth: 1,
+ // borderColor: "red",
+ // marginLeft: -15,
+ },
+ allItems.length === 0 && { flex: 1 },
+ ]}
+ ListEmptyComponent={() => (
+
+
+
+ )}
+ />
+
+
+
+ );
+}
+
+/**
+ * Get the formatted title based on the specified format.
+ * @param {CatalogItem} item - The catalog item.
+ * @param {string} format - The format to use for formatting the title.
+ * @returns {string} The formatted title.
+ */
+function getFormattedTitle(item: CatalogItem, format: string, language: string): string {
+ const { name, shortname } = item.content[language];
+
+ switch (format) {
+ case 'longAndCategory':
+ return name;
+ case 'shortAndCategory':
+ return shortname;
+ case 'longShortAndCategory':
+ return `${name} (${shortname})`;
+ case 'shortLongAndCategory':
+ return `${shortname} - ${name}`;
+ case 'shortAndLong':
+ return shortname;
+ default:
+ return name;
+ }
+}
+
+/**
+ * Get the formatted description based on the specified format.
+ * @param {CatalogItem} item - The catalog item.
+ * @param {string} format - The format to use for formatting the description.
+ * @returns {string} The formatted description.
+ */
+function getFormattedDescription(item: CatalogItem, format: string, language: string): string {
+ const { category, name } = item.content[language];
+
+ switch (format) {
+ case 'longAndCategory':
+ case 'shortAndCategory':
+ case 'longShortAndCategory':
+ case 'shortLongAndCategory':
+ return category;
+ case 'shortAndLong':
+ return name;
+ default:
+ return category;
+ }
+}
+
+export { CatalogScreen };
diff --git a/src/screens/debug/DebugScreen.tsx b/src/screens/debug/DebugScreen.tsx
new file mode 100644
index 0000000..90a2e4b
--- /dev/null
+++ b/src/screens/debug/DebugScreen.tsx
@@ -0,0 +1,176 @@
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import React, { useEffect, useState } from 'react';
+import { View, StyleSheet, ScrollView } from 'react-native';
+import { Card, Text, useTheme } from 'react-native-paper';
+import * as RNLocalize from 'react-native-localize';
+import i18n, { fallbackLanguage } from '../../i18n/i18n';
+import { useIsFocused } from '@react-navigation/native';
+
+const DebugScreen: React.FC = () => {
+ const theme = useTheme();
+
+ const [favorites, setFavorites] = useState('');
+ const [recent, setRecent] = useState('');
+ const [language, setLanguage] = useState('');
+ const [format, setFormat] = useState('');
+
+ const [systemLanguage, setSystemLanguage] = useState(RNLocalize.getLocales()[0]?.languageCode);
+ const [fallbackLang, setFallbackLanguage] = useState(fallbackLanguage);
+
+ const [resolvedLang, setResolvedLang] = useState(i18n.resolvedLanguage);
+ const [allkeys, setAllkeys] = useState('');
+
+ useEffect(() => {
+ const getAllKeys = async () => {
+ try {
+ let resp = await AsyncStorage.getAllKeys();
+ console.log('All keys:', resp);
+ setAllkeys(JSON.stringify(resp));
+ } catch (error) {
+ console.log('Error retrieving keys:', error);
+ }
+ };
+ getAllKeys();
+
+ const getFavorites = async () => {
+ try {
+ let resp = await AsyncStorage.getItem('favoriteIds');
+ console.log('Favorite IDs:', resp);
+ setFavorites(String(resp));
+ } catch (error) {
+ console.log('Error retrieving favoriteIds:', error);
+ }
+ };
+ getFavorites();
+
+ const getRecent = async () => {
+ try {
+ let resp = await AsyncStorage.getItem('recentIds');
+ console.log('Recent IDs:', resp);
+ setRecent(String(resp));
+ } catch (error) {
+ console.log('Error retrieving recentIds:', error);
+ }
+ };
+ getRecent();
+
+ const getFormat = async () => {
+ try {
+ let resp = await AsyncStorage.getItem('format');
+ console.log('Format:', resp);
+ setFormat(String(resp));
+ } catch (error) {
+ console.log('Error retrieving format:', error);
+ }
+ };
+ getFormat();
+
+ const getLanguage = async () => {
+ try {
+ let resp = await AsyncStorage.getItem('language');
+ console.log('Language:', resp);
+ setLanguage(String(resp));
+ } catch (error) {
+ console.log('Error retrieving language:', error);
+ }
+ };
+ getLanguage();
+
+ setResolvedLang(i18n.resolvedLanguage);
+
+ setFallbackLanguage(fallbackLanguage);
+
+ setSystemLanguage(RNLocalize.getLocales()[0]?.languageCode);
+ }, [useIsFocused()]);
+
+ return (
+
+
+
+
+
+ {allkeys}
+
+
+
+
+
+ {favorites}
+
+
+
+
+
+ {recent}
+
+
+
+
+
+ {format}
+
+
+
+
+
+ {language}
+
+
+
+
+
+ {resolvedLang}
+
+
+
+
+
+ {fallbackLang}
+
+
+
+
+
+ {systemLanguage}
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1, // Use flex: 1 to take up the entire screen
+ },
+ card: {
+ marginHorizontal: 10, // Add some margin to the card to separate it from the edges of the screen
+ marginVertical: 10,
+ },
+});
+
+export { DebugScreen };
diff --git a/src/screens/legal/LegalScreen.tsx b/src/screens/legal/LegalScreen.tsx
new file mode 100644
index 0000000..01e58b1
--- /dev/null
+++ b/src/screens/legal/LegalScreen.tsx
@@ -0,0 +1,53 @@
+import React from 'react';
+import { View, StyleSheet, ScrollView } from 'react-native';
+import { Card, Text, useTheme } from 'react-native-paper';
+import i18n from '../../i18n/i18n';
+import ru from './ru';
+import en from './en';
+import { useTranslation } from 'react-i18next';
+
+const LegalScreen: React.FC = () => {
+ // Localization
+ const { t } = useTranslation();
+
+ const theme = useTheme();
+ const lang = i18n.resolvedLanguage;
+ let legal = '';
+ switch (lang) {
+ // Check the current language and set the legal text accordingly
+ case 'ru':
+ legal = ru;
+ break;
+ case 'en':
+ default:
+ legal = en;
+ break;
+ }
+
+ return (
+
+
+
+
+ {t('legal:longtitle')}
+ {legal}
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1, // Use flex: 1 to take up the entire screen
+ },
+ card: {
+ margin: 15, // Add some margin to the card to separate it from the edges of the screen
+ },
+});
+
+export default LegalScreen;
diff --git a/src/screens/legal/en.ts b/src/screens/legal/en.ts
new file mode 100644
index 0000000..0146bc2
--- /dev/null
+++ b/src/screens/legal/en.ts
@@ -0,0 +1,13 @@
+export default `
+AnyCheck includes clinical tools and content designed for use by healthcare professionals. These tools do not provide professional advice; physicians and other health care professionals using these tools or databases must exercise their own clinical judgment regarding the information they provide. Consumers (non-medical professionals) using the tools or databases do so at their own risk. People with any medical conditions are particularly advised to seek professional medical advice before undertaking any treatment. Non-healthcare users should always consult their physician or other qualified health care provider with regard to medical matters, including decisions about medications and other treatments.
+
+The developers of AnyCheck content have taken great care to create its content in accordance with the standards of professional practice prevailing at the time of its development. However, standards and practices in medicine change as new evidence becomes available, and each health care professional should consult a variety of sources.
+
+The contents of the AnyCheck website and applications, such as text, graphics and images, are for informational purposes only. AnyCheck does not recommend or endorse any specific tests, doctors, products, procedures, opinions or other information that may be mentioned on the site.
+
+Although the information on this site and app has been obtained from sources believed to be reliable, neither we nor our content providers guarantee the accuracy of the information contained on this site.
+
+We do not provide medical advice or provide medical or diagnostic services. Medical information is changing rapidly. Neither we nor our content providers guarantee that the content covers all possible uses, directions, precautions, drug interactions or side effects that may be associated with any therapeutic treatment.
+
+Any reliance you place on the information and content you obtain on or through this site is entirely at your own risk. Neither we nor our content providers accept any liability for damage or injury (including death) to you, other persons or property resulting from any use of any product, information, idea or instructions contained in the content or services provided to you.
+`;
diff --git a/src/screens/legal/ru.ts b/src/screens/legal/ru.ts
new file mode 100644
index 0000000..f21d7b0
--- /dev/null
+++ b/src/screens/legal/ru.ts
@@ -0,0 +1,13 @@
+export default `
+AnyCheck включает клинические инструменты и контент, предназначенные для использования медицинскими работниками. Эти инструменты не дают профессиональных советов; врачи и другие медицинские работники, использующие эти инструменты или базы данных, должны выносить собственное клиническое суждение относительно предоставляемой ими информации. Потребители (немедицинские специалисты), использующие инструменты или базы данных, делают это на свой страх и риск. Людям с любыми заболеваниями особенно рекомендуется обратиться за профессиональной медицинской консультацией, прежде чем начинать какое-либо лечение. По медицинским вопросам, включая решения о приеме лекарств и других методах лечения, пользователи, не являющиеся медицинскими работниками, всегда должны консультироваться со своим врачом или другим квалифицированным медицинским работником.
+
+Разработчики контента AnyCheck тщательно постарались создать его контент в соответствии со стандартами профессиональной практики, преобладавшими на момент разработки. Однако стандарты и практика в медицине меняются по мере появления новых данных, и каждому медицинскому работнику следует обращаться к различным источникам.
+
+Содержимое сайта и приложений AnyCheck, такое как текст, графика и изображения, предназначено только для информационных целей. AnyCheck не рекомендует и не одобряет какие-либо конкретные тесты, врачей, продукты, процедуры, мнения или другую информацию, которая может быть упомянута на сайте.
+
+Хотя информация на этом сайте и в приложении была получена из источников, которые считаются надежными, ни мы, ни наши поставщики контента не гарантируем точность информации, содержащейся на этом сайте.
+
+Мы не даем медицинских консультаций и не предоставляем медицинские или диагностические услуги. Медицинская информация быстро меняется. Ни мы, ни наши поставщики контента не гарантируем, что контент охватывает все возможные варианты использования, направления, меры предосторожности, взаимодействия с лекарствами или побочные эффекты, которые могут быть связаны с любым терапевтическим лечением.
+
+Вы полагаетесь на информацию и контент, полученные вами на этом сайте или через него, исключительно на свой страх и риск. Ни мы, ни наши поставщики контента не несем никакой ответственности за ущерб или травмы (включая смерть) вам, другим лицам или имуществу, возникшие в результате любого использования любого продукта, информации, идеи или инструкций, содержащихся в контенте или услугах, предоставленных вам.
+`;
diff --git a/src/screens/opened/OpenedScreen.tsx b/src/screens/opened/OpenedScreen.tsx
new file mode 100644
index 0000000..6c8ca3b
--- /dev/null
+++ b/src/screens/opened/OpenedScreen.tsx
@@ -0,0 +1,390 @@
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import { useIsFocused, useNavigation } from '@react-navigation/native';
+import { ReactNode, useEffect, useRef, useState } from 'react';
+import { useTranslation } from 'react-i18next';
+
+import { StyleSheet, SafeAreaView, View, KeyboardAvoidingView, Text, TouchableOpacity, Share, Alert } from 'react-native';
+
+import { Modalize } from 'react-native-modalize';
+import { useTheme, Appbar, Button, Card, Portal, Title, Modal } from 'react-native-paper';
+import Icon from 'react-native-vector-icons/MaterialIcons';
+import { GestureHandlerRootView, ScrollView } from 'react-native-gesture-handler';
+
+import i18n from '../../i18n/i18n';
+
+import { getCatalogItemByID } from '../../calcs/calcs';
+import { addUniqueIem, removeItemAll } from '../../utils';
+import React from 'react';
+
+function OpenedScreen({ route }: any) {
+ const theme = useTheme();
+ const { t } = useTranslation();
+ const navigation = useNavigation();
+
+ const selectedLang = i18n.resolvedLanguage;
+
+ const { id } = route.params;
+ const { shortname } = route.params;
+ let Screen = route.params.screen;
+
+ // Recent
+ useEffect(() => {
+ const updateRecent = async () => {
+ await AsyncStorage.getItem('recentIds').then((result) => {
+ const resultArr = JSON.parse(String(result));
+ if (!resultArr.length) {
+ // Add to empty recent
+ resultArr.push(id);
+ AsyncStorage.setItem('recentIds', JSON.stringify(resultArr));
+ } else {
+ // Add to existing recent
+ const ArrWithUniqueID = addUniqueIem(resultArr, id);
+ AsyncStorage.setItem('recentIds', JSON.stringify(ArrWithUniqueID));
+ }
+ });
+ };
+ updateRecent();
+ }, []);
+
+ // Favorite status state
+ const [isFavorite, setIsFavorite] = useState(false);
+
+ // Retrieve Favorites list from storage
+ useEffect(() => {
+ const isInFavoriteList = async () => {
+ AsyncStorage.getItem('favoriteIds').then((result) => {
+ const resultArr = JSON.parse(String(result));
+ if (resultArr.length) {
+ const foundID = resultArr.filter((item: number) => {
+ return item == id;
+ });
+ foundID.length ? setIsFavorite(true) : setIsFavorite(false);
+ }
+ });
+ };
+ isInFavoriteList();
+ }, []);
+
+ // Add / Remove to Favorites
+ const handleFavorite = async () => {
+ const updateInFavoriteList = async () => {
+ await AsyncStorage.getItem('favoriteIds').then((result) => {
+ // console.log("get before favoriteIds");
+ const resultArr = JSON.parse(String(result));
+ // console.log(resultArr);
+
+ let found = resultArr.find((item: number) => {
+ return item == id;
+ });
+
+ if (!found || found === undefined) {
+ // Add to favorites
+ resultArr.push(id);
+ AsyncStorage.setItem('favoriteIds', JSON.stringify(resultArr)).then(() => {
+ setIsFavorite(true);
+ });
+ } else {
+ // Remove from favorites
+ const ArrtWithoutID = removeItemAll(resultArr, id);
+ AsyncStorage.setItem('favoriteIds', JSON.stringify(ArrtWithoutID)).then(() => {
+ setIsFavorite(false);
+ });
+ }
+ });
+ };
+ updateInFavoriteList();
+ };
+
+ // Bottom sheet
+ const modalizeRef = useRef(null);
+ modalizeRef.current?.open();
+ const [modalizeHeight, setModalizeHeight] = useState(40);
+
+ const [snapPointIndex, setSnapPointIndex] = useState(2);
+ const [expandedHeight, setExpandedHeight] = useState(200);
+ function handleExpandPress() {
+ snapPointIndex === 1 ? setModalizeHeight(110) : setModalizeHeight(expandedHeight);
+ const newSnapPointIndex = snapPointIndex === 1 ? 2 : 1;
+ setSnapPointIndex(newSnapPointIndex);
+ }
+
+ interface Result {
+ score: number | null;
+ scoreUnit: string;
+ title: string;
+ description: string;
+ }
+ const [result, setResult] = useState({
+ score: null,
+ scoreUnit: '',
+ title: '',
+ description: '',
+ });
+
+ const handleResult = (result: Result) => {
+ setResult(result);
+ };
+
+ const onLayout = (event: any) => {
+ const { height } = event.nativeEvent.layout;
+ setModalizeHeight(height); // Update the modalize height based on the layout height
+ };
+
+ useEffect(() => {
+ if (result.score != null) {
+ // Use the computed height from onLayout
+ setModalizeHeight(modalizeHeight);
+ } else {
+ // Use a different height for the modal when result.score is null
+ setModalizeHeight(40);
+ }
+ }, [result.score, modalizeHeight]);
+
+ useEffect(() => {
+ modalizeRef.current?.open();
+ }, [useIsFocused()]);
+
+ const handleShare = async () => {
+ try {
+ const res = await Share.share({
+ message: JSON.stringify(result),
+ });
+ if (res.action === Share.sharedAction) {
+ if (res.activityType) {
+ // shared with activity type of result.activityType
+ } else {
+ // shared
+ }
+ } else if (res.action === Share.dismissedAction) {
+ // dismissed
+ }
+ } catch (error: any) {
+ Alert.alert(error.message);
+ }
+ };
+
+ // Reset click
+ const [reset, setReset] = useState(false);
+ const handleResetClick = () => {
+ setReset(true);
+ };
+ useEffect(() => {
+ setReset(false);
+ }, [handleResetClick]);
+
+ // Modal window
+ const [visible, setVisible] = useState(false);
+ const showModal = () => setVisible(true);
+ const hideModal = () => setVisible(false);
+
+ const [title, setTitle] = useState(getCatalogItemByID(id)?.content[selectedLang].name);
+ const [description, setDescription] = useState(getCatalogItemByID(id)?.content[selectedLang].description);
+
+ // Style
+ const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ paddingTop: 200,
+ },
+ resultContainer: { paddingLeft: 20, paddingRight: 20 },
+ resultTitle: {
+ fontWeight: 'bold',
+ fontSize: 16,
+ color: theme.colors.secondary,
+ textAlign: result.score ? 'left' : 'center',
+ },
+ resultScore: {
+ fontSize: 36,
+ fontWeight: 'bold',
+ },
+ resultUnit: {
+ fontSize: 36,
+ fontWeight: 'bold',
+ lineHeight: 36,
+ },
+ expandButton: {
+ padding: 0,
+ borderColor: theme.colors.primary,
+ color: theme.colors.primary,
+ borderWidth: 3,
+ borderRadius: 100,
+ height: 36,
+ width: 36,
+ marginTop: 20,
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+
+ resultDescription: {
+ fontSize: 14,
+ color: theme.colors.secondary,
+ marginTop: 10,
+ },
+
+ infoCard: {
+ margin: 16,
+ elevation: 4,
+ padding: 16,
+ },
+ infoText: {
+ marginTop: 8,
+ },
+ infoButton: {
+ marginTop: 32,
+ },
+ });
+
+ return (
+
+
+
+ navigation.goBack()} />
+
+
+
+
+
+
+
+
+
+
+
+ {title}
+ {description}
+
+
+
+
+
+
+
+
+
+ {/* There is a bug with synthetic event: https://github.com/jeremybarbet/react-native-modalize/issues/451*/}
+
+ {result.score != null ? (
+
+
+
+ {result?.title}
+
+ {result?.score}
+
+ {result?.scoreUnit}
+
+
+ {result?.description}
+
+
+
+
+
+
+ ) : (
+ <>
+ {t('opencalc:enterValues')}
+ >
+ )}
+
+
+
+
+ );
+}
+
+export { OpenedScreen };
diff --git a/src/screens/settings/SettingsScreen.tsx b/src/screens/settings/SettingsScreen.tsx
new file mode 100644
index 0000000..c506951
--- /dev/null
+++ b/src/screens/settings/SettingsScreen.tsx
@@ -0,0 +1,208 @@
+import React, { useEffect, useState } from 'react';
+import { ScrollView, View } from 'react-native';
+import { Text, useTheme, Divider, List, Button } from 'react-native-paper';
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import Icon from 'react-native-vector-icons/MaterialIcons';
+import { useTranslation } from 'react-i18next';
+
+import { changeLanguage } from '../../i18n/i18n';
+import { styles } from './styles';
+import { Dropdown } from '../../components/dropdown';
+import ConfirmationDialog from '../../components/confirmationDialog';
+
+interface SettingsScreenProps {}
+
+const SettingsScreen: React.FC = () => {
+ const theme = useTheme();
+ const s = styles(theme);
+ const { t } = useTranslation();
+
+ const [language, setLanguage] = useState('en');
+ const [isDialogVisible, setIsDialogVisible] = useState(false);
+ const [favoritesCleared, setFavoritesCleared] = useState(false);
+ const [recentCleared, setRecentCleared] = useState(false);
+ const [previewTitle, setPreviewTitle] = useState('Body Mass Index');
+ const [previewSubtitle, setPreviewSubtitle] = useState('Endocrinology');
+ const [formatValue, setFormatValue] = useState('');
+
+ const [items, setItems] = useState([
+ { label: t('settings:language:system'), value: 'system' },
+ { label: t('settings:language:english'), value: 'en' },
+ { label: t('settings:language:russian'), value: 'ru' },
+ ]);
+
+ const [formatItems, setFormatItems] = useState([
+ {
+ label: t('settings:formatItems:longAndCategory'),
+ value: 'longAndCategory',
+ },
+ {
+ label: t('settings:formatItems:shortAndCategory'),
+ value: 'shortAndCategory',
+ },
+ {
+ label: t('settings:formatItems:longShortAndCategory'),
+ value: 'longShortAndCategory',
+ },
+ {
+ label: t('settings:formatItems:shortLongAndCategory'),
+ value: 'shortLongAndCategory',
+ },
+ {
+ label: t('settings:formatItems:shortAndLong'),
+ value: 'shortAndLong',
+ },
+ ]);
+
+ const handleClearFavorites = async () => {
+ await AsyncStorage.setItem('favoriteIds', JSON.stringify([]));
+ setFavoritesCleared(true);
+ };
+
+ const handleClearRecent = async () => {
+ await AsyncStorage.setItem('recentIds', JSON.stringify([]));
+ setRecentCleared(true);
+ };
+
+ const changeFormatItem = async (val: string) => {
+ console.log('from changeFormatItem:');
+ console.log(val);
+ switch (val) {
+ case 'longAndCategory':
+ setPreviewTitle('Body Mass Index');
+ setPreviewSubtitle('Endocrinology');
+ break;
+ case 'shortAndCategory':
+ setPreviewTitle('BMI');
+ setPreviewSubtitle('Endocrinology');
+ break;
+ case 'longShortAndCategory':
+ setPreviewTitle('Body Mass Index (BMI)');
+ setPreviewSubtitle('Endocrinology');
+ break;
+ case 'shortLongAndCategory':
+ setPreviewTitle('BMI - Body Mass Index');
+ setPreviewSubtitle('Endocrinology');
+ break;
+ case 'shortAndLong':
+ setPreviewTitle('BMI');
+ setPreviewSubtitle('Body Mass Index');
+ break;
+ default:
+ setPreviewTitle('Body Mass Index');
+ setPreviewSubtitle('Endocrinology');
+ }
+
+ await AsyncStorage.setItem('format', val);
+ };
+
+ useEffect(() => {
+ const getFormat = async () => {
+ const result = await AsyncStorage.getItem('format');
+ console.log('format from db: ' + result);
+ if (result) {
+ setFormatValue(result);
+ changeFormatItem(result);
+ }
+ };
+ getFormat();
+
+ const getLanguage = async () => {
+ const result = await AsyncStorage.getItem('language');
+ console.log('language from db: ' + result);
+ if (result) {
+ setLanguage(String(result));
+ }
+ };
+ getLanguage();
+ }, []);
+
+ return (
+
+
+
+ {t('settings:formatTitle')}
+
+
+ {t('settings:formatExample')}
+
+ (
+
+
+
+ )}
+ />
+
+
+
+ {
+ changeFormatItem(String(value));
+ }}
+ />
+
+
+
+ {t('settings:selectLanguage')}
+ {
+ changeLanguage(String(value));
+ }}
+ />
+
+
+
+ {t('settings:favorites')}
+
+ setIsDialogVisible(false)}
+ onDismiss={() => setIsDialogVisible(false)}
+ isVisible={isDialogVisible}
+ confirmLabel={t('settings:favoritesConfirm:confirm')}
+ cancelLabel={t('settings:favoritesConfirm:cancel')}
+ />
+
+
+
+ {t('settings:recent')}
+
+
+
+
+ );
+};
+
+export default SettingsScreen;
diff --git a/src/screens/settings/styles.ts b/src/screens/settings/styles.ts
new file mode 100644
index 0000000..c405731
--- /dev/null
+++ b/src/screens/settings/styles.ts
@@ -0,0 +1,82 @@
+import { StyleSheet } from "react-native";
+import { MD3Theme } from "react-native-paper";
+
+export const styles = (theme: MD3Theme) =>
+ StyleSheet.create({
+ container: {
+ flex: 1,
+ },
+ formatTitle: {
+ color: theme.colors.secondary,
+ fontWeight: "600",
+ padding: 20,
+ },
+ formatExample: {
+ marginTop: 0,
+ marginLeft: 40,
+ backgroundColor: theme.colors.elevation.level5,
+ alignSelf: "flex-start",
+ padding: 5,
+ color: theme.colors.secondary,
+ fontSize: 12,
+ fontWeight: "700",
+ borderRadius: theme.roundness,
+ },
+ previewContainer: {
+ marginHorizontal: 40,
+ marginTop: 4,
+ borderWidth: 2,
+ borderColor: theme.colors.elevation.level5,
+ borderRadius: theme.roundness,
+ backgroundColor: theme.colors.elevation.level1,
+ },
+ formatContainer: {
+ zIndex: 3,
+ padding: 20,
+ paddingBottom: 25,
+ },
+ languageContainer: {
+ display: "flex",
+ alignItems: "flex-start",
+ justifyContent: "space-between",
+ zIndex: 2,
+ padding: 20,
+ },
+ favoritesContainer: {
+ display: "flex",
+ alignItems: "flex-start",
+ justifyContent: "space-between",
+ zIndex: 1,
+ padding: 20,
+ },
+ recentContainer: {
+ display: "flex",
+ alignItems: "flex-start",
+ justifyContent: "space-between",
+ zIndex: 1,
+ padding: 20,
+ },
+ formatTitleText: {
+ color: theme.colors.secondary,
+ fontWeight: "600",
+ },
+ starIcon: {
+ marginLeft: "auto",
+ marginTop: "auto",
+ },
+ languageTitle: {
+ paddingBottom: 12,
+ color: theme.colors.secondary,
+ fontWeight: "600",
+ },
+ favoritesTitle: {
+ paddingBottom: 12,
+ color: theme.colors.secondary,
+ fontWeight: "600",
+ },
+ recentTitle: {
+ paddingBottom: 12,
+ color: theme.colors.secondary,
+ fontWeight: "600",
+ },
+ });
diff --git a/src/themes.ts b/src/themes.ts
new file mode 100644
index 0000000..0f9cbba
--- /dev/null
+++ b/src/themes.ts
@@ -0,0 +1,20 @@
+// Import the default and dark themes from React Navigation
+import { DarkTheme as NavigationDarkTheme, DefaultTheme as NavigationDefaultTheme } from '@react-navigation/native';
+
+// Import the light and dark themes from react-native-paper
+import { MD3DarkTheme, MD3LightTheme, adaptNavigationTheme } from 'react-native-paper';
+
+// Import the deepmerge library to combine the themes
+import merge from 'deepmerge';
+
+// Create light and dark themes adapted for React Navigation
+const { LightTheme, DarkTheme } = adaptNavigationTheme({
+ reactNavigationLight: NavigationDefaultTheme,
+ reactNavigationDark: NavigationDarkTheme,
+});
+
+// Combine the light theme from react-native-paper with the adapted light theme from React Navigation
+export const CombinedDefaultTheme = merge(MD3LightTheme, LightTheme);
+
+// Combine the dark theme from react-native-paper with the adapted dark theme from React Navigation
+export const CombinedDarkTheme = merge(MD3DarkTheme, DarkTheme);
diff --git a/src/utils.js b/src/utils.js
new file mode 100644
index 0000000..21d3347
--- /dev/null
+++ b/src/utils.js
@@ -0,0 +1,36 @@
+// Working with arrays
+
+export function removeItemOnce(arr, value) {
+ var index = arr.indexOf(value);
+ if (index > -1) {
+ arr.splice(index, 1);
+ }
+ return arr;
+}
+
+export function removeItemAll(arr, value) {
+ var i = 0;
+ while (i < arr.length) {
+ if (arr[i] === value) {
+ arr.splice(i, 1);
+ } else {
+ ++i;
+ }
+ }
+ return arr;
+}
+
+export function addUniqueIem(arr, value) {
+ let index = arr.indexOf(value);
+
+ if (index !== -1) {
+ arr.splice(index, 1);
+ }
+
+ arr.push(value);
+
+ if (arr.length > 10) {
+ arr.shift();
+ }
+ return arr;
+}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..dbd21b1
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "extends": "@tsconfig/react-native/tsconfig.json",
+ "compilerOptions": {
+ "allowJs": false,
+ "moduleResolution": "NodeNext",
+ "module": "NodeNext"
+ }
+}
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..41057b4
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,7510 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@ampproject/remapping@^2.2.0":
+ "integrity" "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w=="
+ "resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz"
+ "version" "2.2.0"
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.1.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4":
+ "integrity" "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g=="
+ "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz"
+ "version" "7.21.4"
+ dependencies:
+ "@babel/highlight" "^7.18.6"
+
+"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5":
+ "integrity" "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA=="
+ "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz"
+ "version" "7.21.7"
+
+"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.20.0", "@babel/core@^7.21.8", "@babel/core@^7.4.0-0", "@babel/core@^7.8.0", "@babel/core@>=7.11.0":
+ "integrity" "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ=="
+ "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz"
+ "version" "7.21.8"
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.21.4"
+ "@babel/generator" "^7.21.5"
+ "@babel/helper-compilation-targets" "^7.21.5"
+ "@babel/helper-module-transforms" "^7.21.5"
+ "@babel/helpers" "^7.21.5"
+ "@babel/parser" "^7.21.8"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.5"
+ "@babel/types" "^7.21.5"
+ "convert-source-map" "^1.7.0"
+ "debug" "^4.1.0"
+ "gensync" "^1.0.0-beta.2"
+ "json5" "^2.2.2"
+ "semver" "^6.3.0"
+
+"@babel/eslint-parser@^7.12.0", "@babel/eslint-parser@^7.18.2":
+ "integrity" "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg=="
+ "resolved" "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz"
+ "version" "7.21.3"
+ dependencies:
+ "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1"
+ "eslint-visitor-keys" "^2.1.0"
+ "semver" "^6.3.0"
+
+"@babel/generator@^7.20.0", "@babel/generator@^7.21.5", "@babel/generator@^7.7.2":
+ "integrity" "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w=="
+ "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/types" "^7.21.5"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
+ "jsesc" "^2.5.1"
+
+"@babel/helper-annotate-as-pure@^7.18.6":
+ "integrity" "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6":
+ "integrity" "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz"
+ "version" "7.18.9"
+ dependencies:
+ "@babel/helper-explode-assignable-expression" "^7.18.6"
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5":
+ "integrity" "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/compat-data" "^7.21.5"
+ "@babel/helper-validator-option" "^7.21.0"
+ "browserslist" "^4.21.3"
+ "lru-cache" "^5.1.1"
+ "semver" "^6.3.0"
+
+"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0":
+ "integrity" "sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-member-expression-to-functions" "^7.21.0"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.20.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+
+"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5":
+ "integrity" "sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "regexpu-core" "^5.3.1"
+
+"@babel/helper-define-polyfill-provider@^0.3.3":
+ "integrity" "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz"
+ "version" "0.3.3"
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.17.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "debug" "^4.1.1"
+ "lodash.debounce" "^4.0.8"
+ "resolve" "^1.14.2"
+ "semver" "^6.1.2"
+
+"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5":
+ "integrity" "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz"
+ "version" "7.21.5"
+
+"@babel/helper-explode-assignable-expression@^7.18.6":
+ "integrity" "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0":
+ "integrity" "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/template" "^7.20.7"
+ "@babel/types" "^7.21.0"
+
+"@babel/helper-hoist-variables@^7.18.6":
+ "integrity" "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0":
+ "integrity" "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/types" "^7.21.0"
+
+"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4":
+ "integrity" "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz"
+ "version" "7.21.4"
+ dependencies:
+ "@babel/types" "^7.21.4"
+
+"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5":
+ "integrity" "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.21.5"
+ "@babel/helper-module-imports" "^7.21.4"
+ "@babel/helper-simple-access" "^7.21.5"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.5"
+ "@babel/types" "^7.21.5"
+
+"@babel/helper-optimise-call-expression@^7.18.6":
+ "integrity" "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ "integrity" "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz"
+ "version" "7.21.5"
+
+"@babel/helper-remap-async-to-generator@^7.18.9":
+ "integrity" "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz"
+ "version" "7.18.9"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-wrap-function" "^7.18.9"
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7":
+ "integrity" "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz"
+ "version" "7.20.7"
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-member-expression-to-functions" "^7.20.7"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.20.7"
+ "@babel/types" "^7.20.7"
+
+"@babel/helper-simple-access@^7.21.5":
+ "integrity" "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/types" "^7.21.5"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
+ "integrity" "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz"
+ "version" "7.20.0"
+ dependencies:
+ "@babel/types" "^7.20.0"
+
+"@babel/helper-split-export-declaration@^7.18.6":
+ "integrity" "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-string-parser@^7.21.5":
+ "integrity" "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz"
+ "version" "7.21.5"
+
+"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
+ "integrity" "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz"
+ "version" "7.19.1"
+
+"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0":
+ "integrity" "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz"
+ "version" "7.21.0"
+
+"@babel/helper-wrap-function@^7.18.9":
+ "integrity" "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q=="
+ "resolved" "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz"
+ "version" "7.20.5"
+ dependencies:
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.20.5"
+ "@babel/types" "^7.20.5"
+
+"@babel/helpers@^7.21.5":
+ "integrity" "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA=="
+ "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.5"
+ "@babel/types" "^7.21.5"
+
+"@babel/highlight@^7.18.6":
+ "integrity" "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g=="
+ "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.18.6"
+ "chalk" "^2.0.0"
+ "js-tokens" "^4.0.0"
+
+"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8":
+ "integrity" "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA=="
+ "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz"
+ "version" "7.21.8"
+
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
+ "integrity" "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7":
+ "integrity" "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz"
+ "version" "7.20.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.20.7"
+
+"@babel/plugin-proposal-async-generator-functions@^7.0.0", "@babel/plugin-proposal-async-generator-functions@^7.20.7":
+ "integrity" "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz"
+ "version" "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"
+
+"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.18.6":
+ "integrity" "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-proposal-class-static-block@^7.21.0":
+ "integrity" "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.21.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
+"@babel/plugin-proposal-dynamic-import@^7.18.6":
+ "integrity" "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
+"@babel/plugin-proposal-export-default-from@^7.0.0":
+ "integrity" "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz"
+ "version" "7.18.10"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/plugin-syntax-export-default-from" "^7.18.6"
+
+"@babel/plugin-proposal-export-namespace-from@^7.18.9":
+ "integrity" "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz"
+ "version" "7.18.9"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
+"@babel/plugin-proposal-json-strings@^7.18.6":
+ "integrity" "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+
+"@babel/plugin-proposal-logical-assignment-operators@^7.20.7":
+ "integrity" "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz"
+ "version" "7.20.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0-0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6":
+ "integrity" "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+"@babel/plugin-proposal-numeric-separator@^7.0.0", "@babel/plugin-proposal-numeric-separator@^7.18.6":
+ "integrity" "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.20.7":
+ "integrity" "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz"
+ "version" "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"
+
+"@babel/plugin-proposal-optional-catch-binding@^7.0.0", "@babel/plugin-proposal-optional-catch-binding@^7.18.6":
+ "integrity" "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
+"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.0.0-0", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0":
+ "integrity" "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz"
+ "version" "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"
+
+"@babel/plugin-proposal-private-methods@^7.18.6":
+ "integrity" "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-proposal-private-property-in-object@^7.21.0":
+ "integrity" "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-create-class-features-plugin" "^7.21.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+
+"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+ "integrity" "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-syntax-async-generators@^7.8.4":
+ "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz"
+ "version" "7.8.4"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-bigint@^7.8.3":
+ "integrity" "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3":
+ "integrity" "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz"
+ "version" "7.12.13"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-class-static-block@^7.14.5":
+ "integrity" "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz"
+ "version" "7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.3":
+ "integrity" "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.18.6":
+ "integrity" "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-syntax-export-namespace-from@^7.8.3":
+ "integrity" "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.18.6":
+ "integrity" "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-syntax-import-assertions@^7.20.0":
+ "integrity" "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz"
+ "version" "7.20.0"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.19.0"
+
+"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3":
+ "integrity" "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz"
+ "version" "7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-json-strings@^7.8.3":
+ "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.7.2":
+ "integrity" "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
+ "integrity" "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz"
+ "version" "7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3":
+ "integrity" "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz"
+ "version" "7.10.4"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.3":
+ "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz"
+ "version" "7.8.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-private-property-in-object@^7.14.5":
+ "integrity" "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz"
+ "version" "7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3":
+ "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz"
+ "version" "7.14.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2":
+ "integrity" "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz"
+ "version" "7.20.0"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.19.0"
+
+"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.0.0-0", "@babel/plugin-transform-arrow-functions@^7.21.5":
+ "integrity" "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+
+"@babel/plugin-transform-async-to-generator@^7.0.0", "@babel/plugin-transform-async-to-generator@^7.20.7":
+ "integrity" "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz"
+ "version" "7.20.7"
+ dependencies:
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-remap-async-to-generator" "^7.18.9"
+
+"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.18.6":
+ "integrity" "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.21.0":
+ "integrity" "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.21.0":
+ "integrity" "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-compilation-targets" "^7.20.7"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-replace-supers" "^7.20.7"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "globals" "^11.1.0"
+
+"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.21.5":
+ "integrity" "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/template" "^7.20.7"
+
+"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.21.3":
+ "integrity" "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz"
+ "version" "7.21.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4":
+ "integrity" "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-duplicate-keys@^7.18.9":
+ "integrity" "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz"
+ "version" "7.18.9"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-exponentiation-operator@^7.18.6":
+ "integrity" "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.18.6":
+ "integrity" "sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-flow" "^7.18.6"
+
+"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.21.5":
+ "integrity" "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+
+"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.18.9":
+ "integrity" "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz"
+ "version" "7.18.9"
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.18.9"
+ "@babel/helper-function-name" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.18.9":
+ "integrity" "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz"
+ "version" "7.18.9"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.18.6":
+ "integrity" "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-modules-amd@^7.20.11":
+ "integrity" "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz"
+ "version" "7.20.11"
+ dependencies:
+ "@babel/helper-module-transforms" "^7.20.11"
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.21.5":
+ "integrity" "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/helper-module-transforms" "^7.21.5"
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/helper-simple-access" "^7.21.5"
+
+"@babel/plugin-transform-modules-systemjs@^7.20.11":
+ "integrity" "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz"
+ "version" "7.20.11"
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-module-transforms" "^7.20.11"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-validator-identifier" "^7.19.1"
+
+"@babel/plugin-transform-modules-umd@^7.18.6":
+ "integrity" "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-module-transforms" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-named-capturing-groups-regex@^7.0.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.20.5":
+ "integrity" "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz"
+ "version" "7.20.5"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.20.5"
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+"@babel/plugin-transform-new-target@^7.18.6":
+ "integrity" "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-object-assign@^7.16.7":
+ "integrity" "sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.18.6":
+ "integrity" "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.18.6"
+
+"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3":
+ "integrity" "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz"
+ "version" "7.21.3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.18.6":
+ "integrity" "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-react-display-name@^7.0.0":
+ "integrity" "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-react-jsx-self@^7.0.0":
+ "integrity" "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+"@babel/plugin-transform-react-jsx-source@^7.0.0":
+ "integrity" "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz"
+ "version" "7.19.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.19.0"
+
+"@babel/plugin-transform-react-jsx@^7.0.0":
+ "integrity" "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-jsx" "^7.18.6"
+ "@babel/types" "^7.21.0"
+
+"@babel/plugin-transform-regenerator@^7.21.5":
+ "integrity" "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "regenerator-transform" "^0.15.1"
+
+"@babel/plugin-transform-reserved-words@^7.18.6":
+ "integrity" "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-runtime@^7.0.0":
+ "integrity" "sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "babel-plugin-polyfill-corejs2" "^0.3.3"
+ "babel-plugin-polyfill-corejs3" "^0.6.0"
+ "babel-plugin-polyfill-regenerator" "^0.4.1"
+ "semver" "^6.3.0"
+
+"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.0.0-0", "@babel/plugin-transform-shorthand-properties@^7.18.6":
+ "integrity" "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.20.7":
+ "integrity" "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz"
+ "version" "7.20.7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
+
+"@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.18.6":
+ "integrity" "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.0.0-0", "@babel/plugin-transform-template-literals@^7.18.9":
+ "integrity" "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz"
+ "version" "7.18.9"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-typeof-symbol@^7.18.9":
+ "integrity" "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz"
+ "version" "7.18.9"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-typescript@^7.21.0", "@babel/plugin-transform-typescript@^7.5.0":
+ "integrity" "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz"
+ "version" "7.21.3"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-create-class-features-plugin" "^7.21.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-typescript" "^7.20.0"
+
+"@babel/plugin-transform-unicode-escapes@^7.21.5":
+ "integrity" "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.21.5"
+
+"@babel/plugin-transform-unicode-regex@^7.0.0", "@babel/plugin-transform-unicode-regex@^7.18.6":
+ "integrity" "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA=="
+ "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/preset-env@^7.1.6", "@babel/preset-env@^7.21.5":
+ "integrity" "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg=="
+ "resolved" "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/compat-data" "^7.21.5"
+ "@babel/helper-compilation-targets" "^7.21.5"
+ "@babel/helper-plugin-utils" "^7.21.5"
+ "@babel/helper-validator-option" "^7.21.0"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7"
+ "@babel/plugin-proposal-async-generator-functions" "^7.20.7"
+ "@babel/plugin-proposal-class-properties" "^7.18.6"
+ "@babel/plugin-proposal-class-static-block" "^7.21.0"
+ "@babel/plugin-proposal-dynamic-import" "^7.18.6"
+ "@babel/plugin-proposal-export-namespace-from" "^7.18.9"
+ "@babel/plugin-proposal-json-strings" "^7.18.6"
+ "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6"
+ "@babel/plugin-proposal-numeric-separator" "^7.18.6"
+ "@babel/plugin-proposal-object-rest-spread" "^7.20.7"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.18.6"
+ "@babel/plugin-proposal-optional-chaining" "^7.21.0"
+ "@babel/plugin-proposal-private-methods" "^7.18.6"
+ "@babel/plugin-proposal-private-property-in-object" "^7.21.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.18.6"
+ "@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.20.0"
+ "@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-transform-arrow-functions" "^7.21.5"
+ "@babel/plugin-transform-async-to-generator" "^7.20.7"
+ "@babel/plugin-transform-block-scoped-functions" "^7.18.6"
+ "@babel/plugin-transform-block-scoping" "^7.21.0"
+ "@babel/plugin-transform-classes" "^7.21.0"
+ "@babel/plugin-transform-computed-properties" "^7.21.5"
+ "@babel/plugin-transform-destructuring" "^7.21.3"
+ "@babel/plugin-transform-dotall-regex" "^7.18.6"
+ "@babel/plugin-transform-duplicate-keys" "^7.18.9"
+ "@babel/plugin-transform-exponentiation-operator" "^7.18.6"
+ "@babel/plugin-transform-for-of" "^7.21.5"
+ "@babel/plugin-transform-function-name" "^7.18.9"
+ "@babel/plugin-transform-literals" "^7.18.9"
+ "@babel/plugin-transform-member-expression-literals" "^7.18.6"
+ "@babel/plugin-transform-modules-amd" "^7.20.11"
+ "@babel/plugin-transform-modules-commonjs" "^7.21.5"
+ "@babel/plugin-transform-modules-systemjs" "^7.20.11"
+ "@babel/plugin-transform-modules-umd" "^7.18.6"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5"
+ "@babel/plugin-transform-new-target" "^7.18.6"
+ "@babel/plugin-transform-object-super" "^7.18.6"
+ "@babel/plugin-transform-parameters" "^7.21.3"
+ "@babel/plugin-transform-property-literals" "^7.18.6"
+ "@babel/plugin-transform-regenerator" "^7.21.5"
+ "@babel/plugin-transform-reserved-words" "^7.18.6"
+ "@babel/plugin-transform-shorthand-properties" "^7.18.6"
+ "@babel/plugin-transform-spread" "^7.20.7"
+ "@babel/plugin-transform-sticky-regex" "^7.18.6"
+ "@babel/plugin-transform-template-literals" "^7.18.9"
+ "@babel/plugin-transform-typeof-symbol" "^7.18.9"
+ "@babel/plugin-transform-unicode-escapes" "^7.21.5"
+ "@babel/plugin-transform-unicode-regex" "^7.18.6"
+ "@babel/preset-modules" "^0.1.5"
+ "@babel/types" "^7.21.5"
+ "babel-plugin-polyfill-corejs2" "^0.3.3"
+ "babel-plugin-polyfill-corejs3" "^0.6.0"
+ "babel-plugin-polyfill-regenerator" "^0.4.1"
+ "core-js-compat" "^3.25.1"
+ "semver" "^6.3.0"
+
+"@babel/preset-flow@^7.13.13":
+ "integrity" "sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ=="
+ "resolved" "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz"
+ "version" "7.18.6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-validator-option" "^7.18.6"
+ "@babel/plugin-transform-flow-strip-types" "^7.18.6"
+
+"@babel/preset-modules@^0.1.5":
+ "integrity" "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA=="
+ "resolved" "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz"
+ "version" "0.1.5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
+ "@babel/plugin-transform-dotall-regex" "^7.4.4"
+ "@babel/types" "^7.4.4"
+ "esutils" "^2.0.2"
+
+"@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.16.7":
+ "integrity" "sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg=="
+ "resolved" "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz"
+ "version" "7.21.0"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-validator-option" "^7.21.0"
+ "@babel/plugin-transform-typescript" "^7.21.0"
+
+"@babel/register@^7.13.16":
+ "integrity" "sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw=="
+ "resolved" "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz"
+ "version" "7.21.0"
+ 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"
+
+"@babel/regjsgen@^0.8.0":
+ "integrity" "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
+ "resolved" "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz"
+ "version" "0.8.0"
+
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.21.5", "@babel/runtime@^7.8.4":
+ "integrity" "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q=="
+ "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "regenerator-runtime" "^0.13.11"
+
+"@babel/template@^7.0.0", "@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3":
+ "integrity" "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw=="
+ "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz"
+ "version" "7.20.7"
+ dependencies:
+ "@babel/code-frame" "^7.18.6"
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
+
+"@babel/traverse@^7.20.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.5", "@babel/traverse@^7.7.2", "@babel/traverse@^7.7.4":
+ "integrity" "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw=="
+ "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/code-frame" "^7.21.4"
+ "@babel/generator" "^7.21.5"
+ "@babel/helper-environment-visitor" "^7.21.5"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/parser" "^7.21.5"
+ "@babel/types" "^7.21.5"
+ "debug" "^4.1.0"
+ "globals" "^11.1.0"
+
+"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+ "integrity" "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q=="
+ "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz"
+ "version" "7.21.5"
+ dependencies:
+ "@babel/helper-string-parser" "^7.21.5"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ "to-fast-properties" "^2.0.0"
+
+"@bcoe/v8-coverage@^0.2.3":
+ "integrity" "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
+ "resolved" "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz"
+ "version" "0.2.3"
+
+"@callstack/react-theme-provider@^3.0.8":
+ "integrity" "sha512-5U231sYY2sqQOaELX0WBCn+iluV8bFaXIS7em03k4W5Xz0AhGvKlnpLIhDGFP8im/SvNW7/2XoR0BsClhn9t6Q=="
+ "resolved" "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.8.tgz"
+ "version" "3.0.8"
+ dependencies:
+ "deepmerge" "^3.2.0"
+ "hoist-non-react-statics" "^3.3.0"
+
+"@egjs/hammerjs@^2.0.17":
+ "integrity" "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A=="
+ "resolved" "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz"
+ "version" "2.0.17"
+ dependencies:
+ "@types/hammerjs" "^2.0.36"
+
+"@eslint-community/eslint-utils@^4.2.0":
+ "integrity" "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ=="
+ "resolved" "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz"
+ "version" "4.2.0"
+ dependencies:
+ "eslint-visitor-keys" "^3.3.0"
+
+"@eslint-community/regexpp@^4.4.0":
+ "integrity" "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ=="
+ "resolved" "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz"
+ "version" "4.4.0"
+
+"@eslint/eslintrc@^2.0.3":
+ "integrity" "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ=="
+ "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz"
+ "version" "2.0.3"
+ dependencies:
+ "ajv" "^6.12.4"
+ "debug" "^4.3.2"
+ "espree" "^9.5.2"
+ "globals" "^13.19.0"
+ "ignore" "^5.2.0"
+ "import-fresh" "^3.2.1"
+ "js-yaml" "^4.1.0"
+ "minimatch" "^3.1.2"
+ "strip-json-comments" "^3.1.1"
+
+"@eslint/js@8.40.0":
+ "integrity" "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA=="
+ "resolved" "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz"
+ "version" "8.40.0"
+
+"@hapi/hoek@^9.0.0":
+ "integrity" "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
+ "resolved" "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz"
+ "version" "9.3.0"
+
+"@hapi/topo@^5.0.0":
+ "integrity" "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg=="
+ "resolved" "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz"
+ "version" "5.1.0"
+ dependencies:
+ "@hapi/hoek" "^9.0.0"
+
+"@humanwhocodes/config-array@^0.11.8":
+ "integrity" "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g=="
+ "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz"
+ "version" "0.11.8"
+ dependencies:
+ "@humanwhocodes/object-schema" "^1.2.1"
+ "debug" "^4.1.1"
+ "minimatch" "^3.0.5"
+
+"@humanwhocodes/module-importer@^1.0.1":
+ "integrity" "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="
+ "resolved" "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz"
+ "version" "1.0.1"
+
+"@humanwhocodes/object-schema@^1.2.1":
+ "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
+ "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
+ "version" "1.2.1"
+
+"@istanbuljs/load-nyc-config@^1.0.0":
+ "integrity" "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ=="
+ "resolved" "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz"
+ "version" "1.1.0"
+ dependencies:
+ "camelcase" "^5.3.1"
+ "find-up" "^4.1.0"
+ "get-package-type" "^0.1.0"
+ "js-yaml" "^3.13.1"
+ "resolve-from" "^5.0.0"
+
+"@istanbuljs/schema@^0.1.2":
+ "integrity" "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA=="
+ "resolved" "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz"
+ "version" "0.1.3"
+
+"@jest/console@^29.5.0":
+ "integrity" "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ=="
+ "resolved" "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ "chalk" "^4.0.0"
+ "jest-message-util" "^29.5.0"
+ "jest-util" "^29.5.0"
+ "slash" "^3.0.0"
+
+"@jest/core@^29.5.0":
+ "integrity" "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ=="
+ "resolved" "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/console" "^29.5.0"
+ "@jest/reporters" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ "ansi-escapes" "^4.2.1"
+ "chalk" "^4.0.0"
+ "ci-info" "^3.2.0"
+ "exit" "^0.1.2"
+ "graceful-fs" "^4.2.9"
+ "jest-changed-files" "^29.5.0"
+ "jest-config" "^29.5.0"
+ "jest-haste-map" "^29.5.0"
+ "jest-message-util" "^29.5.0"
+ "jest-regex-util" "^29.4.3"
+ "jest-resolve" "^29.5.0"
+ "jest-resolve-dependencies" "^29.5.0"
+ "jest-runner" "^29.5.0"
+ "jest-runtime" "^29.5.0"
+ "jest-snapshot" "^29.5.0"
+ "jest-util" "^29.5.0"
+ "jest-validate" "^29.5.0"
+ "jest-watcher" "^29.5.0"
+ "micromatch" "^4.0.4"
+ "pretty-format" "^29.5.0"
+ "slash" "^3.0.0"
+ "strip-ansi" "^6.0.0"
+
+"@jest/create-cache-key-function@^29.2.1":
+ "integrity" "sha512-LIDZyZgnZss7uikvBKBB/USWwG+GO8+GnwRWT+YkCGDGsqLQlhm9BC3z6+7+eMs1kUlvXQIWEzBR8Q2Pnvx6lg=="
+ "resolved" "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/types" "^29.5.0"
+
+"@jest/environment@^29.5.0":
+ "integrity" "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ=="
+ "resolved" "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ "jest-mock" "^29.5.0"
+
+"@jest/expect-utils@^29.5.0":
+ "integrity" "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg=="
+ "resolved" "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "jest-get-type" "^29.4.3"
+
+"@jest/expect@^29.5.0":
+ "integrity" "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g=="
+ "resolved" "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "expect" "^29.5.0"
+ "jest-snapshot" "^29.5.0"
+
+"@jest/fake-timers@^29.5.0":
+ "integrity" "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg=="
+ "resolved" "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/types" "^29.5.0"
+ "@sinonjs/fake-timers" "^10.0.2"
+ "@types/node" "*"
+ "jest-message-util" "^29.5.0"
+ "jest-mock" "^29.5.0"
+ "jest-util" "^29.5.0"
+
+"@jest/globals@^29.5.0":
+ "integrity" "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ=="
+ "resolved" "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/environment" "^29.5.0"
+ "@jest/expect" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "jest-mock" "^29.5.0"
+
+"@jest/reporters@^29.5.0":
+ "integrity" "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA=="
+ "resolved" "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "@jridgewell/trace-mapping" "^0.3.15"
+ "@types/node" "*"
+ "chalk" "^4.0.0"
+ "collect-v8-coverage" "^1.0.0"
+ "exit" "^0.1.2"
+ "glob" "^7.1.3"
+ "graceful-fs" "^4.2.9"
+ "istanbul-lib-coverage" "^3.0.0"
+ "istanbul-lib-instrument" "^5.1.0"
+ "istanbul-lib-report" "^3.0.0"
+ "istanbul-lib-source-maps" "^4.0.0"
+ "istanbul-reports" "^3.1.3"
+ "jest-message-util" "^29.5.0"
+ "jest-util" "^29.5.0"
+ "jest-worker" "^29.5.0"
+ "slash" "^3.0.0"
+ "string-length" "^4.0.1"
+ "strip-ansi" "^6.0.0"
+ "v8-to-istanbul" "^9.0.1"
+
+"@jest/schemas@^29.4.3":
+ "integrity" "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg=="
+ "resolved" "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz"
+ "version" "29.4.3"
+ dependencies:
+ "@sinclair/typebox" "^0.25.16"
+
+"@jest/source-map@^29.4.3":
+ "integrity" "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w=="
+ "resolved" "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz"
+ "version" "29.4.3"
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.15"
+ "callsites" "^3.0.0"
+ "graceful-fs" "^4.2.9"
+
+"@jest/test-result@^29.5.0":
+ "integrity" "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ=="
+ "resolved" "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/console" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "collect-v8-coverage" "^1.0.0"
+
+"@jest/test-sequencer@^29.5.0":
+ "integrity" "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ=="
+ "resolved" "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/test-result" "^29.5.0"
+ "graceful-fs" "^4.2.9"
+ "jest-haste-map" "^29.5.0"
+ "slash" "^3.0.0"
+
+"@jest/transform@^29.5.0":
+ "integrity" "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw=="
+ "resolved" "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/types" "^29.5.0"
+ "@jridgewell/trace-mapping" "^0.3.15"
+ "babel-plugin-istanbul" "^6.1.1"
+ "chalk" "^4.0.0"
+ "convert-source-map" "^2.0.0"
+ "fast-json-stable-stringify" "^2.1.0"
+ "graceful-fs" "^4.2.9"
+ "jest-haste-map" "^29.5.0"
+ "jest-regex-util" "^29.4.3"
+ "jest-util" "^29.5.0"
+ "micromatch" "^4.0.4"
+ "pirates" "^4.0.4"
+ "slash" "^3.0.0"
+ "write-file-atomic" "^4.0.2"
+
+"@jest/types@^26.6.2":
+ "integrity" "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ=="
+ "resolved" "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz"
+ "version" "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"
+
+"@jest/types@^27.5.1":
+ "integrity" "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw=="
+ "resolved" "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz"
+ "version" "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"
+
+"@jest/types@^29.5.0":
+ "integrity" "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog=="
+ "resolved" "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/schemas" "^29.4.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"
+
+"@jridgewell/gen-mapping@^0.1.0":
+ "integrity" "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz"
+ "version" "0.1.1"
+ dependencies:
+ "@jridgewell/set-array" "^1.0.0"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
+ "integrity" "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz"
+ "version" "0.3.2"
+ dependencies:
+ "@jridgewell/set-array" "^1.0.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/resolve-uri@3.1.0":
+ "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz"
+ "version" "3.1.0"
+
+"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
+ "integrity" "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz"
+ "version" "1.1.2"
+
+"@jridgewell/source-map@^0.3.2":
+ "integrity" "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz"
+ "version" "0.3.3"
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@1.4.14":
+ "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
+ "version" "1.4.14"
+
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
+ "integrity" "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g=="
+ "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz"
+ "version" "0.3.17"
+ dependencies:
+ "@jridgewell/resolve-uri" "3.1.0"
+ "@jridgewell/sourcemap-codec" "1.4.14"
+
+"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
+ "integrity" "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg=="
+ "resolved" "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz"
+ "version" "5.1.1-v1"
+ dependencies:
+ "eslint-scope" "5.1.1"
+
+"@nodelib/fs.scandir@2.1.5":
+ "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="
+ "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
+ "version" "2.1.5"
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ "run-parallel" "^1.1.9"
+
+"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
+ "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
+ "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
+ "version" "2.0.5"
+
+"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
+ "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="
+ "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
+ "version" "1.2.8"
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ "fastq" "^1.6.0"
+
+"@react-native-async-storage/async-storage@^1.18.1":
+ "integrity" "sha512-70aFW8fVCKl+oA1AKPFDpE6s4t9pulj2QeLX+MabEmzfT3urd/3cckv45WJvtocdoIH/oXA3Y+YcCRJCcNa8mA=="
+ "resolved" "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.18.1.tgz"
+ "version" "1.18.1"
+ dependencies:
+ "merge-options" "^3.0.4"
+
+"@react-native-community/cli-clean@^10.1.1":
+ "integrity" "sha512-iNsrjzjIRv9yb5y309SWJ8NDHdwYtnCpmxZouQDyOljUdC9MwdZ4ChbtA4rwQyAwgOVfS9F/j56ML3Cslmvrxg=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-10.1.1.tgz"
+ "version" "10.1.1"
+ dependencies:
+ "@react-native-community/cli-tools" "^10.1.1"
+ "chalk" "^4.1.2"
+ "execa" "^1.0.0"
+ "prompts" "^2.4.0"
+
+"@react-native-community/cli-config@^10.1.1":
+ "integrity" "sha512-p4mHrjC+s/ayiNVG6T35GdEGdP6TuyBUg5plVGRJfTl8WT6LBfLYLk+fz/iETrEZ/YkhQIsQcEUQC47MqLNHog=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-10.1.1.tgz"
+ "version" "10.1.1"
+ dependencies:
+ "@react-native-community/cli-tools" "^10.1.1"
+ "chalk" "^4.1.2"
+ "cosmiconfig" "^5.1.0"
+ "deepmerge" "^3.2.0"
+ "glob" "^7.1.3"
+ "joi" "^17.2.1"
+
+"@react-native-community/cli-debugger-ui@^10.0.0":
+ "integrity" "sha512-8UKLcvpSNxnUTRy8CkCl27GGLqZunQ9ncGYhSrWyKrU9SWBJJGeZwi2k2KaoJi5FvF2+cD0t8z8cU6lsq2ZZmA=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-10.0.0.tgz"
+ "version" "10.0.0"
+ dependencies:
+ "serve-static" "^1.13.1"
+
+"@react-native-community/cli-doctor@^10.2.2":
+ "integrity" "sha512-49Ep2aQOF0PkbAR/TcyMjOm9XwBa8VQr+/Zzf4SJeYwiYLCT1NZRAVAVjYRXl0xqvq5S5mAGZZShS4AQl4WsZw=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-10.2.2.tgz"
+ "version" "10.2.2"
+ dependencies:
+ "@react-native-community/cli-config" "^10.1.1"
+ "@react-native-community/cli-platform-ios" "^10.2.1"
+ "@react-native-community/cli-tools" "^10.1.1"
+ "chalk" "^4.1.2"
+ "command-exists" "^1.2.8"
+ "envinfo" "^7.7.2"
+ "execa" "^1.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" "^6.3.0"
+ "strip-ansi" "^5.2.0"
+ "sudo-prompt" "^9.0.0"
+ "wcwidth" "^1.0.1"
+
+"@react-native-community/cli-hermes@^10.2.0":
+ "integrity" "sha512-urfmvNeR8IiO/Sd92UU3xPO+/qI2lwCWQnxOkWaU/i2EITFekE47MD6MZrfVulRVYRi5cuaFqKZO/ccOdOB/vQ=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-10.2.0.tgz"
+ "version" "10.2.0"
+ dependencies:
+ "@react-native-community/cli-platform-android" "^10.2.0"
+ "@react-native-community/cli-tools" "^10.1.1"
+ "chalk" "^4.1.2"
+ "hermes-profile-transformer" "^0.0.6"
+ "ip" "^1.1.5"
+
+"@react-native-community/cli-platform-android@^10.2.0", "@react-native-community/cli-platform-android@10.2.0":
+ "integrity" "sha512-CBenYwGxwFdObZTn1lgxWtMGA5ms2G/ALQhkS+XTAD7KHDrCxFF9yT/fnAjFZKM6vX/1TqGI1RflruXih3kAhw=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-10.2.0.tgz"
+ "version" "10.2.0"
+ dependencies:
+ "@react-native-community/cli-tools" "^10.1.1"
+ "chalk" "^4.1.2"
+ "execa" "^1.0.0"
+ "glob" "^7.1.3"
+ "logkitty" "^0.7.1"
+
+"@react-native-community/cli-platform-ios@^10.2.1", "@react-native-community/cli-platform-ios@10.2.1":
+ "integrity" "sha512-hz4zu4Y6eyj7D0lnZx8Mf2c2si8y+zh/zUTgCTaPPLzQD8jSZNNBtUUiA1cARm2razpe8marCZ1QbTMAGbf3mg=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.1.tgz"
+ "version" "10.2.1"
+ dependencies:
+ "@react-native-community/cli-tools" "^10.1.1"
+ "chalk" "^4.1.2"
+ "execa" "^1.0.0"
+ "fast-xml-parser" "^4.0.12"
+ "glob" "^7.1.3"
+ "ora" "^5.4.1"
+
+"@react-native-community/cli-plugin-metro@^10.2.2":
+ "integrity" "sha512-sTGjZlD3OGqbF9v1ajwUIXhGmjw9NyJ/14Lo0sg7xH8Pv4qUd5ZvQ6+DWYrQn3IKFUMfGFWYyL81ovLuPylrpw=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.2.tgz"
+ "version" "10.2.2"
+ dependencies:
+ "@react-native-community/cli-server-api" "^10.1.1"
+ "@react-native-community/cli-tools" "^10.1.1"
+ "chalk" "^4.1.2"
+ "execa" "^1.0.0"
+ "metro" "0.73.9"
+ "metro-config" "0.73.9"
+ "metro-core" "0.73.9"
+ "metro-react-native-babel-transformer" "0.73.9"
+ "metro-resolver" "0.73.9"
+ "metro-runtime" "0.73.9"
+ "readline" "^1.3.0"
+
+"@react-native-community/cli-server-api@^10.1.1":
+ "integrity" "sha512-NZDo/wh4zlm8as31UEBno2bui8+ufzsZV+KN7QjEJWEM0levzBtxaD+4je0OpfhRIIkhaRm2gl/vVf7OYAzg4g=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-10.1.1.tgz"
+ "version" "10.1.1"
+ dependencies:
+ "@react-native-community/cli-debugger-ui" "^10.0.0"
+ "@react-native-community/cli-tools" "^10.1.1"
+ "compression" "^1.7.1"
+ "connect" "^3.6.5"
+ "errorhandler" "^1.5.0"
+ "nocache" "^3.0.1"
+ "pretty-format" "^26.6.2"
+ "serve-static" "^1.13.1"
+ "ws" "^7.5.1"
+
+"@react-native-community/cli-tools@^10.1.1":
+ "integrity" "sha512-+FlwOnZBV+ailEzXjcD8afY2ogFEBeHOw/8+XXzMgPaquU2Zly9B+8W089tnnohO3yfiQiZqkQlElP423MY74g=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-10.1.1.tgz"
+ "version" "10.1.1"
+ 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" "^6.3.0"
+ "shell-quote" "^1.7.3"
+
+"@react-native-community/cli-types@^10.0.0":
+ "integrity" "sha512-31oUM6/rFBZQfSmDQsT1DX/5fjqfxg7sf2u8kTPJK7rXVya5SRpAMaCXsPAG0omsmJxXt+J9HxUi3Ic+5Ux5Iw=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-10.0.0.tgz"
+ "version" "10.0.0"
+ dependencies:
+ "joi" "^17.2.1"
+
+"@react-native-community/cli@10.2.2":
+ "integrity" "sha512-aZVcVIqj+OG6CrliR/Yn8wHxrvyzbFBY9cj7n0MvRw/P54QUru2nNqUTSSbqv0Qaa297yHJbe6kFDojDMSTM8Q=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/cli/-/cli-10.2.2.tgz"
+ "version" "10.2.2"
+ dependencies:
+ "@react-native-community/cli-clean" "^10.1.1"
+ "@react-native-community/cli-config" "^10.1.1"
+ "@react-native-community/cli-debugger-ui" "^10.0.0"
+ "@react-native-community/cli-doctor" "^10.2.2"
+ "@react-native-community/cli-hermes" "^10.2.0"
+ "@react-native-community/cli-plugin-metro" "^10.2.2"
+ "@react-native-community/cli-server-api" "^10.1.1"
+ "@react-native-community/cli-tools" "^10.1.1"
+ "@react-native-community/cli-types" "^10.0.0"
+ "chalk" "^4.1.2"
+ "commander" "^9.4.1"
+ "execa" "^1.0.0"
+ "find-up" "^4.1.0"
+ "fs-extra" "^8.1.0"
+ "graceful-fs" "^4.1.3"
+ "prompts" "^2.4.0"
+ "semver" "^6.3.0"
+
+"@react-native-community/eslint-config@^3.2.0":
+ "integrity" "sha512-ZjGvoeiBtCbd506hQqwjKmkWPgynGUoJspG8/MuV/EfKnkjCtBmeJvq2n+sWbWEvL9LWXDp2GJmPzmvU5RSvKQ=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/eslint-config/-/eslint-config-3.2.0.tgz"
+ "version" "3.2.0"
+ dependencies:
+ "@babel/core" "^7.14.0"
+ "@babel/eslint-parser" "^7.18.2"
+ "@react-native-community/eslint-plugin" "^1.1.0"
+ "@typescript-eslint/eslint-plugin" "^5.30.5"
+ "@typescript-eslint/parser" "^5.30.5"
+ "eslint-config-prettier" "^8.5.0"
+ "eslint-plugin-eslint-comments" "^3.2.0"
+ "eslint-plugin-ft-flow" "^2.0.1"
+ "eslint-plugin-jest" "^26.5.3"
+ "eslint-plugin-prettier" "^4.2.1"
+ "eslint-plugin-react" "^7.30.1"
+ "eslint-plugin-react-hooks" "^4.6.0"
+ "eslint-plugin-react-native" "^4.0.0"
+
+"@react-native-community/eslint-plugin@^1.1.0":
+ "integrity" "sha512-+zDZ20NUnSWghj7Ku5aFphMzuM9JulqCW+aPXT6IfIXFbb8tzYTTOSeRFOtuekJ99ibW2fUCSsjuKNlwDIbHFg=="
+ "resolved" "https://registry.npmjs.org/@react-native-community/eslint-plugin/-/eslint-plugin-1.3.0.tgz"
+ "version" "1.3.0"
+
+"@react-native/assets@1.0.0":
+ "integrity" "sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ=="
+ "resolved" "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz"
+ "version" "1.0.0"
+
+"@react-native/normalize-color@*", "@react-native/normalize-color@2.1.0":
+ "integrity" "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA=="
+ "resolved" "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz"
+ "version" "2.1.0"
+
+"@react-native/polyfills@2.0.0":
+ "integrity" "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ=="
+ "resolved" "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz"
+ "version" "2.0.0"
+
+"@react-native/virtualized-lists@^0.72.4":
+ "integrity" "sha512-2t8WBVACkKEadtsiGYJaYTix575J/5VQJyqnyL7iDIsd3iG7ODjfMDsTGsVyAA2Av/xeVIuVQRUX0ZzV3cucug=="
+ "resolved" "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.72.4.tgz"
+ "version" "0.72.4"
+ dependencies:
+ "invariant" "^2.2.4"
+ "nullthrows" "^1.1.1"
+
+"@react-navigation/bottom-tabs@^6.5.7":
+ "integrity" "sha512-9oZYyRu2z7+1pr2dX5V54rHFPmlj4ztwQxFe85zwpnGcPtGIsXj7VCIdlHnjRHJBBFCszvJGQpYY6/G2+DfD+A=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.7.tgz"
+ "version" "6.5.7"
+ dependencies:
+ "@react-navigation/elements" "^1.3.17"
+ "color" "^4.2.3"
+ "warn-once" "^0.1.0"
+
+"@react-navigation/core@^6.4.8":
+ "integrity" "sha512-klZ9Mcf/P2j+5cHMoGyIeurEzyBM2Uq9+NoSFrF6sdV5iCWHLFhrCXuhbBiQ5wVLCKf4lavlkd/DDs47PXs9RQ=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.8.tgz"
+ "version" "6.4.8"
+ dependencies:
+ "@react-navigation/routers" "^6.1.8"
+ "escape-string-regexp" "^4.0.0"
+ "nanoid" "^3.1.23"
+ "query-string" "^7.1.3"
+ "react-is" "^16.13.0"
+ "use-latest-callback" "^0.1.5"
+
+"@react-navigation/drawer@^6.6.2":
+ "integrity" "sha512-6qt4guBdz7bkdo/8BLSCcFNdQdSPYyNn05D9cD+VCY3mGThSiD8bRiP9ju+64im7LsSU+bNWXaP8RxA/FtTVQg=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.2.tgz"
+ "version" "6.6.2"
+ dependencies:
+ "@react-navigation/elements" "^1.3.17"
+ "color" "^4.2.3"
+ "warn-once" "^0.1.0"
+
+"@react-navigation/elements@^1.3.17":
+ "integrity" "sha512-sui8AzHm6TxeEvWT/NEXlz3egYvCUog4tlXA4Xlb2Vxvy3purVXDq/XsM56lJl344U5Aj/jDzkVanOTMWyk4UA=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.17.tgz"
+ "version" "1.3.17"
+
+"@react-navigation/native-stack@^6.9.12":
+ "integrity" "sha512-kS2zXCWP0Rgt7uWaCUKrRl7U2U1Gp19rM1kyRY2YzBPXhWGVPjQ2ygBp88CTQzjgy8M07H/79jvGiZ0mlEJI+g=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.12.tgz"
+ "version" "6.9.12"
+ dependencies:
+ "@react-navigation/elements" "^1.3.17"
+ "warn-once" "^0.1.0"
+
+"@react-navigation/native@^6.0.0", "@react-navigation/native@^6.1.6":
+ "integrity" "sha512-14PmSy4JR8HHEk04QkxQ0ZLuqtiQfb4BV9kkMXD2/jI4TZ+yc43OnO6fQ2o9wm+Bq8pY3DxyerC2AjNUz+oH7Q=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.6.tgz"
+ "version" "6.1.6"
+ dependencies:
+ "@react-navigation/core" "^6.4.8"
+ "escape-string-regexp" "^4.0.0"
+ "fast-deep-equal" "^3.1.3"
+ "nanoid" "^3.1.23"
+
+"@react-navigation/routers@^6.1.8":
+ "integrity" "sha512-CEge+ZLhb1HBrSvv4RwOol7EKLW1QoqVIQlE9TN5MpxS/+VoQvP+cLbuz0Op53/iJfYhtXRFd1ZAd3RTRqto9w=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.8.tgz"
+ "version" "6.1.8"
+ dependencies:
+ "nanoid" "^3.1.23"
+
+"@react-navigation/stack@^6.3.16":
+ "integrity" "sha512-KTOn9cNuZ6p154Htbl2DiR95Wl+c7niLPRiGs7gjOkyVDGiaGQF9ODNQTYBDE1OxZGHe/EyYc6T2CbmiItLWDg=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.3.16.tgz"
+ "version" "6.3.16"
+ dependencies:
+ "@react-navigation/elements" "^1.3.17"
+ "color" "^4.2.3"
+ "warn-once" "^0.1.0"
+
+"@sideway/address@^4.1.3":
+ "integrity" "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw=="
+ "resolved" "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz"
+ "version" "4.1.4"
+ dependencies:
+ "@hapi/hoek" "^9.0.0"
+
+"@sideway/formula@^3.0.1":
+ "integrity" "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
+ "resolved" "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz"
+ "version" "3.0.1"
+
+"@sideway/pinpoint@^2.0.0":
+ "integrity" "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ "resolved" "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz"
+ "version" "2.0.0"
+
+"@sinclair/typebox@^0.25.16":
+ "integrity" "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ=="
+ "resolved" "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz"
+ "version" "0.25.24"
+
+"@sinonjs/commons@^2.0.0":
+ "integrity" "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg=="
+ "resolved" "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "type-detect" "4.0.8"
+
+"@sinonjs/fake-timers@^10.0.2":
+ "integrity" "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw=="
+ "resolved" "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz"
+ "version" "10.0.2"
+ dependencies:
+ "@sinonjs/commons" "^2.0.0"
+
+"@tsconfig/react-native@^3.0.1":
+ "integrity" "sha512-7C4WVvuKjATN8DU4+l9nuauakWFwNks4ZDNzM00asa3SBdywzqpVrXbN5nwlneivs3Y+98Nk//HNRlIzSMWEBw=="
+ "resolved" "https://registry.npmjs.org/@tsconfig/react-native/-/react-native-3.0.1.tgz"
+ "version" "3.0.1"
+
+"@types/babel__core@^7.1.14":
+ "integrity" "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ=="
+ "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz"
+ "version" "7.20.0"
+ dependencies:
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+ "integrity" "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg=="
+ "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz"
+ "version" "7.6.4"
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+ "integrity" "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g=="
+ "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz"
+ "version" "7.4.1"
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
+ "integrity" "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w=="
+ "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz"
+ "version" "7.18.3"
+ dependencies:
+ "@babel/types" "^7.3.0"
+
+"@types/graceful-fs@^4.1.3":
+ "integrity" "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw=="
+ "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz"
+ "version" "4.1.6"
+ dependencies:
+ "@types/node" "*"
+
+"@types/hammerjs@^2.0.36":
+ "integrity" "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA=="
+ "resolved" "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz"
+ "version" "2.0.41"
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
+ "integrity" "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g=="
+ "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz"
+ "version" "2.0.4"
+
+"@types/istanbul-lib-report@*":
+ "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg=="
+ "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+
+"@types/istanbul-reports@^3.0.0":
+ "integrity" "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw=="
+ "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz"
+ "version" "3.0.1"
+ dependencies:
+ "@types/istanbul-lib-report" "*"
+
+"@types/jest@^29.5.1":
+ "integrity" "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ=="
+ "resolved" "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz"
+ "version" "29.5.1"
+ dependencies:
+ "expect" "^29.0.0"
+ "pretty-format" "^29.0.0"
+
+"@types/json-schema@^7.0.9":
+ "integrity" "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
+ "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz"
+ "version" "7.0.11"
+
+"@types/node@*":
+ "integrity" "sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw=="
+ "resolved" "https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz"
+ "version" "18.15.3"
+
+"@types/prettier@^2.1.5":
+ "integrity" "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg=="
+ "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz"
+ "version" "2.7.2"
+
+"@types/prop-types@*":
+ "integrity" "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz"
+ "version" "15.7.5"
+
+"@types/react-native-vector-icons@^6.4.13":
+ "integrity" "sha512-1PqFoKuXTSzMHwGMAr+REdYJBQAbe9xrww3ecZR0FsHcD1K+vGS/rxuAriL4rsI6+p69sZQjDzpEVAbDQcjSwA=="
+ "resolved" "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.13.tgz"
+ "version" "6.4.13"
+ dependencies:
+ "@types/react" "*"
+ "@types/react-native" "^0.70"
+
+"@types/react-native@^0.70":
+ "integrity" "sha512-VnC/ny8Eynk3fvY4cnNKXpo/0zUhA2gO64RX51yzVofblOP6TR6jciga0kIjI4c+2eUyWNGrahmiolNm+QU6Cw=="
+ "resolved" "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.13.tgz"
+ "version" "0.70.13"
+ dependencies:
+ "@types/react" "*"
+
+"@types/react-native@^0.72.0":
+ "integrity" "sha512-g1PJXUQ0SnYTimfTeN9dRqj8VfzvgJjt/eakEH7+tlm/ZiEPiL9xCool4iKmqalthwtM0/BkGhjwrKnJyg1JDA=="
+ "resolved" "https://registry.npmjs.org/@types/react-native/-/react-native-0.72.0.tgz"
+ "version" "0.72.0"
+ dependencies:
+ "@react-native/virtualized-lists" "^0.72.4"
+ "@types/react" "*"
+
+"@types/react-test-renderer@^18.0.0":
+ "integrity" "sha512-C7/5FBJ3g3sqUahguGi03O79b8afNeSD6T8/GU50oQrJCU0bVCCGQHaGKUbg2Ce8VQEEqTw8/HiS6lXHHdgkdQ=="
+ "resolved" "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-18.0.0.tgz"
+ "version" "18.0.0"
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*", "@types/react@^18.2.6":
+ "integrity" "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA=="
+ "resolved" "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz"
+ "version" "18.2.6"
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ "csstype" "^3.0.2"
+
+"@types/scheduler@*":
+ "integrity" "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz"
+ "version" "0.16.2"
+
+"@types/semver@^7.3.12":
+ "integrity" "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw=="
+ "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz"
+ "version" "7.3.13"
+
+"@types/stack-utils@^2.0.0":
+ "integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
+ "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz"
+ "version" "2.0.1"
+
+"@types/yargs-parser@*":
+ "integrity" "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
+ "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz"
+ "version" "21.0.0"
+
+"@types/yargs@^15.0.0":
+ "integrity" "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg=="
+ "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz"
+ "version" "15.0.15"
+ dependencies:
+ "@types/yargs-parser" "*"
+
+"@types/yargs@^16.0.0":
+ "integrity" "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ=="
+ "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz"
+ "version" "16.0.5"
+ dependencies:
+ "@types/yargs-parser" "*"
+
+"@types/yargs@^17.0.8":
+ "integrity" "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g=="
+ "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz"
+ "version" "17.0.22"
+ dependencies:
+ "@types/yargs-parser" "*"
+
+"@typescript-eslint/eslint-plugin@^5.0.0", "@typescript-eslint/eslint-plugin@^5.30.5":
+ "integrity" "sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.55.0.tgz"
+ "version" "5.55.0"
+ dependencies:
+ "@eslint-community/regexpp" "^4.4.0"
+ "@typescript-eslint/scope-manager" "5.55.0"
+ "@typescript-eslint/type-utils" "5.55.0"
+ "@typescript-eslint/utils" "5.55.0"
+ "debug" "^4.3.4"
+ "grapheme-splitter" "^1.0.4"
+ "ignore" "^5.2.0"
+ "natural-compare-lite" "^1.4.0"
+ "semver" "^7.3.7"
+ "tsutils" "^3.21.0"
+
+"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.30.5":
+ "integrity" "sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.55.0.tgz"
+ "version" "5.55.0"
+ dependencies:
+ "@typescript-eslint/scope-manager" "5.55.0"
+ "@typescript-eslint/types" "5.55.0"
+ "@typescript-eslint/typescript-estree" "5.55.0"
+ "debug" "^4.3.4"
+
+"@typescript-eslint/scope-manager@5.55.0":
+ "integrity" "sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.55.0.tgz"
+ "version" "5.55.0"
+ dependencies:
+ "@typescript-eslint/types" "5.55.0"
+ "@typescript-eslint/visitor-keys" "5.55.0"
+
+"@typescript-eslint/type-utils@5.55.0":
+ "integrity" "sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.55.0.tgz"
+ "version" "5.55.0"
+ dependencies:
+ "@typescript-eslint/typescript-estree" "5.55.0"
+ "@typescript-eslint/utils" "5.55.0"
+ "debug" "^4.3.4"
+ "tsutils" "^3.21.0"
+
+"@typescript-eslint/types@5.55.0":
+ "integrity" "sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.55.0.tgz"
+ "version" "5.55.0"
+
+"@typescript-eslint/typescript-estree@5.55.0":
+ "integrity" "sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.55.0.tgz"
+ "version" "5.55.0"
+ dependencies:
+ "@typescript-eslint/types" "5.55.0"
+ "@typescript-eslint/visitor-keys" "5.55.0"
+ "debug" "^4.3.4"
+ "globby" "^11.1.0"
+ "is-glob" "^4.0.3"
+ "semver" "^7.3.7"
+ "tsutils" "^3.21.0"
+
+"@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@5.55.0":
+ "integrity" "sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.55.0.tgz"
+ "version" "5.55.0"
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@types/json-schema" "^7.0.9"
+ "@types/semver" "^7.3.12"
+ "@typescript-eslint/scope-manager" "5.55.0"
+ "@typescript-eslint/types" "5.55.0"
+ "@typescript-eslint/typescript-estree" "5.55.0"
+ "eslint-scope" "^5.1.1"
+ "semver" "^7.3.7"
+
+"@typescript-eslint/visitor-keys@5.55.0":
+ "integrity" "sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw=="
+ "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.55.0.tgz"
+ "version" "5.55.0"
+ dependencies:
+ "@typescript-eslint/types" "5.55.0"
+ "eslint-visitor-keys" "^3.3.0"
+
+"abort-controller@^3.0.0":
+ "integrity" "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="
+ "resolved" "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "event-target-shim" "^5.0.0"
+
+"absolute-path@^0.0.0":
+ "integrity" "sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA=="
+ "resolved" "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz"
+ "version" "0.0.0"
+
+"accepts@^1.3.7", "accepts@~1.3.5", "accepts@~1.3.7":
+ "integrity" "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="
+ "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz"
+ "version" "1.3.8"
+ dependencies:
+ "mime-types" "~2.1.34"
+ "negotiator" "0.6.3"
+
+"acorn-jsx@^5.3.2":
+ "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
+ "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
+ "version" "5.3.2"
+
+"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8.5.0", "acorn@^8.8.0":
+ "integrity" "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw=="
+ "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz"
+ "version" "8.8.2"
+
+"ajv@^6.10.0", "ajv@^6.12.4":
+ "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="
+ "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
+ "version" "6.12.6"
+ dependencies:
+ "fast-deep-equal" "^3.1.1"
+ "fast-json-stable-stringify" "^2.0.0"
+ "json-schema-traverse" "^0.4.1"
+ "uri-js" "^4.2.2"
+
+"anser@^1.4.9":
+ "integrity" "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww=="
+ "resolved" "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz"
+ "version" "1.4.10"
+
+"ansi-escapes@^4.2.1":
+ "integrity" "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="
+ "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz"
+ "version" "4.3.2"
+ dependencies:
+ "type-fest" "^0.21.3"
+
+"ansi-fragments@^0.2.1":
+ "integrity" "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w=="
+ "resolved" "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz"
+ "version" "0.2.1"
+ dependencies:
+ "colorette" "^1.0.7"
+ "slice-ansi" "^2.0.0"
+ "strip-ansi" "^5.0.0"
+
+"ansi-regex@^4.1.0":
+ "integrity" "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="
+ "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz"
+ "version" "4.1.1"
+
+"ansi-regex@^5.0.0", "ansi-regex@^5.0.1":
+ "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
+ "version" "5.0.1"
+
+"ansi-styles@^3.2.0":
+ "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
+ "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
+ "version" "3.2.1"
+ dependencies:
+ "color-convert" "^1.9.0"
+
+"ansi-styles@^3.2.1":
+ "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
+ "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
+ "version" "3.2.1"
+ dependencies:
+ "color-convert" "^1.9.0"
+
+"ansi-styles@^4.0.0", "ansi-styles@^4.1.0":
+ "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="
+ "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
+ "version" "4.3.0"
+ dependencies:
+ "color-convert" "^2.0.1"
+
+"ansi-styles@^5.0.0":
+ "integrity" "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
+ "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz"
+ "version" "5.2.0"
+
+"anymatch@^3.0.3":
+ "integrity" "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="
+ "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"
+ "version" "3.1.3"
+ dependencies:
+ "normalize-path" "^3.0.0"
+ "picomatch" "^2.0.4"
+
+"appdirsjs@^1.2.4":
+ "integrity" "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="
+ "resolved" "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz"
+ "version" "1.2.7"
+
+"argparse@^1.0.7":
+ "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="
+ "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"
+ "version" "1.0.10"
+ dependencies:
+ "sprintf-js" "~1.0.2"
+
+"argparse@^2.0.1":
+ "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
+ "version" "2.0.1"
+
+"arr-diff@^4.0.0":
+ "integrity" "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA=="
+ "resolved" "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz"
+ "version" "4.0.0"
+
+"arr-flatten@^1.1.0":
+ "integrity" "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
+ "resolved" "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
+ "version" "1.1.0"
+
+"arr-union@^3.1.0":
+ "integrity" "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q=="
+ "resolved" "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz"
+ "version" "3.1.0"
+
+"array-buffer-byte-length@^1.0.0":
+ "integrity" "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A=="
+ "resolved" "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "is-array-buffer" "^3.0.1"
+
+"array-includes@^3.1.5", "array-includes@^3.1.6":
+ "integrity" "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw=="
+ "resolved" "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz"
+ "version" "3.1.6"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+ "get-intrinsic" "^1.1.3"
+ "is-string" "^1.0.7"
+
+"array-union@^2.1.0":
+ "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
+ "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
+ "version" "2.1.0"
+
+"array-unique@^0.3.2":
+ "integrity" "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ=="
+ "resolved" "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz"
+ "version" "0.3.2"
+
+"array.prototype.flatmap@^1.3.1":
+ "integrity" "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ=="
+ "resolved" "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz"
+ "version" "1.3.1"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+ "es-shim-unscopables" "^1.0.0"
+
+"array.prototype.tosorted@^1.1.1":
+ "integrity" "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ=="
+ "resolved" "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz"
+ "version" "1.1.1"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+ "es-shim-unscopables" "^1.0.0"
+ "get-intrinsic" "^1.1.3"
+
+"asap@~2.0.6":
+ "integrity" "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+ "resolved" "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"
+ "version" "2.0.6"
+
+"assign-symbols@^1.0.0":
+ "integrity" "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw=="
+ "resolved" "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz"
+ "version" "1.0.0"
+
+"ast-types@0.14.2":
+ "integrity" "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA=="
+ "resolved" "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz"
+ "version" "0.14.2"
+ dependencies:
+ "tslib" "^2.0.1"
+
+"astral-regex@^1.0.0":
+ "integrity" "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="
+ "resolved" "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz"
+ "version" "1.0.0"
+
+"async-limiter@~1.0.0":
+ "integrity" "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ "resolved" "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz"
+ "version" "1.0.1"
+
+"async@^3.2.2":
+ "integrity" "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
+ "resolved" "https://registry.npmjs.org/async/-/async-3.2.4.tgz"
+ "version" "3.2.4"
+
+"atob@^2.1.2":
+ "integrity" "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+ "resolved" "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
+ "version" "2.1.2"
+
+"available-typed-arrays@^1.0.5":
+ "integrity" "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="
+ "resolved" "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz"
+ "version" "1.0.5"
+
+"babel-core@^7.0.0-bridge.0":
+ "integrity" "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg=="
+ "resolved" "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz"
+ "version" "7.0.0-bridge.0"
+
+"babel-jest@^29.2.1", "babel-jest@^29.5.0":
+ "integrity" "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q=="
+ "resolved" "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/transform" "^29.5.0"
+ "@types/babel__core" "^7.1.14"
+ "babel-plugin-istanbul" "^6.1.1"
+ "babel-preset-jest" "^29.5.0"
+ "chalk" "^4.0.0"
+ "graceful-fs" "^4.2.9"
+ "slash" "^3.0.0"
+
+"babel-plugin-istanbul@^6.1.1":
+ "integrity" "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz"
+ "version" "6.1.1"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ "istanbul-lib-instrument" "^5.0.4"
+ "test-exclude" "^6.0.0"
+
+"babel-plugin-jest-hoist@^29.5.0":
+ "integrity" "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
+ "@types/babel__core" "^7.1.14"
+ "@types/babel__traverse" "^7.0.6"
+
+"babel-plugin-polyfill-corejs2@^0.3.3":
+ "integrity" "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz"
+ "version" "0.3.3"
+ dependencies:
+ "@babel/compat-data" "^7.17.7"
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+ "semver" "^6.1.1"
+
+"babel-plugin-polyfill-corejs3@^0.6.0":
+ "integrity" "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz"
+ "version" "0.6.0"
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+ "core-js-compat" "^3.25.1"
+
+"babel-plugin-polyfill-regenerator@^0.4.1":
+ "integrity" "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz"
+ "version" "0.4.1"
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+
+"babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0":
+ "integrity" "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz"
+ "version" "7.0.0-beta.0"
+
+"babel-plugin-transform-flow-enums@^0.0.2":
+ "integrity" "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ=="
+ "resolved" "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz"
+ "version" "0.0.2"
+ dependencies:
+ "@babel/plugin-syntax-flow" "^7.12.1"
+
+"babel-preset-current-node-syntax@^1.0.0":
+ "integrity" "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ=="
+ "resolved" "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz"
+ "version" "1.0.1"
+ dependencies:
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-bigint" "^7.8.3"
+ "@babel/plugin-syntax-class-properties" "^7.8.3"
+ "@babel/plugin-syntax-import-meta" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+ "@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-top-level-await" "^7.8.3"
+
+"babel-preset-fbjs@^3.4.0":
+ "integrity" "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow=="
+ "resolved" "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz"
+ "version" "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"
+
+"babel-preset-jest@^29.5.0":
+ "integrity" "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg=="
+ "resolved" "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "babel-plugin-jest-hoist" "^29.5.0"
+ "babel-preset-current-node-syntax" "^1.0.0"
+
+"balanced-match@^1.0.0":
+ "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
+ "version" "1.0.2"
+
+"base@^0.11.1":
+ "integrity" "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg=="
+ "resolved" "https://registry.npmjs.org/base/-/base-0.11.2.tgz"
+ "version" "0.11.2"
+ dependencies:
+ "cache-base" "^1.0.1"
+ "class-utils" "^0.3.5"
+ "component-emitter" "^1.2.1"
+ "define-property" "^1.0.0"
+ "isobject" "^3.0.1"
+ "mixin-deep" "^1.2.0"
+ "pascalcase" "^0.1.1"
+
+"base64-js@^1.1.2", "base64-js@^1.3.1":
+ "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
+ "version" "1.5.1"
+
+"bl@^4.1.0":
+ "integrity" "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="
+ "resolved" "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz"
+ "version" "4.1.0"
+ dependencies:
+ "buffer" "^5.5.0"
+ "inherits" "^2.0.4"
+ "readable-stream" "^3.4.0"
+
+"brace-expansion@^1.1.7":
+ "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
+ "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
+ "version" "1.1.11"
+ dependencies:
+ "balanced-match" "^1.0.0"
+ "concat-map" "0.0.1"
+
+"braces@^2.3.1":
+ "integrity" "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w=="
+ "resolved" "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz"
+ "version" "2.3.2"
+ dependencies:
+ "arr-flatten" "^1.1.0"
+ "array-unique" "^0.3.2"
+ "extend-shallow" "^2.0.1"
+ "fill-range" "^4.0.0"
+ "isobject" "^3.0.1"
+ "repeat-element" "^1.1.2"
+ "snapdragon" "^0.8.1"
+ "snapdragon-node" "^2.0.1"
+ "split-string" "^3.0.2"
+ "to-regex" "^3.0.1"
+
+"braces@^3.0.2":
+ "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A=="
+ "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
+ "version" "3.0.2"
+ dependencies:
+ "fill-range" "^7.0.1"
+
+"browserslist@^4.21.3", "browserslist@^4.21.5", "browserslist@>= 4.21.0":
+ "integrity" "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w=="
+ "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz"
+ "version" "4.21.5"
+ dependencies:
+ "caniuse-lite" "^1.0.30001449"
+ "electron-to-chromium" "^1.4.284"
+ "node-releases" "^2.0.8"
+ "update-browserslist-db" "^1.0.10"
+
+"bser@2.1.1":
+ "integrity" "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ=="
+ "resolved" "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz"
+ "version" "2.1.1"
+ dependencies:
+ "node-int64" "^0.4.0"
+
+"buffer-from@^1.0.0":
+ "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+ "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
+ "version" "1.1.2"
+
+"buffer@^5.5.0":
+ "integrity" "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="
+ "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"
+ "version" "5.7.1"
+ dependencies:
+ "base64-js" "^1.3.1"
+ "ieee754" "^1.1.13"
+
+"bytes@3.0.0":
+ "integrity" "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw=="
+ "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz"
+ "version" "3.0.0"
+
+"cache-base@^1.0.1":
+ "integrity" "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ=="
+ "resolved" "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz"
+ "version" "1.0.1"
+ dependencies:
+ "collection-visit" "^1.0.0"
+ "component-emitter" "^1.2.1"
+ "get-value" "^2.0.6"
+ "has-value" "^1.0.0"
+ "isobject" "^3.0.1"
+ "set-value" "^2.0.0"
+ "to-object-path" "^0.3.0"
+ "union-value" "^1.0.0"
+ "unset-value" "^1.0.0"
+
+"call-bind@^1.0.0", "call-bind@^1.0.2":
+ "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
+ "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "function-bind" "^1.1.1"
+ "get-intrinsic" "^1.0.2"
+
+"caller-callsite@^2.0.0":
+ "integrity" "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ=="
+ "resolved" "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "callsites" "^2.0.0"
+
+"caller-path@^2.0.0":
+ "integrity" "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A=="
+ "resolved" "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "caller-callsite" "^2.0.0"
+
+"callsites@^2.0.0":
+ "integrity" "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ=="
+ "resolved" "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz"
+ "version" "2.0.0"
+
+"callsites@^3.0.0":
+ "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+ "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
+ "version" "3.1.0"
+
+"camelcase@^5.0.0", "camelcase@^5.3.1":
+ "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
+ "version" "5.3.1"
+
+"camelcase@^6.0.0":
+ "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
+ "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
+ "version" "6.3.0"
+
+"camelcase@^6.2.0":
+ "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
+ "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
+ "version" "6.3.0"
+
+"caniuse-lite@^1.0.30001449":
+ "integrity" "sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w=="
+ "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz"
+ "version" "1.0.30001466"
+
+"chalk@^2.0.0":
+ "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="
+ "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
+ "version" "2.4.2"
+ dependencies:
+ "ansi-styles" "^3.2.1"
+ "escape-string-regexp" "^1.0.5"
+ "supports-color" "^5.3.0"
+
+"chalk@^4.0.0", "chalk@^4.1.0", "chalk@^4.1.2":
+ "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="
+ "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
+ "version" "4.1.2"
+ dependencies:
+ "ansi-styles" "^4.1.0"
+ "supports-color" "^7.1.0"
+
+"char-regex@^1.0.2":
+ "integrity" "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="
+ "resolved" "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz"
+ "version" "1.0.2"
+
+"ci-info@^2.0.0":
+ "integrity" "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz"
+ "version" "2.0.0"
+
+"ci-info@^3.2.0":
+ "integrity" "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw=="
+ "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz"
+ "version" "3.8.0"
+
+"cjs-module-lexer@^1.0.0":
+ "integrity" "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA=="
+ "resolved" "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz"
+ "version" "1.2.2"
+
+"class-utils@^0.3.5":
+ "integrity" "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg=="
+ "resolved" "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz"
+ "version" "0.3.6"
+ dependencies:
+ "arr-union" "^3.1.0"
+ "define-property" "^0.2.5"
+ "isobject" "^3.0.0"
+ "static-extend" "^0.1.1"
+
+"cli-cursor@^3.1.0":
+ "integrity" "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="
+ "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz"
+ "version" "3.1.0"
+ dependencies:
+ "restore-cursor" "^3.1.0"
+
+"cli-spinners@^2.5.0":
+ "integrity" "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g=="
+ "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz"
+ "version" "2.9.0"
+
+"cliui@^6.0.0":
+ "integrity" "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ=="
+ "resolved" "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz"
+ "version" "6.0.0"
+ dependencies:
+ "string-width" "^4.2.0"
+ "strip-ansi" "^6.0.0"
+ "wrap-ansi" "^6.2.0"
+
+"cliui@^7.0.2":
+ "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="
+ "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"
+ "version" "7.0.4"
+ dependencies:
+ "string-width" "^4.2.0"
+ "strip-ansi" "^6.0.0"
+ "wrap-ansi" "^7.0.0"
+
+"cliui@^8.0.1":
+ "integrity" "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="
+ "resolved" "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz"
+ "version" "8.0.1"
+ dependencies:
+ "string-width" "^4.2.0"
+ "strip-ansi" "^6.0.1"
+ "wrap-ansi" "^7.0.0"
+
+"clone-deep@^4.0.1":
+ "integrity" "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ=="
+ "resolved" "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz"
+ "version" "4.0.1"
+ dependencies:
+ "is-plain-object" "^2.0.4"
+ "kind-of" "^6.0.2"
+ "shallow-clone" "^3.0.0"
+
+"clone@^1.0.2":
+ "integrity" "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="
+ "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz"
+ "version" "1.0.4"
+
+"co@^4.6.0":
+ "integrity" "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="
+ "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
+ "version" "4.6.0"
+
+"collect-v8-coverage@^1.0.0":
+ "integrity" "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg=="
+ "resolved" "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz"
+ "version" "1.0.1"
+
+"collection-visit@^1.0.0":
+ "integrity" "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw=="
+ "resolved" "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "map-visit" "^1.0.0"
+ "object-visit" "^1.0.0"
+
+"color-convert@^1.9.0":
+ "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
+ "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
+ "version" "1.9.3"
+ dependencies:
+ "color-name" "1.1.3"
+
+"color-convert@^1.9.3":
+ "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
+ "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
+ "version" "1.9.3"
+ dependencies:
+ "color-name" "1.1.3"
+
+"color-convert@^2.0.1":
+ "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="
+ "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
+ "version" "2.0.1"
+ dependencies:
+ "color-name" "~1.1.4"
+
+"color-name@^1.0.0", "color-name@~1.1.4":
+ "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
+ "version" "1.1.4"
+
+"color-name@1.1.3":
+ "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+ "version" "1.1.3"
+
+"color-string@^1.6.0", "color-string@^1.9.0":
+ "integrity" "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="
+ "resolved" "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
+ "version" "1.9.1"
+ dependencies:
+ "color-name" "^1.0.0"
+ "simple-swizzle" "^0.2.2"
+
+"color@^3.1.2":
+ "integrity" "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA=="
+ "resolved" "https://registry.npmjs.org/color/-/color-3.2.1.tgz"
+ "version" "3.2.1"
+ dependencies:
+ "color-convert" "^1.9.3"
+ "color-string" "^1.6.0"
+
+"color@^4.2.3":
+ "integrity" "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="
+ "resolved" "https://registry.npmjs.org/color/-/color-4.2.3.tgz"
+ "version" "4.2.3"
+ dependencies:
+ "color-convert" "^2.0.1"
+ "color-string" "^1.9.0"
+
+"colorette@^1.0.7":
+ "integrity" "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
+ "resolved" "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz"
+ "version" "1.4.0"
+
+"command-exists@^1.2.8":
+ "integrity" "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
+ "resolved" "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz"
+ "version" "1.2.9"
+
+"commander@^2.20.0":
+ "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
+ "version" "2.20.3"
+
+"commander@^9.4.1":
+ "integrity" "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="
+ "resolved" "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz"
+ "version" "9.5.0"
+
+"commander@~2.13.0":
+ "integrity" "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA=="
+ "resolved" "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz"
+ "version" "2.13.0"
+
+"commondir@^1.0.1":
+ "integrity" "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
+ "resolved" "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz"
+ "version" "1.0.1"
+
+"component-emitter@^1.2.1":
+ "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
+ "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz"
+ "version" "1.3.0"
+
+"compressible@~2.0.16":
+ "integrity" "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg=="
+ "resolved" "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz"
+ "version" "2.0.18"
+ dependencies:
+ "mime-db" ">= 1.43.0 < 2"
+
+"compression@^1.7.1":
+ "integrity" "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ=="
+ "resolved" "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz"
+ "version" "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"
+
+"concat-map@0.0.1":
+ "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ "version" "0.0.1"
+
+"connect@^3.6.5":
+ "integrity" "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ=="
+ "resolved" "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz"
+ "version" "3.7.0"
+ dependencies:
+ "debug" "2.6.9"
+ "finalhandler" "1.1.2"
+ "parseurl" "~1.3.3"
+ "utils-merge" "1.0.1"
+
+"convert-source-map@^1.6.0", "convert-source-map@^1.7.0":
+ "integrity" "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
+ "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz"
+ "version" "1.9.0"
+
+"convert-source-map@^2.0.0":
+ "integrity" "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
+ "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz"
+ "version" "2.0.0"
+
+"copy-descriptor@^0.1.0":
+ "integrity" "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw=="
+ "resolved" "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"
+ "version" "0.1.1"
+
+"core-js-compat@^3.25.1":
+ "integrity" "sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA=="
+ "resolved" "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.1.tgz"
+ "version" "3.29.1"
+ dependencies:
+ "browserslist" "^4.21.5"
+
+"core-util-is@~1.0.0":
+ "integrity" "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz"
+ "version" "1.0.3"
+
+"cosmiconfig@^5.0.5", "cosmiconfig@^5.1.0":
+ "integrity" "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA=="
+ "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz"
+ "version" "5.2.1"
+ dependencies:
+ "import-fresh" "^2.0.0"
+ "is-directory" "^0.3.1"
+ "js-yaml" "^3.13.1"
+ "parse-json" "^4.0.0"
+
+"cross-spawn@^6.0.0":
+ "integrity" "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ=="
+ "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz"
+ "version" "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"
+
+"cross-spawn@^7.0.2", "cross-spawn@^7.0.3":
+ "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="
+ "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
+ "version" "7.0.3"
+ dependencies:
+ "path-key" "^3.1.0"
+ "shebang-command" "^2.0.0"
+ "which" "^2.0.1"
+
+"csstype@^3.0.2":
+ "integrity" "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
+ "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz"
+ "version" "3.1.1"
+
+"dayjs@^1.8.15":
+ "integrity" "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
+ "resolved" "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz"
+ "version" "1.11.7"
+
+"debug@^2.2.0":
+ "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
+ "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ "version" "2.6.9"
+ dependencies:
+ "ms" "2.0.0"
+
+"debug@^2.3.3":
+ "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
+ "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ "version" "2.6.9"
+ dependencies:
+ "ms" "2.0.0"
+
+"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4":
+ "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
+ "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
+ "version" "4.3.4"
+ dependencies:
+ "ms" "2.1.2"
+
+"debug@2.6.9":
+ "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
+ "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ "version" "2.6.9"
+ dependencies:
+ "ms" "2.0.0"
+
+"decamelize@^1.2.0":
+ "integrity" "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
+ "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
+ "version" "1.2.0"
+
+"decode-uri-component@^0.2.0", "decode-uri-component@^0.2.2":
+ "integrity" "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="
+ "resolved" "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz"
+ "version" "0.2.2"
+
+"dedent@^0.7.0":
+ "integrity" "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
+ "resolved" "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz"
+ "version" "0.7.0"
+
+"deep-is@^0.1.3":
+ "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
+ "version" "0.1.4"
+
+"deepmerge@^3.2.0":
+ "integrity" "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA=="
+ "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz"
+ "version" "3.3.0"
+
+"deepmerge@^4.2.2", "deepmerge@^4.3.1":
+ "integrity" "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
+ "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz"
+ "version" "4.3.1"
+
+"defaults@^1.0.3":
+ "integrity" "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A=="
+ "resolved" "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz"
+ "version" "1.0.4"
+ dependencies:
+ "clone" "^1.0.2"
+
+"define-properties@^1.1.3", "define-properties@^1.1.4":
+ "integrity" "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA=="
+ "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz"
+ "version" "1.2.0"
+ dependencies:
+ "has-property-descriptors" "^1.0.0"
+ "object-keys" "^1.1.1"
+
+"define-property@^0.2.5":
+ "integrity" "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA=="
+ "resolved" "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ "version" "0.2.5"
+ dependencies:
+ "is-descriptor" "^0.1.0"
+
+"define-property@^1.0.0":
+ "integrity" "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA=="
+ "resolved" "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "is-descriptor" "^1.0.0"
+
+"define-property@^2.0.2":
+ "integrity" "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ=="
+ "resolved" "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz"
+ "version" "2.0.2"
+ dependencies:
+ "is-descriptor" "^1.0.2"
+ "isobject" "^3.0.1"
+
+"denodeify@^1.2.1":
+ "integrity" "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg=="
+ "resolved" "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz"
+ "version" "1.2.1"
+
+"depd@2.0.0":
+ "integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ "resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
+ "version" "2.0.0"
+
+"deprecated-react-native-prop-types@^3.0.1":
+ "integrity" "sha512-J0jCJcsk4hMlIb7xwOZKLfMpuJn6l8UtrPEzzQV5ewz5gvKNYakhBuq9h2rWX7YwHHJZFhU5W8ye7dB9oN8VcQ=="
+ "resolved" "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-3.0.1.tgz"
+ "version" "3.0.1"
+ dependencies:
+ "@react-native/normalize-color" "*"
+ "invariant" "*"
+ "prop-types" "*"
+
+"destroy@1.2.0":
+ "integrity" "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
+ "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
+ "version" "1.2.0"
+
+"detect-newline@^3.0.0":
+ "integrity" "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="
+ "resolved" "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz"
+ "version" "3.1.0"
+
+"diff-sequences@^29.4.3":
+ "integrity" "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA=="
+ "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz"
+ "version" "29.4.3"
+
+"dir-glob@^3.0.1":
+ "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="
+ "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
+ "version" "3.0.1"
+ dependencies:
+ "path-type" "^4.0.0"
+
+"doctrine@^2.1.0":
+ "integrity" "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="
+ "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz"
+ "version" "2.1.0"
+ dependencies:
+ "esutils" "^2.0.2"
+
+"doctrine@^3.0.0":
+ "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="
+ "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "esutils" "^2.0.2"
+
+"ee-first@1.1.1":
+ "integrity" "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
+ "version" "1.1.1"
+
+"electron-to-chromium@^1.4.284":
+ "integrity" "sha512-PqyefhybrVdjAJ45HaPLtuVaehiSw7C3ya0aad+rvmV53IVyXmYRk3pwIOb2TxTDTnmgQdn46NjMMaysx79/6Q=="
+ "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.330.tgz"
+ "version" "1.4.330"
+
+"emittery@^0.13.1":
+ "integrity" "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ=="
+ "resolved" "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz"
+ "version" "0.13.1"
+
+"emoji-regex@^8.0.0":
+ "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
+ "version" "8.0.0"
+
+"encodeurl@~1.0.2":
+ "integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
+ "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
+ "version" "1.0.2"
+
+"end-of-stream@^1.1.0":
+ "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="
+ "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"
+ "version" "1.4.4"
+ dependencies:
+ "once" "^1.4.0"
+
+"envinfo@^7.7.2":
+ "integrity" "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw=="
+ "resolved" "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz"
+ "version" "7.8.1"
+
+"error-ex@^1.3.1":
+ "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="
+ "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
+ "version" "1.3.2"
+ dependencies:
+ "is-arrayish" "^0.2.1"
+
+"error-stack-parser@^2.0.6":
+ "integrity" "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ=="
+ "resolved" "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz"
+ "version" "2.1.4"
+ dependencies:
+ "stackframe" "^1.3.4"
+
+"errorhandler@^1.5.0":
+ "integrity" "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A=="
+ "resolved" "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz"
+ "version" "1.5.1"
+ dependencies:
+ "accepts" "~1.3.7"
+ "escape-html" "~1.0.3"
+
+"es-abstract@^1.19.0", "es-abstract@^1.20.4":
+ "integrity" "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg=="
+ "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz"
+ "version" "1.21.2"
+ dependencies:
+ "array-buffer-byte-length" "^1.0.0"
+ "available-typed-arrays" "^1.0.5"
+ "call-bind" "^1.0.2"
+ "es-set-tostringtag" "^2.0.1"
+ "es-to-primitive" "^1.2.1"
+ "function.prototype.name" "^1.1.5"
+ "get-intrinsic" "^1.2.0"
+ "get-symbol-description" "^1.0.0"
+ "globalthis" "^1.0.3"
+ "gopd" "^1.0.1"
+ "has" "^1.0.3"
+ "has-property-descriptors" "^1.0.0"
+ "has-proto" "^1.0.1"
+ "has-symbols" "^1.0.3"
+ "internal-slot" "^1.0.5"
+ "is-array-buffer" "^3.0.2"
+ "is-callable" "^1.2.7"
+ "is-negative-zero" "^2.0.2"
+ "is-regex" "^1.1.4"
+ "is-shared-array-buffer" "^1.0.2"
+ "is-string" "^1.0.7"
+ "is-typed-array" "^1.1.10"
+ "is-weakref" "^1.0.2"
+ "object-inspect" "^1.12.3"
+ "object-keys" "^1.1.1"
+ "object.assign" "^4.1.4"
+ "regexp.prototype.flags" "^1.4.3"
+ "safe-regex-test" "^1.0.0"
+ "string.prototype.trim" "^1.2.7"
+ "string.prototype.trimend" "^1.0.6"
+ "string.prototype.trimstart" "^1.0.6"
+ "typed-array-length" "^1.0.4"
+ "unbox-primitive" "^1.0.2"
+ "which-typed-array" "^1.1.9"
+
+"es-set-tostringtag@^2.0.1":
+ "integrity" "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg=="
+ "resolved" "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz"
+ "version" "2.0.1"
+ dependencies:
+ "get-intrinsic" "^1.1.3"
+ "has" "^1.0.3"
+ "has-tostringtag" "^1.0.0"
+
+"es-shim-unscopables@^1.0.0":
+ "integrity" "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w=="
+ "resolved" "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "has" "^1.0.3"
+
+"es-to-primitive@^1.2.1":
+ "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="
+ "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"
+ "version" "1.2.1"
+ dependencies:
+ "is-callable" "^1.1.4"
+ "is-date-object" "^1.0.1"
+ "is-symbol" "^1.0.2"
+
+"escalade@^3.1.1":
+ "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+ "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
+ "version" "3.1.1"
+
+"escape-html@~1.0.3":
+ "integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
+ "version" "1.0.3"
+
+"escape-string-regexp@^1.0.5":
+ "integrity" "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
+ "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+ "version" "1.0.5"
+
+"escape-string-regexp@^2.0.0":
+ "integrity" "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz"
+ "version" "2.0.0"
+
+"escape-string-regexp@^4.0.0":
+ "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+ "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
+ "version" "4.0.0"
+
+"eslint-config-prettier@^8.5.0", "eslint-config-prettier@^8.8.0":
+ "integrity" "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA=="
+ "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz"
+ "version" "8.8.0"
+
+"eslint-plugin-eslint-comments@^3.2.0":
+ "integrity" "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz"
+ "version" "3.2.0"
+ dependencies:
+ "escape-string-regexp" "^1.0.5"
+ "ignore" "^5.0.5"
+
+"eslint-plugin-ft-flow@^2.0.1":
+ "integrity" "sha512-Vbsd/b+LYA99jUbsL6viEUWShFaYQt2YQs3QN3f+aeszOhh2sgdcU0mjzDyD4yyBvMc8qy2uwvBBWfMzEX06tg=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-ft-flow/-/eslint-plugin-ft-flow-2.0.3.tgz"
+ "version" "2.0.3"
+ dependencies:
+ "lodash" "^4.17.21"
+ "string-natural-compare" "^3.0.1"
+
+"eslint-plugin-jest@^26.5.3":
+ "integrity" "sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.9.0.tgz"
+ "version" "26.9.0"
+ dependencies:
+ "@typescript-eslint/utils" "^5.10.0"
+
+"eslint-plugin-prettier@^4.2.1":
+ "integrity" "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz"
+ "version" "4.2.1"
+ dependencies:
+ "prettier-linter-helpers" "^1.0.0"
+
+"eslint-plugin-react-hooks@^4.6.0":
+ "integrity" "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz"
+ "version" "4.6.0"
+
+"eslint-plugin-react-native-globals@^0.1.1":
+ "integrity" "sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz"
+ "version" "0.1.2"
+
+"eslint-plugin-react-native@^4.0.0":
+ "integrity" "sha512-kMmdxrSY7A1WgdqaGC+rY/28rh7kBGNBRsk48ovqkQmdg5j4K+DaFmegENDzMrdLkoufKGRNkKX6bgSwQTCAxQ=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-4.0.0.tgz"
+ "version" "4.0.0"
+ dependencies:
+ "@babel/traverse" "^7.7.4"
+ "eslint-plugin-react-native-globals" "^0.1.1"
+
+"eslint-plugin-react@^7.30.1":
+ "integrity" "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg=="
+ "resolved" "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz"
+ "version" "7.32.2"
+ dependencies:
+ "array-includes" "^3.1.6"
+ "array.prototype.flatmap" "^1.3.1"
+ "array.prototype.tosorted" "^1.1.1"
+ "doctrine" "^2.1.0"
+ "estraverse" "^5.3.0"
+ "jsx-ast-utils" "^2.4.1 || ^3.0.0"
+ "minimatch" "^3.1.2"
+ "object.entries" "^1.1.6"
+ "object.fromentries" "^2.0.6"
+ "object.hasown" "^1.1.2"
+ "object.values" "^1.1.6"
+ "prop-types" "^15.8.1"
+ "resolve" "^2.0.0-next.4"
+ "semver" "^6.3.0"
+ "string.prototype.matchall" "^4.0.8"
+
+"eslint-scope@^5.1.1", "eslint-scope@5.1.1":
+ "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="
+ "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"
+ "version" "5.1.1"
+ dependencies:
+ "esrecurse" "^4.3.0"
+ "estraverse" "^4.1.1"
+
+"eslint-scope@^7.2.0":
+ "integrity" "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw=="
+ "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz"
+ "version" "7.2.0"
+ dependencies:
+ "esrecurse" "^4.3.0"
+ "estraverse" "^5.2.0"
+
+"eslint-visitor-keys@^2.1.0":
+ "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
+ "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
+ "version" "2.1.0"
+
+"eslint-visitor-keys@^3.3.0", "eslint-visitor-keys@^3.4.1":
+ "integrity" "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA=="
+ "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz"
+ "version" "3.4.1"
+
+"eslint@*", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.5.0 || ^8.0.0", "eslint@^8.1.0", "eslint@^8.40.0", "eslint@>=4.19.1", "eslint@>=7.0.0", "eslint@>=7.28.0", "eslint@>=8":
+ "integrity" "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ=="
+ "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz"
+ "version" "8.40.0"
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@eslint-community/regexpp" "^4.4.0"
+ "@eslint/eslintrc" "^2.0.3"
+ "@eslint/js" "8.40.0"
+ "@humanwhocodes/config-array" "^0.11.8"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@nodelib/fs.walk" "^1.2.8"
+ "ajv" "^6.10.0"
+ "chalk" "^4.0.0"
+ "cross-spawn" "^7.0.2"
+ "debug" "^4.3.2"
+ "doctrine" "^3.0.0"
+ "escape-string-regexp" "^4.0.0"
+ "eslint-scope" "^7.2.0"
+ "eslint-visitor-keys" "^3.4.1"
+ "espree" "^9.5.2"
+ "esquery" "^1.4.2"
+ "esutils" "^2.0.2"
+ "fast-deep-equal" "^3.1.3"
+ "file-entry-cache" "^6.0.1"
+ "find-up" "^5.0.0"
+ "glob-parent" "^6.0.2"
+ "globals" "^13.19.0"
+ "grapheme-splitter" "^1.0.4"
+ "ignore" "^5.2.0"
+ "import-fresh" "^3.0.0"
+ "imurmurhash" "^0.1.4"
+ "is-glob" "^4.0.0"
+ "is-path-inside" "^3.0.3"
+ "js-sdsl" "^4.1.4"
+ "js-yaml" "^4.1.0"
+ "json-stable-stringify-without-jsonify" "^1.0.1"
+ "levn" "^0.4.1"
+ "lodash.merge" "^4.6.2"
+ "minimatch" "^3.1.2"
+ "natural-compare" "^1.4.0"
+ "optionator" "^0.9.1"
+ "strip-ansi" "^6.0.1"
+ "strip-json-comments" "^3.1.0"
+ "text-table" "^0.2.0"
+
+"espree@^9.5.2":
+ "integrity" "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw=="
+ "resolved" "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz"
+ "version" "9.5.2"
+ dependencies:
+ "acorn" "^8.8.0"
+ "acorn-jsx" "^5.3.2"
+ "eslint-visitor-keys" "^3.4.1"
+
+"esprima@^4.0.0", "esprima@~4.0.0":
+ "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"
+ "version" "4.0.1"
+
+"esquery@^1.4.2":
+ "integrity" "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg=="
+ "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz"
+ "version" "1.5.0"
+ dependencies:
+ "estraverse" "^5.1.0"
+
+"esrecurse@^4.3.0":
+ "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="
+ "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
+ "version" "4.3.0"
+ dependencies:
+ "estraverse" "^5.2.0"
+
+"estraverse@^4.1.1":
+ "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"
+ "version" "4.3.0"
+
+"estraverse@^5.1.0", "estraverse@^5.2.0", "estraverse@^5.3.0":
+ "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
+ "version" "5.3.0"
+
+"esutils@^2.0.2":
+ "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
+ "version" "2.0.3"
+
+"etag@~1.8.1":
+ "integrity" "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
+ "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
+ "version" "1.8.1"
+
+"event-target-shim@^5.0.0", "event-target-shim@^5.0.1":
+ "integrity" "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
+ "resolved" "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz"
+ "version" "5.0.1"
+
+"execa@^1.0.0":
+ "integrity" "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA=="
+ "resolved" "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz"
+ "version" "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"
+
+"execa@^5.0.0":
+ "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="
+ "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz"
+ "version" "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"
+
+"exit@^0.1.2":
+ "integrity" "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ=="
+ "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
+ "version" "0.1.2"
+
+"expand-brackets@^2.1.4":
+ "integrity" "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA=="
+ "resolved" "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz"
+ "version" "2.1.4"
+ dependencies:
+ "debug" "^2.3.3"
+ "define-property" "^0.2.5"
+ "extend-shallow" "^2.0.1"
+ "posix-character-classes" "^0.1.0"
+ "regex-not" "^1.0.0"
+ "snapdragon" "^0.8.1"
+ "to-regex" "^3.0.1"
+
+"expect@^29.0.0", "expect@^29.5.0":
+ "integrity" "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg=="
+ "resolved" "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/expect-utils" "^29.5.0"
+ "jest-get-type" "^29.4.3"
+ "jest-matcher-utils" "^29.5.0"
+ "jest-message-util" "^29.5.0"
+ "jest-util" "^29.5.0"
+
+"extend-shallow@^2.0.1":
+ "integrity" "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug=="
+ "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
+ "version" "2.0.1"
+ dependencies:
+ "is-extendable" "^0.1.0"
+
+"extend-shallow@^3.0.0":
+ "integrity" "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q=="
+ "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz"
+ "version" "3.0.2"
+ dependencies:
+ "assign-symbols" "^1.0.0"
+ "is-extendable" "^1.0.1"
+
+"extend-shallow@^3.0.2":
+ "integrity" "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q=="
+ "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz"
+ "version" "3.0.2"
+ dependencies:
+ "assign-symbols" "^1.0.0"
+ "is-extendable" "^1.0.1"
+
+"extglob@^2.0.4":
+ "integrity" "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw=="
+ "resolved" "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz"
+ "version" "2.0.4"
+ dependencies:
+ "array-unique" "^0.3.2"
+ "define-property" "^1.0.0"
+ "expand-brackets" "^2.1.4"
+ "extend-shallow" "^2.0.1"
+ "fragment-cache" "^0.2.1"
+ "regex-not" "^1.0.0"
+ "snapdragon" "^0.8.1"
+ "to-regex" "^3.0.1"
+
+"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3":
+ "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
+ "version" "3.1.3"
+
+"fast-diff@^1.1.2":
+ "integrity" "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w=="
+ "resolved" "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz"
+ "version" "1.2.0"
+
+"fast-glob@^3.2.9":
+ "integrity" "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w=="
+ "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz"
+ "version" "3.2.12"
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ "glob-parent" "^5.1.2"
+ "merge2" "^1.3.0"
+ "micromatch" "^4.0.4"
+
+"fast-json-stable-stringify@^2.0.0", "fast-json-stable-stringify@^2.1.0":
+ "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
+ "version" "2.1.0"
+
+"fast-levenshtein@^2.0.6":
+ "integrity" "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
+ "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
+ "version" "2.0.6"
+
+"fast-xml-parser@^4.0.12":
+ "integrity" "sha512-DLzIPtQqmvmdq3VUKR7T6omPK/VCRNqgFlGtbESfyhcH2R4I8EzK1/K6E8PkRCK2EabWrUHK32NjYRbEFnnz0Q=="
+ "resolved" "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.2.tgz"
+ "version" "4.2.2"
+ dependencies:
+ "strnum" "^1.0.5"
+
+"fastq@^1.6.0":
+ "integrity" "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw=="
+ "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz"
+ "version" "1.15.0"
+ dependencies:
+ "reusify" "^1.0.4"
+
+"fb-watchman@^2.0.0":
+ "integrity" "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA=="
+ "resolved" "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz"
+ "version" "2.0.2"
+ dependencies:
+ "bser" "2.1.1"
+
+"file-entry-cache@^6.0.1":
+ "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="
+ "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
+ "version" "6.0.1"
+ dependencies:
+ "flat-cache" "^3.0.4"
+
+"fill-range@^4.0.0":
+ "integrity" "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ=="
+ "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz"
+ "version" "4.0.0"
+ dependencies:
+ "extend-shallow" "^2.0.1"
+ "is-number" "^3.0.0"
+ "repeat-string" "^1.6.1"
+ "to-regex-range" "^2.1.0"
+
+"fill-range@^7.0.1":
+ "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="
+ "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
+ "version" "7.0.1"
+ dependencies:
+ "to-regex-range" "^5.0.1"
+
+"filter-obj@^1.1.0":
+ "integrity" "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ=="
+ "resolved" "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz"
+ "version" "1.1.0"
+
+"finalhandler@1.1.2":
+ "integrity" "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="
+ "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"
+ "version" "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"
+
+"find-cache-dir@^2.0.0":
+ "integrity" "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ=="
+ "resolved" "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz"
+ "version" "2.1.0"
+ dependencies:
+ "commondir" "^1.0.1"
+ "make-dir" "^2.0.0"
+ "pkg-dir" "^3.0.0"
+
+"find-up@^3.0.0":
+ "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="
+ "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "locate-path" "^3.0.0"
+
+"find-up@^4.0.0", "find-up@^4.1.0":
+ "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="
+ "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
+ "version" "4.1.0"
+ dependencies:
+ "locate-path" "^5.0.0"
+ "path-exists" "^4.0.0"
+
+"find-up@^5.0.0":
+ "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="
+ "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
+ "version" "5.0.0"
+ dependencies:
+ "locate-path" "^6.0.0"
+ "path-exists" "^4.0.0"
+
+"flat-cache@^3.0.4":
+ "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg=="
+ "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
+ "version" "3.0.4"
+ dependencies:
+ "flatted" "^3.1.0"
+ "rimraf" "^3.0.2"
+
+"flatted@^3.1.0":
+ "integrity" "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
+ "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz"
+ "version" "3.2.7"
+
+"flow-parser@^0.185.0":
+ "integrity" "sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ=="
+ "resolved" "https://registry.npmjs.org/flow-parser/-/flow-parser-0.185.2.tgz"
+ "version" "0.185.2"
+
+"flow-parser@0.*":
+ "integrity" "sha512-G4oeDNpNGyIrweF9EnoHatncAihMT0tQgV6NMdyM5I7fhrz9Pr13PJ2KLQ673O4wj9KooTdBpeeYHdDNAQoyyw=="
+ "resolved" "https://registry.npmjs.org/flow-parser/-/flow-parser-0.201.0.tgz"
+ "version" "0.201.0"
+
+"for-each@^0.3.3":
+ "integrity" "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw=="
+ "resolved" "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz"
+ "version" "0.3.3"
+ dependencies:
+ "is-callable" "^1.1.3"
+
+"for-in@^1.0.2":
+ "integrity" "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ=="
+ "resolved" "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
+ "version" "1.0.2"
+
+"fragment-cache@^0.2.1":
+ "integrity" "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA=="
+ "resolved" "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz"
+ "version" "0.2.1"
+ dependencies:
+ "map-cache" "^0.2.2"
+
+"fresh@0.5.2":
+ "integrity" "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
+ "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
+ "version" "0.5.2"
+
+"fs-extra@^8.1.0":
+ "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="
+ "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz"
+ "version" "8.1.0"
+ dependencies:
+ "graceful-fs" "^4.2.0"
+ "jsonfile" "^4.0.0"
+ "universalify" "^0.1.0"
+
+"fs.realpath@^1.0.0":
+ "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ "version" "1.0.0"
+
+"function-bind@^1.1.1":
+ "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
+ "version" "1.1.1"
+
+"function.prototype.name@^1.1.5":
+ "integrity" "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA=="
+ "resolved" "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz"
+ "version" "1.1.5"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.3"
+ "es-abstract" "^1.19.0"
+ "functions-have-names" "^1.2.2"
+
+"functions-have-names@^1.2.2":
+ "integrity" "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
+ "resolved" "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
+ "version" "1.2.3"
+
+"gensync@^1.0.0-beta.2":
+ "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
+ "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
+ "version" "1.0.0-beta.2"
+
+"get-caller-file@^2.0.1", "get-caller-file@^2.0.5":
+ "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+ "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
+ "version" "2.0.5"
+
+"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1", "get-intrinsic@^1.1.3", "get-intrinsic@^1.2.0":
+ "integrity" "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q=="
+ "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz"
+ "version" "1.2.0"
+ dependencies:
+ "function-bind" "^1.1.1"
+ "has" "^1.0.3"
+ "has-symbols" "^1.0.3"
+
+"get-package-type@^0.1.0":
+ "integrity" "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="
+ "resolved" "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz"
+ "version" "0.1.0"
+
+"get-stream@^4.0.0":
+ "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w=="
+ "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz"
+ "version" "4.1.0"
+ dependencies:
+ "pump" "^3.0.0"
+
+"get-stream@^6.0.0":
+ "integrity" "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
+ "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
+ "version" "6.0.1"
+
+"get-symbol-description@^1.0.0":
+ "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw=="
+ "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "get-intrinsic" "^1.1.1"
+
+"get-value@^2.0.3", "get-value@^2.0.6":
+ "integrity" "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA=="
+ "resolved" "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz"
+ "version" "2.0.6"
+
+"glob-parent@^5.1.2":
+ "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
+ "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
+ "version" "5.1.2"
+ dependencies:
+ "is-glob" "^4.0.1"
+
+"glob-parent@^6.0.2":
+ "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="
+ "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
+ "version" "6.0.2"
+ dependencies:
+ "is-glob" "^4.0.3"
+
+"glob@^7.1.3", "glob@^7.1.4":
+ "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="
+ "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
+ "version" "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"
+
+"globals@^11.1.0":
+ "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
+ "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
+ "version" "11.12.0"
+
+"globals@^13.19.0":
+ "integrity" "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ=="
+ "resolved" "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz"
+ "version" "13.20.0"
+ dependencies:
+ "type-fest" "^0.20.2"
+
+"globalthis@^1.0.3":
+ "integrity" "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA=="
+ "resolved" "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz"
+ "version" "1.0.3"
+ dependencies:
+ "define-properties" "^1.1.3"
+
+"globby@^11.1.0":
+ "integrity" "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="
+ "resolved" "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz"
+ "version" "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"
+
+"gopd@^1.0.1":
+ "integrity" "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA=="
+ "resolved" "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz"
+ "version" "1.0.1"
+ dependencies:
+ "get-intrinsic" "^1.1.3"
+
+"graceful-fs@^4.1.11", "graceful-fs@^4.1.3", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.4", "graceful-fs@^4.2.9":
+ "integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+ "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"
+ "version" "4.2.10"
+
+"grapheme-splitter@^1.0.4":
+ "integrity" "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ=="
+ "resolved" "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz"
+ "version" "1.0.4"
+
+"growly@^1.3.0":
+ "integrity" "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw=="
+ "resolved" "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz"
+ "version" "1.3.0"
+
+"has-bigints@^1.0.1", "has-bigints@^1.0.2":
+ "integrity" "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
+ "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz"
+ "version" "1.0.2"
+
+"has-flag@^3.0.0":
+ "integrity" "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
+ "version" "3.0.0"
+
+"has-flag@^4.0.0":
+ "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
+ "version" "4.0.0"
+
+"has-property-descriptors@^1.0.0":
+ "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ=="
+ "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "get-intrinsic" "^1.1.1"
+
+"has-proto@^1.0.1":
+ "integrity" "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="
+ "resolved" "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz"
+ "version" "1.0.1"
+
+"has-symbols@^1.0.2", "has-symbols@^1.0.3":
+ "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
+ "version" "1.0.3"
+
+"has-tostringtag@^1.0.0":
+ "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ=="
+ "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "has-symbols" "^1.0.2"
+
+"has-value@^0.3.1":
+ "integrity" "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q=="
+ "resolved" "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz"
+ "version" "0.3.1"
+ dependencies:
+ "get-value" "^2.0.3"
+ "has-values" "^0.1.4"
+ "isobject" "^2.0.0"
+
+"has-value@^1.0.0":
+ "integrity" "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw=="
+ "resolved" "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "get-value" "^2.0.6"
+ "has-values" "^1.0.0"
+ "isobject" "^3.0.0"
+
+"has-values@^0.1.4":
+ "integrity" "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ=="
+ "resolved" "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz"
+ "version" "0.1.4"
+
+"has-values@^1.0.0":
+ "integrity" "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ=="
+ "resolved" "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "is-number" "^3.0.0"
+ "kind-of" "^4.0.0"
+
+"has@^1.0.3":
+ "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
+ "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
+ "version" "1.0.3"
+ dependencies:
+ "function-bind" "^1.1.1"
+
+"hermes-estree@0.8.0":
+ "integrity" "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q=="
+ "resolved" "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz"
+ "version" "0.8.0"
+
+"hermes-parser@0.8.0":
+ "integrity" "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA=="
+ "resolved" "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz"
+ "version" "0.8.0"
+ dependencies:
+ "hermes-estree" "0.8.0"
+
+"hermes-profile-transformer@^0.0.6":
+ "integrity" "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ=="
+ "resolved" "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz"
+ "version" "0.0.6"
+ dependencies:
+ "source-map" "^0.7.3"
+
+"hoist-non-react-statics@^3.3.0":
+ "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw=="
+ "resolved" "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz"
+ "version" "3.3.2"
+ dependencies:
+ "react-is" "^16.7.0"
+
+"html-escaper@^2.0.0":
+ "integrity" "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="
+ "resolved" "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz"
+ "version" "2.0.2"
+
+"html-parse-stringify@^3.0.1":
+ "integrity" "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg=="
+ "resolved" "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz"
+ "version" "3.0.1"
+ dependencies:
+ "void-elements" "3.1.0"
+
+"http-errors@2.0.0":
+ "integrity" "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="
+ "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "depd" "2.0.0"
+ "inherits" "2.0.4"
+ "setprototypeof" "1.2.0"
+ "statuses" "2.0.1"
+ "toidentifier" "1.0.1"
+
+"human-signals@^2.1.0":
+ "integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
+ "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
+ "version" "2.1.0"
+
+"i18next@^22.4.15", "i18next@>= 19.0.0":
+ "integrity" "sha512-yYudtbFrrmWKLEhl6jvKUYyYunj4bTBCe2qIUYAxbXoPusY7YmdwPvOE6fx6UIfWvmlbCWDItr7wIs8KEBZ5Zg=="
+ "resolved" "https://registry.npmjs.org/i18next/-/i18next-22.4.15.tgz"
+ "version" "22.4.15"
+ dependencies:
+ "@babel/runtime" "^7.20.6"
+
+"ieee754@^1.1.13":
+ "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
+ "version" "1.2.1"
+
+"ignore@^5.0.5", "ignore@^5.2.0":
+ "integrity" "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ=="
+ "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz"
+ "version" "5.2.4"
+
+"image-size@^0.6.0":
+ "integrity" "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA=="
+ "resolved" "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz"
+ "version" "0.6.3"
+
+"import-fresh@^2.0.0":
+ "integrity" "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg=="
+ "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "caller-path" "^2.0.0"
+ "resolve-from" "^3.0.0"
+
+"import-fresh@^3.0.0", "import-fresh@^3.2.1":
+ "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw=="
+ "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
+ "version" "3.3.0"
+ dependencies:
+ "parent-module" "^1.0.0"
+ "resolve-from" "^4.0.0"
+
+"import-local@^3.0.2":
+ "integrity" "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg=="
+ "resolved" "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz"
+ "version" "3.1.0"
+ dependencies:
+ "pkg-dir" "^4.2.0"
+ "resolve-cwd" "^3.0.0"
+
+"imurmurhash@^0.1.4":
+ "integrity" "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
+ "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
+ "version" "0.1.4"
+
+"inflight@^1.0.4":
+ "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="
+ "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
+ "version" "1.0.6"
+ dependencies:
+ "once" "^1.3.0"
+ "wrappy" "1"
+
+"inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.3", "inherits@2", "inherits@2.0.4":
+ "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
+ "version" "2.0.4"
+
+"internal-slot@^1.0.3", "internal-slot@^1.0.5":
+ "integrity" "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ=="
+ "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz"
+ "version" "1.0.5"
+ dependencies:
+ "get-intrinsic" "^1.2.0"
+ "has" "^1.0.3"
+ "side-channel" "^1.0.4"
+
+"invariant@*", "invariant@^2.2.4":
+ "integrity" "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="
+ "resolved" "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz"
+ "version" "2.2.4"
+ dependencies:
+ "loose-envify" "^1.0.0"
+
+"ip@^1.1.5":
+ "integrity" "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
+ "resolved" "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz"
+ "version" "1.1.8"
+
+"is-accessor-descriptor@^0.1.6":
+ "integrity" "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A=="
+ "resolved" "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz"
+ "version" "0.1.6"
+ dependencies:
+ "kind-of" "^3.0.2"
+
+"is-accessor-descriptor@^1.0.0":
+ "integrity" "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ=="
+ "resolved" "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "kind-of" "^6.0.0"
+
+"is-array-buffer@^3.0.1", "is-array-buffer@^3.0.2":
+ "integrity" "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w=="
+ "resolved" "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz"
+ "version" "3.0.2"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "get-intrinsic" "^1.2.0"
+ "is-typed-array" "^1.1.10"
+
+"is-arrayish@^0.2.1":
+ "integrity" "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
+ "version" "0.2.1"
+
+"is-arrayish@^0.3.1":
+ "integrity" "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
+ "version" "0.3.2"
+
+"is-bigint@^1.0.1":
+ "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg=="
+ "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz"
+ "version" "1.0.4"
+ dependencies:
+ "has-bigints" "^1.0.1"
+
+"is-boolean-object@^1.1.0":
+ "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA=="
+ "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz"
+ "version" "1.1.2"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "has-tostringtag" "^1.0.0"
+
+"is-buffer@^1.1.5":
+ "integrity" "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
+ "version" "1.1.6"
+
+"is-callable@^1.1.3", "is-callable@^1.1.4", "is-callable@^1.2.7":
+ "integrity" "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
+ "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz"
+ "version" "1.2.7"
+
+"is-core-module@^2.9.0":
+ "integrity" "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw=="
+ "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz"
+ "version" "2.11.0"
+ dependencies:
+ "has" "^1.0.3"
+
+"is-data-descriptor@^0.1.4":
+ "integrity" "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg=="
+ "resolved" "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"
+ "version" "0.1.4"
+ dependencies:
+ "kind-of" "^3.0.2"
+
+"is-data-descriptor@^1.0.0":
+ "integrity" "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ=="
+ "resolved" "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "kind-of" "^6.0.0"
+
+"is-date-object@^1.0.1":
+ "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ=="
+ "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz"
+ "version" "1.0.5"
+ dependencies:
+ "has-tostringtag" "^1.0.0"
+
+"is-descriptor@^0.1.0":
+ "integrity" "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg=="
+ "resolved" "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz"
+ "version" "0.1.6"
+ dependencies:
+ "is-accessor-descriptor" "^0.1.6"
+ "is-data-descriptor" "^0.1.4"
+ "kind-of" "^5.0.0"
+
+"is-descriptor@^1.0.0", "is-descriptor@^1.0.2":
+ "integrity" "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg=="
+ "resolved" "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "is-accessor-descriptor" "^1.0.0"
+ "is-data-descriptor" "^1.0.0"
+ "kind-of" "^6.0.2"
+
+"is-directory@^0.3.1":
+ "integrity" "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw=="
+ "resolved" "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz"
+ "version" "0.3.1"
+
+"is-docker@^2.0.0":
+ "integrity" "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
+ "resolved" "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz"
+ "version" "2.2.1"
+
+"is-extendable@^0.1.0", "is-extendable@^0.1.1":
+ "integrity" "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
+ "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
+ "version" "0.1.1"
+
+"is-extendable@^1.0.1":
+ "integrity" "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA=="
+ "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"
+ "version" "1.0.1"
+ dependencies:
+ "is-plain-object" "^2.0.4"
+
+"is-extglob@^2.1.1":
+ "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
+ "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
+ "version" "2.1.1"
+
+"is-fullwidth-code-point@^2.0.0":
+ "integrity" "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="
+ "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
+ "version" "2.0.0"
+
+"is-fullwidth-code-point@^3.0.0":
+ "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
+ "version" "3.0.0"
+
+"is-generator-fn@^2.0.0":
+ "integrity" "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="
+ "resolved" "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz"
+ "version" "2.1.0"
+
+"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3":
+ "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="
+ "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
+ "version" "4.0.3"
+ dependencies:
+ "is-extglob" "^2.1.1"
+
+"is-interactive@^1.0.0":
+ "integrity" "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="
+ "resolved" "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz"
+ "version" "1.0.0"
+
+"is-negative-zero@^2.0.2":
+ "integrity" "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
+ "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz"
+ "version" "2.0.2"
+
+"is-number-object@^1.0.4":
+ "integrity" "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ=="
+ "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz"
+ "version" "1.0.7"
+ dependencies:
+ "has-tostringtag" "^1.0.0"
+
+"is-number@^3.0.0":
+ "integrity" "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg=="
+ "resolved" "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "kind-of" "^3.0.2"
+
+"is-number@^7.0.0":
+ "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
+ "version" "7.0.0"
+
+"is-path-inside@^3.0.3":
+ "integrity" "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
+ "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz"
+ "version" "3.0.3"
+
+"is-plain-obj@^2.1.0":
+ "integrity" "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
+ "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz"
+ "version" "2.1.0"
+
+"is-plain-object@^2.0.3", "is-plain-object@^2.0.4":
+ "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og=="
+ "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"
+ "version" "2.0.4"
+ dependencies:
+ "isobject" "^3.0.1"
+
+"is-regex@^1.1.4":
+ "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg=="
+ "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
+ "version" "1.1.4"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "has-tostringtag" "^1.0.0"
+
+"is-shared-array-buffer@^1.0.2":
+ "integrity" "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA=="
+ "resolved" "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "call-bind" "^1.0.2"
+
+"is-stream@^1.1.0":
+ "integrity" "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ=="
+ "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
+ "version" "1.1.0"
+
+"is-stream@^2.0.0":
+ "integrity" "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
+ "version" "2.0.1"
+
+"is-string@^1.0.5", "is-string@^1.0.7":
+ "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg=="
+ "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz"
+ "version" "1.0.7"
+ dependencies:
+ "has-tostringtag" "^1.0.0"
+
+"is-symbol@^1.0.2", "is-symbol@^1.0.3":
+ "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg=="
+ "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz"
+ "version" "1.0.4"
+ dependencies:
+ "has-symbols" "^1.0.2"
+
+"is-typed-array@^1.1.10", "is-typed-array@^1.1.9":
+ "integrity" "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A=="
+ "resolved" "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz"
+ "version" "1.1.10"
+ dependencies:
+ "available-typed-arrays" "^1.0.5"
+ "call-bind" "^1.0.2"
+ "for-each" "^0.3.3"
+ "gopd" "^1.0.1"
+ "has-tostringtag" "^1.0.0"
+
+"is-unicode-supported@^0.1.0":
+ "integrity" "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="
+ "resolved" "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz"
+ "version" "0.1.0"
+
+"is-weakref@^1.0.2":
+ "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ=="
+ "resolved" "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "call-bind" "^1.0.2"
+
+"is-windows@^1.0.2":
+ "integrity" "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ "resolved" "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz"
+ "version" "1.0.2"
+
+"is-wsl@^1.1.0":
+ "integrity" "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw=="
+ "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz"
+ "version" "1.1.0"
+
+"is-wsl@^2.2.0":
+ "integrity" "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="
+ "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"
+ "version" "2.2.0"
+ dependencies:
+ "is-docker" "^2.0.0"
+
+"isarray@~1.0.0", "isarray@1.0.0":
+ "integrity" "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ "version" "1.0.0"
+
+"isexe@^2.0.0":
+ "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+ "version" "2.0.0"
+
+"isobject@^2.0.0":
+ "integrity" "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA=="
+ "resolved" "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
+ "version" "2.1.0"
+ dependencies:
+ "isarray" "1.0.0"
+
+"isobject@^3.0.0", "isobject@^3.0.1":
+ "integrity" "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="
+ "resolved" "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ "version" "3.0.1"
+
+"istanbul-lib-coverage@^3.0.0", "istanbul-lib-coverage@^3.2.0":
+ "integrity" "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
+ "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz"
+ "version" "3.2.0"
+
+"istanbul-lib-instrument@^5.0.4", "istanbul-lib-instrument@^5.1.0":
+ "integrity" "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg=="
+ "resolved" "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz"
+ "version" "5.2.1"
+ dependencies:
+ "@babel/core" "^7.12.3"
+ "@babel/parser" "^7.14.7"
+ "@istanbuljs/schema" "^0.1.2"
+ "istanbul-lib-coverage" "^3.2.0"
+ "semver" "^6.3.0"
+
+"istanbul-lib-report@^3.0.0":
+ "integrity" "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw=="
+ "resolved" "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "istanbul-lib-coverage" "^3.0.0"
+ "make-dir" "^3.0.0"
+ "supports-color" "^7.1.0"
+
+"istanbul-lib-source-maps@^4.0.0":
+ "integrity" "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw=="
+ "resolved" "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz"
+ "version" "4.0.1"
+ dependencies:
+ "debug" "^4.1.1"
+ "istanbul-lib-coverage" "^3.0.0"
+ "source-map" "^0.6.1"
+
+"istanbul-reports@^3.1.3":
+ "integrity" "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w=="
+ "resolved" "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz"
+ "version" "3.1.5"
+ dependencies:
+ "html-escaper" "^2.0.0"
+ "istanbul-lib-report" "^3.0.0"
+
+"jest-changed-files@^29.5.0":
+ "integrity" "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag=="
+ "resolved" "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "execa" "^5.0.0"
+ "p-limit" "^3.1.0"
+
+"jest-circus@^29.5.0":
+ "integrity" "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA=="
+ "resolved" "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/environment" "^29.5.0"
+ "@jest/expect" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ "chalk" "^4.0.0"
+ "co" "^4.6.0"
+ "dedent" "^0.7.0"
+ "is-generator-fn" "^2.0.0"
+ "jest-each" "^29.5.0"
+ "jest-matcher-utils" "^29.5.0"
+ "jest-message-util" "^29.5.0"
+ "jest-runtime" "^29.5.0"
+ "jest-snapshot" "^29.5.0"
+ "jest-util" "^29.5.0"
+ "p-limit" "^3.1.0"
+ "pretty-format" "^29.5.0"
+ "pure-rand" "^6.0.0"
+ "slash" "^3.0.0"
+ "stack-utils" "^2.0.3"
+
+"jest-cli@^29.5.0":
+ "integrity" "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw=="
+ "resolved" "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/core" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "chalk" "^4.0.0"
+ "exit" "^0.1.2"
+ "graceful-fs" "^4.2.9"
+ "import-local" "^3.0.2"
+ "jest-config" "^29.5.0"
+ "jest-util" "^29.5.0"
+ "jest-validate" "^29.5.0"
+ "prompts" "^2.0.1"
+ "yargs" "^17.3.1"
+
+"jest-config@^29.5.0":
+ "integrity" "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA=="
+ "resolved" "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/test-sequencer" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "babel-jest" "^29.5.0"
+ "chalk" "^4.0.0"
+ "ci-info" "^3.2.0"
+ "deepmerge" "^4.2.2"
+ "glob" "^7.1.3"
+ "graceful-fs" "^4.2.9"
+ "jest-circus" "^29.5.0"
+ "jest-environment-node" "^29.5.0"
+ "jest-get-type" "^29.4.3"
+ "jest-regex-util" "^29.4.3"
+ "jest-resolve" "^29.5.0"
+ "jest-runner" "^29.5.0"
+ "jest-util" "^29.5.0"
+ "jest-validate" "^29.5.0"
+ "micromatch" "^4.0.4"
+ "parse-json" "^5.2.0"
+ "pretty-format" "^29.5.0"
+ "slash" "^3.0.0"
+ "strip-json-comments" "^3.1.1"
+
+"jest-diff@^29.5.0":
+ "integrity" "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw=="
+ "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "chalk" "^4.0.0"
+ "diff-sequences" "^29.4.3"
+ "jest-get-type" "^29.4.3"
+ "pretty-format" "^29.5.0"
+
+"jest-docblock@^29.4.3":
+ "integrity" "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg=="
+ "resolved" "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz"
+ "version" "29.4.3"
+ dependencies:
+ "detect-newline" "^3.0.0"
+
+"jest-each@^29.5.0":
+ "integrity" "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA=="
+ "resolved" "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/types" "^29.5.0"
+ "chalk" "^4.0.0"
+ "jest-get-type" "^29.4.3"
+ "jest-util" "^29.5.0"
+ "pretty-format" "^29.5.0"
+
+"jest-environment-node@^29.2.1", "jest-environment-node@^29.5.0":
+ "integrity" "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw=="
+ "resolved" "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/environment" "^29.5.0"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ "jest-mock" "^29.5.0"
+ "jest-util" "^29.5.0"
+
+"jest-get-type@^26.3.0":
+ "integrity" "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig=="
+ "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz"
+ "version" "26.3.0"
+
+"jest-get-type@^29.4.3":
+ "integrity" "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg=="
+ "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz"
+ "version" "29.4.3"
+
+"jest-haste-map@^29.5.0":
+ "integrity" "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA=="
+ "resolved" "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/types" "^29.5.0"
+ "@types/graceful-fs" "^4.1.3"
+ "@types/node" "*"
+ "anymatch" "^3.0.3"
+ "fb-watchman" "^2.0.0"
+ "graceful-fs" "^4.2.9"
+ "jest-regex-util" "^29.4.3"
+ "jest-util" "^29.5.0"
+ "jest-worker" "^29.5.0"
+ "micromatch" "^4.0.4"
+ "walker" "^1.0.8"
+ optionalDependencies:
+ "fsevents" "^2.3.2"
+
+"jest-leak-detector@^29.5.0":
+ "integrity" "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow=="
+ "resolved" "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "jest-get-type" "^29.4.3"
+ "pretty-format" "^29.5.0"
+
+"jest-matcher-utils@^29.5.0":
+ "integrity" "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw=="
+ "resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "chalk" "^4.0.0"
+ "jest-diff" "^29.5.0"
+ "jest-get-type" "^29.4.3"
+ "pretty-format" "^29.5.0"
+
+"jest-message-util@^29.5.0":
+ "integrity" "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA=="
+ "resolved" "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@jest/types" "^29.5.0"
+ "@types/stack-utils" "^2.0.0"
+ "chalk" "^4.0.0"
+ "graceful-fs" "^4.2.9"
+ "micromatch" "^4.0.4"
+ "pretty-format" "^29.5.0"
+ "slash" "^3.0.0"
+ "stack-utils" "^2.0.3"
+
+"jest-mock@^29.5.0":
+ "integrity" "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw=="
+ "resolved" "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ "jest-util" "^29.5.0"
+
+"jest-pnp-resolver@^1.2.2":
+ "integrity" "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w=="
+ "resolved" "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz"
+ "version" "1.2.3"
+
+"jest-regex-util@^27.0.6":
+ "integrity" "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="
+ "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz"
+ "version" "27.5.1"
+
+"jest-regex-util@^29.4.3":
+ "integrity" "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg=="
+ "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz"
+ "version" "29.4.3"
+
+"jest-resolve-dependencies@^29.5.0":
+ "integrity" "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg=="
+ "resolved" "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "jest-regex-util" "^29.4.3"
+ "jest-snapshot" "^29.5.0"
+
+"jest-resolve@*", "jest-resolve@^29.5.0":
+ "integrity" "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w=="
+ "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "chalk" "^4.0.0"
+ "graceful-fs" "^4.2.9"
+ "jest-haste-map" "^29.5.0"
+ "jest-pnp-resolver" "^1.2.2"
+ "jest-util" "^29.5.0"
+ "jest-validate" "^29.5.0"
+ "resolve" "^1.20.0"
+ "resolve.exports" "^2.0.0"
+ "slash" "^3.0.0"
+
+"jest-runner@^29.5.0":
+ "integrity" "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ=="
+ "resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/console" "^29.5.0"
+ "@jest/environment" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ "chalk" "^4.0.0"
+ "emittery" "^0.13.1"
+ "graceful-fs" "^4.2.9"
+ "jest-docblock" "^29.4.3"
+ "jest-environment-node" "^29.5.0"
+ "jest-haste-map" "^29.5.0"
+ "jest-leak-detector" "^29.5.0"
+ "jest-message-util" "^29.5.0"
+ "jest-resolve" "^29.5.0"
+ "jest-runtime" "^29.5.0"
+ "jest-util" "^29.5.0"
+ "jest-watcher" "^29.5.0"
+ "jest-worker" "^29.5.0"
+ "p-limit" "^3.1.0"
+ "source-map-support" "0.5.13"
+
+"jest-runtime@^29.5.0":
+ "integrity" "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw=="
+ "resolved" "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/environment" "^29.5.0"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/globals" "^29.5.0"
+ "@jest/source-map" "^29.4.3"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ "chalk" "^4.0.0"
+ "cjs-module-lexer" "^1.0.0"
+ "collect-v8-coverage" "^1.0.0"
+ "glob" "^7.1.3"
+ "graceful-fs" "^4.2.9"
+ "jest-haste-map" "^29.5.0"
+ "jest-message-util" "^29.5.0"
+ "jest-mock" "^29.5.0"
+ "jest-regex-util" "^29.4.3"
+ "jest-resolve" "^29.5.0"
+ "jest-snapshot" "^29.5.0"
+ "jest-util" "^29.5.0"
+ "slash" "^3.0.0"
+ "strip-bom" "^4.0.0"
+
+"jest-serializer@^27.0.6":
+ "integrity" "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w=="
+ "resolved" "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz"
+ "version" "27.5.1"
+ dependencies:
+ "@types/node" "*"
+ "graceful-fs" "^4.2.9"
+
+"jest-snapshot@^29.5.0":
+ "integrity" "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g=="
+ "resolved" "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@babel/generator" "^7.7.2"
+ "@babel/plugin-syntax-jsx" "^7.7.2"
+ "@babel/plugin-syntax-typescript" "^7.7.2"
+ "@babel/traverse" "^7.7.2"
+ "@babel/types" "^7.3.3"
+ "@jest/expect-utils" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "@types/babel__traverse" "^7.0.6"
+ "@types/prettier" "^2.1.5"
+ "babel-preset-current-node-syntax" "^1.0.0"
+ "chalk" "^4.0.0"
+ "expect" "^29.5.0"
+ "graceful-fs" "^4.2.9"
+ "jest-diff" "^29.5.0"
+ "jest-get-type" "^29.4.3"
+ "jest-matcher-utils" "^29.5.0"
+ "jest-message-util" "^29.5.0"
+ "jest-util" "^29.5.0"
+ "natural-compare" "^1.4.0"
+ "pretty-format" "^29.5.0"
+ "semver" "^7.3.5"
+
+"jest-util@^27.2.0":
+ "integrity" "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw=="
+ "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz"
+ "version" "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"
+
+"jest-util@^29.5.0":
+ "integrity" "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ=="
+ "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ "chalk" "^4.0.0"
+ "ci-info" "^3.2.0"
+ "graceful-fs" "^4.2.9"
+ "picomatch" "^2.2.3"
+
+"jest-validate@^26.5.2":
+ "integrity" "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ=="
+ "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz"
+ "version" "26.6.2"
+ dependencies:
+ "@jest/types" "^26.6.2"
+ "camelcase" "^6.0.0"
+ "chalk" "^4.0.0"
+ "jest-get-type" "^26.3.0"
+ "leven" "^3.1.0"
+ "pretty-format" "^26.6.2"
+
+"jest-validate@^29.5.0":
+ "integrity" "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ=="
+ "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/types" "^29.5.0"
+ "camelcase" "^6.2.0"
+ "chalk" "^4.0.0"
+ "jest-get-type" "^29.4.3"
+ "leven" "^3.1.0"
+ "pretty-format" "^29.5.0"
+
+"jest-watcher@^29.5.0":
+ "integrity" "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA=="
+ "resolved" "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ "ansi-escapes" "^4.2.1"
+ "chalk" "^4.0.0"
+ "emittery" "^0.13.1"
+ "jest-util" "^29.5.0"
+ "string-length" "^4.0.1"
+
+"jest-worker@^27.2.0":
+ "integrity" "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="
+ "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz"
+ "version" "27.5.1"
+ dependencies:
+ "@types/node" "*"
+ "merge-stream" "^2.0.0"
+ "supports-color" "^8.0.0"
+
+"jest-worker@^29.5.0":
+ "integrity" "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA=="
+ "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@types/node" "*"
+ "jest-util" "^29.5.0"
+ "merge-stream" "^2.0.0"
+ "supports-color" "^8.0.0"
+
+"jest@^29.2.1":
+ "integrity" "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ=="
+ "resolved" "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/core" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "import-local" "^3.0.2"
+ "jest-cli" "^29.5.0"
+
+"joi@^17.2.1":
+ "integrity" "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw=="
+ "resolved" "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz"
+ "version" "17.9.2"
+ 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"
+
+"js-sdsl@^4.1.4":
+ "integrity" "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ=="
+ "resolved" "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz"
+ "version" "4.3.0"
+
+"js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0":
+ "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
+ "version" "4.0.0"
+
+"js-yaml@^3.13.1":
+ "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="
+ "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz"
+ "version" "3.14.1"
+ dependencies:
+ "argparse" "^1.0.7"
+ "esprima" "^4.0.0"
+
+"js-yaml@^4.1.0":
+ "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="
+ "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
+ "version" "4.1.0"
+ dependencies:
+ "argparse" "^2.0.1"
+
+"jsc-android@^250231.0.0":
+ "integrity" "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw=="
+ "resolved" "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz"
+ "version" "250231.0.0"
+
+"jscodeshift@^0.13.1":
+ "integrity" "sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ=="
+ "resolved" "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.13.1.tgz"
+ "version" "0.13.1"
+ 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" "^3.1.10"
+ "neo-async" "^2.5.0"
+ "node-dir" "^0.1.17"
+ "recast" "^0.20.4"
+ "temp" "^0.8.4"
+ "write-file-atomic" "^2.3.0"
+
+"jsesc@^2.5.1":
+ "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
+ "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
+ "version" "2.5.2"
+
+"jsesc@~0.5.0":
+ "integrity" "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA=="
+ "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
+ "version" "0.5.0"
+
+"json-parse-better-errors@^1.0.1":
+ "integrity" "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ "resolved" "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"
+ "version" "1.0.2"
+
+"json-parse-even-better-errors@^2.3.0":
+ "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
+ "version" "2.3.1"
+
+"json-schema-traverse@^0.4.1":
+ "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
+ "version" "0.4.1"
+
+"json-stable-stringify-without-jsonify@^1.0.1":
+ "integrity" "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
+ "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
+ "version" "1.0.1"
+
+"json5@^2.2.2":
+ "integrity" "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
+ "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
+ "version" "2.2.3"
+
+"jsonfile@^4.0.0":
+ "integrity" "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="
+ "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz"
+ "version" "4.0.0"
+ optionalDependencies:
+ "graceful-fs" "^4.1.6"
+
+"jsx-ast-utils@^2.4.1 || ^3.0.0":
+ "integrity" "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw=="
+ "resolved" "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz"
+ "version" "3.3.3"
+ dependencies:
+ "array-includes" "^3.1.5"
+ "object.assign" "^4.1.3"
+
+"kind-of@^3.0.2":
+ "integrity" "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ=="
+ "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ "version" "3.2.2"
+ dependencies:
+ "is-buffer" "^1.1.5"
+
+"kind-of@^3.0.3":
+ "integrity" "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ=="
+ "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ "version" "3.2.2"
+ dependencies:
+ "is-buffer" "^1.1.5"
+
+"kind-of@^3.2.0":
+ "integrity" "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ=="
+ "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ "version" "3.2.2"
+ dependencies:
+ "is-buffer" "^1.1.5"
+
+"kind-of@^4.0.0":
+ "integrity" "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw=="
+ "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"
+ "version" "4.0.0"
+ dependencies:
+ "is-buffer" "^1.1.5"
+
+"kind-of@^5.0.0":
+ "integrity" "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz"
+ "version" "5.1.0"
+
+"kind-of@^6.0.0", "kind-of@^6.0.2":
+ "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+ "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"
+ "version" "6.0.3"
+
+"kleur@^3.0.3":
+ "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
+ "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz"
+ "version" "3.0.3"
+
+"leven@^3.1.0":
+ "integrity" "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
+ "resolved" "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz"
+ "version" "3.1.0"
+
+"levn@^0.4.1":
+ "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="
+ "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
+ "version" "0.4.1"
+ dependencies:
+ "prelude-ls" "^1.2.1"
+ "type-check" "~0.4.0"
+
+"lines-and-columns@^1.1.6":
+ "integrity" "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+ "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
+ "version" "1.2.4"
+
+"locate-path@^3.0.0":
+ "integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="
+ "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "p-locate" "^3.0.0"
+ "path-exists" "^3.0.0"
+
+"locate-path@^5.0.0":
+ "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="
+ "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz"
+ "version" "5.0.0"
+ dependencies:
+ "p-locate" "^4.1.0"
+
+"locate-path@^6.0.0":
+ "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="
+ "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
+ "version" "6.0.0"
+ dependencies:
+ "p-locate" "^5.0.0"
+
+"lodash.debounce@^4.0.8":
+ "integrity" "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ "resolved" "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz"
+ "version" "4.0.8"
+
+"lodash.merge@^4.6.2":
+ "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
+ "version" "4.6.2"
+
+"lodash.throttle@^4.1.1":
+ "integrity" "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="
+ "resolved" "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz"
+ "version" "4.1.1"
+
+"lodash@^4.17.21":
+ "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
+ "version" "4.17.21"
+
+"log-symbols@^4.1.0":
+ "integrity" "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="
+ "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz"
+ "version" "4.1.0"
+ dependencies:
+ "chalk" "^4.1.0"
+ "is-unicode-supported" "^0.1.0"
+
+"logkitty@^0.7.1":
+ "integrity" "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ=="
+ "resolved" "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz"
+ "version" "0.7.1"
+ dependencies:
+ "ansi-fragments" "^0.2.1"
+ "dayjs" "^1.8.15"
+ "yargs" "^15.1.0"
+
+"loose-envify@^1.0.0", "loose-envify@^1.1.0", "loose-envify@^1.4.0":
+ "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="
+ "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
+ "version" "1.4.0"
+ dependencies:
+ "js-tokens" "^3.0.0 || ^4.0.0"
+
+"lru-cache@^5.1.1":
+ "integrity" "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="
+ "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
+ "version" "5.1.1"
+ dependencies:
+ "yallist" "^3.0.2"
+
+"lru-cache@^6.0.0":
+ "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="
+ "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
+ "version" "6.0.0"
+ dependencies:
+ "yallist" "^4.0.0"
+
+"make-dir@^2.0.0", "make-dir@^2.1.0":
+ "integrity" "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA=="
+ "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz"
+ "version" "2.1.0"
+ dependencies:
+ "pify" "^4.0.1"
+ "semver" "^5.6.0"
+
+"make-dir@^3.0.0":
+ "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw=="
+ "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz"
+ "version" "3.1.0"
+ dependencies:
+ "semver" "^6.0.0"
+
+"makeerror@1.0.12":
+ "integrity" "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg=="
+ "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz"
+ "version" "1.0.12"
+ dependencies:
+ "tmpl" "1.0.5"
+
+"map-cache@^0.2.2":
+ "integrity" "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg=="
+ "resolved" "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz"
+ "version" "0.2.2"
+
+"map-visit@^1.0.0":
+ "integrity" "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w=="
+ "resolved" "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "object-visit" "^1.0.0"
+
+"memoize-one@^5.0.0":
+ "integrity" "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
+ "resolved" "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz"
+ "version" "5.2.1"
+
+"merge-options@^3.0.4":
+ "integrity" "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ=="
+ "resolved" "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz"
+ "version" "3.0.4"
+ dependencies:
+ "is-plain-obj" "^2.1.0"
+
+"merge-stream@^2.0.0":
+ "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
+ "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
+ "version" "2.0.0"
+
+"merge2@^1.3.0", "merge2@^1.4.1":
+ "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+ "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
+ "version" "1.4.1"
+
+"metro-babel-transformer@0.73.9":
+ "integrity" "sha512-DlYwg9wwYIZTHtic7dyD4BP0SDftoltZ3clma76nHu43blMWsCnrImHeHsAVne3XsQ+RJaSRxhN5nkG2VyVHwA=="
+ "resolved" "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "@babel/core" "^7.20.0"
+ "hermes-parser" "0.8.0"
+ "metro-source-map" "0.73.9"
+ "nullthrows" "^1.1.1"
+
+"metro-cache-key@0.73.9":
+ "integrity" "sha512-uJg+6Al7UoGIuGfoxqPBy6y1Ewq7Y8/YapGYIDh6sohInwt/kYKnPZgLDYHIPvY2deORnQ/2CYo4tOeBTnhCXQ=="
+ "resolved" "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.73.9.tgz"
+ "version" "0.73.9"
+
+"metro-cache@0.73.9":
+ "integrity" "sha512-upiRxY8rrQkUWj7ieACD6tna7xXuXdu2ZqrheksT79ePI0aN/t0memf6WcyUtJUMHZetke3j+ppELNvlmp3tOw=="
+ "resolved" "https://registry.npmjs.org/metro-cache/-/metro-cache-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "metro-core" "0.73.9"
+ "rimraf" "^3.0.2"
+
+"metro-config@0.73.9":
+ "integrity" "sha512-NiWl1nkYtjqecDmw77tbRbXnzIAwdO6DXGZTuKSkH+H/c1NKq1eizO8Fe+NQyFtwR9YLqn8Q0WN1nmkwM1j8CA=="
+ "resolved" "https://registry.npmjs.org/metro-config/-/metro-config-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "cosmiconfig" "^5.0.5"
+ "jest-validate" "^26.5.2"
+ "metro" "0.73.9"
+ "metro-cache" "0.73.9"
+ "metro-core" "0.73.9"
+ "metro-runtime" "0.73.9"
+
+"metro-core@0.73.9":
+ "integrity" "sha512-1NTs0IErlKcFTfYyRT3ljdgrISWpl1nys+gaHkXapzTSpvtX9F1NQNn5cgAuE+XIuTJhbsCdfIJiM2JXbrJQaQ=="
+ "resolved" "https://registry.npmjs.org/metro-core/-/metro-core-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "lodash.throttle" "^4.1.1"
+ "metro-resolver" "0.73.9"
+
+"metro-file-map@0.73.9":
+ "integrity" "sha512-R/Wg3HYeQhYY3ehWtfedw8V0ne4lpufG7a21L3GWer8tafnC9pmjoCKEbJz9XZkVj9i1FtxE7UTbrtZNeIILxQ=="
+ "resolved" "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "abort-controller" "^3.0.0"
+ "anymatch" "^3.0.3"
+ "debug" "^2.2.0"
+ "fb-watchman" "^2.0.0"
+ "graceful-fs" "^4.2.4"
+ "invariant" "^2.2.4"
+ "jest-regex-util" "^27.0.6"
+ "jest-serializer" "^27.0.6"
+ "jest-util" "^27.2.0"
+ "jest-worker" "^27.2.0"
+ "micromatch" "^4.0.4"
+ "nullthrows" "^1.1.1"
+ "walker" "^1.0.7"
+ optionalDependencies:
+ "fsevents" "^2.3.2"
+
+"metro-hermes-compiler@0.73.9":
+ "integrity" "sha512-5B3vXIwQkZMSh3DQQY23XpTCpX9kPLqZbA3rDuAcbGW0tzC3f8dCenkyBb0GcCzyTDncJeot/A7oVCVK6zapwg=="
+ "resolved" "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.73.9.tgz"
+ "version" "0.73.9"
+
+"metro-inspector-proxy@0.73.9":
+ "integrity" "sha512-B3WrWZnlYhtTrv0IaX3aUAhi2qVILPAZQzb5paO1e+xrz4YZHk9c7dXv7qe7B/IQ132e3w46y3AL7rFo90qVjA=="
+ "resolved" "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "connect" "^3.6.5"
+ "debug" "^2.2.0"
+ "ws" "^7.5.1"
+ "yargs" "^17.5.1"
+
+"metro-minify-terser@0.73.9":
+ "integrity" "sha512-MTGPu2qV5qtzPJ2SqH6s58awHDtZ4jd7lmmLR+7TXDwtZDjIBA0YVfI0Zak2Haby2SqoNKrhhUns/b4dPAQAVg=="
+ "resolved" "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "terser" "^5.15.0"
+
+"metro-minify-uglify@0.73.9":
+ "integrity" "sha512-gzxD/7WjYcnCNGiFJaA26z34rjOp+c/Ft++194Wg91lYep3TeWQ0CnH8t2HRS7AYDHU81SGWgvD3U7WV0g4LGA=="
+ "resolved" "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "uglify-es" "^3.1.9"
+
+"metro-react-native-babel-preset@^0.76.4":
+ "integrity" "sha512-BKyfPz7mn3ncgRjqi8Z9nYLbzuuiBWns2AAEIGctQdz9OMMAisPlZmWscv09UjhPXkQc/XtToFETVN7fmHMfug=="
+ "resolved" "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.4.tgz"
+ "version" "0.76.4"
+ dependencies:
+ "@babel/core" "^7.20.0"
+ "@babel/plugin-proposal-async-generator-functions" "^7.0.0"
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-export-default-from" "^7.0.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-proposal-numeric-separator" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.0.0"
+ "@babel/plugin-syntax-dynamic-import" "^7.0.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.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-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"
+
+"metro-react-native-babel-preset@0.73.9":
+ "integrity" "sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw=="
+ "resolved" "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "@babel/core" "^7.20.0"
+ "@babel/plugin-proposal-async-generator-functions" "^7.0.0"
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-export-default-from" "^7.0.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.0.0"
+ "@babel/plugin-syntax-dynamic-import" "^7.0.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.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-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-template-literals" "^7.0.0"
+ "@babel/plugin-transform-typescript" "^7.5.0"
+ "@babel/plugin-transform-unicode-regex" "^7.0.0"
+ "@babel/template" "^7.0.0"
+ "react-refresh" "^0.4.0"
+
+"metro-react-native-babel-transformer@0.73.9":
+ "integrity" "sha512-DSdrEHuQ22ixY7DyipyKkIcqhOJrt5s6h6X7BYJCP9AMUfXOwLe2biY3BcgJz5GOXv8/Akry4vTCvQscVS1otQ=="
+ "resolved" "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "@babel/core" "^7.20.0"
+ "babel-preset-fbjs" "^3.4.0"
+ "hermes-parser" "0.8.0"
+ "metro-babel-transformer" "0.73.9"
+ "metro-react-native-babel-preset" "0.73.9"
+ "metro-source-map" "0.73.9"
+ "nullthrows" "^1.1.1"
+
+"metro-resolver@0.73.9":
+ "integrity" "sha512-Ej3wAPOeNRPDnJmkK0zk7vJ33iU07n+oPhpcf5L0NFkWneMmSM2bflMPibI86UjzZGmRfn0AhGhs8yGeBwQ/Xg=="
+ "resolved" "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "absolute-path" "^0.0.0"
+
+"metro-runtime@0.73.9":
+ "integrity" "sha512-d5Hs83FpKB9r8q8Vb95+fa6ESpwysmPr4lL1I2rM2qXAFiO7OAPT9Bc23WmXgidkBtD0uUFdB2lG+H1ATz8rZg=="
+ "resolved" "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "@babel/runtime" "^7.0.0"
+ "react-refresh" "^0.4.0"
+
+"metro-source-map@0.73.9":
+ "integrity" "sha512-l4VZKzdqafipriETYR6lsrwtavCF1+CMhCOY9XbyWeTrpGSNgJQgdeJpttzEZTHQQTLR0csQo0nD1ef3zEP6IQ=="
+ "resolved" "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "@babel/traverse" "^7.20.0"
+ "@babel/types" "^7.20.0"
+ "invariant" "^2.2.4"
+ "metro-symbolicate" "0.73.9"
+ "nullthrows" "^1.1.1"
+ "ob1" "0.73.9"
+ "source-map" "^0.5.6"
+ "vlq" "^1.0.0"
+
+"metro-symbolicate@0.73.9":
+ "integrity" "sha512-4TUOwxRHHqbEHxRqRJ3wZY5TA8xq7AHMtXrXcjegMH9FscgYztsrIG9aNBUBS+VLB6g1qc6BYbfIgoAnLjCDyw=="
+ "resolved" "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.73.9.tgz"
+ "version" "0.73.9"
+ dependencies:
+ "invariant" "^2.2.4"
+ "metro-source-map" "0.73.9"
+ "nullthrows" "^1.1.1"
+ "source-map" "^0.5.6"
+ "through2" "^2.0.1"
+ "vlq" "^1.0.0"
+
+"metro-transform-plugins@0.73.9":
+ "integrity" "sha512-r9NeiqMngmooX2VOKLJVQrMuV7PAydbqst5bFhdVBPcFpZkxxqyzjzo+kzrszGy2UpSQBZr2P1L6OMjLHwQwfQ=="
+ "resolved" "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.73.9.tgz"
+ "version" "0.73.9"
+ 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"
+
+"metro-transform-worker@0.73.9":
+ "integrity" "sha512-Rq4b489sIaTUENA+WCvtu9yvlT/C6zFMWhU4sq+97W29Zj0mPBjdk+qGT5n1ZBgtBIJzZWt1KxeYuc17f4aYtQ=="
+ "resolved" "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.73.9.tgz"
+ "version" "0.73.9"
+ 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.73.9"
+ "metro-babel-transformer" "0.73.9"
+ "metro-cache" "0.73.9"
+ "metro-cache-key" "0.73.9"
+ "metro-hermes-compiler" "0.73.9"
+ "metro-source-map" "0.73.9"
+ "metro-transform-plugins" "0.73.9"
+ "nullthrows" "^1.1.1"
+
+"metro@0.73.9":
+ "integrity" "sha512-BlYbPmTF60hpetyNdKhdvi57dSqutb+/oK0u3ni4emIh78PiI0axGo7RfdsZ/mn3saASXc94tDbpC5yn7+NpEg=="
+ "resolved" "https://registry.npmjs.org/metro/-/metro-0.73.9.tgz"
+ "version" "0.73.9"
+ 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"
+ "absolute-path" "^0.0.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.8.0"
+ "image-size" "^0.6.0"
+ "invariant" "^2.2.4"
+ "jest-worker" "^27.2.0"
+ "lodash.throttle" "^4.1.1"
+ "metro-babel-transformer" "0.73.9"
+ "metro-cache" "0.73.9"
+ "metro-cache-key" "0.73.9"
+ "metro-config" "0.73.9"
+ "metro-core" "0.73.9"
+ "metro-file-map" "0.73.9"
+ "metro-hermes-compiler" "0.73.9"
+ "metro-inspector-proxy" "0.73.9"
+ "metro-minify-terser" "0.73.9"
+ "metro-minify-uglify" "0.73.9"
+ "metro-react-native-babel-preset" "0.73.9"
+ "metro-resolver" "0.73.9"
+ "metro-runtime" "0.73.9"
+ "metro-source-map" "0.73.9"
+ "metro-symbolicate" "0.73.9"
+ "metro-transform-plugins" "0.73.9"
+ "metro-transform-worker" "0.73.9"
+ "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"
+ "temp" "0.8.3"
+ "throat" "^5.0.0"
+ "ws" "^7.5.1"
+ "yargs" "^17.5.1"
+
+"micromatch@^3.1.10":
+ "integrity" "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg=="
+ "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz"
+ "version" "3.1.10"
+ dependencies:
+ "arr-diff" "^4.0.0"
+ "array-unique" "^0.3.2"
+ "braces" "^2.3.1"
+ "define-property" "^2.0.2"
+ "extend-shallow" "^3.0.2"
+ "extglob" "^2.0.4"
+ "fragment-cache" "^0.2.1"
+ "kind-of" "^6.0.2"
+ "nanomatch" "^1.2.9"
+ "object.pick" "^1.3.0"
+ "regex-not" "^1.0.0"
+ "snapdragon" "^0.8.1"
+ "to-regex" "^3.0.2"
+
+"micromatch@^4.0.4":
+ "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA=="
+ "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz"
+ "version" "4.0.5"
+ dependencies:
+ "braces" "^3.0.2"
+ "picomatch" "^2.3.1"
+
+"mime-db@>= 1.43.0 < 2", "mime-db@1.52.0":
+ "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
+ "version" "1.52.0"
+
+"mime-types@^2.1.27", "mime-types@~2.1.34":
+ "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
+ "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
+ "version" "2.1.35"
+ dependencies:
+ "mime-db" "1.52.0"
+
+"mime@^2.4.1":
+ "integrity" "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="
+ "resolved" "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz"
+ "version" "2.6.0"
+
+"mime@1.6.0":
+ "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
+ "version" "1.6.0"
+
+"mimic-fn@^2.1.0":
+ "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
+ "version" "2.1.0"
+
+"minimatch@^3.0.2", "minimatch@^3.0.4", "minimatch@^3.0.5", "minimatch@^3.1.1", "minimatch@^3.1.2":
+ "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="
+ "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
+ "version" "3.1.2"
+ dependencies:
+ "brace-expansion" "^1.1.7"
+
+"minimist@^1.2.6":
+ "integrity" "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
+ "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
+ "version" "1.2.8"
+
+"mixin-deep@^1.2.0":
+ "integrity" "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA=="
+ "resolved" "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz"
+ "version" "1.3.2"
+ dependencies:
+ "for-in" "^1.0.2"
+ "is-extendable" "^1.0.1"
+
+"mkdirp@^0.5.1":
+ "integrity" "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="
+ "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz"
+ "version" "0.5.6"
+ dependencies:
+ "minimist" "^1.2.6"
+
+"ms@2.0.0":
+ "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ "version" "2.0.0"
+
+"ms@2.1.2":
+ "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
+ "version" "2.1.2"
+
+"ms@2.1.3":
+ "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
+ "version" "2.1.3"
+
+"nanoid@^3.1.23":
+ "integrity" "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"
+ "version" "3.3.4"
+
+"nanomatch@^1.2.9":
+ "integrity" "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA=="
+ "resolved" "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz"
+ "version" "1.2.13"
+ dependencies:
+ "arr-diff" "^4.0.0"
+ "array-unique" "^0.3.2"
+ "define-property" "^2.0.2"
+ "extend-shallow" "^3.0.2"
+ "fragment-cache" "^0.2.1"
+ "is-windows" "^1.0.2"
+ "kind-of" "^6.0.2"
+ "object.pick" "^1.3.0"
+ "regex-not" "^1.0.0"
+ "snapdragon" "^0.8.1"
+ "to-regex" "^3.0.1"
+
+"natural-compare-lite@^1.4.0":
+ "integrity" "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g=="
+ "resolved" "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz"
+ "version" "1.4.0"
+
+"natural-compare@^1.4.0":
+ "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
+ "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
+ "version" "1.4.0"
+
+"negotiator@0.6.3":
+ "integrity" "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
+ "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
+ "version" "0.6.3"
+
+"neo-async@^2.5.0":
+ "integrity" "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
+ "resolved" "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz"
+ "version" "2.6.2"
+
+"nice-try@^1.0.4":
+ "integrity" "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ "resolved" "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz"
+ "version" "1.0.5"
+
+"nocache@^3.0.1":
+ "integrity" "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw=="
+ "resolved" "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz"
+ "version" "3.0.4"
+
+"node-dir@^0.1.17":
+ "integrity" "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg=="
+ "resolved" "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz"
+ "version" "0.1.17"
+ dependencies:
+ "minimatch" "^3.0.2"
+
+"node-fetch@^2.2.0", "node-fetch@^2.6.0":
+ "integrity" "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w=="
+ "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz"
+ "version" "2.6.11"
+ dependencies:
+ "whatwg-url" "^5.0.0"
+
+"node-int64@^0.4.0":
+ "integrity" "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
+ "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz"
+ "version" "0.4.0"
+
+"node-notifier@^8.0.1 || ^9.0.0 || ^10.0.0":
+ "integrity" "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ=="
+ "resolved" "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz"
+ "version" "10.0.1"
+ dependencies:
+ "growly" "^1.3.0"
+ "is-wsl" "^2.2.0"
+ "semver" "^7.3.5"
+ "shellwords" "^0.1.1"
+ "uuid" "^8.3.2"
+ "which" "^2.0.2"
+
+"node-releases@^2.0.8":
+ "integrity" "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w=="
+ "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz"
+ "version" "2.0.10"
+
+"node-stream-zip@^1.9.1":
+ "integrity" "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw=="
+ "resolved" "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz"
+ "version" "1.15.0"
+
+"normalize-path@^3.0.0":
+ "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
+ "version" "3.0.0"
+
+"npm-run-path@^2.0.0":
+ "integrity" "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw=="
+ "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz"
+ "version" "2.0.2"
+ dependencies:
+ "path-key" "^2.0.0"
+
+"npm-run-path@^4.0.1":
+ "integrity" "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="
+ "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
+ "version" "4.0.1"
+ dependencies:
+ "path-key" "^3.0.0"
+
+"nullthrows@^1.1.1":
+ "integrity" "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="
+ "resolved" "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz"
+ "version" "1.1.1"
+
+"ob1@0.73.9":
+ "integrity" "sha512-kHOzCOFXmAM26fy7V/YuXNKne2TyRiXbFAvPBIbuedJCZZWQZHLdPzMeXJI4Egt6IcfDttRzN3jQ90wOwq1iNw=="
+ "resolved" "https://registry.npmjs.org/ob1/-/ob1-0.73.9.tgz"
+ "version" "0.73.9"
+
+"object-assign@^4.1.1":
+ "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
+ "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ "version" "4.1.1"
+
+"object-copy@^0.1.0":
+ "integrity" "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ=="
+ "resolved" "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz"
+ "version" "0.1.0"
+ dependencies:
+ "copy-descriptor" "^0.1.0"
+ "define-property" "^0.2.5"
+ "kind-of" "^3.0.3"
+
+"object-inspect@^1.12.3", "object-inspect@^1.9.0":
+ "integrity" "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
+ "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz"
+ "version" "1.12.3"
+
+"object-keys@^1.1.1":
+ "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
+ "version" "1.1.1"
+
+"object-visit@^1.0.0":
+ "integrity" "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA=="
+ "resolved" "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz"
+ "version" "1.0.1"
+ dependencies:
+ "isobject" "^3.0.0"
+
+"object.assign@^4.1.3", "object.assign@^4.1.4":
+ "integrity" "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ=="
+ "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz"
+ "version" "4.1.4"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "has-symbols" "^1.0.3"
+ "object-keys" "^1.1.1"
+
+"object.entries@^1.1.6":
+ "integrity" "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w=="
+ "resolved" "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz"
+ "version" "1.1.6"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+
+"object.fromentries@^2.0.6":
+ "integrity" "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg=="
+ "resolved" "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz"
+ "version" "2.0.6"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+
+"object.hasown@^1.1.2":
+ "integrity" "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw=="
+ "resolved" "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz"
+ "version" "1.1.2"
+ dependencies:
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+
+"object.pick@^1.3.0":
+ "integrity" "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ=="
+ "resolved" "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz"
+ "version" "1.3.0"
+ dependencies:
+ "isobject" "^3.0.1"
+
+"object.values@^1.1.6":
+ "integrity" "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw=="
+ "resolved" "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz"
+ "version" "1.1.6"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+
+"on-finished@~2.3.0":
+ "integrity" "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww=="
+ "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"
+ "version" "2.3.0"
+ dependencies:
+ "ee-first" "1.1.1"
+
+"on-finished@2.4.1":
+ "integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="
+ "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
+ "version" "2.4.1"
+ dependencies:
+ "ee-first" "1.1.1"
+
+"on-headers@~1.0.2":
+ "integrity" "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
+ "resolved" "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"
+ "version" "1.0.2"
+
+"once@^1.3.0", "once@^1.3.1", "once@^1.4.0":
+ "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="
+ "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ "version" "1.4.0"
+ dependencies:
+ "wrappy" "1"
+
+"onetime@^5.1.0", "onetime@^5.1.2":
+ "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="
+ "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
+ "version" "5.1.2"
+ dependencies:
+ "mimic-fn" "^2.1.0"
+
+"open@^6.2.0":
+ "integrity" "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg=="
+ "resolved" "https://registry.npmjs.org/open/-/open-6.4.0.tgz"
+ "version" "6.4.0"
+ dependencies:
+ "is-wsl" "^1.1.0"
+
+"optionator@^0.9.1":
+ "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw=="
+ "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"
+ "version" "0.9.1"
+ dependencies:
+ "deep-is" "^0.1.3"
+ "fast-levenshtein" "^2.0.6"
+ "levn" "^0.4.1"
+ "prelude-ls" "^1.2.1"
+ "type-check" "^0.4.0"
+ "word-wrap" "^1.2.3"
+
+"ora@^5.4.1":
+ "integrity" "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ=="
+ "resolved" "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz"
+ "version" "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"
+
+"os-tmpdir@^1.0.0":
+ "integrity" "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="
+ "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
+ "version" "1.0.2"
+
+"p-finally@^1.0.0":
+ "integrity" "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow=="
+ "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz"
+ "version" "1.0.0"
+
+"p-limit@^2.0.0":
+ "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="
+ "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
+ "version" "2.3.0"
+ dependencies:
+ "p-try" "^2.0.0"
+
+"p-limit@^2.2.0":
+ "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="
+ "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
+ "version" "2.3.0"
+ dependencies:
+ "p-try" "^2.0.0"
+
+"p-limit@^3.0.2", "p-limit@^3.1.0":
+ "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="
+ "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
+ "version" "3.1.0"
+ dependencies:
+ "yocto-queue" "^0.1.0"
+
+"p-locate@^3.0.0":
+ "integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="
+ "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "p-limit" "^2.0.0"
+
+"p-locate@^4.1.0":
+ "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="
+ "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz"
+ "version" "4.1.0"
+ dependencies:
+ "p-limit" "^2.2.0"
+
+"p-locate@^5.0.0":
+ "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="
+ "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
+ "version" "5.0.0"
+ dependencies:
+ "p-limit" "^3.0.2"
+
+"p-try@^2.0.0":
+ "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
+ "version" "2.2.0"
+
+"parent-module@^1.0.0":
+ "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="
+ "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
+ "version" "1.0.1"
+ dependencies:
+ "callsites" "^3.0.0"
+
+"parse-json@^4.0.0":
+ "integrity" "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw=="
+ "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz"
+ "version" "4.0.0"
+ dependencies:
+ "error-ex" "^1.3.1"
+ "json-parse-better-errors" "^1.0.1"
+
+"parse-json@^5.2.0":
+ "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="
+ "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
+ "version" "5.2.0"
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "error-ex" "^1.3.1"
+ "json-parse-even-better-errors" "^2.3.0"
+ "lines-and-columns" "^1.1.6"
+
+"parseurl@~1.3.3":
+ "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
+ "version" "1.3.3"
+
+"pascalcase@^0.1.1":
+ "integrity" "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw=="
+ "resolved" "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz"
+ "version" "0.1.1"
+
+"path-exists@^3.0.0":
+ "integrity" "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
+ "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
+ "version" "3.0.0"
+
+"path-exists@^4.0.0":
+ "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
+ "version" "4.0.0"
+
+"path-is-absolute@^1.0.0":
+ "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
+ "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ "version" "1.0.1"
+
+"path-key@^2.0.0", "path-key@^2.0.1":
+ "integrity" "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="
+ "resolved" "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"
+ "version" "2.0.1"
+
+"path-key@^3.0.0":
+ "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+ "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
+ "version" "3.1.1"
+
+"path-key@^3.1.0":
+ "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+ "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
+ "version" "3.1.1"
+
+"path-parse@^1.0.7":
+ "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
+ "version" "1.0.7"
+
+"path-type@^4.0.0":
+ "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
+ "version" "4.0.0"
+
+"picocolors@^1.0.0":
+ "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
+ "version" "1.0.0"
+
+"picomatch@^2.0.4", "picomatch@^2.2.3", "picomatch@^2.3.1":
+ "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+ "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
+ "version" "2.3.1"
+
+"pify@^4.0.1":
+ "integrity" "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
+ "resolved" "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz"
+ "version" "4.0.1"
+
+"pirates@^4.0.4", "pirates@^4.0.5":
+ "integrity" "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ=="
+ "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz"
+ "version" "4.0.5"
+
+"pkg-dir@^3.0.0":
+ "integrity" "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw=="
+ "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "find-up" "^3.0.0"
+
+"pkg-dir@^4.2.0":
+ "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="
+ "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz"
+ "version" "4.2.0"
+ dependencies:
+ "find-up" "^4.0.0"
+
+"posix-character-classes@^0.1.0":
+ "integrity" "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg=="
+ "resolved" "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz"
+ "version" "0.1.1"
+
+"prelude-ls@^1.2.1":
+ "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
+ "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
+ "version" "1.2.1"
+
+"prettier-linter-helpers@^1.0.0":
+ "integrity" "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w=="
+ "resolved" "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "fast-diff" "^1.1.2"
+
+"prettier@^2.8.8", "prettier@>=2", "prettier@>=2.0.0":
+ "integrity" "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="
+ "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz"
+ "version" "2.8.8"
+
+"pretty-format@^26.5.2":
+ "integrity" "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg=="
+ "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz"
+ "version" "26.6.2"
+ dependencies:
+ "@jest/types" "^26.6.2"
+ "ansi-regex" "^5.0.0"
+ "ansi-styles" "^4.0.0"
+ "react-is" "^17.0.1"
+
+"pretty-format@^26.6.2":
+ "integrity" "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg=="
+ "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz"
+ "version" "26.6.2"
+ dependencies:
+ "@jest/types" "^26.6.2"
+ "ansi-regex" "^5.0.0"
+ "ansi-styles" "^4.0.0"
+ "react-is" "^17.0.1"
+
+"pretty-format@^29.0.0", "pretty-format@^29.5.0":
+ "integrity" "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw=="
+ "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz"
+ "version" "29.5.0"
+ dependencies:
+ "@jest/schemas" "^29.4.3"
+ "ansi-styles" "^5.0.0"
+ "react-is" "^18.0.0"
+
+"process-nextick-args@~2.0.0":
+ "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
+ "version" "2.0.1"
+
+"promise@^8.3.0":
+ "integrity" "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg=="
+ "resolved" "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz"
+ "version" "8.3.0"
+ dependencies:
+ "asap" "~2.0.6"
+
+"prompts@^2.0.1", "prompts@^2.4.0":
+ "integrity" "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="
+ "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz"
+ "version" "2.4.2"
+ dependencies:
+ "kleur" "^3.0.3"
+ "sisteransi" "^1.0.5"
+
+"prop-types@*", "prop-types@^15.7.2", "prop-types@^15.8.1":
+ "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
+ "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
+ "version" "15.8.1"
+ dependencies:
+ "loose-envify" "^1.4.0"
+ "object-assign" "^4.1.1"
+ "react-is" "^16.13.1"
+
+"pump@^3.0.0":
+ "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww=="
+ "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "end-of-stream" "^1.1.0"
+ "once" "^1.3.1"
+
+"punycode@^2.1.0":
+ "integrity" "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
+ "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz"
+ "version" "2.3.0"
+
+"pure-rand@^6.0.0":
+ "integrity" "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg=="
+ "resolved" "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz"
+ "version" "6.0.1"
+
+"query-string@^7.1.3":
+ "integrity" "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg=="
+ "resolved" "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz"
+ "version" "7.1.3"
+ dependencies:
+ "decode-uri-component" "^0.2.2"
+ "filter-obj" "^1.1.0"
+ "split-on-first" "^1.0.0"
+ "strict-uri-encode" "^2.0.0"
+
+"queue-microtask@^1.2.2":
+ "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
+ "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
+ "version" "1.2.3"
+
+"range-parser@~1.2.1":
+ "integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ "resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
+ "version" "1.2.1"
+
+"react-devtools-core@^4.26.1":
+ "integrity" "sha512-8SzmIkpO87alD7Xr6gWIEa1jHkMjawOZ+6egjazlnjB4UUcbnzGDf/vBJ4BzGuWWEM+pzrxuzsPpcMqlQkYK2g=="
+ "resolved" "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.27.2.tgz"
+ "version" "4.27.2"
+ dependencies:
+ "shell-quote" "^1.6.1"
+ "ws" "^7"
+
+"react-freeze@^1.0.0":
+ "integrity" "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g=="
+ "resolved" "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz"
+ "version" "1.0.3"
+
+"react-hook-form@^7.43.9":
+ "integrity" "sha512-AUDN3Pz2NSeoxQ7Hs6OhQhDr6gtF9YRuutGDwPQqhSUAHJSgGl2VeY3qN19MG0SucpjgDiuMJ4iC5T5uB+eaNQ=="
+ "resolved" "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.43.9.tgz"
+ "version" "7.43.9"
+
+"react-i18next@^12.2.2":
+ "integrity" "sha512-KBB6buBmVKXUWNxXHdnthp+38gPyBT46hJCAIQ8rX19NFL/m2ahte2KARfIDf2tMnSAL7wwck6eDOd/9zn6aFg=="
+ "resolved" "https://registry.npmjs.org/react-i18next/-/react-i18next-12.2.2.tgz"
+ "version" "12.2.2"
+ dependencies:
+ "@babel/runtime" "^7.20.6"
+ "html-parse-stringify" "^3.0.1"
+
+"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", "react-is@^18.0.0", "react-is@^18.2.0":
+ "integrity" "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
+ "version" "18.2.0"
+
+"react-is@^16.13.0":
+ "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
+ "version" "16.13.1"
+
+"react-is@^16.13.1":
+ "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
+ "version" "16.13.1"
+
+"react-is@^16.7.0":
+ "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
+ "version" "16.13.1"
+
+"react-is@^17.0.1":
+ "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
+ "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
+ "version" "17.0.2"
+
+"react-native-codegen@^0.71.5":
+ "integrity" "sha512-rfsuc0zkuUuMjFnrT55I1mDZ+pBRp2zAiRwxck3m6qeGJBGK5OV5JH66eDQ4aa+3m0of316CqrJDRzVlYufzIg=="
+ "resolved" "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.71.5.tgz"
+ "version" "0.71.5"
+ dependencies:
+ "@babel/parser" "^7.14.0"
+ "flow-parser" "^0.185.0"
+ "jscodeshift" "^0.13.1"
+ "nullthrows" "^1.1.1"
+
+"react-native-config@^1.5.1":
+ "integrity" "sha512-g1xNgt1tV95FCX+iWz6YJonxXkQX0GdD3fB8xQtR1GUBEqweB9zMROW77gi2TygmYmUkBI7LU4pES+zcTyK4HA=="
+ "resolved" "https://registry.npmjs.org/react-native-config/-/react-native-config-1.5.1.tgz"
+ "version" "1.5.1"
+
+"react-native-device-info@^10.6.0":
+ "integrity" "sha512-/MmINdojWdw2/9rwYpH/dX+1gFP0o78p8yYPjwxiPhoySSL2rZaNi+Mq9VwC+zFi/yQmJUvHntkKSw2KUc7rFw=="
+ "resolved" "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.6.0.tgz"
+ "version" "10.6.0"
+
+"react-native-dropdown-picker@^5.4.6":
+ "integrity" "sha512-T1XBHbE++M6aRU3wFYw3MvcOuabhWZ29RK/Ivdls2r1ZkZ62iEBZknLUPeVLMX3x6iUxj4Zgr3X2DGlEGXeHsA=="
+ "resolved" "https://registry.npmjs.org/react-native-dropdown-picker/-/react-native-dropdown-picker-5.4.6.tgz"
+ "version" "5.4.6"
+
+"react-native-gesture-handler@^2.10.0", "react-native-gesture-handler@> 1.0.0", "react-native-gesture-handler@>= 1.0.0":
+ "integrity" "sha512-vuNupfa8+6MAUMgbZMk5jSxrmqWyNnR/gR77/iuhdx6cPg1z2MJeeJNmqEtKQcF0InvHp45dOoyRK62peqTJ3Q=="
+ "resolved" "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.10.0.tgz"
+ "version" "2.10.0"
+ dependencies:
+ "@egjs/hammerjs" "^2.0.17"
+ "hoist-non-react-statics" "^3.3.0"
+ "invariant" "^2.2.4"
+ "lodash" "^4.17.21"
+ "prop-types" "^15.7.2"
+
+"react-native-gradle-plugin@^0.71.18":
+ "integrity" "sha512-7F6bD7B8Xsn3JllxcwHhFcsl9aHIig47+3eN4IHFNqfLhZr++3ElDrcqfMzugM+niWbaMi7bJ0kAkAL8eCpdWg=="
+ "resolved" "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.18.tgz"
+ "version" "0.71.18"
+
+"react-native-localize@^3.0.0":
+ "integrity" "sha512-B8taYRLuLIYDzBTKIglA3K6ntjaEwbk6mwQ72ogZYl5ovM00NnpbiZ3sRq8KRVe/V1NGczxT33uVqG6BUWGWhg=="
+ "resolved" "https://registry.npmjs.org/react-native-localize/-/react-native-localize-3.0.0.tgz"
+ "version" "3.0.0"
+
+"react-native-modalize@^2.1.1":
+ "integrity" "sha512-4/7EZWsrUqAAkkAVEnOsSdpAPQaEBewX7TvwFuzgvGDzxKpq3O58I9SnSeU8QtG/r91XYHJNaU5dAuDrcLjUaQ=="
+ "resolved" "https://registry.npmjs.org/react-native-modalize/-/react-native-modalize-2.1.1.tgz"
+ "version" "2.1.1"
+
+"react-native-paper@^5.7.2":
+ "integrity" "sha512-v4py1Zx2OuZ85Pk4K0+0vOIi/VcfkufbXofiXsxVN/HMGd+YeShTITq8aK3p/zuq9qm5OlzxoHga7xA7D51CIQ=="
+ "resolved" "https://registry.npmjs.org/react-native-paper/-/react-native-paper-5.7.2.tgz"
+ "version" "5.7.2"
+ dependencies:
+ "@callstack/react-theme-provider" "^3.0.8"
+ "color" "^3.1.2"
+ "use-latest-callback" "^0.1.5"
+
+"react-native-reanimated@^3.1.0", "react-native-reanimated@>= 1.0.0":
+ "integrity" "sha512-8YJR7yHnrqK6yKWzkGLVEawi1WZqJ9bGIehKEnE8zG58yLrSwUZe1T220XTbftpkA3r37Sy0kJJ/HOOiaIU+HQ=="
+ "resolved" "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.1.0.tgz"
+ "version" "3.1.0"
+ dependencies:
+ "@babel/plugin-transform-object-assign" "^7.16.7"
+ "@babel/preset-typescript" "^7.16.7"
+ "convert-source-map" "^2.0.0"
+ "invariant" "^2.2.4"
+
+"react-native-safe-area-context@*", "react-native-safe-area-context@^4.5.2", "react-native-safe-area-context@>= 3.0.0":
+ "integrity" "sha512-oH4/Dm7/PWOOZtFRiA4HE08lsfA948BRq8Fn7TEndYjoDXFoNdbjQRahXzCV8JGP/tv3qrVNeaDE8rmdRRUOlA=="
+ "resolved" "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.5.2.tgz"
+ "version" "4.5.2"
+
+"react-native-screens@*", "react-native-screens@>= 3.0.0":
+ "integrity" "sha512-joWUKWAVHxymP3mL9gYApFHAsbd9L6ZcmpoZa6Sl3W/82bvvNVMqcfP7MeNqVCg73qZ8yL4fW+J/syusHleUgg=="
+ "resolved" "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.20.0.tgz"
+ "version" "3.20.0"
+ dependencies:
+ "react-freeze" "^1.0.0"
+ "warn-once" "^0.1.0"
+
+"react-native-vector-icons@*", "react-native-vector-icons@^9.2.0":
+ "integrity" "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA=="
+ "resolved" "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz"
+ "version" "9.2.0"
+ dependencies:
+ "prop-types" "^15.7.2"
+ "yargs" "^16.1.1"
+
+"react-native@*", "react-native@^0.0.0-0 || 0.60 - 0.72 || 1000.0.0", "react-native@^0.71.8", "react-native@> 0.50.0", "react-native@>=0.70.0":
+ "integrity" "sha512-ftMAuhpgTkbHU9brrqsEyxcNrpYvXKeATY+if22Nfhhg1zW+6wn95w9otwTnA3xHkljPCbng8mUhmmERjGEl7g=="
+ "resolved" "https://registry.npmjs.org/react-native/-/react-native-0.71.8.tgz"
+ "version" "0.71.8"
+ dependencies:
+ "@jest/create-cache-key-function" "^29.2.1"
+ "@react-native-community/cli" "10.2.2"
+ "@react-native-community/cli-platform-android" "10.2.0"
+ "@react-native-community/cli-platform-ios" "10.2.1"
+ "@react-native/assets" "1.0.0"
+ "@react-native/normalize-color" "2.1.0"
+ "@react-native/polyfills" "2.0.0"
+ "abort-controller" "^3.0.0"
+ "anser" "^1.4.9"
+ "base64-js" "^1.1.2"
+ "deprecated-react-native-prop-types" "^3.0.1"
+ "event-target-shim" "^5.0.1"
+ "invariant" "^2.2.4"
+ "jest-environment-node" "^29.2.1"
+ "jsc-android" "^250231.0.0"
+ "memoize-one" "^5.0.0"
+ "metro-react-native-babel-transformer" "0.73.9"
+ "metro-runtime" "0.73.9"
+ "metro-source-map" "0.73.9"
+ "mkdirp" "^0.5.1"
+ "nullthrows" "^1.1.1"
+ "pretty-format" "^26.5.2"
+ "promise" "^8.3.0"
+ "react-devtools-core" "^4.26.1"
+ "react-native-codegen" "^0.71.5"
+ "react-native-gradle-plugin" "^0.71.18"
+ "react-refresh" "^0.4.0"
+ "react-shallow-renderer" "^16.15.0"
+ "regenerator-runtime" "^0.13.2"
+ "scheduler" "^0.23.0"
+ "stacktrace-parser" "^0.1.3"
+ "use-sync-external-store" "^1.0.0"
+ "whatwg-fetch" "^3.0.0"
+ "ws" "^6.2.2"
+
+"react-refresh@^0.4.0":
+ "integrity" "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA=="
+ "resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz"
+ "version" "0.4.3"
+
+"react-shallow-renderer@^16.15.0":
+ "integrity" "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA=="
+ "resolved" "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz"
+ "version" "16.15.0"
+ dependencies:
+ "object-assign" "^4.1.1"
+ "react-is" "^16.12.0 || ^17.0.0 || ^18.0.0"
+
+"react-test-renderer@18.2.0":
+ "integrity" "sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA=="
+ "resolved" "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.2.0.tgz"
+ "version" "18.2.0"
+ dependencies:
+ "react-is" "^18.2.0"
+ "react-shallow-renderer" "^16.15.0"
+ "scheduler" "^0.23.0"
+
+"react@*", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17 || ^18", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^18.2.0", "react@> 15.0.0", "react@>= 16.8.0", "react@>=16.3.0", "react@>=17.0.0", "react@>=18.1.0", "react@18.2.0":
+ "integrity" "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ=="
+ "resolved" "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
+ "version" "18.2.0"
+ dependencies:
+ "loose-envify" "^1.1.0"
+
+"readable-stream@^3.4.0":
+ "integrity" "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="
+ "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
+ "version" "3.6.2"
+ dependencies:
+ "inherits" "^2.0.3"
+ "string_decoder" "^1.1.1"
+ "util-deprecate" "^1.0.1"
+
+"readable-stream@~2.3.6":
+ "integrity" "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="
+ "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz"
+ "version" "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"
+
+"readline@^1.3.0":
+ "integrity" "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg=="
+ "resolved" "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz"
+ "version" "1.3.0"
+
+"recast@^0.20.4":
+ "integrity" "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ=="
+ "resolved" "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz"
+ "version" "0.20.5"
+ dependencies:
+ "ast-types" "0.14.2"
+ "esprima" "~4.0.0"
+ "source-map" "~0.6.1"
+ "tslib" "^2.0.1"
+
+"regenerate-unicode-properties@^10.1.0":
+ "integrity" "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ=="
+ "resolved" "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz"
+ "version" "10.1.0"
+ dependencies:
+ "regenerate" "^1.4.2"
+
+"regenerate@^1.4.2":
+ "integrity" "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
+ "resolved" "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz"
+ "version" "1.4.2"
+
+"regenerator-runtime@^0.13.11", "regenerator-runtime@^0.13.2":
+ "integrity" "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
+ "version" "0.13.11"
+
+"regenerator-transform@^0.15.1":
+ "integrity" "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg=="
+ "resolved" "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz"
+ "version" "0.15.1"
+ dependencies:
+ "@babel/runtime" "^7.8.4"
+
+"regex-not@^1.0.0", "regex-not@^1.0.2":
+ "integrity" "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A=="
+ "resolved" "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "extend-shallow" "^3.0.2"
+ "safe-regex" "^1.1.0"
+
+"regexp.prototype.flags@^1.4.3":
+ "integrity" "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA=="
+ "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz"
+ "version" "1.4.3"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.3"
+ "functions-have-names" "^1.2.2"
+
+"regexpu-core@^5.3.1":
+ "integrity" "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ=="
+ "resolved" "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz"
+ "version" "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"
+
+"regjsparser@^0.9.1":
+ "integrity" "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ=="
+ "resolved" "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz"
+ "version" "0.9.1"
+ dependencies:
+ "jsesc" "~0.5.0"
+
+"repeat-element@^1.1.2":
+ "integrity" "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ=="
+ "resolved" "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz"
+ "version" "1.1.4"
+
+"repeat-string@^1.6.1":
+ "integrity" "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w=="
+ "resolved" "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
+ "version" "1.6.1"
+
+"require-directory@^2.1.1":
+ "integrity" "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
+ "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
+ "version" "2.1.1"
+
+"require-main-filename@^2.0.0":
+ "integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"
+ "version" "2.0.0"
+
+"resolve-cwd@^3.0.0":
+ "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg=="
+ "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz"
+ "version" "3.0.0"
+ dependencies:
+ "resolve-from" "^5.0.0"
+
+"resolve-from@^3.0.0":
+ "integrity" "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw=="
+ "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz"
+ "version" "3.0.0"
+
+"resolve-from@^4.0.0":
+ "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
+ "version" "4.0.0"
+
+"resolve-from@^5.0.0":
+ "integrity" "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
+ "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz"
+ "version" "5.0.0"
+
+"resolve-url@^0.2.1":
+ "integrity" "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg=="
+ "resolved" "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz"
+ "version" "0.2.1"
+
+"resolve.exports@^2.0.0":
+ "integrity" "sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw=="
+ "resolved" "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.1.tgz"
+ "version" "2.0.1"
+
+"resolve@^1.14.2", "resolve@^1.20.0":
+ "integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw=="
+ "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz"
+ "version" "1.22.1"
+ dependencies:
+ "is-core-module" "^2.9.0"
+ "path-parse" "^1.0.7"
+ "supports-preserve-symlinks-flag" "^1.0.0"
+
+"resolve@^2.0.0-next.4":
+ "integrity" "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ=="
+ "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz"
+ "version" "2.0.0-next.4"
+ dependencies:
+ "is-core-module" "^2.9.0"
+ "path-parse" "^1.0.7"
+ "supports-preserve-symlinks-flag" "^1.0.0"
+
+"restore-cursor@^3.1.0":
+ "integrity" "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="
+ "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz"
+ "version" "3.1.0"
+ dependencies:
+ "onetime" "^5.1.0"
+ "signal-exit" "^3.0.2"
+
+"ret@~0.1.10":
+ "integrity" "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
+ "resolved" "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz"
+ "version" "0.1.15"
+
+"reusify@^1.0.4":
+ "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+ "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
+ "version" "1.0.4"
+
+"rimraf@^3.0.2":
+ "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="
+ "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
+ "version" "3.0.2"
+ dependencies:
+ "glob" "^7.1.3"
+
+"rimraf@~2.2.6":
+ "integrity" "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg=="
+ "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
+ "version" "2.2.8"
+
+"rimraf@~2.6.2":
+ "integrity" "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA=="
+ "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz"
+ "version" "2.6.3"
+ dependencies:
+ "glob" "^7.1.3"
+
+"run-parallel@^1.1.9":
+ "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="
+ "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
+ "version" "1.2.0"
+ dependencies:
+ "queue-microtask" "^1.2.2"
+
+"safe-buffer@~5.1.0", "safe-buffer@~5.1.1", "safe-buffer@5.1.2":
+ "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
+ "version" "5.1.2"
+
+"safe-buffer@~5.2.0":
+ "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
+ "version" "5.2.1"
+
+"safe-regex-test@^1.0.0":
+ "integrity" "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA=="
+ "resolved" "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "get-intrinsic" "^1.1.3"
+ "is-regex" "^1.1.4"
+
+"safe-regex@^1.1.0":
+ "integrity" "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg=="
+ "resolved" "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz"
+ "version" "1.1.0"
+ dependencies:
+ "ret" "~0.1.10"
+
+"scheduler@^0.23.0":
+ "integrity" "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw=="
+ "resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz"
+ "version" "0.23.0"
+ dependencies:
+ "loose-envify" "^1.1.0"
+
+"semver@^5.5.0":
+ "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
+ "version" "5.7.1"
+
+"semver@^5.6.0":
+ "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
+ "version" "5.7.1"
+
+"semver@^6.0.0", "semver@^6.1.1", "semver@^6.1.2", "semver@^6.3.0":
+ "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
+ "version" "6.3.0"
+
+"semver@^7.3.5":
+ "integrity" "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A=="
+ "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz"
+ "version" "7.3.8"
+ dependencies:
+ "lru-cache" "^6.0.0"
+
+"semver@^7.3.7":
+ "integrity" "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A=="
+ "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz"
+ "version" "7.3.8"
+ dependencies:
+ "lru-cache" "^6.0.0"
+
+"send@0.18.0":
+ "integrity" "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg=="
+ "resolved" "https://registry.npmjs.org/send/-/send-0.18.0.tgz"
+ "version" "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"
+
+"serialize-error@^2.1.0":
+ "integrity" "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw=="
+ "resolved" "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz"
+ "version" "2.1.0"
+
+"serve-static@^1.13.1":
+ "integrity" "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g=="
+ "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz"
+ "version" "1.15.0"
+ dependencies:
+ "encodeurl" "~1.0.2"
+ "escape-html" "~1.0.3"
+ "parseurl" "~1.3.3"
+ "send" "0.18.0"
+
+"set-blocking@^2.0.0":
+ "integrity" "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
+ "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
+ "version" "2.0.0"
+
+"set-value@^2.0.0", "set-value@^2.0.1":
+ "integrity" "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw=="
+ "resolved" "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz"
+ "version" "2.0.1"
+ dependencies:
+ "extend-shallow" "^2.0.1"
+ "is-extendable" "^0.1.1"
+ "is-plain-object" "^2.0.3"
+ "split-string" "^3.0.1"
+
+"setprototypeof@1.2.0":
+ "integrity" "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
+ "version" "1.2.0"
+
+"shallow-clone@^3.0.0":
+ "integrity" "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA=="
+ "resolved" "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz"
+ "version" "3.0.1"
+ dependencies:
+ "kind-of" "^6.0.2"
+
+"shebang-command@^1.2.0":
+ "integrity" "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg=="
+ "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz"
+ "version" "1.2.0"
+ dependencies:
+ "shebang-regex" "^1.0.0"
+
+"shebang-command@^2.0.0":
+ "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="
+ "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "shebang-regex" "^3.0.0"
+
+"shebang-regex@^1.0.0":
+ "integrity" "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ=="
+ "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"
+ "version" "1.0.0"
+
+"shebang-regex@^3.0.0":
+ "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+ "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
+ "version" "3.0.0"
+
+"shell-quote@^1.6.1", "shell-quote@^1.7.3":
+ "integrity" "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ=="
+ "resolved" "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz"
+ "version" "1.8.0"
+
+"shellwords@^0.1.1":
+ "integrity" "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww=="
+ "resolved" "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz"
+ "version" "0.1.1"
+
+"side-channel@^1.0.4":
+ "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
+ "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
+ "version" "1.0.4"
+ dependencies:
+ "call-bind" "^1.0.0"
+ "get-intrinsic" "^1.0.2"
+ "object-inspect" "^1.9.0"
+
+"signal-exit@^3.0.0", "signal-exit@^3.0.2", "signal-exit@^3.0.3", "signal-exit@^3.0.7":
+ "integrity" "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+ "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
+ "version" "3.0.7"
+
+"simple-swizzle@^0.2.2":
+ "integrity" "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg=="
+ "resolved" "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"
+ "version" "0.2.2"
+ dependencies:
+ "is-arrayish" "^0.3.1"
+
+"sisteransi@^1.0.5":
+ "integrity" "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
+ "resolved" "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz"
+ "version" "1.0.5"
+
+"slash@^3.0.0":
+ "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
+ "version" "3.0.0"
+
+"slice-ansi@^2.0.0":
+ "integrity" "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ=="
+ "resolved" "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz"
+ "version" "2.1.0"
+ dependencies:
+ "ansi-styles" "^3.2.0"
+ "astral-regex" "^1.0.0"
+ "is-fullwidth-code-point" "^2.0.0"
+
+"snapdragon-node@^2.0.1":
+ "integrity" "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw=="
+ "resolved" "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz"
+ "version" "2.1.1"
+ dependencies:
+ "define-property" "^1.0.0"
+ "isobject" "^3.0.0"
+ "snapdragon-util" "^3.0.1"
+
+"snapdragon-util@^3.0.1":
+ "integrity" "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ=="
+ "resolved" "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz"
+ "version" "3.0.1"
+ dependencies:
+ "kind-of" "^3.2.0"
+
+"snapdragon@^0.8.1":
+ "integrity" "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg=="
+ "resolved" "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz"
+ "version" "0.8.2"
+ dependencies:
+ "base" "^0.11.1"
+ "debug" "^2.2.0"
+ "define-property" "^0.2.5"
+ "extend-shallow" "^2.0.1"
+ "map-cache" "^0.2.2"
+ "source-map" "^0.5.6"
+ "source-map-resolve" "^0.5.0"
+ "use" "^3.1.0"
+
+"source-map-resolve@^0.5.0":
+ "integrity" "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw=="
+ "resolved" "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz"
+ "version" "0.5.3"
+ dependencies:
+ "atob" "^2.1.2"
+ "decode-uri-component" "^0.2.0"
+ "resolve-url" "^0.2.1"
+ "source-map-url" "^0.4.0"
+ "urix" "^0.1.0"
+
+"source-map-support@^0.5.16", "source-map-support@~0.5.20":
+ "integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="
+ "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz"
+ "version" "0.5.21"
+ dependencies:
+ "buffer-from" "^1.0.0"
+ "source-map" "^0.6.0"
+
+"source-map-support@0.5.13":
+ "integrity" "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="
+ "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz"
+ "version" "0.5.13"
+ dependencies:
+ "buffer-from" "^1.0.0"
+ "source-map" "^0.6.0"
+
+"source-map-url@^0.4.0":
+ "integrity" "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw=="
+ "resolved" "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz"
+ "version" "0.4.1"
+
+"source-map@^0.5.6":
+ "integrity" "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
+ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ "version" "0.5.7"
+
+"source-map@^0.6.0", "source-map@^0.6.1", "source-map@~0.6.1":
+ "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
+ "version" "0.6.1"
+
+"source-map@^0.7.3":
+ "integrity" "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
+ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz"
+ "version" "0.7.4"
+
+"split-on-first@^1.0.0":
+ "integrity" "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="
+ "resolved" "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz"
+ "version" "1.1.0"
+
+"split-string@^3.0.1", "split-string@^3.0.2":
+ "integrity" "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw=="
+ "resolved" "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz"
+ "version" "3.1.0"
+ dependencies:
+ "extend-shallow" "^3.0.0"
+
+"sprintf-js@~1.0.2":
+ "integrity" "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
+ "version" "1.0.3"
+
+"stack-utils@^2.0.3":
+ "integrity" "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ=="
+ "resolved" "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz"
+ "version" "2.0.6"
+ dependencies:
+ "escape-string-regexp" "^2.0.0"
+
+"stackframe@^1.3.4":
+ "integrity" "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
+ "resolved" "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz"
+ "version" "1.3.4"
+
+"stacktrace-parser@^0.1.3":
+ "integrity" "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg=="
+ "resolved" "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz"
+ "version" "0.1.10"
+ dependencies:
+ "type-fest" "^0.7.1"
+
+"static-extend@^0.1.1":
+ "integrity" "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g=="
+ "resolved" "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz"
+ "version" "0.1.2"
+ dependencies:
+ "define-property" "^0.2.5"
+ "object-copy" "^0.1.0"
+
+"statuses@~1.5.0":
+ "integrity" "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="
+ "resolved" "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
+ "version" "1.5.0"
+
+"statuses@2.0.1":
+ "integrity" "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+ "resolved" "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
+ "version" "2.0.1"
+
+"strict-uri-encode@^2.0.0":
+ "integrity" "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="
+ "resolved" "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz"
+ "version" "2.0.0"
+
+"string_decoder@^1.1.1":
+ "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="
+ "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
+ "version" "1.3.0"
+ dependencies:
+ "safe-buffer" "~5.2.0"
+
+"string_decoder@~1.1.1":
+ "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="
+ "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
+ "version" "1.1.1"
+ dependencies:
+ "safe-buffer" "~5.1.0"
+
+"string-length@^4.0.1":
+ "integrity" "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ=="
+ "resolved" "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz"
+ "version" "4.0.2"
+ dependencies:
+ "char-regex" "^1.0.2"
+ "strip-ansi" "^6.0.0"
+
+"string-natural-compare@^3.0.1":
+ "integrity" "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw=="
+ "resolved" "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz"
+ "version" "3.0.1"
+
+"string-width@^4.1.0", "string-width@^4.2.0", "string-width@^4.2.3":
+ "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="
+ "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
+ "version" "4.2.3"
+ dependencies:
+ "emoji-regex" "^8.0.0"
+ "is-fullwidth-code-point" "^3.0.0"
+ "strip-ansi" "^6.0.1"
+
+"string.prototype.matchall@^4.0.8":
+ "integrity" "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg=="
+ "resolved" "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz"
+ "version" "4.0.8"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+ "get-intrinsic" "^1.1.3"
+ "has-symbols" "^1.0.3"
+ "internal-slot" "^1.0.3"
+ "regexp.prototype.flags" "^1.4.3"
+ "side-channel" "^1.0.4"
+
+"string.prototype.trim@^1.2.7":
+ "integrity" "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg=="
+ "resolved" "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz"
+ "version" "1.2.7"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+
+"string.prototype.trimend@^1.0.6":
+ "integrity" "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ=="
+ "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz"
+ "version" "1.0.6"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+
+"string.prototype.trimstart@^1.0.6":
+ "integrity" "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA=="
+ "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz"
+ "version" "1.0.6"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "define-properties" "^1.1.4"
+ "es-abstract" "^1.20.4"
+
+"strip-ansi@^5.0.0":
+ "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="
+ "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
+ "version" "5.2.0"
+ dependencies:
+ "ansi-regex" "^4.1.0"
+
+"strip-ansi@^5.2.0":
+ "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="
+ "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
+ "version" "5.2.0"
+ dependencies:
+ "ansi-regex" "^4.1.0"
+
+"strip-ansi@^6.0.0", "strip-ansi@^6.0.1":
+ "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="
+ "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
+ "version" "6.0.1"
+ dependencies:
+ "ansi-regex" "^5.0.1"
+
+"strip-bom@^4.0.0":
+ "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="
+ "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz"
+ "version" "4.0.0"
+
+"strip-eof@^1.0.0":
+ "integrity" "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q=="
+ "resolved" "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz"
+ "version" "1.0.0"
+
+"strip-final-newline@^2.0.0":
+ "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
+ "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
+ "version" "2.0.0"
+
+"strip-json-comments@^3.1.0", "strip-json-comments@^3.1.1":
+ "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
+ "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
+ "version" "3.1.1"
+
+"strnum@^1.0.5":
+ "integrity" "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
+ "resolved" "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz"
+ "version" "1.0.5"
+
+"sudo-prompt@^9.0.0":
+ "integrity" "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw=="
+ "resolved" "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz"
+ "version" "9.2.1"
+
+"supports-color@^5.3.0":
+ "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="
+ "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
+ "version" "5.5.0"
+ dependencies:
+ "has-flag" "^3.0.0"
+
+"supports-color@^7.1.0":
+ "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="
+ "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
+ "version" "7.2.0"
+ dependencies:
+ "has-flag" "^4.0.0"
+
+"supports-color@^8.0.0":
+ "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="
+ "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"
+ "version" "8.1.1"
+ dependencies:
+ "has-flag" "^4.0.0"
+
+"supports-preserve-symlinks-flag@^1.0.0":
+ "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
+ "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
+ "version" "1.0.0"
+
+"temp@^0.8.4":
+ "integrity" "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg=="
+ "resolved" "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz"
+ "version" "0.8.4"
+ dependencies:
+ "rimraf" "~2.6.2"
+
+"temp@0.8.3":
+ "integrity" "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw=="
+ "resolved" "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz"
+ "version" "0.8.3"
+ dependencies:
+ "os-tmpdir" "^1.0.0"
+ "rimraf" "~2.2.6"
+
+"terser@^5.15.0":
+ "integrity" "sha512-AudpAZKmZHkG9jueayypz4duuCFJMMNGRMwaPvQKWfxKedh8Z2x3OCoDqIIi1xx5+iwx1u6Au8XQcc9Lke65Yg=="
+ "resolved" "https://registry.npmjs.org/terser/-/terser-5.17.3.tgz"
+ "version" "5.17.3"
+ dependencies:
+ "@jridgewell/source-map" "^0.3.2"
+ "acorn" "^8.5.0"
+ "commander" "^2.20.0"
+ "source-map-support" "~0.5.20"
+
+"test-exclude@^6.0.0":
+ "integrity" "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w=="
+ "resolved" "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz"
+ "version" "6.0.0"
+ dependencies:
+ "@istanbuljs/schema" "^0.1.2"
+ "glob" "^7.1.4"
+ "minimatch" "^3.0.4"
+
+"text-table@^0.2.0":
+ "integrity" "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
+ "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
+ "version" "0.2.0"
+
+"throat@^5.0.0":
+ "integrity" "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="
+ "resolved" "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz"
+ "version" "5.0.0"
+
+"through2@^2.0.1":
+ "integrity" "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="
+ "resolved" "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz"
+ "version" "2.0.5"
+ dependencies:
+ "readable-stream" "~2.3.6"
+ "xtend" "~4.0.1"
+
+"tmpl@1.0.5":
+ "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="
+ "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz"
+ "version" "1.0.5"
+
+"to-fast-properties@^2.0.0":
+ "integrity" "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
+ "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
+ "version" "2.0.0"
+
+"to-object-path@^0.3.0":
+ "integrity" "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg=="
+ "resolved" "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz"
+ "version" "0.3.0"
+ dependencies:
+ "kind-of" "^3.0.2"
+
+"to-regex-range@^2.1.0":
+ "integrity" "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg=="
+ "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz"
+ "version" "2.1.1"
+ dependencies:
+ "is-number" "^3.0.0"
+ "repeat-string" "^1.6.1"
+
+"to-regex-range@^5.0.1":
+ "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
+ "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
+ "version" "5.0.1"
+ dependencies:
+ "is-number" "^7.0.0"
+
+"to-regex@^3.0.1", "to-regex@^3.0.2":
+ "integrity" "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw=="
+ "resolved" "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz"
+ "version" "3.0.2"
+ dependencies:
+ "define-property" "^2.0.2"
+ "extend-shallow" "^3.0.2"
+ "regex-not" "^1.0.2"
+ "safe-regex" "^1.1.0"
+
+"toidentifier@1.0.1":
+ "integrity" "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
+ "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
+ "version" "1.0.1"
+
+"tr46@~0.0.3":
+ "integrity" "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ "resolved" "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz"
+ "version" "0.0.3"
+
+"tslib@^1.8.1":
+ "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
+ "version" "1.14.1"
+
+"tslib@^2.0.1":
+ "integrity" "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
+ "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz"
+ "version" "2.5.0"
+
+"tsutils@^3.21.0":
+ "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA=="
+ "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz"
+ "version" "3.21.0"
+ dependencies:
+ "tslib" "^1.8.1"
+
+"type-check@^0.4.0", "type-check@~0.4.0":
+ "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="
+ "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
+ "version" "0.4.0"
+ dependencies:
+ "prelude-ls" "^1.2.1"
+
+"type-detect@4.0.8":
+ "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="
+ "resolved" "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz"
+ "version" "4.0.8"
+
+"type-fest@^0.20.2":
+ "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
+ "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
+ "version" "0.20.2"
+
+"type-fest@^0.21.3":
+ "integrity" "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
+ "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"
+ "version" "0.21.3"
+
+"type-fest@^0.7.1":
+ "integrity" "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="
+ "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz"
+ "version" "0.7.1"
+
+"typed-array-length@^1.0.4":
+ "integrity" "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng=="
+ "resolved" "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz"
+ "version" "1.0.4"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "for-each" "^0.3.3"
+ "is-typed-array" "^1.1.9"
+
+"typescript@^5.0.4", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta":
+ "integrity" "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw=="
+ "resolved" "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz"
+ "version" "5.0.4"
+
+"uglify-es@^3.1.9":
+ "integrity" "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ=="
+ "resolved" "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz"
+ "version" "3.3.9"
+ dependencies:
+ "commander" "~2.13.0"
+ "source-map" "~0.6.1"
+
+"unbox-primitive@^1.0.2":
+ "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw=="
+ "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "call-bind" "^1.0.2"
+ "has-bigints" "^1.0.2"
+ "has-symbols" "^1.0.3"
+ "which-boxed-primitive" "^1.0.2"
+
+"unicode-canonical-property-names-ecmascript@^2.0.0":
+ "integrity" "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ=="
+ "resolved" "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz"
+ "version" "2.0.0"
+
+"unicode-match-property-ecmascript@^2.0.0":
+ "integrity" "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q=="
+ "resolved" "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz"
+ "version" "2.0.0"
+ dependencies:
+ "unicode-canonical-property-names-ecmascript" "^2.0.0"
+ "unicode-property-aliases-ecmascript" "^2.0.0"
+
+"unicode-match-property-value-ecmascript@^2.1.0":
+ "integrity" "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA=="
+ "resolved" "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz"
+ "version" "2.1.0"
+
+"unicode-property-aliases-ecmascript@^2.0.0":
+ "integrity" "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w=="
+ "resolved" "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz"
+ "version" "2.1.0"
+
+"union-value@^1.0.0":
+ "integrity" "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg=="
+ "resolved" "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz"
+ "version" "1.0.1"
+ dependencies:
+ "arr-union" "^3.1.0"
+ "get-value" "^2.0.6"
+ "is-extendable" "^0.1.1"
+ "set-value" "^2.0.1"
+
+"universalify@^0.1.0":
+ "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz"
+ "version" "0.1.2"
+
+"unpipe@~1.0.0":
+ "integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
+ "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
+ "version" "1.0.0"
+
+"unset-value@^1.0.0":
+ "integrity" "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ=="
+ "resolved" "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz"
+ "version" "1.0.0"
+ dependencies:
+ "has-value" "^0.3.1"
+ "isobject" "^3.0.0"
+
+"update-browserslist-db@^1.0.10":
+ "integrity" "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ=="
+ "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz"
+ "version" "1.0.10"
+ dependencies:
+ "escalade" "^3.1.1"
+ "picocolors" "^1.0.0"
+
+"uri-js@^4.2.2":
+ "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="
+ "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
+ "version" "4.4.1"
+ dependencies:
+ "punycode" "^2.1.0"
+
+"urix@^0.1.0":
+ "integrity" "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg=="
+ "resolved" "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"
+ "version" "0.1.0"
+
+"use-latest-callback@^0.1.5":
+ "integrity" "sha512-HtHatS2U4/h32NlkhupDsPlrbiD27gSH5swBdtXbCAlc6pfOFzaj0FehW/FO12rx8j2Vy4/lJScCiJyM01E+bQ=="
+ "resolved" "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.5.tgz"
+ "version" "0.1.5"
+
+"use-sync-external-store@^1.0.0":
+ "integrity" "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA=="
+ "resolved" "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz"
+ "version" "1.2.0"
+
+"use@^3.1.0":
+ "integrity" "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
+ "resolved" "https://registry.npmjs.org/use/-/use-3.1.1.tgz"
+ "version" "3.1.1"
+
+"util-deprecate@^1.0.1", "util-deprecate@~1.0.1":
+ "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ "version" "1.0.2"
+
+"utils-merge@1.0.1":
+ "integrity" "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
+ "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
+ "version" "1.0.1"
+
+"uuid@^8.3.2":
+ "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
+ "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
+ "version" "8.3.2"
+
+"v8-to-istanbul@^9.0.1":
+ "integrity" "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA=="
+ "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz"
+ "version" "9.1.0"
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.12"
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ "convert-source-map" "^1.6.0"
+
+"vary@~1.1.2":
+ "integrity" "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
+ "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
+ "version" "1.1.2"
+
+"vlq@^1.0.0":
+ "integrity" "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w=="
+ "resolved" "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz"
+ "version" "1.0.1"
+
+"void-elements@3.1.0":
+ "integrity" "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w=="
+ "resolved" "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz"
+ "version" "3.1.0"
+
+"walker@^1.0.7", "walker@^1.0.8":
+ "integrity" "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ=="
+ "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz"
+ "version" "1.0.8"
+ dependencies:
+ "makeerror" "1.0.12"
+
+"warn-once@^0.1.0":
+ "integrity" "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="
+ "resolved" "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz"
+ "version" "0.1.1"
+
+"wcwidth@^1.0.1":
+ "integrity" "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg=="
+ "resolved" "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz"
+ "version" "1.0.1"
+ dependencies:
+ "defaults" "^1.0.3"
+
+"webidl-conversions@^3.0.0":
+ "integrity" "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz"
+ "version" "3.0.1"
+
+"whatwg-fetch@^3.0.0":
+ "integrity" "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA=="
+ "resolved" "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz"
+ "version" "3.6.2"
+
+"whatwg-url@^5.0.0":
+ "integrity" "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="
+ "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz"
+ "version" "5.0.0"
+ dependencies:
+ "tr46" "~0.0.3"
+ "webidl-conversions" "^3.0.0"
+
+"which-boxed-primitive@^1.0.2":
+ "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg=="
+ "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "is-bigint" "^1.0.1"
+ "is-boolean-object" "^1.1.0"
+ "is-number-object" "^1.0.4"
+ "is-string" "^1.0.5"
+ "is-symbol" "^1.0.3"
+
+"which-module@^2.0.0":
+ "integrity" "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
+ "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz"
+ "version" "2.0.1"
+
+"which-typed-array@^1.1.9":
+ "integrity" "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA=="
+ "resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz"
+ "version" "1.1.9"
+ dependencies:
+ "available-typed-arrays" "^1.0.5"
+ "call-bind" "^1.0.2"
+ "for-each" "^0.3.3"
+ "gopd" "^1.0.1"
+ "has-tostringtag" "^1.0.0"
+ "is-typed-array" "^1.1.10"
+
+"which@^1.2.9":
+ "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="
+ "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz"
+ "version" "1.3.1"
+ dependencies:
+ "isexe" "^2.0.0"
+
+"which@^2.0.1", "which@^2.0.2":
+ "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="
+ "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
+ "version" "2.0.2"
+ dependencies:
+ "isexe" "^2.0.0"
+
+"word-wrap@^1.2.3":
+ "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+ "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
+ "version" "1.2.3"
+
+"wrap-ansi@^6.2.0":
+ "integrity" "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="
+ "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
+ "version" "6.2.0"
+ dependencies:
+ "ansi-styles" "^4.0.0"
+ "string-width" "^4.1.0"
+ "strip-ansi" "^6.0.0"
+
+"wrap-ansi@^7.0.0":
+ "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="
+ "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
+ "version" "7.0.0"
+ dependencies:
+ "ansi-styles" "^4.0.0"
+ "string-width" "^4.1.0"
+ "strip-ansi" "^6.0.0"
+
+"wrappy@1":
+ "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ "version" "1.0.2"
+
+"write-file-atomic@^2.3.0":
+ "integrity" "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ=="
+ "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz"
+ "version" "2.4.3"
+ dependencies:
+ "graceful-fs" "^4.1.11"
+ "imurmurhash" "^0.1.4"
+ "signal-exit" "^3.0.2"
+
+"write-file-atomic@^4.0.2":
+ "integrity" "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg=="
+ "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz"
+ "version" "4.0.2"
+ dependencies:
+ "imurmurhash" "^0.1.4"
+ "signal-exit" "^3.0.7"
+
+"ws@^6.2.2":
+ "integrity" "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw=="
+ "resolved" "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz"
+ "version" "6.2.2"
+ dependencies:
+ "async-limiter" "~1.0.0"
+
+"ws@^7", "ws@^7.5.1":
+ "integrity" "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q=="
+ "resolved" "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz"
+ "version" "7.5.9"
+
+"xtend@~4.0.1":
+ "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
+ "version" "4.0.2"
+
+"y18n@^4.0.0":
+ "integrity" "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+ "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz"
+ "version" "4.0.3"
+
+"y18n@^5.0.5":
+ "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
+ "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
+ "version" "5.0.8"
+
+"yallist@^3.0.2":
+ "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
+ "version" "3.1.1"
+
+"yallist@^4.0.0":
+ "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
+ "version" "4.0.0"
+
+"yargs-parser@^18.1.2":
+ "integrity" "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ=="
+ "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz"
+ "version" "18.1.3"
+ dependencies:
+ "camelcase" "^5.0.0"
+ "decamelize" "^1.2.0"
+
+"yargs-parser@^20.2.2":
+ "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
+ "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"
+ "version" "20.2.9"
+
+"yargs-parser@^21.1.1":
+ "integrity" "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
+ "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz"
+ "version" "21.1.1"
+
+"yargs@^15.1.0":
+ "integrity" "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A=="
+ "resolved" "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz"
+ "version" "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"
+
+"yargs@^16.1.1":
+ "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="
+ "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"
+ "version" "16.2.0"
+ dependencies:
+ "cliui" "^7.0.2"
+ "escalade" "^3.1.1"
+ "get-caller-file" "^2.0.5"
+ "require-directory" "^2.1.1"
+ "string-width" "^4.2.0"
+ "y18n" "^5.0.5"
+ "yargs-parser" "^20.2.2"
+
+"yargs@^17.3.1", "yargs@^17.5.1":
+ "integrity" "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw=="
+ "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz"
+ "version" "17.7.1"
+ 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"
+
+"yocto-queue@^0.1.0":
+ "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
+ "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
+ "version" "0.1.0"