diff --git a/example/.npmrc b/example/.npmrc
new file mode 100644
index 00000000..63b4cdd3
--- /dev/null
+++ b/example/.npmrc
@@ -0,0 +1,3 @@
+package-import-method=hardlink
+node-linker=hoisted
+symlink=false
diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle
new file mode 100644
index 00000000..a3d064cd
--- /dev/null
+++ b/example/android/app/build.gradle
@@ -0,0 +1,123 @@
+apply plugin: "com.android.application"
+apply plugin: "com.facebook.react"
+
+/**
+ * This is the configuration block to customize your React Native Android app.
+ * By default you don't need to apply any configuration, just uncomment the lines you need.
+ */
+react {
+ /* Folders */
+ // The root of your project, i.e. where "package.json" lives. Default is '..'
+ // root = file("../")
+ // The folder where the react-native NPM package is. Default is ../node_modules/react-native
+ // reactNativeDir = file("../node_modules/react-native")
+ // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen
+ // codegenDir = file("../node_modules/@react-native/codegen")
+ // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js
+ // cliFile = file("../node_modules/react-native/cli.js")
+
+ /* Variants */
+ // The list of variants to that are debuggable. For those we're going to
+ // skip the bundling of the JS bundle and the assets. By default is just 'debug'.
+ // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
+ // debuggableVariants = ["liteDebug", "prodDebug"]
+
+ /* Bundling */
+ // A list containing the node command and its flags. Default is just 'node'.
+ // nodeExecutableAndArgs = ["node"]
+ //
+ // The command to run when bundling. By default is 'bundle'
+ // bundleCommand = "ram-bundle"
+ //
+ // The path to the CLI configuration file. Default is empty.
+ // bundleConfig = file(../rn-cli.config.js)
+ //
+ // The name of the generated asset file containing your JS bundle
+ // bundleAssetName = "MyApplication.android.bundle"
+ //
+ // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
+ // entryFile = file("../js/MyApplication.android.js")
+ //
+ // A list of extra flags to pass to the 'bundle' commands.
+ // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
+ // extraPackagerArgs = []
+
+ /* Hermes Commands */
+ // The hermes compiler command to run. By default it is 'hermesc'
+ // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
+ //
+ // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
+ // hermesFlags = ["-O", "-output-source-map"]
+}
+
+/**
+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
+ */
+def enableProguardInReleaseBuilds = false
+
+/**
+ * The preferred build flavor of JavaScriptCore (JSC)
+ *
+ * For example, to use the international variant, you can use:
+ * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
+ *
+ * The international variant includes ICU i18n library and necessary data
+ * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
+ * give correct results when using with locales other than en-US. Note that
+ * this variant is about 6MiB larger per architecture than default.
+ */
+def jscFlavor = 'org.webkit:android-jsc:+'
+
+android {
+ ndkVersion rootProject.ext.ndkVersion
+
+ compileSdkVersion rootProject.ext.compileSdkVersion
+
+ namespace "com.example"
+ defaultConfig {
+ applicationId "com.example"
+ minSdkVersion rootProject.ext.minSdkVersion
+ targetSdkVersion rootProject.ext.targetSdkVersion
+ versionCode 1
+ versionName "1.0"
+ }
+ signingConfigs {
+ debug {
+ storeFile file('debug.keystore')
+ storePassword 'android'
+ keyAlias 'androiddebugkey'
+ keyPassword 'android'
+ }
+ }
+ buildTypes {
+ debug {
+ signingConfig signingConfigs.debug
+ }
+ release {
+ // Caution! In production, you need to generate your own keystore file.
+ // see https://reactnative.dev/docs/signed-apk-android.
+ signingConfig signingConfigs.debug
+ minifyEnabled enableProguardInReleaseBuilds
+ proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
+ }
+ }
+}
+
+dependencies {
+ // The version of react-native is set by the React Native Gradle Plugin
+ implementation("com.facebook.react:react-android")
+
+ 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)
diff --git a/example/android/app/debug.keystore b/example/android/app/debug.keystore
new file mode 100644
index 00000000..364e105e
Binary files /dev/null and b/example/android/app/debug.keystore differ
diff --git a/example/android/app/proguard-rules.pro b/example/android/app/proguard-rules.pro
new file mode 100644
index 00000000..11b02572
--- /dev/null
+++ b/example/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/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 00000000..4b185bc1
--- /dev/null
+++ b/example/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/example/android/app/src/debug/java/com/example/ReactNativeFlipper.java b/example/android/app/src/debug/java/com/example/ReactNativeFlipper.java
new file mode 100644
index 00000000..e75580ef
--- /dev/null
+++ b/example/android/app/src/debug/java/com/example/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.example;
+
+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/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..4122f36a
--- /dev/null
+++ b/example/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/example/android/app/src/main/java/com/example/MainActivity.java b/example/android/app/src/main/java/com/example/MainActivity.java
new file mode 100644
index 00000000..8803ec49
--- /dev/null
+++ b/example/android/app/src/main/java/com/example/MainActivity.java
@@ -0,0 +1,32 @@
+package com.example;
+
+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 "example";
+ }
+
+ /**
+ * 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());
+ }
+}
diff --git a/example/android/app/src/main/java/com/example/MainApplication.java b/example/android/app/src/main/java/com/example/MainApplication.java
new file mode 100644
index 00000000..dd666be2
--- /dev/null
+++ b/example/android/app/src/main/java/com/example/MainApplication.java
@@ -0,0 +1,62 @@
+package com.example;
+
+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/example/android/app/src/main/res/drawable/rn_edit_text_material.xml b/example/android/app/src/main/res/drawable/rn_edit_text_material.xml
new file mode 100644
index 00000000..73b37e4d
--- /dev/null
+++ b/example/android/app/src/main/res/drawable/rn_edit_text_material.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 00000000..a2f59082
Binary files /dev/null and b/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 00000000..1b523998
Binary files /dev/null and b/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 00000000..ff10afd6
Binary files /dev/null and b/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 00000000..115a4c76
Binary files /dev/null and b/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 00000000..dcd3cd80
Binary files /dev/null and b/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 00000000..459ca609
Binary files /dev/null and b/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 00000000..8ca12fe0
Binary files /dev/null and b/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 00000000..8e19b410
Binary files /dev/null and b/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 00000000..b824ebdd
Binary files /dev/null and b/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 00000000..4c19a13c
Binary files /dev/null and b/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/example/android/app/src/main/res/values/strings.xml b/example/android/app/src/main/res/values/strings.xml
new file mode 100644
index 00000000..d75426c8
--- /dev/null
+++ b/example/android/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ example
+
diff --git a/example/android/app/src/main/res/values/styles.xml b/example/android/app/src/main/res/values/styles.xml
new file mode 100644
index 00000000..7ba83a2a
--- /dev/null
+++ b/example/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/example/android/app/src/release/java/com/example/ReactNativeFlipper.java b/example/android/app/src/release/java/com/example/ReactNativeFlipper.java
new file mode 100644
index 00000000..c63f23c1
--- /dev/null
+++ b/example/android/app/src/release/java/com/example/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.example;
+
+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/example/android/build.gradle b/example/android/build.gradle
new file mode 100644
index 00000000..34ea7181
--- /dev/null
+++ b/example/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")
+ classpath("com.facebook.react:react-native-gradle-plugin")
+ }
+}
diff --git a/example/android/gradle.properties b/example/android/gradle.properties
new file mode 100644
index 00000000..b0f7974b
--- /dev/null
+++ b/example/android/gradle.properties
@@ -0,0 +1,45 @@
+# 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.182.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
+reactNativeArchitectures=arm64-v8a
+
+# 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=true
+
+# Use this property to enable or disable the Hermes JS engine.
+# If set to false, you will be using JSC instead.
+hermesEnabled=true
diff --git a/example/android/gradle/wrapper/gradle-wrapper.jar b/example/android/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..943f0cbf
Binary files /dev/null and b/example/android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..8f2bb005
--- /dev/null
+++ b/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
+networkTimeout=10000
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/example/android/gradlew b/example/android/gradlew
new file mode 100755
index 00000000..65dcd68d
--- /dev/null
+++ b/example/android/gradlew
@@ -0,0 +1,244 @@
+#!/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/HEAD/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
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+# 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*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+# 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 \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/example/android/gradlew.bat b/example/android/gradlew.bat
new file mode 100644
index 00000000..6689b85b
--- /dev/null
+++ b/example/android/gradlew.bat
@@ -0,0 +1,92 @@
+@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=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo.
+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% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/example/android/settings.gradle b/example/android/settings.gradle
new file mode 100644
index 00000000..803783e1
--- /dev/null
+++ b/example/android/settings.gradle
@@ -0,0 +1,4 @@
+rootProject.name = 'example'
+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/example-app/components/switch-with-label.tsx b/example/app/components/switch-with-label.tsx
similarity index 100%
rename from example-app/components/switch-with-label.tsx
rename to example/app/components/switch-with-label.tsx
diff --git a/example-app/home.tsx b/example/app/home.tsx
similarity index 67%
rename from example-app/home.tsx
rename to example/app/home.tsx
index 54241c4d..ebfd096f 100644
--- a/example-app/home.tsx
+++ b/example/app/home.tsx
@@ -1,5 +1,5 @@
import { useNavigation, useTheme } from "@react-navigation/native";
-import * as React from "react";
+import { useEffect } from "react";
import {
Platform,
ScrollView,
@@ -9,9 +9,9 @@ import {
TouchableOpacity,
View,
} from "react-native";
-import { AMapSdk } from "react-native-amap3d";
import { Constructor } from "react-native/private/Utilities";
-import screens from "./screens";
+import { Sdk } from "react-native-amap3d";
+// import screens from "./screens";
import { NavigationProps, ScreenName } from "./types";
let Touchable: Constructor = TouchableOpacity;
@@ -21,22 +21,26 @@ if (Platform.OS === "android") {
export default () => {
const navigation = useNavigation();
- React.useEffect(() => {
- AMapSdk.init(
- Platform.select({
- android: "c52c7169e6df23490e3114330098aaac",
- ios: "186d3464209b74effa4d8391f441f14d",
- })
- );
- AMapSdk.getVersion().then((version) => {
- navigation.setOptions({ headerRight: () => v{version} });
- });
+ useEffect(() => {
+ Sdk?.getVersion()?.then((version) => console.log(version));
+ // AMapSdk.init(
+ // Platform.select({
+ // android: "c52c7169e6df23490e3114330098aaac",
+ // ios: "186d3464209b74effa4d8391f441f14d",
+ // })
+ // );
+ // AMapSdk.getVersion().then((version) => {
+ // navigation.setOptions({ headerRight: () => v{version} });
+ // });
}, []);
return (
+ hello
+ {/*
{Object.keys(screens).map((i) => (
))}
+ */}
);
};
diff --git a/example-app/images/flag.png b/example/app/images/flag.png
similarity index 100%
rename from example-app/images/flag.png
rename to example/app/images/flag.png
diff --git a/example-app/images/point.png b/example/app/images/point.png
similarity index 100%
rename from example-app/images/point.png
rename to example/app/images/point.png
diff --git a/example-app/index.tsx b/example/app/index.tsx
similarity index 80%
rename from example-app/index.tsx
rename to example/app/index.tsx
index e088161e..d55b84ae 100644
--- a/example-app/index.tsx
+++ b/example/app/index.tsx
@@ -1,8 +1,11 @@
-import { DarkTheme, DefaultTheme, NavigationContainer } from "@react-navigation/native";
+import {
+ DarkTheme,
+ DefaultTheme,
+ NavigationContainer,
+} from "@react-navigation/native";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
-import * as React from "react";
import { useColorScheme } from "react-native";
-import screens from "./screens";
+// import screens from "./screens";
import Home from "./home";
const Stack = createNativeStackNavigator();
@@ -13,10 +16,12 @@ export default () => {
+ {/*
{Object.keys(screens).map((name) => (
// @ts-ignore
))}
+ */}
);
diff --git a/example-app/screens/animated.tsx b/example/app/screens/animated.tsx
similarity index 100%
rename from example-app/screens/animated.tsx
rename to example/app/screens/animated.tsx
diff --git a/example-app/screens/circle.tsx b/example/app/screens/circle.tsx
similarity index 100%
rename from example-app/screens/circle.tsx
rename to example/app/screens/circle.tsx
diff --git a/example-app/screens/cluster.tsx b/example/app/screens/cluster.tsx
similarity index 100%
rename from example-app/screens/cluster.tsx
rename to example/app/screens/cluster.tsx
diff --git a/example-app/screens/controls.tsx b/example/app/screens/controls.tsx
similarity index 100%
rename from example-app/screens/controls.tsx
rename to example/app/screens/controls.tsx
diff --git a/example-app/screens/events.tsx b/example/app/screens/events.tsx
similarity index 100%
rename from example-app/screens/events.tsx
rename to example/app/screens/events.tsx
diff --git a/example-app/screens/gestures.tsx b/example/app/screens/gestures.tsx
similarity index 100%
rename from example-app/screens/gestures.tsx
rename to example/app/screens/gestures.tsx
diff --git a/example-app/screens/heat-map.tsx b/example/app/screens/heat-map.tsx
similarity index 100%
rename from example-app/screens/heat-map.tsx
rename to example/app/screens/heat-map.tsx
diff --git a/example-app/screens/index.ts b/example/app/screens/index.ts
similarity index 100%
rename from example-app/screens/index.ts
rename to example/app/screens/index.ts
diff --git a/example-app/screens/layers.tsx b/example/app/screens/layers.tsx
similarity index 100%
rename from example-app/screens/layers.tsx
rename to example/app/screens/layers.tsx
diff --git a/example-app/screens/map-types.tsx b/example/app/screens/map-types.tsx
similarity index 100%
rename from example-app/screens/map-types.tsx
rename to example/app/screens/map-types.tsx
diff --git a/example-app/screens/marker-dynamic.tsx b/example/app/screens/marker-dynamic.tsx
similarity index 100%
rename from example-app/screens/marker-dynamic.tsx
rename to example/app/screens/marker-dynamic.tsx
diff --git a/example-app/screens/marker-icon.tsx b/example/app/screens/marker-icon.tsx
similarity index 100%
rename from example-app/screens/marker-icon.tsx
rename to example/app/screens/marker-icon.tsx
diff --git a/example-app/screens/marker.tsx b/example/app/screens/marker.tsx
similarity index 100%
rename from example-app/screens/marker.tsx
rename to example/app/screens/marker.tsx
diff --git a/example-app/screens/multi-point.tsx b/example/app/screens/multi-point.tsx
similarity index 100%
rename from example-app/screens/multi-point.tsx
rename to example/app/screens/multi-point.tsx
diff --git a/example-app/screens/offline.js b/example/app/screens/offline.js
similarity index 100%
rename from example-app/screens/offline.js
rename to example/app/screens/offline.js
diff --git a/example-app/screens/polygon.tsx b/example/app/screens/polygon.tsx
similarity index 100%
rename from example-app/screens/polygon.tsx
rename to example/app/screens/polygon.tsx
diff --git a/example-app/screens/polyline.tsx b/example/app/screens/polyline.tsx
similarity index 100%
rename from example-app/screens/polyline.tsx
rename to example/app/screens/polyline.tsx
diff --git a/example-app/types.ts b/example/app/types.ts
similarity index 100%
rename from example-app/types.ts
rename to example/app/types.ts
diff --git a/index.js b/example/index.js
similarity index 74%
rename from index.js
rename to example/index.js
index 10bf25ef..50a699d4 100644
--- a/index.js
+++ b/example/index.js
@@ -1,4 +1,4 @@
import { AppRegistry } from "react-native";
-import app from "./example-app";
+import app from "./app";
AppRegistry.registerComponent("example", () => app);
diff --git a/example/metro.config.js b/example/metro.config.js
new file mode 100644
index 00000000..93e0ba67
--- /dev/null
+++ b/example/metro.config.js
@@ -0,0 +1,2 @@
+const { getDefaultConfig, mergeConfig } = require("@react-native/metro-config");
+module.exports = mergeConfig(getDefaultConfig(__dirname), {});
diff --git a/example/package.json b/example/package.json
new file mode 100644
index 00000000..18ec9ea2
--- /dev/null
+++ b/example/package.json
@@ -0,0 +1,24 @@
+{
+ "private": true,
+ "name": "example",
+ "scripts": {
+ "start": "react-native start",
+ "android": "react-native run-android",
+ "reload": "adb reverse tcp:8081 tcp:8081 && adb shell input text rr",
+ "ios": "react-native run-ios"
+ },
+ "dependencies": {
+ "@react-native-picker/picker": "^2.4.8",
+ "@react-native/metro-config": "^0.72.11",
+ "@react-navigation/native": "^6.1.3",
+ "@react-navigation/native-stack": "^6.9.9",
+ "react": "18.2.0",
+ "react-native": "^0.72.4",
+ "react-native-safe-area-context": "^4.5.0",
+ "react-native-screens": "^3.19.0",
+ "react-native-amap3d": "file:.."
+ },
+ "devDependencies": {
+ "@types/react-native": "^0.72.2"
+ }
+}
diff --git a/example/pnpm-lock.yaml b/example/pnpm-lock.yaml
new file mode 100644
index 00000000..9494ae92
--- /dev/null
+++ b/example/pnpm-lock.yaml
@@ -0,0 +1,4555 @@
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+dependencies:
+ '@react-native-picker/picker':
+ specifier: ^2.4.8
+ version: 2.5.0(react-native@0.72.4)(react@18.2.0)
+ '@react-native/metro-config':
+ specifier: ^0.72.11
+ version: 0.72.11(@babel/core@7.22.15)
+ '@react-navigation/native':
+ specifier: ^6.1.3
+ version: 6.1.7(react-native@0.72.4)(react@18.2.0)
+ '@react-navigation/native-stack':
+ specifier: ^6.9.9
+ version: 6.9.13(@react-navigation/native@6.1.7)(react-native-safe-area-context@4.7.2)(react-native-screens@3.25.0)(react-native@0.72.4)(react@18.2.0)
+ react:
+ specifier: 18.2.0
+ version: 18.2.0
+ react-native:
+ specifier: ^0.72.4
+ version: 0.72.4(@babel/core@7.22.15)(@babel/preset-env@7.22.15)(react@18.2.0)
+ react-native-amap3d:
+ specifier: file:..
+ version: file:..(react-native@0.72.4)(react@18.2.0)
+ react-native-safe-area-context:
+ specifier: ^4.5.0
+ version: 4.7.2(react-native@0.72.4)(react@18.2.0)
+ react-native-screens:
+ specifier: ^3.19.0
+ version: 3.25.0(react-native@0.72.4)(react@18.2.0)
+
+devDependencies:
+ '@types/react-native':
+ specifier: ^0.72.2
+ version: 0.72.2(react-native@0.72.4)
+
+packages:
+
+ /@ampproject/remapping@2.2.1:
+ resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.19
+
+ /@babel/code-frame@7.22.13:
+ resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.22.13
+ chalk: 2.4.2
+
+ /@babel/compat-data@7.22.9:
+ resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/core@7.22.15:
+ resolution: {integrity: sha512-PtZqMmgRrvj8ruoEOIwVA3yoF91O+Hgw9o7DAUTNBA6Mo2jpu31clx9a7Nz/9JznqetTR6zwfC4L3LAjKQXUwA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@ampproject/remapping': 2.2.1
+ '@babel/code-frame': 7.22.13
+ '@babel/generator': 7.22.15
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-module-transforms': 7.22.15(@babel/core@7.22.15)
+ '@babel/helpers': 7.22.15
+ '@babel/parser': 7.22.16
+ '@babel/template': 7.22.15
+ '@babel/traverse': 7.22.15
+ '@babel/types': 7.22.15
+ convert-source-map: 1.9.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/generator@7.22.15:
+ resolution: {integrity: sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.19
+ jsesc: 2.5.2
+
+ /@babel/helper-annotate-as-pure@7.22.5:
+ resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
+ /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15:
+ resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
+ /@babel/helper-compilation-targets@7.22.15:
+ resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/compat-data': 7.22.9
+ '@babel/helper-validator-option': 7.22.15
+ browserslist: 4.21.10
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.15
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.15)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ semver: 6.3.1
+
+ /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-annotate-as-pure': 7.22.5
+ regexpu-core: 5.3.2
+ semver: 6.3.1
+
+ /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.22.15):
+ resolution: {integrity: sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ debug: 4.3.4
+ lodash.debounce: 4.0.8
+ resolve: 1.22.4
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/helper-environment-visitor@7.22.5:
+ resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-function-name@7.22.5:
+ resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.22.15
+ '@babel/types': 7.22.15
+
+ /@babel/helper-hoist-variables@7.22.5:
+ resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
+ /@babel/helper-member-expression-to-functions@7.22.15:
+ resolution: {integrity: sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
+ /@babel/helper-module-imports@7.22.15:
+ resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
+ /@babel/helper-module-transforms@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/helper-simple-access': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/helper-validator-identifier': 7.22.15
+
+ /@babel/helper-optimise-call-expression@7.22.5:
+ resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
+ /@babel/helper-plugin-utils@7.22.5:
+ resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.15):
+ resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-wrap-function': 7.22.10
+
+ /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.15):
+ resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.15
+ '@babel/helper-optimise-call-expression': 7.22.5
+
+ /@babel/helper-simple-access@7.22.5:
+ resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
+ /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
+ resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
+ /@babel/helper-split-export-declaration@7.22.6:
+ resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.15
+
+ /@babel/helper-string-parser@7.22.5:
+ resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-validator-identifier@7.22.15:
+ resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-validator-option@7.22.15:
+ resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-wrap-function@7.22.10:
+ resolution: {integrity: sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-function-name': 7.22.5
+ '@babel/template': 7.22.15
+ '@babel/types': 7.22.15
+
+ /@babel/helpers@7.22.15:
+ resolution: {integrity: sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.22.15
+ '@babel/traverse': 7.22.15
+ '@babel/types': 7.22.15
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/highlight@7.22.13:
+ resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.22.15
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+
+ /@babel/parser@7.22.16:
+ resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.22.15
+
+ /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.13.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-transform-optional-chaining': 7.22.15(@babel/core@7.22.15)
+
+ /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.22.15):
+ resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.15)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.15)
+
+ /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.22.15):
+ resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-proposal-export-default-from@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-UCe1X/hplyv6A5g2WnQ90tnHRvYL29dabCWww92lO7VdfMVTVReBTRrhiMrKQejHD9oVkdnRdwYuzUZkBVQisg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-export-default-from': 7.22.5(@babel/core@7.22.15)
+
+ /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.22.15):
+ resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.15)
+
+ /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.22.15):
+ resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.15)
+
+ /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.22.15):
+ resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.22.9
+ '@babel/core': 7.22.15
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.22.15)
+
+ /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.22.15):
+ resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.15)
+
+ /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.22.15):
+ resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==}
+ engines: {node: '>=6.9.0'}
+ deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.15)
+
+ /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.15):
+ resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+
+ /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.15):
+ resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.15):
+ resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.15):
+ resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-export-default-from@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-ODAqWWXB/yReh/jVQDag/3/tl6lgBueQkk/TcfW/59Oykm4c8a55XloX0CTk2k2VJiFWMgHby9xNX29IbCv9dQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.15):
+ resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.15):
+ resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.15):
+ resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.15):
+ resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.15):
+ resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.15):
+ resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.15):
+ resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.15):
+ resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.15):
+ resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.15):
+ resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-async-generator-functions@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.15)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-block-scoping@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-class-static-block@7.22.11(@babel/core@7.22.15):
+ resolution: {integrity: sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.12.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-classes@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.15)
+ '@babel/helper-split-export-declaration': 7.22.6
+ globals: 11.12.0
+
+ /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/template': 7.22.15
+
+ /@babel/plugin-transform-destructuring@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-dynamic-import@7.22.11(@babel/core@7.22.15):
+ resolution: {integrity: sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-export-namespace-from@7.22.11(@babel/core@7.22.15):
+ resolution: {integrity: sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-json-strings@7.22.11(@babel/core@7.22.15):
+ resolution: {integrity: sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-logical-assignment-operators@7.22.11(@babel/core@7.22.15):
+ resolution: {integrity: sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-module-transforms': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-modules-commonjs@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-module-transforms': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-simple-access': 7.22.5
+
+ /@babel/plugin-transform-modules-systemjs@7.22.11(@babel/core@7.22.15):
+ resolution: {integrity: sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-module-transforms': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-identifier': 7.22.15
+
+ /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-module-transforms': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-nullish-coalescing-operator@7.22.11(@babel/core@7.22.15):
+ resolution: {integrity: sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-numeric-separator@7.22.11(@babel/core@7.22.15):
+ resolution: {integrity: sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-object-rest-spread@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.22.9
+ '@babel/core': 7.22.15
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-optional-catch-binding@7.22.11(@babel/core@7.22.15):
+ resolution: {integrity: sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-optional-chaining@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-private-property-in-object@7.22.11(@babel/core@7.22.15):
+ resolution: {integrity: sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.15)
+ '@babel/types': 7.22.15
+
+ /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.22.15):
+ resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ regenerator-transform: 0.15.2
+
+ /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-runtime@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.15)
+ babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.15)
+ babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.15)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+
+ /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.15)
+
+ /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.22.15):
+ resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.22.15)
+ '@babel/helper-plugin-utils': 7.22.5
+
+ /@babel/preset-env@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-tZFHr54GBkHk6hQuVA8w4Fmq+MSPsfvMG0vPnOYyTnJpyfMqybL8/MbNCPRT9zc2KBO2pe4tq15g6Uno4Jpoag==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.22.9
+ '@babel/core': 7.22.15
+ '@babel/helper-compilation-targets': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.22.15
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.15)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.15)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.15)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.15)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.15)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.15)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.15)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.15)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.15)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-async-generator-functions': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-block-scoping': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-class-static-block': 7.22.11(@babel/core@7.22.15)
+ '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-destructuring': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-dynamic-import': 7.22.11(@babel/core@7.22.15)
+ '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-export-namespace-from': 7.22.11(@babel/core@7.22.15)
+ '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-json-strings': 7.22.11(@babel/core@7.22.15)
+ '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-logical-assignment-operators': 7.22.11(@babel/core@7.22.15)
+ '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-modules-commonjs': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-modules-systemjs': 7.22.11(@babel/core@7.22.15)
+ '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.22.11(@babel/core@7.22.15)
+ '@babel/plugin-transform-numeric-separator': 7.22.11(@babel/core@7.22.15)
+ '@babel/plugin-transform-object-rest-spread': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-optional-catch-binding': 7.22.11(@babel/core@7.22.15)
+ '@babel/plugin-transform-optional-chaining': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-private-property-in-object': 7.22.11(@babel/core@7.22.15)
+ '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.22.15)
+ '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.22.15)
+ '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.22.15)
+ '@babel/types': 7.22.15
+ babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.15)
+ babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.15)
+ babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.15)
+ core-js-compat: 3.32.1
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/preset-flow@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-dB5aIMqpkgbTfN5vDdTRPzjqtWiZcRESNR88QYnoPR+bmdYoluOzMX9tQerTv0XzSgZYctPfO1oc0N5zdog1ew==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.22.15
+ '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.22.15)
+
+ /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.22.15):
+ resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/types': 7.22.15
+ esutils: 2.0.3
+
+ /@babel/preset-typescript@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-HblhNmh6yM+cU4VwbBRpxFhxsTdfS1zsvH9W+gEjD0ARV9+8B4sNfpI6GuhePti84nuvhiwKS539jKPFHskA9A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.22.15
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-modules-commonjs': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.22.15)
+
+ /@babel/register@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+ clone-deep: 4.0.1
+ find-cache-dir: 2.1.0
+ make-dir: 2.1.0
+ pirates: 4.0.6
+ source-map-support: 0.5.21
+
+ /@babel/regjsgen@0.8.0:
+ resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
+
+ /@babel/runtime@7.22.15:
+ resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ regenerator-runtime: 0.14.0
+
+ /@babel/template@7.22.15:
+ resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.22.13
+ '@babel/parser': 7.22.16
+ '@babel/types': 7.22.15
+
+ /@babel/traverse@7.22.15:
+ resolution: {integrity: sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.22.13
+ '@babel/generator': 7.22.15
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/parser': 7.22.16
+ '@babel/types': 7.22.15
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/types@7.22.15:
+ resolution: {integrity: sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.22.5
+ '@babel/helper-validator-identifier': 7.22.15
+ to-fast-properties: 2.0.0
+
+ /@hapi/hoek@9.3.0:
+ resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
+
+ /@hapi/topo@5.1.0:
+ resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
+ dependencies:
+ '@hapi/hoek': 9.3.0
+
+ /@jest/create-cache-key-function@29.6.3:
+ resolution: {integrity: sha512-kzSK9XAxtD1kRPJKxsmD0YKw2fyXveP+5ikeQkCYCHeacWW1EGYMTgjDIM/Di4Uhttx7lnHwrNpz2xn+0rTp8g==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/types': 29.6.3
+
+ /@jest/environment@29.6.4:
+ resolution: {integrity: sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/fake-timers': 29.6.4
+ '@jest/types': 29.6.3
+ '@types/node': 20.5.9
+ jest-mock: 29.6.3
+
+ /@jest/fake-timers@29.6.4:
+ resolution: {integrity: sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/types': 29.6.3
+ '@sinonjs/fake-timers': 10.3.0
+ '@types/node': 20.5.9
+ jest-message-util: 29.6.3
+ jest-mock: 29.6.3
+ jest-util: 29.6.3
+
+ /@jest/schemas@29.6.3:
+ resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@sinclair/typebox': 0.27.8
+
+ /@jest/types@26.6.2:
+ resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==}
+ engines: {node: '>= 10.14.2'}
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.4
+ '@types/istanbul-reports': 3.0.1
+ '@types/node': 20.5.9
+ '@types/yargs': 15.0.15
+ chalk: 4.1.2
+
+ /@jest/types@27.5.1:
+ resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.4
+ '@types/istanbul-reports': 3.0.1
+ '@types/node': 20.5.9
+ '@types/yargs': 16.0.5
+ chalk: 4.1.2
+
+ /@jest/types@29.6.3:
+ resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/schemas': 29.6.3
+ '@types/istanbul-lib-coverage': 2.0.4
+ '@types/istanbul-reports': 3.0.1
+ '@types/node': 20.5.9
+ '@types/yargs': 17.0.24
+ chalk: 4.1.2
+
+ /@jridgewell/gen-mapping@0.3.3:
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/set-array': 1.1.2
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.19
+
+ /@jridgewell/resolve-uri@3.1.1:
+ resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
+ engines: {node: '>=6.0.0'}
+
+ /@jridgewell/set-array@1.1.2:
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
+ engines: {node: '>=6.0.0'}
+
+ /@jridgewell/source-map@0.3.5:
+ resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.19
+
+ /@jridgewell/sourcemap-codec@1.4.15:
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+
+ /@jridgewell/trace-mapping@0.3.19:
+ resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.1
+ '@jridgewell/sourcemap-codec': 1.4.15
+
+ /@react-native-community/cli-clean@11.3.6:
+ resolution: {integrity: sha512-jOOaeG5ebSXTHweq1NznVJVAFKtTFWL4lWgUXl845bCGX7t1lL8xQNWHKwT8Oh1pGR2CI3cKmRjY4hBg+pEI9g==}
+ dependencies:
+ '@react-native-community/cli-tools': 11.3.6
+ chalk: 4.1.2
+ execa: 5.1.1
+ prompts: 2.4.2
+ transitivePeerDependencies:
+ - encoding
+
+ /@react-native-community/cli-config@11.3.6:
+ resolution: {integrity: sha512-edy7fwllSFLan/6BG6/rznOBCLPrjmJAE10FzkEqNLHowi0bckiAPg1+1jlgQ2qqAxV5kuk+c9eajVfQvPLYDA==}
+ dependencies:
+ '@react-native-community/cli-tools': 11.3.6
+ chalk: 4.1.2
+ cosmiconfig: 5.2.1
+ deepmerge: 4.3.1
+ glob: 7.2.3
+ joi: 17.10.1
+ transitivePeerDependencies:
+ - encoding
+
+ /@react-native-community/cli-debugger-ui@11.3.6:
+ resolution: {integrity: sha512-jhMOSN/iOlid9jn/A2/uf7HbC3u7+lGktpeGSLnHNw21iahFBzcpuO71ekEdlmTZ4zC/WyxBXw9j2ka33T358w==}
+ dependencies:
+ serve-static: 1.15.0
+ transitivePeerDependencies:
+ - supports-color
+
+ /@react-native-community/cli-doctor@11.3.6:
+ resolution: {integrity: sha512-UT/Tt6omVPi1j6JEX+CObc85eVFghSZwy4GR9JFMsO7gNg2Tvcu1RGWlUkrbmWMAMHw127LUu6TGK66Ugu1NLA==}
+ dependencies:
+ '@react-native-community/cli-config': 11.3.6
+ '@react-native-community/cli-platform-android': 11.3.6
+ '@react-native-community/cli-platform-ios': 11.3.6
+ '@react-native-community/cli-tools': 11.3.6
+ chalk: 4.1.2
+ command-exists: 1.2.9
+ envinfo: 7.10.0
+ execa: 5.1.1
+ hermes-profile-transformer: 0.0.6
+ ip: 1.1.8
+ node-stream-zip: 1.15.0
+ ora: 5.4.1
+ prompts: 2.4.2
+ semver: 7.5.4
+ strip-ansi: 5.2.0
+ sudo-prompt: 9.2.1
+ wcwidth: 1.0.1
+ yaml: 2.3.2
+ transitivePeerDependencies:
+ - encoding
+
+ /@react-native-community/cli-hermes@11.3.6:
+ resolution: {integrity: sha512-O55YAYGZ3XynpUdePPVvNuUPGPY0IJdctLAOHme73OvS80gNwfntHDXfmY70TGHWIfkK2zBhA0B+2v8s5aTyTA==}
+ dependencies:
+ '@react-native-community/cli-platform-android': 11.3.6
+ '@react-native-community/cli-tools': 11.3.6
+ chalk: 4.1.2
+ hermes-profile-transformer: 0.0.6
+ ip: 1.1.8
+ transitivePeerDependencies:
+ - encoding
+
+ /@react-native-community/cli-platform-android@11.3.6:
+ resolution: {integrity: sha512-ZARrpLv5tn3rmhZc//IuDM1LSAdYnjUmjrp58RynlvjLDI4ZEjBAGCQmgysRgXAsK7ekMrfkZgemUczfn9td2A==}
+ dependencies:
+ '@react-native-community/cli-tools': 11.3.6
+ chalk: 4.1.2
+ execa: 5.1.1
+ glob: 7.2.3
+ logkitty: 0.7.1
+ transitivePeerDependencies:
+ - encoding
+
+ /@react-native-community/cli-platform-ios@11.3.6:
+ resolution: {integrity: sha512-tZ9VbXWiRW+F+fbZzpLMZlj93g3Q96HpuMsS6DRhrTiG+vMQ3o6oPWSEEmMGOvJSYU7+y68Dc9ms2liC7VD6cw==}
+ dependencies:
+ '@react-native-community/cli-tools': 11.3.6
+ chalk: 4.1.2
+ execa: 5.1.1
+ fast-xml-parser: 4.2.7
+ glob: 7.2.3
+ ora: 5.4.1
+ transitivePeerDependencies:
+ - encoding
+
+ /@react-native-community/cli-plugin-metro@11.3.6(@babel/core@7.22.15):
+ resolution: {integrity: sha512-D97racrPX3069ibyabJNKw9aJpVcaZrkYiEzsEnx50uauQtPDoQ1ELb/5c6CtMhAEGKoZ0B5MS23BbsSZcLs2g==}
+ dependencies:
+ '@react-native-community/cli-server-api': 11.3.6
+ '@react-native-community/cli-tools': 11.3.6
+ chalk: 4.1.2
+ execa: 5.1.1
+ metro: 0.76.7
+ metro-config: 0.76.7
+ metro-core: 0.76.7
+ metro-react-native-babel-transformer: 0.76.7(@babel/core@7.22.15)
+ metro-resolver: 0.76.7
+ metro-runtime: 0.76.7
+ readline: 1.3.0
+ transitivePeerDependencies:
+ - '@babel/core'
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ /@react-native-community/cli-server-api@11.3.6:
+ resolution: {integrity: sha512-8GUKodPnURGtJ9JKg8yOHIRtWepPciI3ssXVw5jik7+dZ43yN8P5BqCoDaq8e1H1yRer27iiOfT7XVnwk8Dueg==}
+ dependencies:
+ '@react-native-community/cli-debugger-ui': 11.3.6
+ '@react-native-community/cli-tools': 11.3.6
+ compression: 1.7.4
+ connect: 3.7.0
+ errorhandler: 1.5.1
+ nocache: 3.0.4
+ pretty-format: 26.6.2
+ serve-static: 1.15.0
+ ws: 7.5.9
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ /@react-native-community/cli-tools@11.3.6:
+ resolution: {integrity: sha512-JpmUTcDwAGiTzLsfMlIAYpCMSJ9w2Qlf7PU7mZIRyEu61UzEawyw83DkqfbzDPBuRwRnaeN44JX2CP/yTO3ThQ==}
+ dependencies:
+ appdirsjs: 1.2.7
+ chalk: 4.1.2
+ find-up: 5.0.0
+ mime: 2.6.0
+ node-fetch: 2.7.0
+ open: 6.4.0
+ ora: 5.4.1
+ semver: 7.5.4
+ shell-quote: 1.8.1
+ transitivePeerDependencies:
+ - encoding
+
+ /@react-native-community/cli-types@11.3.6:
+ resolution: {integrity: sha512-6DxjrMKx5x68N/tCJYVYRKAtlRHbtUVBZrnAvkxbRWFD9v4vhNgsPM0RQm8i2vRugeksnao5mbnRGpS6c0awCw==}
+ dependencies:
+ joi: 17.10.1
+
+ /@react-native-community/cli@11.3.6(@babel/core@7.22.15):
+ resolution: {integrity: sha512-bdwOIYTBVQ9VK34dsf6t3u6vOUU5lfdhKaAxiAVArjsr7Je88Bgs4sAbsOYsNK3tkE8G77U6wLpekknXcanlww==}
+ engines: {node: '>=16'}
+ hasBin: true
+ dependencies:
+ '@react-native-community/cli-clean': 11.3.6
+ '@react-native-community/cli-config': 11.3.6
+ '@react-native-community/cli-debugger-ui': 11.3.6
+ '@react-native-community/cli-doctor': 11.3.6
+ '@react-native-community/cli-hermes': 11.3.6
+ '@react-native-community/cli-plugin-metro': 11.3.6(@babel/core@7.22.15)
+ '@react-native-community/cli-server-api': 11.3.6
+ '@react-native-community/cli-tools': 11.3.6
+ '@react-native-community/cli-types': 11.3.6
+ chalk: 4.1.2
+ commander: 9.5.0
+ execa: 5.1.1
+ find-up: 4.1.0
+ fs-extra: 8.1.0
+ graceful-fs: 4.2.11
+ prompts: 2.4.2
+ semver: 7.5.4
+ transitivePeerDependencies:
+ - '@babel/core'
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ /@react-native-picker/picker@2.5.0(react-native@0.72.4)(react@18.2.0):
+ resolution: {integrity: sha512-AEZPKwXavmP4VkUUD6bskCrNF+zgd1RvsXJ208YewZSikGZCo0RLlnQxPDrdKoFpbigSYxbvRU5d8h3TzzeQ8Q==}
+ peerDependencies:
+ react: '>=16'
+ react-native: '>=0.57'
+ dependencies:
+ react: 18.2.0
+ react-native: 0.72.4(@babel/core@7.22.15)(@babel/preset-env@7.22.15)(react@18.2.0)
+ dev: false
+
+ /@react-native/assets-registry@0.72.0:
+ resolution: {integrity: sha512-Im93xRJuHHxb1wniGhBMsxLwcfzdYreSZVQGDoMJgkd6+Iky61LInGEHnQCTN0fKNYF1Dvcofb4uMmE1RQHXHQ==}
+
+ /@react-native/codegen@0.72.6(@babel/preset-env@7.22.15):
+ resolution: {integrity: sha512-idTVI1es/oopN0jJT/0jB6nKdvTUKE3757zA5+NPXZTeB46CIRbmmos4XBiAec8ufu9/DigLPbHTYAaMNZJ6Ig==}
+ peerDependencies:
+ '@babel/preset-env': ^7.1.6
+ dependencies:
+ '@babel/parser': 7.22.16
+ '@babel/preset-env': 7.22.15(@babel/core@7.22.15)
+ flow-parser: 0.206.0
+ jscodeshift: 0.14.0(@babel/preset-env@7.22.15)
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /@react-native/gradle-plugin@0.72.11:
+ resolution: {integrity: sha512-P9iRnxiR2w7EHcZ0mJ+fmbPzMby77ZzV6y9sJI3lVLJzF7TLSdbwcQyD3lwMsiL+q5lKUHoZJS4sYmih+P2HXw==}
+
+ /@react-native/js-polyfills@0.72.1:
+ resolution: {integrity: sha512-cRPZh2rBswFnGt5X5EUEPs0r+pAsXxYsifv/fgy9ZLQokuT52bPH+9xjDR+7TafRua5CttGW83wP4TntRcWNDA==}
+
+ /@react-native/metro-config@0.72.11(@babel/core@7.22.15):
+ resolution: {integrity: sha512-661EyQnDdVelyc0qP/ew7kKkGAh6N6KlkuPLC2SQ8sxaXskVU6fSuNlpLW4bUTBUDFKG8gEOU2hp6rzk4wQnGQ==}
+ dependencies:
+ '@react-native/js-polyfills': 0.72.1
+ metro-config: 0.76.8
+ metro-react-native-babel-transformer: 0.76.8(@babel/core@7.22.15)
+ metro-runtime: 0.76.8
+ transitivePeerDependencies:
+ - '@babel/core'
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: false
+
+ /@react-native/normalize-colors@0.72.0:
+ resolution: {integrity: sha512-285lfdqSXaqKuBbbtP9qL2tDrfxdOFtIMvkKadtleRQkdOxx+uzGvFr82KHmc/sSiMtfXGp7JnFYWVh4sFl7Yw==}
+
+ /@react-native/virtualized-lists@0.72.8(react-native@0.72.4):
+ resolution: {integrity: sha512-J3Q4Bkuo99k7mu+jPS9gSUSgq+lLRSI/+ahXNwV92XgJ/8UgOTxu2LPwhJnBk/sQKxq7E8WkZBnBiozukQMqrw==}
+ peerDependencies:
+ react-native: '*'
+ dependencies:
+ invariant: 2.2.4
+ nullthrows: 1.1.1
+ react-native: 0.72.4(@babel/core@7.22.15)(@babel/preset-env@7.22.15)(react@18.2.0)
+
+ /@react-navigation/core@6.4.9(react@18.2.0):
+ resolution: {integrity: sha512-G9GH7bP9x0qqupxZnkSftnkn4JoXancElTvFc8FVGfEvxnxP+gBo3wqcknyBi7M5Vad4qecsYjCOa9wqsftv9g==}
+ peerDependencies:
+ react: '*'
+ dependencies:
+ '@react-navigation/routers': 6.1.9
+ escape-string-regexp: 4.0.0
+ nanoid: 3.3.6
+ query-string: 7.1.3
+ react: 18.2.0
+ react-is: 16.13.1
+ use-latest-callback: 0.1.6(react@18.2.0)
+ dev: false
+
+ /@react-navigation/elements@1.3.18(@react-navigation/native@6.1.7)(react-native-safe-area-context@4.7.2)(react-native@0.72.4)(react@18.2.0):
+ resolution: {integrity: sha512-/0hwnJkrr415yP0Hf4PjUKgGyfshrvNUKFXN85Mrt1gY49hy9IwxZgrrxlh0THXkPeq8q4VWw44eHDfAcQf20Q==}
+ peerDependencies:
+ '@react-navigation/native': ^6.0.0
+ react: '*'
+ react-native: '*'
+ react-native-safe-area-context: '>= 3.0.0'
+ dependencies:
+ '@react-navigation/native': 6.1.7(react-native@0.72.4)(react@18.2.0)
+ react: 18.2.0
+ react-native: 0.72.4(@babel/core@7.22.15)(@babel/preset-env@7.22.15)(react@18.2.0)
+ react-native-safe-area-context: 4.7.2(react-native@0.72.4)(react@18.2.0)
+ dev: false
+
+ /@react-navigation/native-stack@6.9.13(@react-navigation/native@6.1.7)(react-native-safe-area-context@4.7.2)(react-native-screens@3.25.0)(react-native@0.72.4)(react@18.2.0):
+ resolution: {integrity: sha512-ejlepMrvFneewL+XlXHHhn+6y3lwvavM4/R7XwBV0XJxCymujexK+7Vkg7UcvJ1lx4CRhOcyBSNfGmdNIHREyQ==}
+ peerDependencies:
+ '@react-navigation/native': ^6.0.0
+ react: '*'
+ react-native: '*'
+ react-native-safe-area-context: '>= 3.0.0'
+ react-native-screens: '>= 3.0.0'
+ dependencies:
+ '@react-navigation/elements': 1.3.18(@react-navigation/native@6.1.7)(react-native-safe-area-context@4.7.2)(react-native@0.72.4)(react@18.2.0)
+ '@react-navigation/native': 6.1.7(react-native@0.72.4)(react@18.2.0)
+ react: 18.2.0
+ react-native: 0.72.4(@babel/core@7.22.15)(@babel/preset-env@7.22.15)(react@18.2.0)
+ react-native-safe-area-context: 4.7.2(react-native@0.72.4)(react@18.2.0)
+ react-native-screens: 3.25.0(react-native@0.72.4)(react@18.2.0)
+ warn-once: 0.1.1
+ dev: false
+
+ /@react-navigation/native@6.1.7(react-native@0.72.4)(react@18.2.0):
+ resolution: {integrity: sha512-W6E3+AtTombMucCRo6q7vPmluq8hSjS+IxfazJ/SokOe7ChJX7eLvvralIsJkjFj3iWV1KgOSnHxa6hdiFasBw==}
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+ dependencies:
+ '@react-navigation/core': 6.4.9(react@18.2.0)
+ escape-string-regexp: 4.0.0
+ fast-deep-equal: 3.1.3
+ nanoid: 3.3.6
+ react: 18.2.0
+ react-native: 0.72.4(@babel/core@7.22.15)(@babel/preset-env@7.22.15)(react@18.2.0)
+ dev: false
+
+ /@react-navigation/routers@6.1.9:
+ resolution: {integrity: sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==}
+ dependencies:
+ nanoid: 3.3.6
+ dev: false
+
+ /@sideway/address@4.1.4:
+ resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
+ dependencies:
+ '@hapi/hoek': 9.3.0
+
+ /@sideway/formula@3.0.1:
+ resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
+
+ /@sideway/pinpoint@2.0.0:
+ resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
+
+ /@sinclair/typebox@0.27.8:
+ resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
+
+ /@sinonjs/commons@3.0.0:
+ resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==}
+ dependencies:
+ type-detect: 4.0.8
+
+ /@sinonjs/fake-timers@10.3.0:
+ resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
+ dependencies:
+ '@sinonjs/commons': 3.0.0
+
+ /@types/istanbul-lib-coverage@2.0.4:
+ resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
+
+ /@types/istanbul-lib-report@3.0.0:
+ resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.4
+
+ /@types/istanbul-reports@3.0.1:
+ resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
+ dependencies:
+ '@types/istanbul-lib-report': 3.0.0
+
+ /@types/node@20.5.9:
+ resolution: {integrity: sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==}
+
+ /@types/prop-types@15.7.5:
+ resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
+ dev: true
+
+ /@types/react-native@0.72.2(react-native@0.72.4):
+ resolution: {integrity: sha512-/eEjr04Zqo7mTMszuSdrLx90+j5nWhDMMOgtnKZfAYyV3RwmlpSb7F17ilmMMxZWJY81n/JZ4e6wdhMJFpjrCg==}
+ dependencies:
+ '@react-native/virtualized-lists': 0.72.8(react-native@0.72.4)
+ '@types/react': 18.2.21
+ transitivePeerDependencies:
+ - react-native
+ dev: true
+
+ /@types/react@18.2.21:
+ resolution: {integrity: sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==}
+ dependencies:
+ '@types/prop-types': 15.7.5
+ '@types/scheduler': 0.16.3
+ csstype: 3.1.2
+ dev: true
+
+ /@types/scheduler@0.16.3:
+ resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==}
+ dev: true
+
+ /@types/stack-utils@2.0.1:
+ resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
+
+ /@types/yargs-parser@21.0.0:
+ resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
+
+ /@types/yargs@15.0.15:
+ resolution: {integrity: sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==}
+ dependencies:
+ '@types/yargs-parser': 21.0.0
+
+ /@types/yargs@16.0.5:
+ resolution: {integrity: sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==}
+ dependencies:
+ '@types/yargs-parser': 21.0.0
+
+ /@types/yargs@17.0.24:
+ resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==}
+ dependencies:
+ '@types/yargs-parser': 21.0.0
+
+ /abort-controller@3.0.0:
+ resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
+ engines: {node: '>=6.5'}
+ dependencies:
+ event-target-shim: 5.0.1
+
+ /accepts@1.3.8:
+ resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-types: 2.1.35
+ negotiator: 0.6.3
+
+ /acorn@8.10.0:
+ resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ /anser@1.4.10:
+ resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==}
+
+ /ansi-fragments@0.2.1:
+ resolution: {integrity: sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==}
+ dependencies:
+ colorette: 1.4.0
+ slice-ansi: 2.1.0
+ strip-ansi: 5.2.0
+
+ /ansi-regex@4.1.1:
+ resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==}
+ engines: {node: '>=6'}
+
+ /ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ /ansi-styles@3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+ dependencies:
+ color-convert: 1.9.3
+
+ /ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+
+ /ansi-styles@5.2.0:
+ resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
+ engines: {node: '>=10'}
+
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ /appdirsjs@1.2.7:
+ resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==}
+
+ /argparse@1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+ dependencies:
+ sprintf-js: 1.0.3
+
+ /asap@2.0.6:
+ resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
+
+ /ast-types@0.15.2:
+ resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==}
+ engines: {node: '>=4'}
+ dependencies:
+ tslib: 2.6.2
+
+ /astral-regex@1.0.0:
+ resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==}
+ engines: {node: '>=4'}
+
+ /async-limiter@1.0.1:
+ resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
+
+ /async@3.2.4:
+ resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
+
+ /babel-core@7.0.0-bridge.0(@babel/core@7.22.15):
+ resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.15
+
+ /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.15):
+ resolution: {integrity: sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ dependencies:
+ '@babel/compat-data': 7.22.9
+ '@babel/core': 7.22.15
+ '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.15)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.22.15):
+ resolution: {integrity: sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.15)
+ core-js-compat: 3.32.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.22.15):
+ resolution: {integrity: sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.15)
+ transitivePeerDependencies:
+ - supports-color
+
+ /babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0:
+ resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==}
+
+ /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.22.15):
+ resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==}
+ dependencies:
+ '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.15)
+ transitivePeerDependencies:
+ - '@babel/core'
+
+ /babel-preset-fbjs@3.4.0(@babel/core@7.22.15):
+ resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.22.15)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.15)
+ '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-block-scoping': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-destructuring': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-modules-commonjs': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.15)
+ babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0
+
+ /balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ /base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ /bl@4.1.0:
+ resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+ dependencies:
+ buffer: 5.7.1
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ /brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ /braces@3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+
+ /browserslist@4.21.10:
+ resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001527
+ electron-to-chromium: 1.4.509
+ node-releases: 2.0.13
+ update-browserslist-db: 1.0.11(browserslist@4.21.10)
+
+ /bser@2.1.1:
+ resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
+ dependencies:
+ node-int64: 0.4.0
+
+ /buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ /buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ /bytes@3.0.0:
+ resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
+ engines: {node: '>= 0.8'}
+
+ /caller-callsite@2.0.0:
+ resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ callsites: 2.0.0
+
+ /caller-path@2.0.0:
+ resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==}
+ engines: {node: '>=4'}
+ dependencies:
+ caller-callsite: 2.0.0
+
+ /callsites@2.0.0:
+ resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==}
+ engines: {node: '>=4'}
+
+ /camelcase@5.3.1:
+ resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
+ engines: {node: '>=6'}
+
+ /camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ /caniuse-lite@1.0.30001527:
+ resolution: {integrity: sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ==}
+
+ /chalk@2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+
+ /chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ /ci-info@2.0.0:
+ resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==}
+
+ /ci-info@3.8.0:
+ resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
+ engines: {node: '>=8'}
+
+ /cli-cursor@3.1.0:
+ resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
+ engines: {node: '>=8'}
+ dependencies:
+ restore-cursor: 3.1.0
+
+ /cli-spinners@2.9.0:
+ resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==}
+ engines: {node: '>=6'}
+
+ /cliui@6.0.0:
+ resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 6.2.0
+
+ /cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ /clone-deep@4.0.1:
+ resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ is-plain-object: 2.0.4
+ kind-of: 6.0.3
+ shallow-clone: 3.0.1
+
+ /clone@1.0.4:
+ resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
+ engines: {node: '>=0.8'}
+
+ /color-convert@1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ dependencies:
+ color-name: 1.1.3
+
+ /color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+
+ /color-name@1.1.3:
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+
+ /color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ /colorette@1.4.0:
+ resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==}
+
+ /command-exists@1.2.9:
+ resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==}
+
+ /commander@2.13.0:
+ resolution: {integrity: sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==}
+
+ /commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ /commander@9.5.0:
+ resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
+ engines: {node: ^12.20.0 || >=14}
+
+ /commondir@1.0.1:
+ resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
+
+ /compressible@2.0.18:
+ resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+
+ /compression@1.7.4:
+ resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ accepts: 1.3.8
+ bytes: 3.0.0
+ compressible: 2.0.18
+ debug: 2.6.9
+ on-headers: 1.0.2
+ safe-buffer: 5.1.2
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ /concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ /connect@3.7.0:
+ resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==}
+ engines: {node: '>= 0.10.0'}
+ dependencies:
+ debug: 2.6.9
+ finalhandler: 1.1.2
+ parseurl: 1.3.3
+ utils-merge: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /convert-source-map@1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+
+ /core-js-compat@3.32.1:
+ resolution: {integrity: sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA==}
+ dependencies:
+ browserslist: 4.21.10
+
+ /core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+
+ /cosmiconfig@5.2.1:
+ resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==}
+ engines: {node: '>=4'}
+ dependencies:
+ import-fresh: 2.0.0
+ is-directory: 0.3.1
+ js-yaml: 3.14.1
+ parse-json: 4.0.0
+
+ /cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ /csstype@3.1.2:
+ resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
+ dev: true
+
+ /dayjs@1.11.9:
+ resolution: {integrity: sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==}
+
+ /debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.0.0
+
+ /debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+
+ /decamelize@1.2.0:
+ resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
+ engines: {node: '>=0.10.0'}
+
+ /decode-uri-component@0.2.2:
+ resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
+ engines: {node: '>=0.10'}
+ dev: false
+
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+
+ /defaults@1.0.4:
+ resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
+ dependencies:
+ clone: 1.0.4
+
+ /denodeify@1.2.1:
+ resolution: {integrity: sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==}
+
+ /depd@2.0.0:
+ resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
+ engines: {node: '>= 0.8'}
+
+ /deprecated-react-native-prop-types@4.1.0:
+ resolution: {integrity: sha512-WfepZHmRbbdTvhcolb8aOKEvQdcmTMn5tKLbqbXmkBvjFjRVWAYqsXk/DBsV8TZxws8SdGHLuHaJrHSQUPRdfw==}
+ dependencies:
+ '@react-native/normalize-colors': 0.72.0
+ invariant: 2.2.4
+ prop-types: 15.8.1
+
+ /destroy@1.2.0:
+ resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+
+ /ee-first@1.1.1:
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+
+ /electron-to-chromium@1.4.509:
+ resolution: {integrity: sha512-G5KlSWY0zzhANtX15tkikHl4WB7zil2Y65oT52EZUL194abjUXBZym12Ht7Bhuwm/G3LJFEqMADyv2Cks56dmg==}
+
+ /emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ /encodeurl@1.0.2:
+ resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
+ engines: {node: '>= 0.8'}
+
+ /envinfo@7.10.0:
+ resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ /error-ex@1.3.2:
+ resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+ dependencies:
+ is-arrayish: 0.2.1
+
+ /error-stack-parser@2.1.4:
+ resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
+ dependencies:
+ stackframe: 1.3.4
+
+ /errorhandler@1.5.1:
+ resolution: {integrity: sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ accepts: 1.3.8
+ escape-html: 1.0.3
+
+ /escalade@3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+
+ /escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+
+ /escape-string-regexp@1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+
+ /escape-string-regexp@2.0.0:
+ resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
+ engines: {node: '>=8'}
+
+ /escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ /esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ /etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+
+ /event-target-shim@5.0.1:
+ resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
+ engines: {node: '>=6'}
+
+ /execa@5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ /fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ dev: false
+
+ /fast-xml-parser@4.2.7:
+ resolution: {integrity: sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==}
+ hasBin: true
+ dependencies:
+ strnum: 1.0.5
+
+ /fb-watchman@2.0.2:
+ resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
+ dependencies:
+ bser: 2.1.1
+
+ /fill-range@7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+
+ /filter-obj@1.1.0:
+ resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /finalhandler@1.1.2:
+ resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}
+ engines: {node: '>= 0.8'}
+ 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
+ transitivePeerDependencies:
+ - supports-color
+
+ /find-cache-dir@2.1.0:
+ resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ commondir: 1.0.1
+ make-dir: 2.1.0
+ pkg-dir: 3.0.0
+
+ /find-up@3.0.0:
+ resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
+ engines: {node: '>=6'}
+ dependencies:
+ locate-path: 3.0.0
+
+ /find-up@4.1.0:
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+ engines: {node: '>=8'}
+ dependencies:
+ locate-path: 5.0.0
+ path-exists: 4.0.0
+
+ /find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ /flow-enums-runtime@0.0.5:
+ resolution: {integrity: sha512-PSZF9ZuaZD03sT9YaIs0FrGJ7lSUw7rHZIex+73UYVXg46eL/wxN5PaVcPJFudE2cJu5f0fezitV5aBkLHPUOQ==}
+
+ /flow-parser@0.206.0:
+ resolution: {integrity: sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==}
+ engines: {node: '>=0.4.0'}
+
+ /fresh@0.5.2:
+ resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
+ engines: {node: '>= 0.6'}
+
+ /fs-extra@8.1.0:
+ resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
+ engines: {node: '>=6 <7 || >=8'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+
+ /fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ /fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ optional: true
+
+ /function-bind@1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+
+ /gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
+ /get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ /get-stream@6.0.1:
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
+ engines: {node: '>=10'}
+
+ /glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ /globals@11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ /has-flag@3.0.0:
+ resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+ engines: {node: '>=4'}
+
+ /has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ /has@1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+
+ /hermes-estree@0.12.0:
+ resolution: {integrity: sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw==}
+
+ /hermes-parser@0.12.0:
+ resolution: {integrity: sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw==}
+ dependencies:
+ hermes-estree: 0.12.0
+
+ /hermes-profile-transformer@0.0.6:
+ resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ source-map: 0.7.4
+
+ /http-errors@2.0.0:
+ resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
+ engines: {node: '>= 0.8'}
+ 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:
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
+ engines: {node: '>=10.17.0'}
+
+ /ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
+ /image-size@1.0.2:
+ resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+ dependencies:
+ queue: 6.0.2
+
+ /import-fresh@2.0.0:
+ resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==}
+ engines: {node: '>=4'}
+ dependencies:
+ caller-path: 2.0.0
+ resolve-from: 3.0.0
+
+ /imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ /inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ /invariant@2.2.4:
+ resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
+ dependencies:
+ loose-envify: 1.4.0
+
+ /ip@1.1.8:
+ resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==}
+
+ /is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+ /is-core-module@2.13.0:
+ resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
+ dependencies:
+ has: 1.0.3
+
+ /is-directory@0.3.1:
+ resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==}
+ engines: {node: '>=0.10.0'}
+
+ /is-fullwidth-code-point@2.0.0:
+ resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==}
+ engines: {node: '>=4'}
+
+ /is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+
+ /is-interactive@1.0.0:
+ resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
+ engines: {node: '>=8'}
+
+ /is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ /is-plain-object@2.0.4:
+ resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ isobject: 3.0.1
+
+ /is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
+ /is-unicode-supported@0.1.0:
+ resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
+ engines: {node: '>=10'}
+
+ /is-wsl@1.1.0:
+ resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==}
+ engines: {node: '>=4'}
+
+ /isarray@1.0.0:
+ resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+
+ /isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ /isobject@3.0.1:
+ resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
+ engines: {node: '>=0.10.0'}
+
+ /jest-environment-node@29.6.4:
+ resolution: {integrity: sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/environment': 29.6.4
+ '@jest/fake-timers': 29.6.4
+ '@jest/types': 29.6.3
+ '@types/node': 20.5.9
+ jest-mock: 29.6.3
+ jest-util: 29.6.3
+
+ /jest-get-type@29.6.3:
+ resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+ /jest-message-util@29.6.3:
+ resolution: {integrity: sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@babel/code-frame': 7.22.13
+ '@jest/types': 29.6.3
+ '@types/stack-utils': 2.0.1
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ micromatch: 4.0.5
+ pretty-format: 29.6.3
+ slash: 3.0.0
+ stack-utils: 2.0.6
+
+ /jest-mock@29.6.3:
+ resolution: {integrity: sha512-Z7Gs/mOyTSR4yPsaZ72a/MtuK6RnC3JYqWONe48oLaoEcYwEDxqvbXz85G4SJrm2Z5Ar9zp6MiHF4AlFlRM4Pg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/types': 29.6.3
+ '@types/node': 20.5.9
+ jest-util: 29.6.3
+
+ /jest-regex-util@27.5.1:
+ resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+
+ /jest-util@27.5.1:
+ resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dependencies:
+ '@jest/types': 27.5.1
+ '@types/node': 20.5.9
+ chalk: 4.1.2
+ ci-info: 3.8.0
+ graceful-fs: 4.2.11
+ picomatch: 2.3.1
+
+ /jest-util@29.6.3:
+ resolution: {integrity: sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/types': 29.6.3
+ '@types/node': 20.5.9
+ chalk: 4.1.2
+ ci-info: 3.8.0
+ graceful-fs: 4.2.11
+ picomatch: 2.3.1
+
+ /jest-validate@29.6.3:
+ resolution: {integrity: sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/types': 29.6.3
+ camelcase: 6.3.0
+ chalk: 4.1.2
+ jest-get-type: 29.6.3
+ leven: 3.1.0
+ pretty-format: 29.6.3
+
+ /jest-worker@27.5.1:
+ resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
+ engines: {node: '>= 10.13.0'}
+ dependencies:
+ '@types/node': 20.5.9
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+
+ /joi@17.10.1:
+ resolution: {integrity: sha512-vIiDxQKmRidUVp8KngT8MZSOcmRVm2zV7jbMjNYWuHcJWI0bUck3nRTGQjhpPlQenIQIBC5Vp9AhcnHbWQqafw==}
+ dependencies:
+ '@hapi/hoek': 9.3.0
+ '@hapi/topo': 5.1.0
+ '@sideway/address': 4.1.4
+ '@sideway/formula': 3.0.1
+ '@sideway/pinpoint': 2.0.0
+
+ /js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ /js-yaml@3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+
+ /jsc-android@250231.0.0:
+ resolution: {integrity: sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==}
+
+ /jsc-safe-url@0.2.4:
+ resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==}
+
+ /jscodeshift@0.14.0(@babel/preset-env@7.22.15):
+ resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==}
+ hasBin: true
+ peerDependencies:
+ '@babel/preset-env': ^7.1.6
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/parser': 7.22.16
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.22.15)
+ '@babel/plugin-transform-modules-commonjs': 7.22.15(@babel/core@7.22.15)
+ '@babel/preset-env': 7.22.15(@babel/core@7.22.15)
+ '@babel/preset-flow': 7.22.15(@babel/core@7.22.15)
+ '@babel/preset-typescript': 7.22.15(@babel/core@7.22.15)
+ '@babel/register': 7.22.15(@babel/core@7.22.15)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.22.15)
+ chalk: 4.1.2
+ flow-parser: 0.206.0
+ graceful-fs: 4.2.11
+ micromatch: 4.0.5
+ neo-async: 2.6.2
+ node-dir: 0.1.17
+ recast: 0.21.5
+ temp: 0.8.4
+ write-file-atomic: 2.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ /jsesc@0.5.0:
+ resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
+ hasBin: true
+
+ /jsesc@2.5.2:
+ resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ /json-parse-better-errors@1.0.2:
+ resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
+
+ /json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ /jsonfile@4.0.0:
+ resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ /kdbush@4.0.2:
+ resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==}
+ dev: false
+
+ /kind-of@6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+
+ /kleur@3.0.3:
+ resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
+ engines: {node: '>=6'}
+
+ /leven@3.1.0:
+ resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
+ engines: {node: '>=6'}
+
+ /locate-path@3.0.0:
+ resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
+ engines: {node: '>=6'}
+ dependencies:
+ p-locate: 3.0.0
+ path-exists: 3.0.0
+
+ /locate-path@5.0.0:
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-locate: 4.1.0
+
+ /locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-locate: 5.0.0
+
+ /lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
+ /lodash.throttle@4.1.1:
+ resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
+
+ /log-symbols@4.1.0:
+ resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
+ engines: {node: '>=10'}
+ dependencies:
+ chalk: 4.1.2
+ is-unicode-supported: 0.1.0
+
+ /logkitty@0.7.1:
+ resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==}
+ hasBin: true
+ dependencies:
+ ansi-fragments: 0.2.1
+ dayjs: 1.11.9
+ yargs: 15.4.1
+
+ /loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+ dependencies:
+ js-tokens: 4.0.0
+
+ /lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+ dependencies:
+ yallist: 3.1.1
+
+ /lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+ dependencies:
+ yallist: 4.0.0
+
+ /make-dir@2.1.0:
+ resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
+ engines: {node: '>=6'}
+ dependencies:
+ pify: 4.0.1
+ semver: 5.7.2
+
+ /makeerror@1.0.12:
+ resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
+ dependencies:
+ tmpl: 1.0.5
+
+ /memoize-one@5.2.1:
+ resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
+
+ /merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+ /metro-babel-transformer@0.76.7:
+ resolution: {integrity: sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw==}
+ engines: {node: '>=16'}
+ dependencies:
+ '@babel/core': 7.22.15
+ hermes-parser: 0.12.0
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /metro-babel-transformer@0.76.8:
+ resolution: {integrity: sha512-Hh6PW34Ug/nShlBGxkwQJSgPGAzSJ9FwQXhUImkzdsDgVu6zj5bx258J8cJVSandjNoQ8nbaHK6CaHlnbZKbyA==}
+ engines: {node: '>=16'}
+ dependencies:
+ '@babel/core': 7.22.15
+ hermes-parser: 0.12.0
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /metro-cache-key@0.76.7:
+ resolution: {integrity: sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ==}
+ engines: {node: '>=16'}
+
+ /metro-cache-key@0.76.8:
+ resolution: {integrity: sha512-buKQ5xentPig9G6T37Ww/R/bC+/V1MA5xU/D8zjnhlelsrPG6w6LtHUS61ID3zZcMZqYaELWk5UIadIdDsaaLw==}
+ engines: {node: '>=16'}
+ dev: false
+
+ /metro-cache@0.76.7:
+ resolution: {integrity: sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg==}
+ engines: {node: '>=16'}
+ dependencies:
+ metro-core: 0.76.7
+ rimraf: 3.0.2
+
+ /metro-cache@0.76.8:
+ resolution: {integrity: sha512-QBJSJIVNH7Hc/Yo6br/U/qQDUpiUdRgZ2ZBJmvAbmAKp2XDzsapnMwK/3BGj8JNWJF7OLrqrYHsRsukSbUBpvQ==}
+ engines: {node: '>=16'}
+ dependencies:
+ metro-core: 0.76.8
+ rimraf: 3.0.2
+ dev: false
+
+ /metro-config@0.76.7:
+ resolution: {integrity: sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg==}
+ engines: {node: '>=16'}
+ dependencies:
+ connect: 3.7.0
+ cosmiconfig: 5.2.1
+ jest-validate: 29.6.3
+ metro: 0.76.7
+ metro-cache: 0.76.7
+ metro-core: 0.76.7
+ metro-runtime: 0.76.7
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ /metro-config@0.76.8:
+ resolution: {integrity: sha512-SL1lfKB0qGHALcAk2zBqVgQZpazDYvYFGwCK1ikz0S6Y/CM2i2/HwuZN31kpX6z3mqjv/6KvlzaKoTb1otuSAA==}
+ engines: {node: '>=16'}
+ dependencies:
+ connect: 3.7.0
+ cosmiconfig: 5.2.1
+ jest-validate: 29.6.3
+ metro: 0.76.8
+ metro-cache: 0.76.8
+ metro-core: 0.76.8
+ metro-runtime: 0.76.8
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: false
+
+ /metro-core@0.76.7:
+ resolution: {integrity: sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw==}
+ engines: {node: '>=16'}
+ dependencies:
+ lodash.throttle: 4.1.1
+ metro-resolver: 0.76.7
+
+ /metro-core@0.76.8:
+ resolution: {integrity: sha512-sl2QLFI3d1b1XUUGxwzw/KbaXXU/bvFYrSKz6Sg19AdYGWFyzsgZ1VISRIDf+HWm4R/TJXluhWMEkEtZuqi3qA==}
+ engines: {node: '>=16'}
+ dependencies:
+ lodash.throttle: 4.1.1
+ metro-resolver: 0.76.8
+ dev: false
+
+ /metro-file-map@0.76.7:
+ resolution: {integrity: sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw==}
+ engines: {node: '>=16'}
+ dependencies:
+ anymatch: 3.1.3
+ debug: 2.6.9
+ fb-watchman: 2.0.2
+ graceful-fs: 4.2.11
+ invariant: 2.2.4
+ jest-regex-util: 27.5.1
+ jest-util: 27.5.1
+ jest-worker: 27.5.1
+ micromatch: 4.0.5
+ node-abort-controller: 3.1.1
+ nullthrows: 1.1.1
+ walker: 1.0.8
+ optionalDependencies:
+ fsevents: 2.3.3
+ transitivePeerDependencies:
+ - supports-color
+
+ /metro-file-map@0.76.8:
+ resolution: {integrity: sha512-A/xP1YNEVwO1SUV9/YYo6/Y1MmzhL4ZnVgcJC3VmHp/BYVOXVStzgVbWv2wILe56IIMkfXU+jpXrGKKYhFyHVw==}
+ engines: {node: '>=16'}
+ dependencies:
+ anymatch: 3.1.3
+ debug: 2.6.9
+ fb-watchman: 2.0.2
+ graceful-fs: 4.2.11
+ invariant: 2.2.4
+ jest-regex-util: 27.5.1
+ jest-util: 27.5.1
+ jest-worker: 27.5.1
+ micromatch: 4.0.5
+ node-abort-controller: 3.1.1
+ nullthrows: 1.1.1
+ walker: 1.0.8
+ optionalDependencies:
+ fsevents: 2.3.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /metro-inspector-proxy@0.76.7:
+ resolution: {integrity: sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg==}
+ engines: {node: '>=16'}
+ hasBin: true
+ dependencies:
+ connect: 3.7.0
+ debug: 2.6.9
+ node-fetch: 2.7.0
+ ws: 7.5.9
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ /metro-inspector-proxy@0.76.8:
+ resolution: {integrity: sha512-Us5o5UEd4Smgn1+TfHX4LvVPoWVo9VsVMn4Ldbk0g5CQx3Gu0ygc/ei2AKPGTwsOZmKxJeACj7yMH2kgxQP/iw==}
+ engines: {node: '>=16'}
+ hasBin: true
+ dependencies:
+ connect: 3.7.0
+ debug: 2.6.9
+ node-fetch: 2.7.0
+ ws: 7.5.9
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: false
+
+ /metro-minify-terser@0.76.7:
+ resolution: {integrity: sha512-FQiZGhIxCzhDwK4LxyPMLlq0Tsmla10X7BfNGlYFK0A5IsaVKNJbETyTzhpIwc+YFRT4GkFFwgo0V2N5vxO5HA==}
+ engines: {node: '>=16'}
+ dependencies:
+ terser: 5.19.4
+
+ /metro-minify-terser@0.76.8:
+ resolution: {integrity: sha512-Orbvg18qXHCrSj1KbaeSDVYRy/gkro2PC7Fy2tDSH1c9RB4aH8tuMOIXnKJE+1SXxBtjWmQ5Yirwkth2DyyEZA==}
+ engines: {node: '>=16'}
+ dependencies:
+ terser: 5.19.4
+ dev: false
+
+ /metro-minify-uglify@0.76.7:
+ resolution: {integrity: sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw==}
+ engines: {node: '>=16'}
+ dependencies:
+ uglify-es: 3.3.9
+
+ /metro-minify-uglify@0.76.8:
+ resolution: {integrity: sha512-6l8/bEvtVaTSuhG1FqS0+Mc8lZ3Bl4RI8SeRIifVLC21eeSDp4CEBUWSGjpFyUDfi6R5dXzYaFnSgMNyfxADiQ==}
+ engines: {node: '>=16'}
+ dependencies:
+ uglify-es: 3.3.9
+ dev: false
+
+ /metro-react-native-babel-preset@0.76.7(@babel/core@7.22.15):
+ resolution: {integrity: sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@babel/core': '*'
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.22.15)
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-proposal-export-default-from': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.22.15)
+ '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.22.15)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-syntax-export-default-from': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-block-scoping': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-destructuring': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-modules-commonjs': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-runtime': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/template': 7.22.15
+ babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.22.15)
+ react-refresh: 0.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ /metro-react-native-babel-preset@0.76.8(@babel/core@7.22.15):
+ resolution: {integrity: sha512-Ptza08GgqzxEdK8apYsjTx2S8WDUlS2ilBlu9DR1CUcHmg4g3kOkFylZroogVAUKtpYQNYwAvdsjmrSdDNtiAg==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@babel/core': '*'
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.22.15)
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-proposal-export-default-from': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.22.15)
+ '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.22.15)
+ '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.22.15)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-syntax-export-default-from': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.15)
+ '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-block-scoping': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-destructuring': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-modules-commonjs': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-runtime': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.22.15)
+ '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.15)
+ '@babel/template': 7.22.15
+ babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.22.15)
+ react-refresh: 0.4.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /metro-react-native-babel-transformer@0.76.7(@babel/core@7.22.15):
+ resolution: {integrity: sha512-W6lW3J7y/05ph3c2p3KKJNhH0IdyxdOCbQ5it7aM2MAl0SM4wgKjaV6EYv9b3rHklpV6K3qMH37UKVcjMooWiA==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@babel/core': '*'
+ dependencies:
+ '@babel/core': 7.22.15
+ babel-preset-fbjs: 3.4.0(@babel/core@7.22.15)
+ hermes-parser: 0.12.0
+ metro-react-native-babel-preset: 0.76.7(@babel/core@7.22.15)
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /metro-react-native-babel-transformer@0.76.8(@babel/core@7.22.15):
+ resolution: {integrity: sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@babel/core': '*'
+ dependencies:
+ '@babel/core': 7.22.15
+ babel-preset-fbjs: 3.4.0(@babel/core@7.22.15)
+ hermes-parser: 0.12.0
+ metro-react-native-babel-preset: 0.76.8(@babel/core@7.22.15)
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /metro-resolver@0.76.7:
+ resolution: {integrity: sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA==}
+ engines: {node: '>=16'}
+
+ /metro-resolver@0.76.8:
+ resolution: {integrity: sha512-KccOqc10vrzS7ZhG2NSnL2dh3uVydarB7nOhjreQ7C4zyWuiW9XpLC4h47KtGQv3Rnv/NDLJYeDqaJ4/+140HQ==}
+ engines: {node: '>=16'}
+ dev: false
+
+ /metro-runtime@0.76.7:
+ resolution: {integrity: sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==}
+ engines: {node: '>=16'}
+ dependencies:
+ '@babel/runtime': 7.22.15
+ react-refresh: 0.4.3
+
+ /metro-runtime@0.76.8:
+ resolution: {integrity: sha512-XKahvB+iuYJSCr3QqCpROli4B4zASAYpkK+j3a0CJmokxCDNbgyI4Fp88uIL6rNaZfN0Mv35S0b99SdFXIfHjg==}
+ engines: {node: '>=16'}
+ dependencies:
+ '@babel/runtime': 7.22.15
+ react-refresh: 0.4.3
+
+ /metro-source-map@0.76.7:
+ resolution: {integrity: sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==}
+ engines: {node: '>=16'}
+ dependencies:
+ '@babel/traverse': 7.22.15
+ '@babel/types': 7.22.15
+ invariant: 2.2.4
+ metro-symbolicate: 0.76.7
+ nullthrows: 1.1.1
+ ob1: 0.76.7
+ source-map: 0.5.7
+ vlq: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /metro-source-map@0.76.8:
+ resolution: {integrity: sha512-Hh0ncPsHPVf6wXQSqJqB3K9Zbudht4aUtNpNXYXSxH+pteWqGAXnjtPsRAnCsCWl38wL0jYF0rJDdMajUI3BDw==}
+ engines: {node: '>=16'}
+ dependencies:
+ '@babel/traverse': 7.22.15
+ '@babel/types': 7.22.15
+ invariant: 2.2.4
+ metro-symbolicate: 0.76.8
+ nullthrows: 1.1.1
+ ob1: 0.76.8
+ source-map: 0.5.7
+ vlq: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /metro-symbolicate@0.76.7:
+ resolution: {integrity: sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ==}
+ engines: {node: '>=16'}
+ hasBin: true
+ dependencies:
+ invariant: 2.2.4
+ metro-source-map: 0.76.7
+ nullthrows: 1.1.1
+ source-map: 0.5.7
+ through2: 2.0.5
+ vlq: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /metro-symbolicate@0.76.8:
+ resolution: {integrity: sha512-LrRL3uy2VkzrIXVlxoPtqb40J6Bf1mlPNmUQewipc3qfKKFgtPHBackqDy1YL0njDsWopCKcfGtFYLn0PTUn3w==}
+ engines: {node: '>=16'}
+ hasBin: true
+ dependencies:
+ invariant: 2.2.4
+ metro-source-map: 0.76.8
+ nullthrows: 1.1.1
+ source-map: 0.5.7
+ through2: 2.0.5
+ vlq: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /metro-transform-plugins@0.76.7:
+ resolution: {integrity: sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg==}
+ engines: {node: '>=16'}
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/generator': 7.22.15
+ '@babel/template': 7.22.15
+ '@babel/traverse': 7.22.15
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /metro-transform-plugins@0.76.8:
+ resolution: {integrity: sha512-PlkGTQNqS51Bx4vuufSQCdSn2R2rt7korzngo+b5GCkeX5pjinPjnO2kNhQ8l+5bO0iUD/WZ9nsM2PGGKIkWFA==}
+ engines: {node: '>=16'}
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/generator': 7.22.15
+ '@babel/template': 7.22.15
+ '@babel/traverse': 7.22.15
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /metro-transform-worker@0.76.7:
+ resolution: {integrity: sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw==}
+ engines: {node: '>=16'}
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/generator': 7.22.15
+ '@babel/parser': 7.22.16
+ '@babel/types': 7.22.15
+ babel-preset-fbjs: 3.4.0(@babel/core@7.22.15)
+ metro: 0.76.7
+ metro-babel-transformer: 0.76.7
+ metro-cache: 0.76.7
+ metro-cache-key: 0.76.7
+ metro-source-map: 0.76.7
+ metro-transform-plugins: 0.76.7
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ /metro-transform-worker@0.76.8:
+ resolution: {integrity: sha512-mE1fxVAnJKmwwJyDtThildxxos9+DGs9+vTrx2ktSFMEVTtXS/bIv2W6hux1pqivqAfyJpTeACXHk5u2DgGvIQ==}
+ engines: {node: '>=16'}
+ dependencies:
+ '@babel/core': 7.22.15
+ '@babel/generator': 7.22.15
+ '@babel/parser': 7.22.16
+ '@babel/types': 7.22.15
+ babel-preset-fbjs: 3.4.0(@babel/core@7.22.15)
+ metro: 0.76.8
+ metro-babel-transformer: 0.76.8
+ metro-cache: 0.76.8
+ metro-cache-key: 0.76.8
+ metro-source-map: 0.76.8
+ metro-transform-plugins: 0.76.8
+ nullthrows: 1.1.1
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: false
+
+ /metro@0.76.7:
+ resolution: {integrity: sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ==}
+ engines: {node: '>=16'}
+ hasBin: true
+ dependencies:
+ '@babel/code-frame': 7.22.13
+ '@babel/core': 7.22.15
+ '@babel/generator': 7.22.15
+ '@babel/parser': 7.22.16
+ '@babel/template': 7.22.15
+ '@babel/traverse': 7.22.15
+ '@babel/types': 7.22.15
+ accepts: 1.3.8
+ async: 3.2.4
+ chalk: 4.1.2
+ ci-info: 2.0.0
+ connect: 3.7.0
+ debug: 2.6.9
+ denodeify: 1.2.1
+ error-stack-parser: 2.1.4
+ graceful-fs: 4.2.11
+ hermes-parser: 0.12.0
+ image-size: 1.0.2
+ invariant: 2.2.4
+ jest-worker: 27.5.1
+ jsc-safe-url: 0.2.4
+ lodash.throttle: 4.1.1
+ metro-babel-transformer: 0.76.7
+ metro-cache: 0.76.7
+ metro-cache-key: 0.76.7
+ metro-config: 0.76.7
+ metro-core: 0.76.7
+ metro-file-map: 0.76.7
+ metro-inspector-proxy: 0.76.7
+ metro-minify-terser: 0.76.7
+ metro-minify-uglify: 0.76.7
+ metro-react-native-babel-preset: 0.76.7(@babel/core@7.22.15)
+ metro-resolver: 0.76.7
+ metro-runtime: 0.76.7
+ metro-source-map: 0.76.7
+ metro-symbolicate: 0.76.7
+ metro-transform-plugins: 0.76.7
+ metro-transform-worker: 0.76.7
+ mime-types: 2.1.35
+ node-fetch: 2.7.0
+ nullthrows: 1.1.1
+ rimraf: 3.0.2
+ serialize-error: 2.1.0
+ source-map: 0.5.7
+ strip-ansi: 6.0.1
+ throat: 5.0.0
+ ws: 7.5.9
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ /metro@0.76.8:
+ resolution: {integrity: sha512-oQA3gLzrrYv3qKtuWArMgHPbHu8odZOD9AoavrqSFllkPgOtmkBvNNDLCELqv5SjBfqjISNffypg+5UGG3y0pg==}
+ engines: {node: '>=16'}
+ hasBin: true
+ dependencies:
+ '@babel/code-frame': 7.22.13
+ '@babel/core': 7.22.15
+ '@babel/generator': 7.22.15
+ '@babel/parser': 7.22.16
+ '@babel/template': 7.22.15
+ '@babel/traverse': 7.22.15
+ '@babel/types': 7.22.15
+ accepts: 1.3.8
+ async: 3.2.4
+ chalk: 4.1.2
+ ci-info: 2.0.0
+ connect: 3.7.0
+ debug: 2.6.9
+ denodeify: 1.2.1
+ error-stack-parser: 2.1.4
+ graceful-fs: 4.2.11
+ hermes-parser: 0.12.0
+ image-size: 1.0.2
+ invariant: 2.2.4
+ jest-worker: 27.5.1
+ jsc-safe-url: 0.2.4
+ lodash.throttle: 4.1.1
+ metro-babel-transformer: 0.76.8
+ metro-cache: 0.76.8
+ metro-cache-key: 0.76.8
+ metro-config: 0.76.8
+ metro-core: 0.76.8
+ metro-file-map: 0.76.8
+ metro-inspector-proxy: 0.76.8
+ metro-minify-terser: 0.76.8
+ metro-minify-uglify: 0.76.8
+ metro-react-native-babel-preset: 0.76.8(@babel/core@7.22.15)
+ metro-resolver: 0.76.8
+ metro-runtime: 0.76.8
+ metro-source-map: 0.76.8
+ metro-symbolicate: 0.76.8
+ metro-transform-plugins: 0.76.8
+ metro-transform-worker: 0.76.8
+ mime-types: 2.1.35
+ node-fetch: 2.7.0
+ nullthrows: 1.1.1
+ rimraf: 3.0.2
+ serialize-error: 2.1.0
+ source-map: 0.5.7
+ strip-ansi: 6.0.1
+ throat: 5.0.0
+ ws: 7.5.9
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: false
+
+ /micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+
+ /mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ /mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+
+ /mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ /mime@2.6.0:
+ resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
+ engines: {node: '>=4.0.0'}
+ hasBin: true
+
+ /mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+
+ /minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ /mkdirp@0.5.6:
+ resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.8
+
+ /ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+
+ /ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ /nanoid@3.3.6:
+ resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+ dev: false
+
+ /negotiator@0.6.3:
+ resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
+ engines: {node: '>= 0.6'}
+
+ /neo-async@2.6.2:
+ resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
+ /nocache@3.0.4:
+ resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==}
+ engines: {node: '>=12.0.0'}
+
+ /node-abort-controller@3.1.1:
+ resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==}
+
+ /node-dir@0.1.17:
+ resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==}
+ engines: {node: '>= 0.10.5'}
+ dependencies:
+ minimatch: 3.1.2
+
+ /node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ dependencies:
+ whatwg-url: 5.0.0
+
+ /node-int64@0.4.0:
+ resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
+
+ /node-releases@2.0.13:
+ resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
+
+ /node-stream-zip@1.15.0:
+ resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==}
+ engines: {node: '>=0.12.0'}
+
+ /normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ /npm-run-path@4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-key: 3.1.1
+
+ /nullthrows@1.1.1:
+ resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==}
+
+ /ob1@0.76.7:
+ resolution: {integrity: sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==}
+ engines: {node: '>=16'}
+
+ /ob1@0.76.8:
+ resolution: {integrity: sha512-dlBkJJV5M/msj9KYA9upc+nUWVwuOFFTbu28X6kZeGwcuW+JxaHSBZ70SYQnk5M+j5JbNLR6yKHmgW4M5E7X5g==}
+ engines: {node: '>=16'}
+
+ /object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ /on-finished@2.3.0:
+ resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ ee-first: 1.1.1
+
+ /on-finished@2.4.1:
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ ee-first: 1.1.1
+
+ /on-headers@1.0.2:
+ resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
+ engines: {node: '>= 0.8'}
+
+ /once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+
+ /onetime@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+ dependencies:
+ mimic-fn: 2.1.0
+
+ /open@6.4.0:
+ resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==}
+ engines: {node: '>=8'}
+ dependencies:
+ is-wsl: 1.1.0
+
+ /ora@5.4.1:
+ resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ bl: 4.1.0
+ chalk: 4.1.2
+ cli-cursor: 3.1.0
+ cli-spinners: 2.9.0
+ is-interactive: 1.0.0
+ is-unicode-supported: 0.1.0
+ log-symbols: 4.1.0
+ strip-ansi: 6.0.1
+ wcwidth: 1.0.1
+
+ /p-limit@2.3.0:
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+ engines: {node: '>=6'}
+ dependencies:
+ p-try: 2.2.0
+
+ /p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ yocto-queue: 0.1.0
+
+ /p-locate@3.0.0:
+ resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ p-limit: 2.3.0
+
+ /p-locate@4.1.0:
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-limit: 2.3.0
+
+ /p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-limit: 3.1.0
+
+ /p-try@2.2.0:
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+ engines: {node: '>=6'}
+
+ /parse-json@4.0.0:
+ resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
+ engines: {node: '>=4'}
+ dependencies:
+ error-ex: 1.3.2
+ json-parse-better-errors: 1.0.2
+
+ /parseurl@1.3.3:
+ resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
+ engines: {node: '>= 0.8'}
+
+ /path-exists@3.0.0:
+ resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
+ engines: {node: '>=4'}
+
+ /path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ /path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+
+ /path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ /path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ /picocolors@1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+
+ /picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ /pify@4.0.1:
+ resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
+ engines: {node: '>=6'}
+
+ /pirates@4.0.6:
+ resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
+ engines: {node: '>= 6'}
+
+ /pkg-dir@3.0.0:
+ resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==}
+ engines: {node: '>=6'}
+ dependencies:
+ find-up: 3.0.0
+
+ /pretty-format@26.6.2:
+ resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==}
+ engines: {node: '>= 10'}
+ dependencies:
+ '@jest/types': 26.6.2
+ ansi-regex: 5.0.1
+ ansi-styles: 4.3.0
+ react-is: 17.0.2
+
+ /pretty-format@29.6.3:
+ resolution: {integrity: sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/schemas': 29.6.3
+ ansi-styles: 5.2.0
+ react-is: 18.2.0
+
+ /process-nextick-args@2.0.1:
+ resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+
+ /promise@8.3.0:
+ resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==}
+ dependencies:
+ asap: 2.0.6
+
+ /prompts@2.4.2:
+ resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
+ engines: {node: '>= 6'}
+ dependencies:
+ kleur: 3.0.3
+ sisteransi: 1.0.5
+
+ /prop-types@15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+
+ /query-string@7.1.3:
+ resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==}
+ engines: {node: '>=6'}
+ dependencies:
+ decode-uri-component: 0.2.2
+ filter-obj: 1.1.0
+ split-on-first: 1.1.0
+ strict-uri-encode: 2.0.0
+ dev: false
+
+ /queue@6.0.2:
+ resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
+ dependencies:
+ inherits: 2.0.4
+
+ /range-parser@1.2.1:
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
+ engines: {node: '>= 0.6'}
+
+ /react-devtools-core@4.28.0:
+ resolution: {integrity: sha512-E3C3X1skWBdBzwpOUbmXG8SgH6BtsluSMe+s6rRcujNKG1DGi8uIfhdhszkgDpAsMoE55hwqRUzeXCmETDBpTg==}
+ dependencies:
+ shell-quote: 1.8.1
+ ws: 7.5.9
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ /react-freeze@1.0.3(react@18.2.0):
+ resolution: {integrity: sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ react: '>=17.0.0'
+ dependencies:
+ react: 18.2.0
+ dev: false
+
+ /react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+
+ /react-is@17.0.2:
+ resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
+
+ /react-is@18.2.0:
+ resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
+
+ /react-native-safe-area-context@4.7.2(react-native@0.72.4)(react@18.2.0):
+ resolution: {integrity: sha512-5fy/hRNJ7bI/U2SliOeKf0D80J4lXPc1NsRiNS7Xaz8YTnqlzWib1ViItkwKPfufe54YKzVBMmM32RpdzvO2gg==}
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+ dependencies:
+ react: 18.2.0
+ react-native: 0.72.4(@babel/core@7.22.15)(@babel/preset-env@7.22.15)(react@18.2.0)
+ dev: false
+
+ /react-native-screens@3.25.0(react-native@0.72.4)(react@18.2.0):
+ resolution: {integrity: sha512-TSC2Ad0hh763I8QT6XxMsPXAagQ+RawDSdFtKRvIz9fCYr96AjRwwaqmYivbqlDywOgcRBkIVynkFtp0ThmlYw==}
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+ dependencies:
+ react: 18.2.0
+ react-freeze: 1.0.3(react@18.2.0)
+ react-native: 0.72.4(@babel/core@7.22.15)(@babel/preset-env@7.22.15)(react@18.2.0)
+ warn-once: 0.1.1
+ dev: false
+
+ /react-native@0.72.4(@babel/core@7.22.15)(@babel/preset-env@7.22.15)(react@18.2.0):
+ resolution: {integrity: sha512-+vrObi0wZR+NeqL09KihAAdVlQ9IdplwznJWtYrjnQ4UbCW6rkzZJebRsugwUneSOKNFaHFEo1uKU89HsgtYBg==}
+ engines: {node: '>=16'}
+ hasBin: true
+ peerDependencies:
+ react: 18.2.0
+ dependencies:
+ '@jest/create-cache-key-function': 29.6.3
+ '@react-native-community/cli': 11.3.6(@babel/core@7.22.15)
+ '@react-native-community/cli-platform-android': 11.3.6
+ '@react-native-community/cli-platform-ios': 11.3.6
+ '@react-native/assets-registry': 0.72.0
+ '@react-native/codegen': 0.72.6(@babel/preset-env@7.22.15)
+ '@react-native/gradle-plugin': 0.72.11
+ '@react-native/js-polyfills': 0.72.1
+ '@react-native/normalize-colors': 0.72.0
+ '@react-native/virtualized-lists': 0.72.8(react-native@0.72.4)
+ abort-controller: 3.0.0
+ anser: 1.4.10
+ base64-js: 1.5.1
+ deprecated-react-native-prop-types: 4.1.0
+ event-target-shim: 5.0.1
+ flow-enums-runtime: 0.0.5
+ invariant: 2.2.4
+ jest-environment-node: 29.6.4
+ jsc-android: 250231.0.0
+ memoize-one: 5.2.1
+ metro-runtime: 0.76.8
+ metro-source-map: 0.76.8
+ mkdirp: 0.5.6
+ nullthrows: 1.1.1
+ pretty-format: 26.6.2
+ promise: 8.3.0
+ react: 18.2.0
+ react-devtools-core: 4.28.0
+ react-refresh: 0.4.3
+ react-shallow-renderer: 16.15.0(react@18.2.0)
+ regenerator-runtime: 0.13.11
+ scheduler: 0.24.0-canary-efb381bbf-20230505
+ stacktrace-parser: 0.1.10
+ use-sync-external-store: 1.2.0(react@18.2.0)
+ whatwg-fetch: 3.6.18
+ ws: 6.2.2
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@babel/preset-env'
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ /react-refresh@0.4.3:
+ resolution: {integrity: sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==}
+ engines: {node: '>=0.10.0'}
+
+ /react-shallow-renderer@16.15.0(react@18.2.0):
+ resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==}
+ peerDependencies:
+ react: ^16.0.0 || ^17.0.0 || ^18.0.0
+ dependencies:
+ object-assign: 4.1.1
+ react: 18.2.0
+ react-is: 18.2.0
+
+ /react@18.2.0:
+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ loose-envify: 1.4.0
+
+ /readable-stream@2.3.8:
+ resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+
+ /readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ /readline@1.3.0:
+ resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==}
+
+ /recast@0.21.5:
+ resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==}
+ engines: {node: '>= 4'}
+ dependencies:
+ ast-types: 0.15.2
+ esprima: 4.0.1
+ source-map: 0.6.1
+ tslib: 2.6.2
+
+ /regenerate-unicode-properties@10.1.0:
+ resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ regenerate: 1.4.2
+
+ /regenerate@1.4.2:
+ resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+
+ /regenerator-runtime@0.13.11:
+ resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
+
+ /regenerator-runtime@0.14.0:
+ resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
+
+ /regenerator-transform@0.15.2:
+ resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
+ dependencies:
+ '@babel/runtime': 7.22.15
+
+ /regexpu-core@5.3.2:
+ resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
+ engines: {node: '>=4'}
+ 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:
+ resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
+ hasBin: true
+ dependencies:
+ jsesc: 0.5.0
+
+ /require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ /require-main-filename@2.0.0:
+ resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
+
+ /resolve-from@3.0.0:
+ resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==}
+ engines: {node: '>=4'}
+
+ /resolve@1.22.4:
+ resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.13.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ /restore-cursor@3.1.0:
+ resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
+ engines: {node: '>=8'}
+ dependencies:
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+
+ /rimraf@2.6.3:
+ resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.3
+
+ /rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.3
+
+ /safe-buffer@5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+
+ /safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ /scheduler@0.24.0-canary-efb381bbf-20230505:
+ resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==}
+ dependencies:
+ loose-envify: 1.4.0
+
+ /semver@5.7.2:
+ resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+ hasBin: true
+
+ /semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ /semver@7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+
+ /send@0.18.0:
+ resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
+ engines: {node: '>= 0.8.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
+ transitivePeerDependencies:
+ - supports-color
+
+ /serialize-error@2.1.0:
+ resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==}
+ engines: {node: '>=0.10.0'}
+
+ /serve-static@1.15.0:
+ resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 0.18.0
+ transitivePeerDependencies:
+ - supports-color
+
+ /set-blocking@2.0.0:
+ resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
+
+ /setprototypeof@1.2.0:
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+
+ /shallow-clone@3.0.1:
+ resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
+ engines: {node: '>=8'}
+ dependencies:
+ kind-of: 6.0.3
+
+ /shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+ dependencies:
+ shebang-regex: 3.0.0
+
+ /shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ /shell-quote@1.8.1:
+ resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
+
+ /signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
+ /sisteransi@1.0.5:
+ resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
+
+ /slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+
+ /slice-ansi@2.1.0:
+ resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ ansi-styles: 3.2.1
+ astral-regex: 1.0.0
+ is-fullwidth-code-point: 2.0.0
+
+ /source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ /source-map@0.5.7:
+ resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+ engines: {node: '>=0.10.0'}
+
+ /source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ /source-map@0.7.4:
+ resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
+ engines: {node: '>= 8'}
+
+ /split-on-first@1.1.0:
+ resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /sprintf-js@1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+
+ /stack-utils@2.0.6:
+ resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ escape-string-regexp: 2.0.0
+
+ /stackframe@1.3.4:
+ resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
+
+ /stacktrace-parser@0.1.10:
+ resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==}
+ engines: {node: '>=6'}
+ dependencies:
+ type-fest: 0.7.1
+
+ /statuses@1.5.0:
+ resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
+ engines: {node: '>= 0.6'}
+
+ /statuses@2.0.1:
+ resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
+ engines: {node: '>= 0.8'}
+
+ /strict-uri-encode@2.0.0:
+ resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==}
+ engines: {node: '>=4'}
+ dev: false
+
+ /string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ /string_decoder@1.1.1:
+ resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+ dependencies:
+ safe-buffer: 5.1.2
+
+ /string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+ dependencies:
+ safe-buffer: 5.2.1
+
+ /strip-ansi@5.2.0:
+ resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==}
+ engines: {node: '>=6'}
+ dependencies:
+ ansi-regex: 4.1.1
+
+ /strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+
+ /strip-final-newline@2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+
+ /strnum@1.0.5:
+ resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
+
+ /sudo-prompt@9.2.1:
+ resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==}
+
+ /supercluster@8.0.1:
+ resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==}
+ dependencies:
+ kdbush: 4.0.2
+ dev: false
+
+ /supports-color@5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+ dependencies:
+ has-flag: 3.0.0
+
+ /supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+
+ /supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ has-flag: 4.0.0
+
+ /supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ /temp@0.8.4:
+ resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ rimraf: 2.6.3
+
+ /terser@5.19.4:
+ resolution: {integrity: sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ '@jridgewell/source-map': 0.3.5
+ acorn: 8.10.0
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
+ /throat@5.0.0:
+ resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==}
+
+ /through2@2.0.5:
+ resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
+ dependencies:
+ readable-stream: 2.3.8
+ xtend: 4.0.2
+
+ /tmpl@1.0.5:
+ resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
+
+ /to-fast-properties@2.0.0:
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+ engines: {node: '>=4'}
+
+ /to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+
+ /toidentifier@1.0.1:
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
+ engines: {node: '>=0.6'}
+
+ /tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
+ /tslib@2.6.2:
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+
+ /type-detect@4.0.8:
+ resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
+ engines: {node: '>=4'}
+
+ /type-fest@0.7.1:
+ resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==}
+ engines: {node: '>=8'}
+
+ /uglify-es@3.3.9:
+ resolution: {integrity: sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==}
+ engines: {node: '>=0.8.0'}
+ deprecated: support for ECMAScript is superseded by `uglify-js` as of v3.13.0
+ hasBin: true
+ dependencies:
+ commander: 2.13.0
+ source-map: 0.6.1
+
+ /unicode-canonical-property-names-ecmascript@2.0.0:
+ resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
+ engines: {node: '>=4'}
+
+ /unicode-match-property-ecmascript@2.0.0:
+ resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
+ engines: {node: '>=4'}
+ dependencies:
+ unicode-canonical-property-names-ecmascript: 2.0.0
+ unicode-property-aliases-ecmascript: 2.1.0
+
+ /unicode-match-property-value-ecmascript@2.1.0:
+ resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==}
+ engines: {node: '>=4'}
+
+ /unicode-property-aliases-ecmascript@2.1.0:
+ resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
+ engines: {node: '>=4'}
+
+ /universalify@0.1.2:
+ resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
+ engines: {node: '>= 4.0.0'}
+
+ /unpipe@1.0.0:
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
+ engines: {node: '>= 0.8'}
+
+ /update-browserslist-db@1.0.11(browserslist@4.21.10):
+ resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+ dependencies:
+ browserslist: 4.21.10
+ escalade: 3.1.1
+ picocolors: 1.0.0
+
+ /use-latest-callback@0.1.6(react@18.2.0):
+ resolution: {integrity: sha512-VO/P91A/PmKH9bcN9a7O3duSuxe6M14ZoYXgA6a8dab8doWNdhiIHzEkX/jFeTTRBsX0Ubk6nG4q2NIjNsj+bg==}
+ peerDependencies:
+ react: '>=16.8'
+ dependencies:
+ react: 18.2.0
+ dev: false
+
+ /use-sync-external-store@1.2.0(react@18.2.0):
+ resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ dependencies:
+ react: 18.2.0
+
+ /util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ /utils-merge@1.0.1:
+ resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
+ engines: {node: '>= 0.4.0'}
+
+ /vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+
+ /vlq@1.0.1:
+ resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==}
+
+ /walker@1.0.8:
+ resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
+ dependencies:
+ makeerror: 1.0.12
+
+ /warn-once@0.1.1:
+ resolution: {integrity: sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==}
+ dev: false
+
+ /wcwidth@1.0.1:
+ resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
+ dependencies:
+ defaults: 1.0.4
+
+ /webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
+ /whatwg-fetch@3.6.18:
+ resolution: {integrity: sha512-ltN7j66EneWn5TFDO4L9inYC1D+Czsxlrw2SalgjMmEMkLfA5SIZxEFdE6QtHFiiM6Q7WL32c7AkI3w6yxM84Q==}
+
+ /whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
+ /which-module@2.0.1:
+ resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
+
+ /which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+
+ /wrap-ansi@6.2.0:
+ resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ /wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ /wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ /write-file-atomic@2.4.3:
+ resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==}
+ dependencies:
+ graceful-fs: 4.2.11
+ imurmurhash: 0.1.4
+ signal-exit: 3.0.7
+
+ /ws@6.2.2:
+ resolution: {integrity: sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dependencies:
+ async-limiter: 1.0.1
+
+ /ws@7.5.9:
+ resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
+ 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
+
+ /xtend@4.0.2:
+ resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+ engines: {node: '>=0.4'}
+
+ /y18n@4.0.3:
+ resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
+
+ /y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
+ /yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+ /yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+ /yaml@2.3.2:
+ resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==}
+ engines: {node: '>= 14'}
+
+ /yargs-parser@18.1.3:
+ resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ camelcase: 5.3.1
+ decamelize: 1.2.0
+
+ /yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
+ /yargs@15.4.1:
+ resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
+ engines: {node: '>=8'}
+ dependencies:
+ cliui: 6.0.0
+ decamelize: 1.2.0
+ find-up: 4.1.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ require-main-filename: 2.0.0
+ set-blocking: 2.0.0
+ string-width: 4.2.3
+ which-module: 2.0.1
+ y18n: 4.0.3
+ yargs-parser: 18.1.3
+
+ /yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+ 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.8
+ yargs-parser: 21.1.1
+
+ /yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ file:..(react-native@0.72.4)(react@18.2.0):
+ resolution: {directory: .., type: directory}
+ id: file:..
+ name: react-native-amap3d
+ peerDependencies:
+ react: '*'
+ react-native: '*'
+ dependencies:
+ react: 18.2.0
+ react-native: 0.72.4(@babel/core@7.22.15)(@babel/preset-env@7.22.15)(react@18.2.0)
+ supercluster: 8.0.1
+ dev: false
diff --git a/index.ts b/index.ts
new file mode 100644
index 00000000..a695399d
--- /dev/null
+++ b/index.ts
@@ -0,0 +1 @@
+export * from "./js/NativeSdk";
diff --git a/js/MapViewNativeComponent.tsx b/js/MapViewNativeComponent.tsx
new file mode 100644
index 00000000..3b78ee19
--- /dev/null
+++ b/js/MapViewNativeComponent.tsx
@@ -0,0 +1,6 @@
+import type { ViewProps } from "react-native";
+import codegenNativeComponent from "react-native/Libraries/Utilities/codegenNativeComponent";
+
+export interface Props extends ViewProps {}
+
+export default codegenNativeComponent("MapView");
diff --git a/js/NativeSdk.ts b/js/NativeSdk.ts
new file mode 100644
index 00000000..b7cb3b91
--- /dev/null
+++ b/js/NativeSdk.ts
@@ -0,0 +1,9 @@
+import type { TurboModule } from "react-native/Libraries/TurboModule/RCTExport";
+import { TurboModuleRegistry } from "react-native";
+
+export interface Spec extends TurboModule {
+ init(apiKey: string): Promise;
+ getVersion(): Promise;
+}
+
+export const Sdk = TurboModuleRegistry.get("AmapSdk");
diff --git a/lib/android/build.gradle b/lib/android/build.gradle
deleted file mode 100644
index a6e84de6..00000000
--- a/lib/android/build.gradle
+++ /dev/null
@@ -1,34 +0,0 @@
-apply plugin: 'com.android.library'
-apply plugin: 'kotlin-android'
-
-def getExt(prop, fallback) {
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
-}
-
-buildscript {
- ext.kotlin_version = '1.7.21'
-
- repositories {
- mavenCentral()
- }
-
- dependencies {
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
-android {
- compileSdkVersion getExt('compileSdkVersion', 33)
- buildToolsVersion getExt('buildToolsVersion', '33.0.0')
-
- defaultConfig {
- minSdkVersion getExt('minSdkVersion', 21)
- targetSdkVersion getExt('targetSdkVersion', 33)
- }
-}
-
-dependencies {
- compileOnly 'com.facebook.react:react-native:+'
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
- implementation 'com.amap.api:3dmap:9.6.0'
-}
diff --git a/lib/android/src/main/AndroidManifest.xml b/lib/android/src/main/AndroidManifest.xml
deleted file mode 100644
index daa591d6..00000000
--- a/lib/android/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/AMap3DPackage.kt b/lib/android/src/main/java/qiuxiang/amap3d/AMap3DPackage.kt
deleted file mode 100644
index 6d80a595..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/AMap3DPackage.kt
+++ /dev/null
@@ -1,28 +0,0 @@
-package qiuxiang.amap3d
-
-import com.facebook.react.ReactPackage
-import com.facebook.react.bridge.NativeModule
-import com.facebook.react.bridge.ReactApplicationContext
-import com.facebook.react.uimanager.ViewManager
-import qiuxiang.amap3d.map_view.*
-import qiuxiang.amap3d.modules.SdkModule
-
-class AMap3DPackage : ReactPackage {
- override fun createNativeModules(reactContext: ReactApplicationContext): List {
- return listOf(
- SdkModule(reactContext),
- )
- }
-
- override fun createViewManagers(reactContext: ReactApplicationContext): List> {
- return listOf(
- MapViewManager(),
- MarkerManager(),
- PolylineManager(),
- PolygonManager(),
- CircleManager(),
- HeatMapManager(),
- MultiPointManager()
- )
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/Utils.kt b/lib/android/src/main/java/qiuxiang/amap3d/Utils.kt
deleted file mode 100644
index 5e95c3a3..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/Utils.kt
+++ /dev/null
@@ -1,114 +0,0 @@
-package qiuxiang.amap3d
-
-import android.content.res.Resources
-import android.graphics.Bitmap
-import android.graphics.Point
-import android.location.Location
-import android.view.View
-import com.amap.api.maps.model.*
-import com.facebook.drawee.backends.pipeline.Fresco
-import com.facebook.imagepipeline.common.ResizeOptions
-import com.facebook.imagepipeline.request.BasePostprocessor
-import com.facebook.imagepipeline.request.ImageRequestBuilder
-import com.facebook.react.bridge.Arguments
-import com.facebook.react.bridge.ReadableArray
-import com.facebook.react.bridge.ReadableMap
-import com.facebook.react.bridge.WritableMap
-import com.facebook.react.views.imagehelper.ImageSource
-
-fun Float.toPx(): Int {
- return (this * Resources.getSystem().displayMetrics.density).toInt()
-}
-
-fun Int.toPx(): Int {
- return (this * Resources.getSystem().displayMetrics.density).toInt()
-}
-
-fun ReadableMap.toPoint(): Point {
- return Point(getDouble("x").toFloat().toPx(), getDouble("y").toFloat().toPx())
-}
-
-fun ReadableMap.toLatLng(): LatLng {
- return LatLng(getDouble("latitude"), getDouble("longitude"))
-}
-
-fun ReadableArray.toLatLngList(): List {
- return (0 until size()).map {
- // @todo 暂时兼容 0.63
- @Suppress("UNNECESSARY_NOT_NULL_ASSERTION")
- getMap(it)!!.toLatLng()
- }
-}
-
-fun LatLng.toJson(): WritableMap {
- return Arguments.createMap().apply {
- putDouble("latitude", latitude)
- putDouble("longitude", longitude)
- }
-}
-
-fun Poi.toJson(): WritableMap {
- return Arguments.createMap().apply {
- putMap("position", coordinate.toJson())
- putString("id", poiId)
- putString("name", name)
- }
-}
-
-fun CameraPosition.toJson(): WritableMap {
- return Arguments.createMap().apply {
- putMap("target", target.toJson())
- putDouble("zoom", zoom.toDouble())
- putDouble("tilt", tilt.toDouble())
- putDouble("bearing", bearing.toDouble())
- }
-}
-
-fun Location.toJson(): WritableMap {
- return Arguments.createMap().apply {
- putDouble("timestamp", time.toDouble())
- putMap("coords", Arguments.createMap().apply {
- putDouble("latitude", latitude)
- putDouble("longitude", longitude)
- putDouble("latitude", latitude)
- putDouble("accuracy", accuracy.toDouble())
- putDouble("heading", bearing.toDouble())
- putDouble("speed", speed.toDouble())
- })
- }
-}
-
-fun LatLngBounds.toJson(): WritableMap {
- return Arguments.createMap().apply {
- putMap("southwest", southwest.toJson())
- putMap("northeast", northeast.toJson())
- }
-}
-
-fun ReadableMap.getFloat(key: String): Float? {
- if (hasKey(key)) return getDouble(key).toFloat()
- return null
-}
-
-fun getEventTypeConstants(vararg list: String): Map {
- return list.associateWith { mapOf("phasedRegistrationNames" to mapOf("bubbled" to it)) }
-}
-
-fun View.fetchImage(source: ReadableMap, callback: (BitmapDescriptor) -> Unit) {
- val uri = ImageSource(context, source.getString("uri")).uri
- val request = ImageRequestBuilder.newBuilderWithSource(uri).let {
- it.postprocessor = object : BasePostprocessor() {
- override fun process(bitmap: Bitmap) {
- callback(BitmapDescriptorFactory.fromBitmap(bitmap))
- }
- }
- if (source.hasKey("width") && source.hasKey("height")) {
- it.resizeOptions = ResizeOptions.forDimensions(
- source.getInt("width").toPx(),
- source.getInt("height").toPx()
- )
- }
- it.build()
- }
- Fresco.getImagePipeline().fetchDecodedImage(request, this)
-}
\ No newline at end of file
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/Circle.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/Circle.kt
deleted file mode 100644
index 4e51ea24..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/Circle.kt
+++ /dev/null
@@ -1,65 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import android.content.Context
-import android.graphics.Color
-import com.amap.api.maps.AMap
-import com.amap.api.maps.model.Circle
-import com.amap.api.maps.model.CircleOptions
-import com.amap.api.maps.model.LatLng
-import com.facebook.react.views.view.ReactViewGroup
-
-class Circle(context: Context) : ReactViewGroup(context), Overlay {
- private var circle: Circle? = null
-
- var center: LatLng? = null
- set(value) {
- field = value
- circle?.center = value
- }
-
- var radius: Double = 0.0
- set(value) {
- field = value
- circle?.radius = value
- }
-
- var strokeWidth: Float = 1f
- set(value) {
- field = value
- circle?.strokeWidth = value
- }
-
- var strokeColor: Int = Color.BLACK
- set(value) {
- field = value
- circle?.strokeColor = value
- }
-
- var fillColor: Int = Color.BLACK
- set(value) {
- field = value
- circle?.fillColor = value
- }
-
- var zIndex: Float = 0f
- set(value) {
- field = value
- circle?.zIndex = value
- }
-
- override fun add(map: AMap) {
- circle = map.addCircle(
- CircleOptions()
- .center(center)
- .radius(radius)
- .strokeColor(strokeColor)
- .strokeWidth(strokeWidth)
- .fillColor(fillColor)
- .zIndex(zIndex)
- )
- }
-
- override fun remove() {
- circle?.remove()
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/CircleManager.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/CircleManager.kt
deleted file mode 100644
index dbbc3403..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/CircleManager.kt
+++ /dev/null
@@ -1,49 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import com.facebook.react.bridge.ReadableMap
-import com.facebook.react.uimanager.SimpleViewManager
-import com.facebook.react.uimanager.ThemedReactContext
-import com.facebook.react.uimanager.annotations.ReactProp
-import qiuxiang.amap3d.toLatLng
-import qiuxiang.amap3d.toPx
-
-@Suppress("unused")
-internal class CircleManager : SimpleViewManager() {
- override fun getName(): String {
- return "AMapCircle"
- }
-
- override fun createViewInstance(reactContext: ThemedReactContext): Circle {
- return Circle(reactContext)
- }
-
- @ReactProp(name = "center")
- fun setCenter(circle: Circle, center: ReadableMap) {
- circle.center = center.toLatLng()
- }
-
- @ReactProp(name = "radius")
- fun setRadius(circle: Circle, radius: Double) {
- circle.radius = radius
- }
-
- @ReactProp(name = "fillColor", customType = "Color")
- fun setFillColor(circle: Circle, fillColor: Int) {
- circle.fillColor = fillColor
- }
-
- @ReactProp(name = "strokeColor", customType = "Color")
- fun setStrokeColor(circle: Circle, strokeColor: Int) {
- circle.strokeColor = strokeColor
- }
-
- @ReactProp(name = "strokeWidth")
- fun setStrokeWidth(circle: Circle, strokeWidth: Float) {
- circle.strokeWidth = strokeWidth.toPx().toFloat()
- }
-
- @ReactProp(name = "zIndex")
- fun setIndex(circle: Circle, zIndex: Float) {
- circle.zIndex = zIndex
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/HeatMap.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/HeatMap.kt
deleted file mode 100644
index 2285562b..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/HeatMap.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import android.content.Context
-import com.amap.api.maps.AMap
-import com.amap.api.maps.model.HeatmapTileProvider
-import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.TileOverlay
-import com.amap.api.maps.model.TileOverlayOptions
-import com.facebook.react.views.view.ReactViewGroup
-
-class HeatMap(context: Context) : ReactViewGroup(context), Overlay {
- private var overlay: TileOverlay? = null
- var data: List = emptyList()
- var opacity: Double = 0.6
- var radius: Int = 12
-
- override fun add(map: AMap) {
- overlay = map.addTileOverlay(
- TileOverlayOptions().tileProvider(
- HeatmapTileProvider.Builder()
- .data(data)
- .radius(radius)
- .transparency(opacity)
- .build()
- )
- )
- }
-
- override fun remove() {
- overlay?.remove()
- }
-}
\ No newline at end of file
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/HeatMapManager.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/HeatMapManager.kt
deleted file mode 100644
index 679b08d6..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/HeatMapManager.kt
+++ /dev/null
@@ -1,33 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import com.facebook.react.bridge.ReadableArray
-import com.facebook.react.uimanager.SimpleViewManager
-import com.facebook.react.uimanager.ThemedReactContext
-import com.facebook.react.uimanager.annotations.ReactProp
-import qiuxiang.amap3d.toLatLngList
-
-@Suppress("unused")
-internal class HeatMapManager : SimpleViewManager() {
- override fun getName(): String {
- return "AMapHeatMap"
- }
-
- override fun createViewInstance(reactContext: ThemedReactContext): HeatMap {
- return HeatMap(reactContext)
- }
-
- @ReactProp(name = "data")
- fun setData(heatMap: HeatMap, data: ReadableArray) {
- heatMap.data = data.toLatLngList()
- }
-
- @ReactProp(name = "radius")
- fun setRadius(heatMap: HeatMap, radius: Int) {
- heatMap.radius = radius
- }
-
- @ReactProp(name = "opacity")
- fun setOpacity(heatMap: HeatMap, opacity: Double) {
- heatMap.opacity = opacity
- }
-}
\ No newline at end of file
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/MapView.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/MapView.kt
deleted file mode 100644
index cc717fde..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/MapView.kt
+++ /dev/null
@@ -1,174 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import android.annotation.SuppressLint
-import android.view.View
-import com.amap.api.maps.AMap
-import com.amap.api.maps.CameraUpdateFactory
-import com.amap.api.maps.TextureMapView
-import com.amap.api.maps.model.CameraPosition
-import com.amap.api.maps.model.Marker
-import com.amap.api.maps.model.MyLocationStyle
-import com.facebook.react.bridge.Arguments
-import com.facebook.react.bridge.ReadableArray
-import com.facebook.react.bridge.ReadableMap
-import com.facebook.react.bridge.WritableMap
-import com.facebook.react.uimanager.ThemedReactContext
-import qiuxiang.amap3d.getFloat
-import qiuxiang.amap3d.toJson
-import qiuxiang.amap3d.toLatLng
-import qiuxiang.amap3d.toPoint
-
-@SuppressLint("ViewConstructor")
-class MapView(context: ThemedReactContext) : TextureMapView(context) {
- @Suppress("Deprecation")
- private val eventEmitter =
- context.getJSModule(com.facebook.react.uimanager.events.RCTEventEmitter::class.java)
- private val markerMap = HashMap()
- private val polylineMap = HashMap()
- private var initialCameraPosition: ReadableMap? = null
- private var locationStyle: MyLocationStyle
-
- init {
- super.onCreate(null)
-
- locationStyle = MyLocationStyle()
- locationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER)
- map.myLocationStyle = locationStyle
-
- map.setOnMapLoadedListener { emit(id, "onLoad") }
- map.setOnMapClickListener { latLng -> emit(id, "onPress", latLng.toJson()) }
- map.setOnPOIClickListener { poi -> emit(id, "onPressPoi", poi.toJson()) }
- map.setOnMapLongClickListener { latLng -> emit(id, "onLongPress", latLng.toJson()) }
- map.setOnPolylineClickListener { polyline -> emit(polylineMap[polyline.id]?.id, "onPress") }
-
- map.setOnMarkerClickListener { marker ->
- markerMap[marker.id]?.let { emit(it.id, "onPress") }
- true
- }
-
- map.setOnMarkerDragListener(object : AMap.OnMarkerDragListener {
- override fun onMarkerDragStart(marker: Marker) {
- emit(markerMap[marker.id]?.id, "onDragStart")
- }
-
- override fun onMarkerDrag(marker: Marker) {
- emit(markerMap[marker.id]?.id, "onDrag")
- }
-
- override fun onMarkerDragEnd(marker: Marker) {
- emit(markerMap[marker.id]?.id, "onDragEnd", marker.position.toJson())
- }
- })
-
- map.setOnCameraChangeListener(object : AMap.OnCameraChangeListener {
- override fun onCameraChangeFinish(position: CameraPosition) {
- emit(id, "onCameraIdle", Arguments.createMap().apply {
- putMap("cameraPosition", position.toJson())
- putMap("latLngBounds", map.projection.visibleRegion.latLngBounds.toJson())
- })
- }
-
- override fun onCameraChange(position: CameraPosition) {
- emit(id, "onCameraMove", Arguments.createMap().apply {
- putMap("cameraPosition", position.toJson())
- putMap("latLngBounds", map.projection.visibleRegion.latLngBounds.toJson())
- })
- }
- })
-
- map.setOnMultiPointClickListener { item ->
- item.customerId.split("_").let {
- emit(
- it[0].toInt(),
- "onPress",
- Arguments.createMap().apply { putInt("index", it[1].toInt()) },
- )
- }
- false
- }
-
- map.setOnMyLocationChangeListener {
- if (it.time > 0) {
- emit(id, "onLocation", it.toJson())
- }
- }
- }
-
- fun emit(id: Int?, event: String, data: WritableMap = Arguments.createMap()) {
- @Suppress("Deprecation")
- id?.let { eventEmitter.receiveEvent(it, event, data) }
- }
-
- fun add(child: View) {
- if (child is Overlay) {
- child.add(map)
- if (child is qiuxiang.amap3d.map_view.Marker) {
- markerMap[child.marker?.id!!] = child
- }
- if (child is Polyline) {
- polylineMap[child.polyline?.id!!] = child
- }
- }
- }
-
- fun remove(child: View) {
- if (child is Overlay) {
- child.remove()
- if (child is qiuxiang.amap3d.map_view.Marker) {
- markerMap.remove(child.marker?.id)
- }
- if (child is Polyline) {
- polylineMap.remove(child.polyline?.id)
- }
- }
- }
-
- private val animateCallback = object : AMap.CancelableCallback {
- override fun onCancel() {}
- override fun onFinish() {}
- }
-
- fun moveCamera(args: ReadableArray?) {
- val current = map.cameraPosition
- val position = args?.getMap(0)!!
- val target = position.getMap("target")?.toLatLng() ?: current.target
- val zoom = position.getFloat("zoom") ?: current.zoom
- val tilt = position.getFloat("tilt") ?: current.tilt
- val bearing = position.getFloat("bearing") ?: current.bearing
- val cameraUpdate = CameraUpdateFactory.newCameraPosition(
- CameraPosition(target, zoom, tilt, bearing)
- )
- map.animateCamera(cameraUpdate, args.getInt(1).toLong(), animateCallback)
- }
-
- fun setInitialCameraPosition(position: ReadableMap) {
- if (initialCameraPosition == null) {
- initialCameraPosition = position
- moveCamera(Arguments.createArray().apply {
- pushMap(Arguments.createMap().apply { merge(position) })
- pushInt(0)
- })
- }
- }
-
- fun call(args: ReadableArray?) {
- val id = args?.getDouble(0)!!
- when (args.getString(1)) {
- "getLatLng" -> callback(
- id,
- // @todo 暂时兼容 0.63
- @Suppress("UNNECESSARY_NOT_NULL_ASSERTION")
- map.projection.fromScreenLocation(args.getMap(2)!!.toPoint()).toJson()
- )
- }
- }
-
- private fun callback(id: Double, data: Any) {
- emit(this.id, "onCallback", Arguments.createMap().apply {
- putDouble("id", id)
- when (data) {
- is WritableMap -> putMap("data", data)
- }
- })
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/MapViewManager.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/MapViewManager.kt
deleted file mode 100644
index 3e8ce696..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/MapViewManager.kt
+++ /dev/null
@@ -1,153 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import android.view.View
-import com.amap.api.maps.CameraUpdateFactory
-import com.facebook.react.bridge.ReadableArray
-import com.facebook.react.bridge.ReadableMap
-import com.facebook.react.uimanager.ThemedReactContext
-import com.facebook.react.uimanager.ViewGroupManager
-import com.facebook.react.uimanager.annotations.ReactProp
-import qiuxiang.amap3d.getEventTypeConstants
-import qiuxiang.amap3d.toLatLng
-
-@Suppress("unused")
-internal class MapViewManager : ViewGroupManager() {
- private val commands = mapOf(
- "moveCamera" to { view: MapView, args: ReadableArray? -> view.moveCamera(args) },
- "call" to { view: MapView, args: ReadableArray? -> view.call(args) },
- )
-
- override fun getName(): String {
- return "AMapView"
- }
-
- override fun createViewInstance(reactContext: ThemedReactContext): MapView {
- return MapView(reactContext)
- }
-
- override fun onDropViewInstance(view: MapView) {
- super.onDropViewInstance(view)
- view.onDestroy()
- }
-
- override fun getCommandsMap(): Map {
- return commands.keys.mapIndexed { index, key -> key to index }.toMap()
- }
-
- override fun receiveCommand(view: MapView, command: Int, args: ReadableArray?) {
- commands.values.toList()[command](view, args)
- }
-
- override fun addView(mapView: MapView, child: View, index: Int) {
- mapView.add(child)
- super.addView(mapView, child, index)
- }
-
- override fun removeViewAt(parent: MapView, index: Int) {
- parent.remove(parent.getChildAt(index))
- super.removeViewAt(parent, index)
- }
-
- override fun getExportedCustomBubblingEventTypeConstants(): Map {
- return getEventTypeConstants(
- "onLoad",
- "onPress",
- "onPressPoi",
- "onLongPress",
- "onCameraMove",
- "onCameraIdle",
- "onLocation",
- "onCallback",
- )
- }
-
- @ReactProp(name = "initialCameraPosition")
- fun setInitialCameraPosition(view: MapView, position: ReadableMap) {
- view.setInitialCameraPosition(position)
- }
-
- @ReactProp(name = "myLocationEnabled")
- fun setMyLocationEnabled(view: MapView, enabled: Boolean) {
- view.map.isMyLocationEnabled = enabled
- }
-
- @ReactProp(name = "indoorViewEnabled")
- fun setIndoorViewEnabled(view: MapView, enabled: Boolean) {
- view.map.showIndoorMap(enabled)
- }
-
- @ReactProp(name = "buildingsEnabled")
- fun setBuildingsEnabled(view: MapView, enabled: Boolean) {
- view.map.showBuildings(enabled)
- }
-
- @ReactProp(name = "compassEnabled")
- fun setCompassEnabled(view: MapView, show: Boolean) {
- view.map.uiSettings.isCompassEnabled = show
- }
-
- @ReactProp(name = "zoomControlsEnabled")
- fun setZoomControlsEnabled(view: MapView, enabled: Boolean) {
- view.map.uiSettings.isZoomControlsEnabled = enabled
- }
-
- @ReactProp(name = "scaleControlsEnabled")
- fun setScaleControlsEnabled(view: MapView, enabled: Boolean) {
- view.map.uiSettings.isScaleControlsEnabled = enabled
- }
-
- @ReactProp(name = "language")
- fun setLanguage(view: MapView, language: String) {
- view.map.setMapLanguage(language)
- }
-
- @ReactProp(name = "myLocationButtonEnabled")
- fun setMyLocationButtonEnabled(view: MapView, enabled: Boolean) {
- view.map.uiSettings.isMyLocationButtonEnabled = enabled
- }
-
- @ReactProp(name = "trafficEnabled")
- fun setTrafficEnabled(view: MapView, enabled: Boolean) {
- view.map.isTrafficEnabled = enabled
- }
-
- @ReactProp(name = "maxZoom")
- fun setMaxZoom(view: MapView, zoomLevel: Float) {
- view.map.maxZoomLevel = zoomLevel
- }
-
- @ReactProp(name = "minZoom")
- fun setMinZoom(view: MapView, zoomLevel: Float) {
- view.map.minZoomLevel = zoomLevel
- }
-
- @ReactProp(name = "mapType")
- fun setMapType(view: MapView, mapType: Int) {
- view.map.mapType = mapType + 1
- }
-
- @ReactProp(name = "zoomGesturesEnabled")
- fun setZoomGesturesEnabled(view: MapView, enabled: Boolean) {
- view.map.uiSettings.isZoomGesturesEnabled = enabled
- }
-
- @ReactProp(name = "scrollGesturesEnabled")
- fun setScrollGesturesEnabled(view: MapView, enabled: Boolean) {
- view.map.uiSettings.isScrollGesturesEnabled = enabled
- }
-
- @ReactProp(name = "rotateGesturesEnabled")
- fun setRotateGesturesEnabled(view: MapView, enabled: Boolean) {
- view.map.uiSettings.isRotateGesturesEnabled = enabled
- }
-
- @ReactProp(name = "tiltGesturesEnabled")
- fun setTiltGesturesEnabled(view: MapView, enabled: Boolean) {
- view.map.uiSettings.isTiltGesturesEnabled = enabled
- }
-
- @ReactProp(name = "cameraPosition")
- fun setCameraPosition(view: MapView, center: ReadableMap) {
- view.map.moveCamera(CameraUpdateFactory.changeLatLng(center.toLatLng()))
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/Marker.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/Marker.kt
deleted file mode 100644
index 313f307d..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/Marker.kt
+++ /dev/null
@@ -1,102 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import android.content.Context
-import android.graphics.Bitmap
-import android.graphics.Canvas
-import android.os.Handler
-import android.os.Looper
-import android.view.View
-import com.amap.api.maps.AMap
-import com.amap.api.maps.model.*
-import com.amap.api.maps.model.Marker
-import com.facebook.react.bridge.ReadableMap
-import com.facebook.react.views.view.ReactViewGroup
-import qiuxiang.amap3d.fetchImage
-
-class Marker(context: Context) : ReactViewGroup(context), Overlay {
- private var view: View? = null
- private var icon: BitmapDescriptor? = null
- private var anchorX: Float = 0.5f
- private var anchorY: Float = 1f
- var marker: Marker? = null
-
- var position: LatLng? = null
- set(value) {
- field = value
- marker?.position = value
- }
-
- var zIndex: Float = 0.0f
- set(value) {
- field = value
- marker?.zIndex = value
- }
-
- var flat: Boolean = false
- set(value) {
- field = value
- marker?.isFlat = value
- }
-
- var opacity: Float = 1f
- set(value) {
- field = value
- marker?.alpha = value
- }
-
- var draggable: Boolean = false
- set(value) {
- field = value
- marker?.isDraggable = value
- }
-
- fun updateIcon() {
- view?.let {
- if (it.width != 0 && it.height != 0) {
- val bitmap = Bitmap.createBitmap(it.width, it.height, Bitmap.Config.ARGB_8888)
- it.draw(Canvas(bitmap))
- icon = BitmapDescriptorFactory.fromBitmap(bitmap)
- marker?.setIcon(icon)
- }
- }
- }
-
- fun setAnchor(x: Double, y: Double) {
- anchorX = x.toFloat()
- anchorY = y.toFloat()
- marker?.setAnchor(anchorX, anchorY)
- }
-
- override fun addView(child: View, index: Int) {
- super.addView(child, index)
- view = child
- view?.addOnLayoutChangeListener { _, _, _, _, _, _, _, _, _ -> updateIcon() }
- }
-
- fun setIcon(source: ReadableMap) {
- fetchImage(source) {
- icon = it
- Handler(Looper.getMainLooper()).post {
- marker?.setIcon(it)
- }
- }
- }
-
- override fun add(map: AMap) {
- marker = map.addMarker(
- MarkerOptions()
- .setFlat(flat)
- .icon(icon)
- .alpha(opacity)
- .draggable(draggable)
- .position(position)
- .anchor(anchorX, anchorY)
- .zIndex(zIndex)
- .infoWindowEnable(false)
- )
- }
-
- override fun remove() {
- marker?.destroy()
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/MarkerManager.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/MarkerManager.kt
deleted file mode 100644
index 7da181bf..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/MarkerManager.kt
+++ /dev/null
@@ -1,78 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import android.view.View
-import com.facebook.react.bridge.ReadableArray
-import com.facebook.react.bridge.ReadableMap
-import com.facebook.react.uimanager.ThemedReactContext
-import com.facebook.react.uimanager.ViewGroupManager
-import com.facebook.react.uimanager.annotations.ReactProp
-import qiuxiang.amap3d.getEventTypeConstants
-import qiuxiang.amap3d.toLatLng
-
-@Suppress("unused")
-internal class MarkerManager : ViewGroupManager() {
- override fun getName(): String {
- return "AMapMarker"
- }
-
- override fun createViewInstance(reactContext: ThemedReactContext): Marker {
- return Marker(reactContext)
- }
-
- override fun addView(marker: Marker, view: View, index: Int) {
- super.addView(marker, view, index)
- }
-
- override fun getExportedCustomBubblingEventTypeConstants(): Map {
- return getEventTypeConstants("onPress", "onDrag", "onDragStart", "onDragEnd")
- }
-
- companion object {
- const val update = 1
- }
-
- override fun getCommandsMap(): Map {
- return mapOf("update" to update)
- }
-
- override fun receiveCommand(marker: Marker, commandId: Int, args: ReadableArray?) {
- when (commandId) {
- update -> marker.updateIcon()
- }
- }
-
- @ReactProp(name = "latLng")
- fun setLatLng(view: Marker, position: ReadableMap) {
- view.position = position.toLatLng()
- }
-
- @ReactProp(name = "flat")
- fun setFlat(marker: Marker, flat: Boolean) {
- marker.flat = flat
- }
-
- @ReactProp(name = "opacity")
- override fun setOpacity(marker: Marker, opacity: Float) {
- marker.opacity = opacity
- }
-
- @ReactProp(name = "draggable")
- fun setDraggable(marker: Marker, draggable: Boolean) {
- marker.draggable = draggable
- }
-
- @ReactProp(name = "zIndex")
- fun setIndex(marker: Marker, zIndex: Float) {
- marker.zIndex = zIndex
- }
-
- @ReactProp(name = "anchor")
- fun setAnchor(view: Marker, anchor: ReadableMap) {
- view.setAnchor(anchor.getDouble("x"), anchor.getDouble("y"))
- }
-
- @ReactProp(name = "icon")
- fun setIcon(view: Marker, icon: ReadableMap?) {
- icon?.let { view.setIcon(it) }
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/MultiPoint.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/MultiPoint.kt
deleted file mode 100644
index bb61b7db..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/MultiPoint.kt
+++ /dev/null
@@ -1,53 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import android.content.Context
-import com.amap.api.maps.AMap
-import com.amap.api.maps.model.BitmapDescriptor
-import com.amap.api.maps.model.MultiPointItem
-import com.amap.api.maps.model.MultiPointOverlay
-import com.amap.api.maps.model.MultiPointOverlayOptions
-import com.facebook.react.bridge.ReadableArray
-import com.facebook.react.bridge.ReadableMap
-import com.facebook.react.views.view.ReactViewGroup
-import qiuxiang.amap3d.fetchImage
-import qiuxiang.amap3d.toLatLng
-
-class MultiPoint(context: Context) : ReactViewGroup(context), Overlay {
- private lateinit var map: AMap
- private var overlay: MultiPointOverlay? = null
- private var items: List = emptyList()
- private var icon: BitmapDescriptor? = null
-
- override fun add(map: AMap) {
- this.map = map
- addToMap()
- }
-
- override fun remove() {
- overlay?.destroy()
- }
-
- private fun addToMap() {
- if (overlay != null) return
- if (icon != null) {
- overlay = map.addMultiPointOverlay(MultiPointOverlayOptions().icon(icon))
- overlay?.items = items
- }
- }
-
- fun setItems(points: ReadableArray) {
- items = (0 until points.size())
- .map { item ->
- // 兼容 0.63
- MultiPointItem(points.getMap(item)!!.toLatLng()).apply { customerId = "${id}_$item" }
- }
- overlay?.items = items
- }
-
- fun setIcon(source: ReadableMap) {
- fetchImage(source) {
- icon = it
- addToMap()
- }
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/MultiPointManager.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/MultiPointManager.kt
deleted file mode 100644
index 5991c9e0..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/MultiPointManager.kt
+++ /dev/null
@@ -1,33 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import com.facebook.react.bridge.ReadableArray
-import com.facebook.react.bridge.ReadableMap
-import com.facebook.react.uimanager.SimpleViewManager
-import com.facebook.react.uimanager.ThemedReactContext
-import com.facebook.react.uimanager.annotations.ReactProp
-import qiuxiang.amap3d.getEventTypeConstants
-
-@Suppress("unused")
-internal class MultiPointManager : SimpleViewManager() {
- override fun getName(): String {
- return "AMapMultiPoint"
- }
-
- override fun createViewInstance(reactContext: ThemedReactContext): MultiPoint {
- return MultiPoint(reactContext)
- }
-
- override fun getExportedCustomBubblingEventTypeConstants(): Map {
- return getEventTypeConstants("onPress")
- }
-
- @ReactProp(name = "items")
- fun setPoints(multiPoint: MultiPoint, items: ReadableArray) {
- multiPoint.setItems(items)
- }
-
- @ReactProp(name = "icon")
- fun setIcon(multiPoint: MultiPoint, icon: ReadableMap?) {
- icon?.let { multiPoint.setIcon(it) }
- }
-}
\ No newline at end of file
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/Overlay.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/Overlay.kt
deleted file mode 100644
index c01c8a12..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/Overlay.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import com.amap.api.maps.AMap
-
-interface Overlay {
- fun add(map: AMap)
- fun remove()
-}
\ No newline at end of file
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/Polygon.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/Polygon.kt
deleted file mode 100644
index c4e7607d..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/Polygon.kt
+++ /dev/null
@@ -1,58 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import android.content.Context
-import android.graphics.Color
-import com.amap.api.maps.AMap
-import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Polygon
-import com.amap.api.maps.model.PolygonOptions
-import com.facebook.react.views.view.ReactViewGroup
-
-class Polygon(context: Context) : ReactViewGroup(context), Overlay {
- private var polygon: Polygon? = null
-
- var points: List = emptyList()
- set(value) {
- field = value
- polygon?.points = value
- }
-
- var strokeWidth: Float = 1f
- set(value) {
- field = value
- polygon?.strokeWidth = value
- }
-
- var strokeColor: Int = Color.BLACK
- set(value) {
- field = value
- polygon?.strokeColor = value
- }
-
- var fillColor: Int = Color.BLACK
- set(value) {
- field = value
- polygon?.fillColor = value
- }
-
- var zIndex: Float = 0f
- set(value) {
- field = value
- polygon?.zIndex = value
- }
-
- override fun add(map: AMap) {
- polygon = map.addPolygon(
- PolygonOptions()
- .addAll(points)
- .strokeColor(strokeColor)
- .strokeWidth(strokeWidth)
- .fillColor(fillColor)
- .zIndex(zIndex)
- )
- }
-
- override fun remove() {
- polygon?.remove()
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/PolygonManager.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/PolygonManager.kt
deleted file mode 100644
index aa29043f..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/PolygonManager.kt
+++ /dev/null
@@ -1,44 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import com.facebook.react.bridge.ReadableArray
-import com.facebook.react.uimanager.SimpleViewManager
-import com.facebook.react.uimanager.ThemedReactContext
-import com.facebook.react.uimanager.annotations.ReactProp
-import qiuxiang.amap3d.toLatLngList
-import qiuxiang.amap3d.toPx
-
-@Suppress("unused")
-internal class PolygonManager : SimpleViewManager() {
- override fun getName(): String {
- return "AMapPolygon"
- }
-
- override fun createViewInstance(reactContext: ThemedReactContext): Polygon {
- return Polygon(reactContext)
- }
-
- @ReactProp(name = "points")
- fun setPoints(polygon: Polygon, points: ReadableArray) {
- polygon.points = points.toLatLngList()
- }
-
- @ReactProp(name = "fillColor", customType = "Color")
- fun setFillColor(polygon: Polygon, fillColor: Int) {
- polygon.fillColor = fillColor
- }
-
- @ReactProp(name = "strokeColor", customType = "Color")
- fun setStrokeColor(polygon: Polygon, strokeColor: Int) {
- polygon.strokeColor = strokeColor
- }
-
- @ReactProp(name = "strokeWidth")
- fun setStrokeWidth(polygon: Polygon, strokeWidth: Float) {
- polygon.strokeWidth = strokeWidth.toPx().toFloat()
- }
-
- @ReactProp(name = "zIndex")
- fun setIndex(polygon: Polygon, zIndex: Float) {
- polygon.zIndex = zIndex
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/Polyline.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/Polyline.kt
deleted file mode 100644
index 2939860b..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/Polyline.kt
+++ /dev/null
@@ -1,69 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import android.content.Context
-import android.graphics.Color
-import com.amap.api.maps.AMap
-import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Polyline
-import com.amap.api.maps.model.PolylineOptions
-import com.facebook.react.views.view.ReactViewGroup
-
-class Polyline(context: Context) : ReactViewGroup(context), Overlay {
- var polyline: Polyline? = null
- var gradient: Boolean = false
- var colors: List = emptyList()
-
- var points: List = emptyList()
- set(value) {
- field = value
- polyline?.points = value
- }
-
- var width: Float = 1f
- set(value) {
- field = value
- polyline?.width = value
- }
-
- var color: Int = Color.BLACK
- set(value) {
- field = value
- polyline?.color = value
- }
-
- var zIndex: Float = 0f
- set(value) {
- field = value
- polyline?.zIndex = value
- }
-
- var geodesic: Boolean = false
- set(value) {
- field = value
- polyline?.isGeodesic = value
- }
-
- var dashed: Boolean = false
- set(value) {
- field = value
- polyline?.isDottedLine = value
- }
-
- override fun add(map: AMap) {
- polyline = map.addPolyline(
- PolylineOptions()
- .addAll(points)
- .color(color)
- .colorValues(colors)
- .width(width)
- .useGradient(gradient)
- .geodesic(geodesic)
- .setDottedLine(dashed)
- .zIndex(zIndex)
- )
- }
-
- override fun remove() {
- polyline?.remove()
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/map_view/PolylineManager.kt b/lib/android/src/main/java/qiuxiang/amap3d/map_view/PolylineManager.kt
deleted file mode 100644
index a9f88388..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/map_view/PolylineManager.kt
+++ /dev/null
@@ -1,64 +0,0 @@
-package qiuxiang.amap3d.map_view
-
-import com.facebook.react.bridge.ReadableArray
-import com.facebook.react.uimanager.SimpleViewManager
-import com.facebook.react.uimanager.ThemedReactContext
-import com.facebook.react.uimanager.annotations.ReactProp
-import qiuxiang.amap3d.getEventTypeConstants
-import qiuxiang.amap3d.toLatLngList
-import qiuxiang.amap3d.toPx
-
-@Suppress("unused")
-internal class PolylineManager : SimpleViewManager() {
- override fun getName(): String {
- return "AMapPolyline"
- }
-
- override fun createViewInstance(context: ThemedReactContext): Polyline {
- return Polyline(context)
- }
-
- override fun getExportedCustomBubblingEventTypeConstants(): Map {
- return getEventTypeConstants("onPress")
- }
-
- @ReactProp(name = "points")
- fun setPoints(polyline: Polyline, points: ReadableArray) {
- polyline.points = points.toLatLngList()
- }
-
- @ReactProp(name = "colors")
- fun setColors(polyline: Polyline, colors: ReadableArray) {
- polyline.colors = (0 until colors.size()).map { colors.getInt(it) }
- }
-
- @ReactProp(name = "color", customType = "Color")
- fun setColor(polyline: Polyline, color: Int) {
- polyline.color = color
- }
-
- @ReactProp(name = "width")
- fun setWidth(polyline: Polyline, width: Float) {
- polyline.width = width.toPx().toFloat()
- }
-
- @ReactProp(name = "zIndex")
- fun setIndex(polyline: Polyline, zIndex: Float) {
- polyline.zIndex = zIndex
- }
-
- @ReactProp(name = "geodesic")
- fun setGeodesic(polyline: Polyline, geodesic: Boolean) {
- polyline.geodesic = geodesic
- }
-
- @ReactProp(name = "dashed")
- fun setDashed(polyline: Polyline, dashed: Boolean) {
- polyline.dashed = dashed
- }
-
- @ReactProp(name = "gradient")
- fun setGradient(polyline: Polyline, gradient: Boolean) {
- polyline.gradient = gradient
- }
-}
diff --git a/lib/android/src/main/java/qiuxiang/amap3d/modules/SdkModule.kt b/lib/android/src/main/java/qiuxiang/amap3d/modules/SdkModule.kt
deleted file mode 100644
index 1419fa76..00000000
--- a/lib/android/src/main/java/qiuxiang/amap3d/modules/SdkModule.kt
+++ /dev/null
@@ -1,31 +0,0 @@
-package qiuxiang.amap3d.modules
-
-import com.amap.api.location.AMapLocationClient
-import com.amap.api.maps.MapsInitializer
-import com.facebook.react.bridge.Promise
-import com.facebook.react.bridge.ReactApplicationContext
-import com.facebook.react.bridge.ReactContextBaseJavaModule
-import com.facebook.react.bridge.ReactMethod
-
-@Suppress("unused")
-class SdkModule(val context: ReactApplicationContext) : ReactContextBaseJavaModule() {
- override fun getName(): String {
- return "AMapSdk"
- }
-
- @ReactMethod
- fun initSDK(apiKey: String?) {
- apiKey?.let {
- MapsInitializer.setApiKey(it)
- MapsInitializer.updatePrivacyAgree(context, true)
- MapsInitializer.updatePrivacyShow(context, true, true)
- AMapLocationClient.updatePrivacyAgree(context, true)
- AMapLocationClient.updatePrivacyShow(context, true, true)
- }
- }
-
- @ReactMethod
- fun getVersion(promise: Promise) {
- promise.resolve(MapsInitializer.getVersion())
- }
-}
diff --git a/lib/ios/.swiftformat b/lib/ios/.swiftformat
deleted file mode 100644
index f3d6b7fe..00000000
--- a/lib/ios/.swiftformat
+++ /dev/null
@@ -1,2 +0,0 @@
---swiftversion 5.2
---indent 2
diff --git a/lib/ios/Bridging-Header.h b/lib/ios/Bridging-Header.h
deleted file mode 100644
index b748d0ec..00000000
--- a/lib/ios/Bridging-Header.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#import
-#import
-#import
-#import
diff --git a/lib/ios/MapView/CircleManager.m b/lib/ios/MapView/CircleManager.m
deleted file mode 100644
index 0daa42b1..00000000
--- a/lib/ios/MapView/CircleManager.m
+++ /dev/null
@@ -1,11 +0,0 @@
-#import
-
-@interface RCT_EXTERN_MODULE(AMapCircleManager, RCTViewManager)
-
-RCT_REMAP_VIEW_PROPERTY(center, circleCenter, CLLocationCoordinate2D)
-RCT_EXPORT_VIEW_PROPERTY(radius, double)
-RCT_EXPORT_VIEW_PROPERTY(strokeWidth, double)
-RCT_EXPORT_VIEW_PROPERTY(strokeColor, UIColor)
-RCT_EXPORT_VIEW_PROPERTY(fillColor, UIColor)
-
-@end
diff --git a/lib/ios/MapView/CircleManager.swift b/lib/ios/MapView/CircleManager.swift
deleted file mode 100644
index 2d4214fc..00000000
--- a/lib/ios/MapView/CircleManager.swift
+++ /dev/null
@@ -1,30 +0,0 @@
-@objc(AMapCircleManager)
-class AMapCircleManager: RCTViewManager {
- override class func requiresMainQueueSetup() -> Bool { false }
- override func view() -> UIView { Circle() }
-}
-
-class Circle: UIView, Overlay {
- var overlay = MACircle()
- var renderer: MACircleRenderer?
-
- @objc var radius = 0.0 { didSet { overlay.radius = radius } }
- @objc var strokeWidth = 1.0 { didSet { renderer?.lineWidth = strokeWidth } }
- @objc var strokeColor = UIColor.black { didSet { renderer?.strokeColor = strokeColor } }
- @objc var fillColor = UIColor.white { didSet { renderer?.fillColor = fillColor } }
-
- @objc func setCircleCenter(_ center: CLLocationCoordinate2D) {
- overlay.coordinate = center
- }
-
- func getOverlay() -> MABaseOverlay { overlay }
- func getRenderer() -> MAOverlayRenderer {
- if renderer == nil {
- renderer = MACircleRenderer(circle: overlay)
- renderer?.fillColor = fillColor
- renderer?.strokeColor = strokeColor
- renderer?.lineWidth = strokeWidth
- }
- return renderer!
- }
-}
diff --git a/lib/ios/MapView/HeatMapManager.m b/lib/ios/MapView/HeatMapManager.m
deleted file mode 100644
index cd7dc0d3..00000000
--- a/lib/ios/MapView/HeatMapManager.m
+++ /dev/null
@@ -1,9 +0,0 @@
-#import
-
-@interface RCT_EXTERN_MODULE(AMapHeatMapManager, RCTViewManager)
-
-RCT_EXPORT_VIEW_PROPERTY(data, NSArray)
-RCT_EXPORT_VIEW_PROPERTY(radius, int)
-RCT_EXPORT_VIEW_PROPERTY(opacity, double)
-
-@end
diff --git a/lib/ios/MapView/HeatMapManager.swift b/lib/ios/MapView/HeatMapManager.swift
deleted file mode 100644
index 49ddb6d2..00000000
--- a/lib/ios/MapView/HeatMapManager.swift
+++ /dev/null
@@ -1,29 +0,0 @@
-@objc(AMapHeatMapManager)
-class AMapHeatMapManager: RCTViewManager {
- override class func requiresMainQueueSetup() -> Bool { false }
- override func view() -> UIView { HeatMap() }
-}
-
-class HeatMap: UIView, Overlay {
- var overlay = MAHeatMapTileOverlay()
- var renderer: MATileOverlayRenderer?
-
- func getOverlay() -> MABaseOverlay { overlay }
- func getRenderer() -> MAOverlayRenderer {
- if renderer == nil {
- renderer = MATileOverlayRenderer(tileOverlay: overlay)
- }
- return renderer!
- }
-
- @objc func setRadius(_ radius: Int) { overlay.radius = radius }
- @objc func setOpacity(_ opacity: Double) { overlay.opacity = opacity }
- @objc func setData(_ data: NSArray) {
- overlay.data = data.map { it -> MAHeatMapNode in
- let item = MAHeatMapNode()
- item.coordinate = (it as! NSDictionary).coordinate
- item.intensity = 1
- return item
- }
- }
-}
diff --git a/lib/ios/MapView/MapViewManager.m b/lib/ios/MapView/MapViewManager.m
deleted file mode 100644
index aecabb29..00000000
--- a/lib/ios/MapView/MapViewManager.m
+++ /dev/null
@@ -1,35 +0,0 @@
-#import
-
-@interface RCT_EXTERN_MODULE(AMapViewManager, RCTViewManager)
-
-RCT_EXPORT_VIEW_PROPERTY(mapType, MAMapType)
-RCT_EXPORT_VIEW_PROPERTY(initialCameraPosition, NSDictionary)
-RCT_EXPORT_VIEW_PROPERTY(distanceFilter, double)
-RCT_EXPORT_VIEW_PROPERTY(headingFilter, double)
-
-RCT_REMAP_VIEW_PROPERTY(myLocationEnabled, showsUserLocation, BOOL)
-RCT_REMAP_VIEW_PROPERTY(buildingsEnabled, showsBuildings, BOOL)
-RCT_REMAP_VIEW_PROPERTY(trafficEnabled, showTraffic, BOOL)
-RCT_REMAP_VIEW_PROPERTY(indoorViewEnabled, showsIndoorMap, BOOL)
-RCT_REMAP_VIEW_PROPERTY(compassEnabled, showsCompass, BOOL)
-RCT_REMAP_VIEW_PROPERTY(scaleControlsEnabled, showsScale, BOOL)
-RCT_REMAP_VIEW_PROPERTY(scrollGesturesEnabled, scrollEnabled, BOOL)
-RCT_REMAP_VIEW_PROPERTY(zoomGesturesEnabled, zoomEnabled, BOOL)
-RCT_REMAP_VIEW_PROPERTY(rotateGesturesEnabled, rotateEnabled, BOOL)
-RCT_REMAP_VIEW_PROPERTY(tiltGesturesEnabled, rotateCameraEnabled, BOOL)
-RCT_REMAP_VIEW_PROPERTY(minZoom, minZoomLevel, double)
-RCT_REMAP_VIEW_PROPERTY(maxZoom, maxZoomLevel, double)
-
-RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
-RCT_EXPORT_VIEW_PROPERTY(onPressPoi, RCTBubblingEventBlock)
-RCT_EXPORT_VIEW_PROPERTY(onLongPress, RCTBubblingEventBlock)
-RCT_EXPORT_VIEW_PROPERTY(onCameraIdle, RCTBubblingEventBlock)
-RCT_EXPORT_VIEW_PROPERTY(onCameraMove, RCTBubblingEventBlock)
-RCT_EXPORT_VIEW_PROPERTY(onLoad, RCTDirectEventBlock)
-RCT_EXPORT_VIEW_PROPERTY(onLocation, RCTBubblingEventBlock)
-RCT_EXPORT_VIEW_PROPERTY(onCallback, RCTBubblingEventBlock)
-
-RCT_EXTERN_METHOD(moveCamera:(nonnull NSNumber *)reactTag position:(NSDictionary *)_ duration:(int)_)
-RCT_EXTERN_METHOD(call:(nonnull NSNumber *)reactTag callerId:(double)_ name:(NSString *)_ args:(NSDictionary *)_)
-
-@end
diff --git a/lib/ios/MapView/MapViewManager.swift b/lib/ios/MapView/MapViewManager.swift
deleted file mode 100644
index c79d9d2a..00000000
--- a/lib/ios/MapView/MapViewManager.swift
+++ /dev/null
@@ -1,159 +0,0 @@
-@objc(AMapViewManager)
-class AMapViewManager: RCTViewManager {
- override class func requiresMainQueueSetup() -> Bool { false }
-
- override func view() -> UIView {
- let view = MapView()
- view.delegate = view
- return view
- }
-
- @objc func moveCamera(_ reactTag: NSNumber, position: NSDictionary, duration: Int) {
- getView(reactTag: reactTag) { view in
- view.moveCamera(position: position, duration: duration)
- }
- }
-
- @objc func call(_ reactTag: NSNumber, callerId: Double, name: String, args: NSDictionary) {
- getView(reactTag: reactTag) { view in
- view.call(id: callerId, name: name, args: args)
- }
- }
-
- func getView(reactTag: NSNumber, callback: @escaping (MapView) -> Void) {
- bridge.uiManager.addUIBlock { _, viewRegistry in
- callback(viewRegistry![reactTag] as! MapView)
- }
- }
-}
-
-class MapView: MAMapView, MAMapViewDelegate {
- var initialized = false
- var overlayMap: [MABaseOverlay: Overlay] = [:]
- var markerMap: [MAPointAnnotation: Marker] = [:]
-
- @objc var onLoad: RCTBubblingEventBlock = { _ in }
- @objc var onCameraMove: RCTBubblingEventBlock = { _ in }
- @objc var onCameraIdle: RCTBubblingEventBlock = { _ in }
- @objc var onPress: RCTBubblingEventBlock = { _ in }
- @objc var onPressPoi: RCTBubblingEventBlock = { _ in }
- @objc var onLongPress: RCTBubblingEventBlock = { _ in }
- @objc var onLocation: RCTBubblingEventBlock = { _ in }
- @objc var onCallback: RCTBubblingEventBlock = { _ in }
-
- @objc func setInitialCameraPosition(_ json: NSDictionary) {
- if !initialized {
- initialized = true
- moveCamera(position: json)
- }
- }
-
- func moveCamera(position: NSDictionary, duration: Int = 0) {
- let status = MAMapStatus()
- status.zoomLevel = (position["zoom"] as? Double)?.cgFloat ?? zoomLevel
- status.cameraDegree = (position["tilt"] as? Double)?.cgFloat ?? cameraDegree
- status.rotationDegree = (position["bearing"] as? Double)?.cgFloat ?? rotationDegree
- status.centerCoordinate = (position["target"] as? NSDictionary)?.coordinate ?? centerCoordinate
- setMapStatus(status, animated: true, duration: Double(duration) / 1000)
- }
-
- func call(id: Double, name: String, args: NSDictionary) {
- switch name {
- case "getLatLng":
- callback(id: id, data: convert(args.point, toCoordinateFrom: self).json)
- default:
- break
- }
- }
-
- func callback(id: Double, data: [String: Any]) {
- onCallback(["id": id, "data": data])
- }
-
- override func didAddSubview(_ subview: UIView) {
- if let overlay = (subview as? Overlay)?.getOverlay() {
- overlayMap[overlay] = subview as? Overlay
- add(overlay)
- }
- if let annotation = (subview as? Marker)?.annotation {
- markerMap[annotation] = subview as? Marker
- addAnnotation(annotation)
- }
- }
-
- override func removeReactSubview(_ subview: UIView!) {
- super.removeReactSubview(subview)
- if let overlay = (subview as? Overlay)?.getOverlay() {
- overlayMap.removeValue(forKey: overlay)
- remove(overlay)
- }
- if let annotation = (subview as? Marker)?.annotation {
- markerMap.removeValue(forKey: annotation)
- removeAnnotation(annotation)
- }
- }
-
- func mapView(_: MAMapView, rendererFor overlay: MAOverlay) -> MAOverlayRenderer? {
- if let key = overlay as? MABaseOverlay {
- return overlayMap[key]?.getRenderer()
- }
- return nil
- }
-
- func mapView(_: MAMapView!, viewFor annotation: MAAnnotation) -> MAAnnotationView? {
- if let key = annotation as? MAPointAnnotation {
- return markerMap[key]?.getView()
- }
- return nil
- }
-
- func mapView(_: MAMapView!, annotationView view: MAAnnotationView!, didChange newState: MAAnnotationViewDragState, fromOldState _: MAAnnotationViewDragState) {
- if let key = view.annotation as? MAPointAnnotation {
- let market = markerMap[key]!
- if newState == MAAnnotationViewDragState.starting {
- market.onDragStart(nil)
- }
- if newState == MAAnnotationViewDragState.dragging {
- market.onDrag(nil)
- }
- if newState == MAAnnotationViewDragState.ending {
- market.onDragEnd(view.annotation.coordinate.json)
- }
- }
- }
-
- func mapView(_: MAMapView!, didAnnotationViewTapped view: MAAnnotationView!) {
- if let key = view.annotation as? MAPointAnnotation {
- markerMap[key]?.onPress(nil)
- }
- }
-
- func mapInitComplete(_: MAMapView!) {
- onLoad(nil)
- }
-
- func mapView(_: MAMapView!, didSingleTappedAt coordinate: CLLocationCoordinate2D) {
- onPress(coordinate.json)
- }
-
- func mapView(_: MAMapView!, didTouchPois pois: [Any]!) {
- let poi = pois[0] as! MATouchPoi
- onPressPoi(["name": poi.name!, "id": poi.uid!, "position": poi.coordinate.json])
- }
-
- func mapView(_: MAMapView!, didLongPressedAt coordinate: CLLocationCoordinate2D) {
- onLongPress(coordinate.json)
- }
-
- func mapViewRegionChanged(_: MAMapView!) {
- onCameraMove(cameraEvent)
- }
-
- func mapView(_: MAMapView!, regionDidChangeAnimated _: Bool) {
- onCameraIdle(cameraEvent)
- }
-
- func mapView(_: MAMapView!, didUpdate userLocation: MAUserLocation!, updatingLocation _: Bool) {
- onLocation(userLocation.json)
- }
-}
diff --git a/lib/ios/MapView/MarkerManager.m b/lib/ios/MapView/MarkerManager.m
deleted file mode 100644
index 1063160f..00000000
--- a/lib/ios/MapView/MarkerManager.m
+++ /dev/null
@@ -1,18 +0,0 @@
-#import
-
-@interface RCT_EXTERN_MODULE(AMapMarkerManager, RCTViewManager)
-
-RCT_EXPORT_VIEW_PROPERTY(latLng, CLLocationCoordinate2D)
-RCT_EXPORT_VIEW_PROPERTY(centerOffset, CGPoint)
-RCT_EXPORT_VIEW_PROPERTY(draggable, BOOL)
-RCT_EXPORT_VIEW_PROPERTY(zIndex, int)
-RCT_EXPORT_VIEW_PROPERTY(icon, NSDictionary)
-
-RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
-RCT_EXPORT_VIEW_PROPERTY(onDragStart, RCTBubblingEventBlock)
-RCT_EXPORT_VIEW_PROPERTY(onDrag, RCTBubblingEventBlock)
-RCT_EXPORT_VIEW_PROPERTY(onDragEnd, RCTBubblingEventBlock)
-
-RCT_EXTERN_METHOD(update:(nonnull NSNumber *)reactTag)
-
-@end
diff --git a/lib/ios/MapView/MarkerManager.swift b/lib/ios/MapView/MarkerManager.swift
deleted file mode 100644
index fd2a3035..00000000
--- a/lib/ios/MapView/MarkerManager.swift
+++ /dev/null
@@ -1,100 +0,0 @@
-@objc(AMapMarkerManager)
-class AMapMarkerManager: RCTViewManager {
- override class func requiresMainQueueSetup() -> Bool { false }
-
- override func view() -> UIView {
- let view = Marker()
- view.imageLoader = bridge.module(forName: "ImageLoader") as? RCTImageLoader
- return view
- }
-
- @objc func update(_ reactTag: NSNumber) {
- getView(reactTag: reactTag) { view in view.update() }
- }
-
- func getView(reactTag: NSNumber, callback: @escaping (Marker) -> Void) {
- bridge.uiManager.addUIBlock { _, viewRegistry in
- callback(viewRegistry![reactTag] as! Marker)
- }
- }
-}
-
-class Marker: UIView {
- var imageLoader: RCTImageLoader?
- var view: MAAnnotationView?
- var annotation = MAPointAnnotation()
- var icon: UIImage?
- var iconView: UIView?
- var centerOffset: CGPoint?
-
- @objc var draggable = false { didSet { view?.isDraggable = draggable } }
- @objc var zIndex = 1 { didSet { view?.zIndex = zIndex } }
-
- @objc var onPress: RCTDirectEventBlock = { _ in }
- @objc var onDragStart: RCTDirectEventBlock = { _ in }
- @objc var onDrag: RCTDirectEventBlock = { _ in }
- @objc var onDragEnd: RCTDirectEventBlock = { _ in }
-
- @objc func setIcon(_ icon: NSDictionary?) {
- imageLoader?.loadImage(icon) { image in
- self.icon = image
- self.view?.image = image
- self.updateCenterOffset()
- }
- }
-
- @objc func setLatLng(_ coordinate: CLLocationCoordinate2D) {
- annotation.coordinate = coordinate
- }
-
- @objc func setCenterOffset(_ centerOffset: CGPoint) {
- self.centerOffset = centerOffset
- view?.centerOffset = centerOffset
- }
-
- override func didAddSubview(_ subview: UIView) {
- subview.layer.opacity = 0
- iconView = subview
- }
-
- /**
- * subview 不能直接用作 marker 的 icon,因为在实现点聚合的时候发现,subview 一定概率无法正常 layout,会堆在右上角。
- * 于是索性把 subview 渲染成 image,原来用 subview 带来的 offset、点击问题也都不用处理了。
- * 正常情况下就把 subview 的 opacity 设成 0,需要渲染的时候才设成 1,渲染然后马上设回 0。
- */
- func update() {
- if centerOffset == nil, view != nil {
- iconView?.layer.opacity = 1
- let renderer = UIGraphicsImageRenderer(bounds: iconView!.bounds)
- view?.image = renderer.image { context in layer.render(in: context.cgContext) }
- iconView?.layer.opacity = 0
- updateCenterOffset()
- }
- }
-
- func updateCenterOffset() {
- if centerOffset == nil, view != nil {
- let size: CGSize = (view?.image.size)!
- view?.centerOffset = CGPoint(x: 0, y: -size.height / 2)
- }
- }
-
- func getView() -> MAAnnotationView {
- if view == nil {
- view = MAAnnotationView(annotation: annotation, reuseIdentifier: nil)
- if icon == nil, iconView == nil {
- view?.image = MAPinAnnotationView(annotation: annotation, reuseIdentifier: nil).image
- }
- view?.isDraggable = draggable
- view?.zIndex = zIndex
- if centerOffset != nil {
- view?.centerOffset = centerOffset!
- }
- if icon != nil {
- view?.image = icon
- updateCenterOffset()
- }
- }
- return view!
- }
-}
diff --git a/lib/ios/MapView/MultiPointManager.m b/lib/ios/MapView/MultiPointManager.m
deleted file mode 100644
index 336bbf9a..00000000
--- a/lib/ios/MapView/MultiPointManager.m
+++ /dev/null
@@ -1,9 +0,0 @@
-#import
-
-@interface RCT_EXTERN_MODULE(AMapMultiPointManager, RCTViewManager)
-
-RCT_EXPORT_VIEW_PROPERTY(items, NSArray)
-RCT_EXPORT_VIEW_PROPERTY(icon, NSDictionary)
-RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
-
-@end
diff --git a/lib/ios/MapView/MultiPointManager.swift b/lib/ios/MapView/MultiPointManager.swift
deleted file mode 100644
index 196cc353..00000000
--- a/lib/ios/MapView/MultiPointManager.swift
+++ /dev/null
@@ -1,47 +0,0 @@
-@objc(AMapMultiPointManager)
-class AMapMultiPointManager: RCTViewManager {
- override class func requiresMainQueueSetup() -> Bool { false }
-
- override func view() -> UIView {
- let view = MultiPoint()
- view.imageLoader = bridge.module(forName: "ImageLoader") as? RCTImageLoader
- return view
- }
-}
-
-class MultiPoint: UIView, Overlay, MAMultiPointOverlayRendererDelegate {
- var imageLoader: RCTImageLoader?
- var overlay: MAMultiPointOverlay?
- var renderer: MAMultiPointOverlayRenderer?
- var icon: UIImage?
-
- @objc var onPress: RCTDirectEventBlock = { _ in }
-
- @objc func setIcon(_ icon: NSDictionary) {
- imageLoader?.loadImage(icon) { image in
- self.renderer?.icon = image
- }
- }
-
- @objc func setItems(_ items: NSArray) {
- overlay = MAMultiPointOverlay(multiPointItems: items.map { it -> MAMultiPointItem in
- let item = MAMultiPointItem()
- item.coordinate = (it as! NSDictionary).coordinate
- return item
- })
- }
-
- func getOverlay() -> MABaseOverlay { overlay! }
- func getRenderer() -> MAOverlayRenderer {
- if renderer == nil {
- renderer = MAMultiPointOverlayRenderer(multiPointOverlay: overlay)
- renderer?.icon = icon
- renderer?.delegate = self
- }
- return renderer!
- }
-
- func multiPointOverlayRenderer(_: MAMultiPointOverlayRenderer!, didItemTapped item: MAMultiPointItem!) {
- onPress(["index": (overlay?.items.firstIndex(of: item))!])
- }
-}
diff --git a/lib/ios/MapView/Overlay.swift b/lib/ios/MapView/Overlay.swift
deleted file mode 100644
index 63a48714..00000000
--- a/lib/ios/MapView/Overlay.swift
+++ /dev/null
@@ -1,4 +0,0 @@
-protocol Overlay: UIView {
- func getOverlay() -> MABaseOverlay
- func getRenderer() -> MAOverlayRenderer
-}
diff --git a/lib/ios/MapView/PolygonManager.m b/lib/ios/MapView/PolygonManager.m
deleted file mode 100644
index 3243fa6f..00000000
--- a/lib/ios/MapView/PolygonManager.m
+++ /dev/null
@@ -1,10 +0,0 @@
-#import
-
-@interface RCT_EXTERN_MODULE(AMapPolygonManager, RCTViewManager)
-
-RCT_EXPORT_VIEW_PROPERTY(points, NSArray)
-RCT_EXPORT_VIEW_PROPERTY(strokeWidth, double)
-RCT_EXPORT_VIEW_PROPERTY(strokeColor, UIColor)
-RCT_EXPORT_VIEW_PROPERTY(fillColor, UIColor)
-
-@end
diff --git a/lib/ios/MapView/PolygonManager.swift b/lib/ios/MapView/PolygonManager.swift
deleted file mode 100644
index 4d87402b..00000000
--- a/lib/ios/MapView/PolygonManager.swift
+++ /dev/null
@@ -1,30 +0,0 @@
-@objc(AMapPolygonManager)
-class AMapPolygonManager: RCTViewManager {
- override class func requiresMainQueueSetup() -> Bool { false }
- override func view() -> UIView { Polygon() }
-}
-
-class Polygon: UIView, Overlay {
- var overlay = MAPolygon()
- var renderer: MAPolygonRenderer?
-
- @objc var strokeWidth = 1.0 { didSet { renderer?.lineWidth = strokeWidth } }
- @objc var strokeColor = UIColor.black { didSet { renderer?.strokeColor = strokeColor } }
- @objc var fillColor = UIColor.white { didSet { renderer?.fillColor = fillColor } }
-
- @objc func setPoints(_ points: NSArray) {
- var coordinates = points.map { it -> CLLocationCoordinate2D in (it as! NSDictionary).coordinate }
- overlay.setPolygonWithCoordinates(&coordinates, count: points.count)
- }
-
- func getOverlay() -> MABaseOverlay { overlay }
- func getRenderer() -> MAOverlayRenderer {
- if renderer == nil {
- renderer = MAPolygonRenderer(polygon: overlay)
- renderer?.fillColor = fillColor
- renderer?.strokeColor = strokeColor
- renderer?.lineWidth = strokeWidth
- }
- return renderer!
- }
-}
diff --git a/lib/ios/MapView/PolylineManager.m b/lib/ios/MapView/PolylineManager.m
deleted file mode 100644
index 718bf914..00000000
--- a/lib/ios/MapView/PolylineManager.m
+++ /dev/null
@@ -1,12 +0,0 @@
-#import
-
-@interface RCT_EXTERN_MODULE(AMapPolylineManager, RCTViewManager)
-
-RCT_EXPORT_VIEW_PROPERTY(points, NSArray)
-RCT_EXPORT_VIEW_PROPERTY(width, double)
-RCT_EXPORT_VIEW_PROPERTY(color, UIColor)
-RCT_EXPORT_VIEW_PROPERTY(dotted, BOOL)
-RCT_EXPORT_VIEW_PROPERTY(gradient, BOOL)
-RCT_EXPORT_VIEW_PROPERTY(colors, UIColorArray)
-
-@end
diff --git a/lib/ios/MapView/PolylineManager.swift b/lib/ios/MapView/PolylineManager.swift
deleted file mode 100644
index 2788ed93..00000000
--- a/lib/ios/MapView/PolylineManager.swift
+++ /dev/null
@@ -1,41 +0,0 @@
-@objc(AMapPolylineManager)
-class AMapPolylineManager: RCTViewManager {
- override class func requiresMainQueueSetup() -> Bool { false }
- override func view() -> UIView { Polyline() }
-}
-
-class Polyline: UIView, Overlay {
- var overlay = MAMultiPolyline()
- var renderer: MAMultiColoredPolylineRenderer?
-
- @objc var width = 1.0 { didSet { renderer?.lineWidth = width } }
- @objc var color = UIColor.black { didSet { renderer?.strokeColor = color } }
- @objc var gradient = false { didSet { renderer?.isGradient = gradient } }
- @objc var dotted = false { didSet { setDotted() } }
- @objc var colors: [UIColor] = [] { didSet {
- renderer?.strokeColors = colors
- overlay.drawStyleIndexes = (0 ..< colors.count).map { it in NSNumber(value: it) }
- } }
-
- @objc func setPoints(_ points: NSArray) {
- var coordinates = points.map { it -> CLLocationCoordinate2D in (it as! NSDictionary).coordinate }
- overlay.setPolylineWithCoordinates(&coordinates, count: points.count)
- }
-
- func setDotted() {
- renderer?.lineDashType = dotted ? kMALineDashTypeDot : kMALineDashTypeNone
- }
-
- func getOverlay() -> MABaseOverlay { overlay }
- func getRenderer() -> MAOverlayRenderer {
- if renderer == nil {
- renderer = MAMultiColoredPolylineRenderer(multiPolyline: overlay)
- renderer?.strokeColor = color
- renderer?.lineWidth = width
- renderer?.isGradient = gradient
- renderer?.strokeColors = colors
- setDotted()
- }
- return renderer!
- }
-}
diff --git a/lib/ios/Modules/SdkModule.m b/lib/ios/Modules/SdkModule.m
deleted file mode 100644
index 7206e76f..00000000
--- a/lib/ios/Modules/SdkModule.m
+++ /dev/null
@@ -1,8 +0,0 @@
-#import
-
-@interface RCT_EXTERN_MODULE(AMapSdk, NSObject)
-
-RCT_EXTERN_METHOD(initSDK: (NSString)apiKey)
-RCT_EXTERN_METHOD(getVersion: (RCTPromiseResolveBlock)resolve reject: (RCTPromiseRejectBlock)_)
-
-@end
diff --git a/lib/ios/Modules/SdkModule.swift b/lib/ios/Modules/SdkModule.swift
deleted file mode 100644
index c902d02f..00000000
--- a/lib/ios/Modules/SdkModule.swift
+++ /dev/null
@@ -1,16 +0,0 @@
-@objc(AMapSdk)
-class AMapSdk: NSObject {
- @objc static func requiresMainQueueSetup() -> Bool {
- false
- }
-
- @objc func initSDK(_ apiKey: String) {
- AMapServices.shared().apiKey = apiKey
- MAMapView.updatePrivacyAgree(AMapPrivacyAgreeStatus.didAgree)
- MAMapView.updatePrivacyShow(AMapPrivacyShowStatus.didShow, privacyInfo: AMapPrivacyInfoStatus.didContain)
- }
-
- @objc func getVersion(_ resolve: RCTPromiseResolveBlock, reject _: RCTPromiseRejectBlock) {
- resolve("8.0.1")
- }
-}
diff --git a/lib/ios/Utils.swift b/lib/ios/Utils.swift
deleted file mode 100644
index 13ac72c0..00000000
--- a/lib/ios/Utils.swift
+++ /dev/null
@@ -1,104 +0,0 @@
-extension NSDictionary {
- var coordinate: CLLocationCoordinate2D {
- CLLocationCoordinate2DMake(self["latitude"] as! Double, self["longitude"] as! Double)
- }
-
- var point: CGPoint {
- CGPoint(x: self["x"] as! Double, y: self["y"] as! Double)
- }
-}
-
-extension CLLocationCoordinate2D {
- var json: [String: Double] {
- ["latitude": latitude, "longitude": longitude]
- }
-}
-
-extension MAUserLocation {
- var json: [String: Any] {
- [
- "coords": [
- "latitude": coordinate.latitude,
- "longitude": coordinate.longitude,
- "altitude": location?.altitude ?? 0,
- "heading": heading?.trueHeading,
- "accuracy": location?.horizontalAccuracy ?? 0,
- "speed": location?.speed ?? 0,
- ],
- "timestamp": NSDate().timeIntervalSince1970 * 1000,
- ]
- }
-}
-
-extension MACoordinateRegion {
- var json: [String: Any] {
- [
- "southwest": [
- "latitude": center.latitude - span.latitudeDelta / 2,
- "longitude": center.longitude - span.longitudeDelta / 2,
- ],
- "northeast": [
- "latitude": center.latitude + span.latitudeDelta / 2,
- "longitude": center.longitude + span.longitudeDelta / 2,
- ],
- ]
- }
-}
-
-extension MAMapStatus {
- var json: [String: Any] {
- [
- "target": centerCoordinate.json,
- "zoom": zoomLevel,
- "bearing": rotationDegree,
- "tilt": cameraDegree,
- ]
- }
-}
-
-extension MAMapView {
- var cameraEvent: [String: Any] {
- [
- "cameraPosition": getMapStatus().json,
- "latLngBounds": region.json,
- ]
- }
-}
-
-extension Double {
- var cgFloat: CGFloat {
- CGFloat(self)
- }
-}
-
-extension RCTConvert {
- @objc static func MAMapType(_ json: Any) -> MAMapType {
- MAMapKit.MAMapType(rawValue: json as! NSInteger)!
- }
-}
-
-extension RCTImageLoader {
- func loadImage(_ icon: NSDictionary?, callback: @escaping (UIImage) -> Void) {
- if icon == nil {
- return
- }
- let width = icon?["width"] as? Double ?? 0
- let height = icon?["height"] as? Double ?? 0
- loadImage(
- with: RCTConvert.nsurlRequest(icon),
- size: CGSize(width: width, height: height),
- scale: RCTScreenScale(),
- clipped: false,
- resizeMode: RCTResizeMode.cover,
- progressBlock: { _, _ in },
- partialLoad: { _ in },
- completionBlock: { _, image in
- if image != nil {
- DispatchQueue.main.async {
- callback(image!)
- }
- }
- }
- )
- }
-}
diff --git a/lib/ios/react-native-amap3d.podspec b/lib/ios/react-native-amap3d.podspec
deleted file mode 100644
index 970eca78..00000000
--- a/lib/ios/react-native-amap3d.podspec
+++ /dev/null
@@ -1,20 +0,0 @@
-require "json"
-
-package = JSON.parse(File.read(File.join(__dir__, "../../package.json")))
-
-Pod::Spec.new do |s|
- s.name = "react-native-amap3d"
- s.version = package["version"]
- s.summary = package["description"]
- s.homepage = package["homepage"]
- s.license = package["license"]
- s.authors = package["author"]
-
- s.platforms = { :ios => "10.0" }
- s.source = { :git => "https://github.com/qiuxiang/react-native-amap3d.git", :tag => "#{s.version}" }
-
- s.source_files = "**/*.{h,m,mm,swift}"
-
- s.dependency "React-Core"
- s.dependency 'AMap3DMap', "~> 9.6.0"
-end
diff --git a/lib/src/circle.tsx b/lib/src/circle.tsx
deleted file mode 100644
index 00ab224c..00000000
--- a/lib/src/circle.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import { requireNativeComponent } from "react-native";
-import { LatLng } from "./types";
-
-export interface CircleProps {
- /**
- * 圆点坐标
- */
- center: LatLng;
-
- /**
- * 半径(米)
- */
- radius: number;
-
- /**
- * 边线宽度
- */
- strokeWidth?: number;
-
- /**
- * 边线颜色
- */
- strokeColor?: string;
-
- /**
- * 填充颜色
- */
- fillColor?: string;
-
- /**
- * 层级
- */
- zIndex?: number;
-}
-
-export default requireNativeComponent("AMapCircle");
diff --git a/lib/src/cluster/cluster-view.tsx b/lib/src/cluster/cluster-view.tsx
deleted file mode 100644
index 89fe38f7..00000000
--- a/lib/src/cluster/cluster-view.tsx
+++ /dev/null
@@ -1,47 +0,0 @@
-import * as React from "react";
-import { StyleSheet, Text, View, ViewStyle } from "react-native";
-import { ClusterParams } from ".";
-import Marker from "../marker";
-
-interface Props {
- cluster: ClusterParams;
- style?: ViewStyle;
- textStyle?: ViewStyle;
- onPress?: (params: ClusterParams) => void;
-}
-
-export default class ClusterView extends React.PureComponent {
- onPress = () => {
- this.props.onPress?.call(this, this.props.cluster);
- };
-
- renderClusterView = () => {
- const { count } = this.props.cluster;
- const size = 36 + Math.log2(count);
- const clusterStyle = { width: size, height: size, borderRadius: size / 2 };
- return (
-
- {count}
-
- );
- };
-
- render() {
- return (
-
- {this.renderClusterView()}
-
- );
- }
-}
-
-const style = StyleSheet.create({
- cluster: {
- borderWidth: 4,
- borderColor: "#fff",
- backgroundColor: "rgba(245,83,61,0.9)",
- alignItems: "center",
- justifyContent: "center",
- },
- text: { color: "#fff", fontWeight: "600" },
-});
diff --git a/lib/src/cluster/index.tsx b/lib/src/cluster/index.tsx
deleted file mode 100644
index efe1b5b0..00000000
--- a/lib/src/cluster/index.tsx
+++ /dev/null
@@ -1,159 +0,0 @@
-import * as React from "react";
-import { ViewStyle } from "react-native";
-import Supercluster, { ClusterFeature, ClusterProperties } from "supercluster";
-import { CameraEvent } from "../map-view";
-import { LatLng } from "../types";
-import ClusterView from "./cluster-view";
-
-export interface ClusterParams {
- /**
- * 唯一标识
- */
- id: number;
-
- /**
- * 包含的 Marker 数量
- */
- count: number;
-
- /**
- * 坐标
- */
- position: LatLng;
-}
-
-interface ClusterPoint {
- /**
- * 坐标
- */
- position: LatLng;
-
- /**
- * 携带的数据,可以是任意类型
- */
- properties?: any;
-}
-
-interface Props {
- /**
- * 聚合半径
- */
- radius?: number;
-
- /**
- * 聚合点样式
- */
- clusterStyle?: ViewStyle;
-
- /**
- * 聚合点文本样式
- */
- clusterTextStyle?: ViewStyle;
-
- /**
- * 坐标点列表
- */
- points: ClusterPoint[];
-
- /**
- * 渲染 Marker
- */
- renderMarker: (item: ClusterPoint) => React.ReactNode;
-
- /**
- * 渲染聚合点
- */
- renderCluster?: (params: ClusterParams) => React.ComponentType;
-
- /**
- * 聚合点点击事件
- */
- onPress?: (params: ClusterParams) => void;
-}
-
-interface State {
- clusters: ClusterFeature[];
-}
-
-export default class Cluster extends React.PureComponent {
- static defaultProps = { radius: 200 };
- state: State = { clusters: [] };
- status?: CameraEvent;
- cluster?: Supercluster;
-
- componentDidMount() {
- this.init();
- }
-
- componentDidUpdate(props: Props) {
- if (props.points != this.props.points) {
- this.init();
- }
- }
-
- async init() {
- const { radius, points } = this.props;
- // 如果主线程占用太多计算资源,会导致 ios onLoad 事件无法触发,非常蛋疼
- // 暂时想到的解决办法是等一个事件循环
- await new Promise((resolve) => setTimeout(resolve, 0));
- const options = { radius, minZoom: 3, maxZoom: 21 };
- this.cluster = new Supercluster(options).load(
- points.map((marker) => ({
- type: "Feature",
- geometry: {
- type: "Point",
- coordinates: [marker.position.longitude, marker.position.latitude],
- },
- properties: marker.properties,
- }))
- );
- if (this.status) {
- this.update(this.status);
- }
- }
-
- /**
- * 需要在 MapView.onCameraIdle({ nativeEvent }) 回调里调用,参数为 nativeEvent
- */
- async update(status: CameraEvent) {
- this.status = status;
- await new Promise((resolve) => setTimeout(resolve, 0));
- const { cameraPosition, latLngBounds } = status;
- const { southwest, northeast } = latLngBounds;
- const clusters = this.cluster!.getClusters(
- [southwest.longitude, southwest.latitude, northeast.longitude, northeast.latitude],
- Math.round(cameraPosition.zoom!)
- );
- this.setState({ clusters });
- }
-
- renderCluster = (cluster: ClusterParams) => {
- return (
-
- );
- };
-
- render() {
- const { renderCluster, renderMarker } = this.props;
- const render = renderCluster || this.renderCluster;
- return this.state.clusters.map(({ geometry, properties }) => {
- const position = {
- latitude: geometry.coordinates[1],
- longitude: geometry.coordinates[0],
- };
-
- if (properties.point_count > 0) {
- const { cluster_id, point_count } = properties;
- return render({ position, id: cluster_id, count: point_count });
- }
-
- return renderMarker({ position, properties });
- });
- }
-}
diff --git a/lib/src/component.ts b/lib/src/component.ts
deleted file mode 100644
index 95e6081e..00000000
--- a/lib/src/component.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { PureComponent } from "react";
-import { findNodeHandle, UIManager } from "react-native";
-
-export default class Component extends PureComponent
{
- /**
- * 原生 View 名称,继承时必须指定
- */
- name = "";
- mounted = false;
-
- componentDidMount() {
- this.mounted = true;
- }
-
- componentWillUnmount() {
- this.mounted = false;
- }
-
- /**
- * 调用原生方法
- */
- invoke(name: string, params?: any[]) {
- if (!this.mounted) return;
-
- const handle = findNodeHandle(this);
- if (handle) {
- const command = UIManager.getViewManagerConfig(this.name).Commands[name];
- UIManager.dispatchViewManagerCommand(handle, command, params);
- }
- }
-}
diff --git a/lib/src/heat-map.tsx b/lib/src/heat-map.tsx
deleted file mode 100644
index d9d3442d..00000000
--- a/lib/src/heat-map.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import { requireNativeComponent } from "react-native";
-import { LatLng } from "./types";
-
-export interface HeatMapProps {
- /**
- * 节点坐标
- */
- data: LatLng[];
-
- /**
- * 半径(米)
- */
- radius?: number;
-
- /**
- * 透明度
- */
- opacity?: number;
-}
-
-export default requireNativeComponent("AMapHeatMap");
diff --git a/lib/src/index.ts b/lib/src/index.ts
deleted file mode 100644
index c2ded5a2..00000000
--- a/lib/src/index.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-export { default as Circle } from "./circle";
-export { default as Cluster } from "./cluster";
-export { default as HeatMap } from "./heat-map";
-export { default as MapView } from "./map-view";
-export { default as Marker } from "./marker";
-export { default as MultiPoint } from "./multi-point";
-export { default as Polygon } from "./polygon";
-export { default as Polyline } from "./polyline";
-export * from "./types";
-export { AMapSdk };
-import * as AMapSdk from "./sdk";
diff --git a/lib/src/map-view.tsx b/lib/src/map-view.tsx
deleted file mode 100644
index e97cee5f..00000000
--- a/lib/src/map-view.tsx
+++ /dev/null
@@ -1,230 +0,0 @@
-import * as React from "react";
-import {
- NativeMethods,
- NativeSyntheticEvent,
- requireNativeComponent,
- ViewProps,
-} from "react-native";
-import Component from "./component";
-import { CameraPosition, LatLng, LatLngBounds, MapPoi, MapType, Point } from "./types";
-
-export interface CameraEvent {
- cameraPosition: CameraPosition;
- latLngBounds: LatLngBounds;
-}
-
-export interface MapViewProps extends ViewProps {
- /**
- * 地图类型
- */
- mapType?: MapType;
-
- /**
- * 初始状态
- */
- initialCameraPosition?: CameraPosition;
-
- /**
- * 是否显示当前定位
- */
- myLocationEnabled?: boolean;
-
- /**
- * 是否显示室内地图
- */
- indoorViewEnabled?: boolean;
-
- /**
- * 是否显示3D建筑
- */
- buildingsEnabled?: boolean;
-
- /**
- * 是否显示标注
- */
- labelsEnabled?: boolean;
-
- /**
- * 是否显示指南针
- */
- compassEnabled?: boolean;
-
- /**
- * 是否显示放大缩小按钮
- *
- * @platform android
- */
- zoomControlsEnabled?: boolean;
-
- /**
- * 是否显示比例尺
- */
- scaleControlsEnabled?: boolean;
-
- /**
- * 是否显示定位按钮
- *
- * @platform android
- */
- myLocationButtonEnabled?: boolean;
-
- /**
- * 是否显示路况
- */
- trafficEnabled?: boolean;
-
- /**
- * 最大缩放级别
- */
- maxZoom?: number;
-
- /**
- * 最小缩放级别
- */
- minZoom?: number;
-
- /**
- * 是否启用缩放手势,用于放大缩小
- */
- zoomGesturesEnabled?: boolean;
-
- /**
- * 是否启用滑动手势,用于平移
- */
- scrollGesturesEnabled?: boolean;
-
- /**
- * 是否启用旋转手势,用于调整方向
- */
- rotateGesturesEnabled?: boolean;
-
- /**
- * 是否启用倾斜手势,用于改变视角
- */
- tiltGesturesEnabled?: boolean;
-
- /**
- * 设定定位的最小更新距离
- *
- * @platform ios
- */
- distanceFilter?: number;
-
- /**
- * 设定最小更新角度,默认为 1 度
- *
- * @platform ios
- */
- headingFilter?: number;
-
- /**
- * 点击事件
- */
- onPress?: (event: NativeSyntheticEvent) => void;
-
- /**
- * 标注点击事件
- */
- onPressPoi?: (event: NativeSyntheticEvent) => void;
-
- /**
- * 长按事件
- */
- onLongPress?: (event: NativeSyntheticEvent) => void;
-
- /**
- * 地图状态改变事件,随地图状态变化不停地触发
- */
- onCameraMove?: (event: NativeSyntheticEvent) => void;
-
- /**
- * 地图状态改变事件,在停止变化后触发
- */
- onCameraIdle?: (event: NativeSyntheticEvent) => void;
-
- /**
- * 地图初始化完成事件
- */
- onLoad?: (event: NativeSyntheticEvent) => void;
-
- /**
- * 地图定位更新事件
- */
- onLocation?: (event: NativeSyntheticEvent) => void;
-}
-
-const name = "AMapView";
-const NativeMapView = requireNativeComponent(name);
-
-export default class extends Component {
- static defaultProps = {
- style: { flex: 1 },
- compassEnabled: true,
- scaleControlsEnabled: true,
- distanceFilter: 1,
- };
-
- name = name;
- ref?: (React.Component & NativeMethods) | null;
- state = { loaded: false };
- callbackMap: { [key: number]: (data: any) => void } = {};
-
- /**
- * 移动视角
- */
- moveCamera(cameraPosition: CameraPosition, duration = 0) {
- this.invoke("moveCamera", [cameraPosition, duration]);
- }
-
- /**
- * 点坐标转地理坐标,主要用于地图选点
- */
- getLatLng(point: Point): Promise {
- return this.call("getLatLng", point);
- }
-
- callback = ({ nativeEvent }: NativeSyntheticEvent<{ id: number; data: any }>) => {
- this.callbackMap[nativeEvent.id]?.call(this, nativeEvent.data);
- delete this.callbackMap[nativeEvent.id];
- };
-
- call(name: string, args: any): Promise {
- const id = Math.random();
- this.invoke("call", [id, name, args]);
- return new Promise((resolve) => (this.callbackMap[id] = resolve));
- }
-
- componentDidMount() {
- super.componentDidMount();
- // 无论如何也要在 1 秒后 setLoaded(true) ,防止 onLoad 事件不触发的情况下显示不正常
- // 目前只在 iOS 上低概率出现
- setTimeout(() => this.setState({ loaded: true }), 1000);
- }
-
- render() {
- let { style, onLoad } = this.props;
- if (!this.state.loaded) {
- style = [style, { width: 1, height: 1 }];
- }
- return (
- (this.ref = ref)}
- style={style}
- // @ts-ignore: 内部接口
- onCallback={this.callback}
- onPress={(event) => {
- if (event.nativeEvent.latitude) {
- this.props.onPress?.call(this, event);
- }
- }}
- onLoad={(event) => {
- // android 地图部分控件不显示的问题在重新 layout 之后会恢复正常。
- // 同时也能修复 ios 地图偶尔出现的 layout 异常
- this.setState({ loaded: true });
- onLoad?.call(this, event);
- }}
- />
- );
- }
-}
diff --git a/lib/src/marker.tsx b/lib/src/marker.tsx
deleted file mode 100644
index 7e46cd5a..00000000
--- a/lib/src/marker.tsx
+++ /dev/null
@@ -1,128 +0,0 @@
-import * as React from "react";
-import {
- ImageSourcePropType,
- NativeSyntheticEvent,
- requireNativeComponent,
- View,
- ViewStyle,
-} from "react-native";
-// @ts-ignore
-import resolveAssetSource from "react-native/Libraries/Image/resolveAssetSource";
-import Component from "./component";
-import { LatLng, Point } from "./types";
-
-export interface MarkerProps {
- /**
- * 坐标
- */ position: LatLng;
-
- /**
- * 图标
- */
- icon?: ImageSourcePropType;
-
- /**
- * 透明度 [0, 1]
- *
- * @platform android
- */
- opacity?: number;
-
- /**
- * 是否可拖拽
- */
- draggable?: boolean;
-
- /**
- * 是否平贴地图
- *
- * @platform android
- */
- flat?: boolean;
-
- /**
- * 层级
- */
- zIndex?: number;
-
- /**
- * 覆盖物锚点比例
- *
- * @link http://a.amap.com/lbs/static/unzip/Android_Map_Doc/3D/com/amap/api/maps/model/Marker.html#setAnchor-float-float-
- * @platform android
- */
- anchor?: Point;
-
- /**
- * 覆盖物偏移位置
- *
- * @link http://a.amap.com/lbs/static/unzip/iOS_Map_Doc/AMap_iOS_API_Doc_3D/interface_m_a_annotation_view.html#a78f23c1e6a6d92faf12a00877ac278a7
- * @platform ios
- */
- centerOffset?: Point;
-
- /**
- * 自定义 View
- */
- children?: React.ReactNode;
-
- /**
- * 点击事件
- */
- onPress?: () => void;
-
- /**
- * 拖放开始事件
- */
- onDragStart?: () => void;
-
- /**
- * 拖放进行事件,类似于 mousemove,在结束之前会不断调用
- */
- onDrag?: () => void;
-
- /**
- * 拖放结束事件
- */
- onDragEnd?: (event: NativeSyntheticEvent) => void;
-}
-
-export default class extends Component {
- name = name;
-
- /**
- * 触发自定义 view 更新
- *
- * 通常来说,不需要主动调用该方法,对于 android,如果自定义 view 存在异步更新,
- * 例如,包含一个引用了网络图片的 ,则需要在 view 更新后主动调用该方法触发
- * icon 更新。
- */
- update = () => {
- setTimeout(() => this.invoke("update"), 0);
- };
-
- componentDidUpdate() {
- if (this.props.children) {
- this.update();
- }
- }
-
- render() {
- const props = { ...this.props };
- Reflect.set(props, "latLng", props.position);
- // @ts-ignore android 不能用 position 作为属性,会发生冲突,也是个蛋疼的问题
- delete props.position;
- if (props.children) {
- props.children = (
-
- {props.children}
-
- );
- }
- return ;
- }
-}
-
-const name = "AMapMarker";
-const style: ViewStyle = { position: "absolute", zIndex: -1 };
-const NativeMarker = requireNativeComponent(name);
diff --git a/lib/src/multi-point.tsx b/lib/src/multi-point.tsx
deleted file mode 100644
index ba5f1740..00000000
--- a/lib/src/multi-point.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import * as React from "react";
-import { ImageSourcePropType, NativeSyntheticEvent, requireNativeComponent } from "react-native";
-// @ts-ignore
-import resolveAssetSource from "react-native/Libraries/Image/resolveAssetSource";
-import { LatLng } from "./types";
-
-const NativeMultiPoint = requireNativeComponent("AMapMultiPoint");
-
-export interface MultiPointProps {
- /**
- * 坐标点集合
- */
- items?: LatLng[];
-
- /**
- * 图标
- */
- icon?: ImageSourcePropType;
-
- /**
- * 点击事件
- */
- onPress?: (event: NativeSyntheticEvent<{ index: number }>) => void;
-}
-
-export default (props: MultiPointProps) => {
- return ;
-};
diff --git a/lib/src/polygon.tsx b/lib/src/polygon.tsx
deleted file mode 100644
index 87ab9106..00000000
--- a/lib/src/polygon.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import { requireNativeComponent } from "react-native";
-import { LatLng } from "./types";
-
-export interface Polygon {
- /**
- * 节点坐标
- */
- points: LatLng[];
-
- /**
- * 边线宽度
- */
- strokeWidth?: number;
-
- /**
- * 边线颜色
- */
- strokeColor?: string;
-
- /**
- * 填充颜色
- */
- fillColor?: string;
-
- /**
- * 层级
- */
- zIndex?: number;
-}
-
-export default requireNativeComponent("AMapPolygon");
diff --git a/lib/src/polyline.tsx b/lib/src/polyline.tsx
deleted file mode 100644
index d4146932..00000000
--- a/lib/src/polyline.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import * as React from "react";
-import { ColorValue, Platform, processColor, requireNativeComponent } from "react-native";
-import { LatLng } from "./types";
-
-export interface PolylineProps {
- /**
- * 节点坐标
- */
- points: LatLng[];
-
- /**
- * 线段宽度
- */
- width?: number;
-
- /**
- * 线段颜色
- */
- color?: ColorValue;
-
- /**
- * 层级
- */
- zIndex?: number;
-
- /**
- * 多段颜色
- */
- colors: ColorValue[];
-
- /**
- * 是否使用颜色渐变
- */
- gradient?: boolean;
-
- /**
- * 是否绘制大地线
- */
- geodesic?: boolean;
-
- /**
- * 是否绘制虚线
- */
- dotted?: boolean;
-
- /**
- * 点击事件
- */
- onPress?: () => void;
-}
-
-export default class extends React.PureComponent {
- static defaultProps = { colors: [] };
-
- render() {
- const props = {
- ...this.props,
- ...Platform.select({ android: { colors: this.props.colors.map(processColor) } }),
- };
- // @ts-ignore
- return ;
- }
-}
-
-const NativePolyline = requireNativeComponent("AMapPolyline");
diff --git a/lib/src/sdk.ts b/lib/src/sdk.ts
deleted file mode 100644
index 05290f59..00000000
--- a/lib/src/sdk.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { NativeModules } from "react-native";
-
-const { AMapSdk } = NativeModules;
-
-export function init(apiKey?: string) {
- AMapSdk.initSDK(apiKey);
-}
-
-export function getVersion(): Promise {
- return AMapSdk.getVersion();
-}
diff --git a/lib/src/types.ts b/lib/src/types.ts
deleted file mode 100644
index aa16ba45..00000000
--- a/lib/src/types.ts
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
- * 点坐标
- */
-export interface Point {
- x: number;
- y: number;
-}
-
-/**
- * 地理坐标
- */
-export interface LatLng {
- /**
- * 纬度
- */
- latitude: number;
-
- /**
- * 经度
- */
- longitude: number;
-}
-
-/**
- * 地图标注点
- */
-export interface MapPoi {
- /**
- * 标注点 ID
- */
- id: string;
-
- /**
- * 标注点名称
- */
- name: string;
-
- /**
- * 标注点坐标
- */
- position: LatLng;
-}
-
-/**
- * 矩形坐标边界
- */
-export interface LatLngBounds {
- /**
- * 西南坐标
- */
- southwest: LatLng;
-
- /**
- * 东北坐标
- */
- northeast: LatLng;
-}
-
-/**
- * 地图状态
- */
-export interface CameraPosition {
- /**
- * 中心坐标
- */
- target?: LatLng;
-
- /**
- * 缩放级别
- */
- zoom?: number;
-
- /**
- * 朝向、旋转角度
- */
- bearing?: number;
-
- /**
- * 倾斜角度
- */
- tilt?: number;
-}
-
-/**
- * 定位
- */
-export interface Location extends LatLng {
- /**
- * 精度
- */
- accuracy: number;
-
- /**
- * 朝向
- */
- heading: number;
-
- /**
- * 海拔
- */
- altitude: number;
-
- /**
- * 运动速度
- */
- speed: number;
-}
-
-/**
- * 地图类型
- */
-export enum MapType {
- /**
- * 标准地图
- */
- Standard,
-
- /**
- * 卫星地图
- */
- Satellite,
-
- /**
- * 夜间地图
- */
- Night,
-
- /**
- * 导航地图
- */
- Navi,
-
- /**
- * 公交地图
- */
- Bus,
-}
diff --git a/package.json b/package.json
index 0a43b856..d921cd59 100644
--- a/package.json
+++ b/package.json
@@ -10,42 +10,30 @@
"maps",
"mapview"
],
- "main": "lib/src",
- "files": [
- "lib/src",
- "lib/android/src",
- "lib/android/build.gradle",
- "lib/ios",
- "react-native.config.js",
- "react-native-amap3d.podspec"
- ],
"homepage": "https://github.com/qiuxiang/react-native-amap3d",
"repository": {
"type": "git",
"url": "https://github.com/qiuxiang/react-native-amap3d"
},
- "scripts": {
- "start": "react-native start",
- "android": "react-native run-android",
- "release-android": "react-native run-android --variant=release",
- "reload": "adb reverse tcp:8081 tcp:8081 && adb shell input text rr",
- "ios": "react-native run-ios"
- },
"dependencies": {
- "supercluster": "^7.1.4"
+ "supercluster": "^8.0.1"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
},
"devDependencies": {
- "@react-native-picker/picker": "^2.4.8",
- "@react-navigation/native": "^6.1.3",
- "@react-navigation/native-stack": "^6.9.9",
- "@types/react-native": "^0.71.2",
+ "@tsconfig/react-native": "^3.0.2",
+ "@types/react-native": "^0.72.2",
"@types/supercluster": "^7.1.0",
- "react": "18.2.0",
- "react-native": "^0.71.2",
- "react-native-safe-area-context": "^4.5.0",
- "react-native-screens": "^3.19.0"
+ "jest": "^29.6.4"
},
- "prettier": {
- "printWidth": 100
+ "codegenConfig": {
+ "name": "amap",
+ "type": "all",
+ "jsSrcsDir": "js",
+ "android": {
+ "javaPackageName": "react_native.amap"
+ }
}
}
diff --git a/react-native-amap3d.podspec b/react-native-amap3d.podspec
deleted file mode 100644
index 2de92b61..00000000
--- a/react-native-amap3d.podspec
+++ /dev/null
@@ -1,20 +0,0 @@
-require "json"
-
-package = JSON.parse(File.read(File.join(__dir__, "package.json")))
-
-Pod::Spec.new do |s|
- s.name = "react-native-amap3d"
- s.version = package["version"]
- s.summary = package["description"]
- s.homepage = package["homepage"]
- s.license = package["license"]
- s.authors = package["author"]
-
- s.platforms = { :ios => "10.0" }
- s.source = { :git => "https://github.com/qiuxiang/react-native-amap3d.git", :tag => "#{s.version}" }
-
- s.source_files = "lib/ios/**/*.{h,m,mm,swift}"
-
- s.dependency "React-Core"
- s.dependency 'AMap3DMap', "~> 9.6.0"
-end
diff --git a/react-native.config.js b/react-native.config.js
deleted file mode 100644
index 2547c556..00000000
--- a/react-native.config.js
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = {
- dependency: {
- platforms: {
- ios: { project: "lib/ios/react-native-amap3d.podspec" },
- android: { sourceDir: "lib/android" },
- },
- },
- dependencies: {
- "react-native-amap3d": {
- root: __dirname,
- platforms: {
- android: {
- sourceDir: __dirname + "/lib/android",
- packageImportPath: "import qiuxiang.amap3d.AMap3DPackage;",
- packageInstance: "new AMap3DPackage()",
- },
- },
- },
- },
-};
diff --git a/tsconfig.json b/tsconfig.json
index 589ea0bf..45a6c707 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,11 +1,3 @@
{
- "compilerOptions": {
- "strict": true,
- "jsx": "react-native",
- "esModuleInterop": true,
- "baseUrl": ".",
- "paths": {
- "react-native-amap3d": ["lib/src"]
- }
- }
+ "extends": "@tsconfig/react-native/tsconfig.json"
}