diff --git a/.buckconfig b/.buckconfig
new file mode 100644
index 0000000..934256c
--- /dev/null
+++ b/.buckconfig
@@ -0,0 +1,6 @@
+
+[android]
+ target = Google Inc.:Google APIs:23
+
+[maven_repositories]
+ central = https://repo1.maven.org/maven2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..cc53454
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,60 @@
+# OSX
+#
+.DS_Store
+
+# Xcode
+#
+build/
+*.pbxuser
+!default.pbxuser
+*.mode1v3
+!default.mode1v3
+*.mode2v3
+!default.mode2v3
+*.perspectivev3
+!default.perspectivev3
+xcuserdata
+*.xccheckout
+*.moved-aside
+DerivedData
+*.hmap
+*.ipa
+*.xcuserstate
+
+# Android/IntelliJ
+#
+build/
+.idea
+.gradle
+local.properties
+*.iml
+*.hprof
+
+# node.js
+#
+node_modules/
+npm-debug.log
+yarn-error.log
+
+# BUCK
+buck-out/
+\.buckd/
+*.keystore
+!debug.keystore
+
+# fastlane
+#
+# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
+# screenshots whenever they are needed.
+# For more information about the recommended setup visit:
+# https://docs.fastlane.tools/best-practices/source-control/
+
+*/fastlane/report.xml
+*/fastlane/Preview.html
+*/fastlane/screenshots
+
+# Bundle artifact
+*.jsbundle
+
+# CocoaPods
+/ios/Pods/
diff --git a/App.tsx b/App.tsx
new file mode 100644
index 0000000..b2e1f44
--- /dev/null
+++ b/App.tsx
@@ -0,0 +1,21 @@
+import React from 'react';
+import {StyleSheet} from 'react-native';
+import {NavigationContainer} from '@react-navigation/native';
+import {RootNavigator} from './src/navigation/RootNavigator';
+
+export default function App() {
+ return (
+
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#fff',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+});
diff --git a/__tests__/App-test.js b/__tests__/App-test.js
new file mode 100644
index 0000000..1784766
--- /dev/null
+++ b/__tests__/App-test.js
@@ -0,0 +1,14 @@
+/**
+ * @format
+ */
+
+import 'react-native';
+import React from 'react';
+import App from '../App';
+
+// Note: test renderer must be required after react-native.
+import renderer from 'react-test-renderer';
+
+it('renders correctly', () => {
+ renderer.create( );
+});
diff --git a/android/app/_BUCK b/android/app/_BUCK
new file mode 100644
index 0000000..884baa1
--- /dev/null
+++ b/android/app/_BUCK
@@ -0,0 +1,55 @@
+# To learn about Buck see [Docs](https://buckbuild.com/).
+# To run your application with Buck:
+# - install Buck
+# - `npm start` - to start the packager
+# - `cd android`
+# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
+# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
+# - `buck install -r android/app` - compile, install and run application
+#
+
+load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
+
+lib_deps = []
+
+create_aar_targets(glob(["libs/*.aar"]))
+
+create_jar_targets(glob(["libs/*.jar"]))
+
+android_library(
+ name = "all-libs",
+ exported_deps = lib_deps,
+)
+
+android_library(
+ name = "app-code",
+ srcs = glob([
+ "src/main/java/**/*.java",
+ ]),
+ deps = [
+ ":all-libs",
+ ":build_config",
+ ":res",
+ ],
+)
+
+android_build_config(
+ name = "build_config",
+ package = "com.pairlunchpicker",
+)
+
+android_resource(
+ name = "res",
+ package = "com.pairlunchpicker",
+ res = "src/main/res",
+)
+
+android_binary(
+ name = "app",
+ keystore = "//android/keystores:debug",
+ manifest = "src/main/AndroidManifest.xml",
+ package_type = "debug",
+ deps = [
+ ":app-code",
+ ],
+)
diff --git a/android/app/build.gradle b/android/app/build.gradle
new file mode 100644
index 0000000..bcd6f13
--- /dev/null
+++ b/android/app/build.gradle
@@ -0,0 +1,230 @@
+apply plugin: "com.android.application"
+apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
+
+import com.android.build.OutputFile
+
+/**
+ * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
+ * and bundleReleaseJsAndAssets).
+ * These basically call `react-native bundle` with the correct arguments during the Android build
+ * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
+ * bundle directly from the development server. Below you can see all the possible configurations
+ * and their defaults. If you decide to add a configuration block, make sure to add it before the
+ * `apply from: "../../node_modules/react-native/react.gradle"` line.
+ *
+ * project.ext.react = [
+ * // the name of the generated asset file containing your JS bundle
+ * bundleAssetName: "index.android.bundle",
+ *
+ * // the entry file for bundle generation. If none specified and
+ * // "index.android.js" exists, it will be used. Otherwise "index.js" is
+ * // default. Can be overridden with ENTRY_FILE environment variable.
+ * entryFile: "index.android.js",
+ *
+ * // https://reactnative.dev/docs/performance#enable-the-ram-format
+ * bundleCommand: "ram-bundle",
+ *
+ * // whether to bundle JS and assets in debug mode
+ * bundleInDebug: false,
+ *
+ * // whether to bundle JS and assets in release mode
+ * bundleInRelease: true,
+ *
+ * // whether to bundle JS and assets in another build variant (if configured).
+ * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
+ * // The configuration property can be in the following formats
+ * // 'bundleIn${productFlavor}${buildType}'
+ * // 'bundleIn${buildType}'
+ * // bundleInFreeDebug: true,
+ * // bundleInPaidRelease: true,
+ * // bundleInBeta: true,
+ *
+ * // whether to disable dev mode in custom build variants (by default only disabled in release)
+ * // for example: to disable dev mode in the staging build type (if configured)
+ * devDisabledInStaging: true,
+ * // The configuration property can be in the following formats
+ * // 'devDisabledIn${productFlavor}${buildType}'
+ * // 'devDisabledIn${buildType}'
+ *
+ * // the root of your project, i.e. where "package.json" lives
+ * root: "../../",
+ *
+ * // where to put the JS bundle asset in debug mode
+ * jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
+ *
+ * // where to put the JS bundle asset in release mode
+ * jsBundleDirRelease: "$buildDir/intermediates/assets/release",
+ *
+ * // where to put drawable resources / React Native assets, e.g. the ones you use via
+ * // require('./image.png')), in debug mode
+ * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
+ *
+ * // where to put drawable resources / React Native assets, e.g. the ones you use via
+ * // require('./image.png')), in release mode
+ * resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
+ *
+ * // by default the gradle tasks are skipped if none of the JS files or assets change; this means
+ * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
+ * // date; if you have any other folders that you want to ignore for performance reasons (gradle
+ * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
+ * // for example, you might want to remove it from here.
+ * inputExcludes: ["android/**", "ios/**"],
+ *
+ * // override which node gets called and with what additional arguments
+ * nodeExecutableAndArgs: ["node"],
+ *
+ * // supply additional arguments to the packager
+ * extraPackagerArgs: []
+ * ]
+ */
+
+project.ext.react = [
+ enableHermes: false, // clean and rebuild if changing
+]
+
+apply from: "../../node_modules/react-native/react.gradle"
+
+/**
+ * Set this to true to create two separate APKs instead of one:
+ * - An APK that only works on ARM devices
+ * - An APK that only works on x86 devices
+ * The advantage is the size of the APK is reduced by about 4MB.
+ * Upload all the APKs to the Play Store and people will download
+ * the correct one based on the CPU architecture of their device.
+ */
+def enableSeparateBuildPerCPUArchitecture = false
+
+/**
+ * Run Proguard to shrink the Java bytecode in release builds.
+ */
+def enableProguardInReleaseBuilds = false
+
+/**
+ * The preferred build flavor of JavaScriptCore.
+ *
+ * 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:+'
+
+/**
+ * Whether to enable the Hermes VM.
+ *
+ * This should be set on project.ext.react and that value will be read here. If it is not set
+ * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
+ * and the benefits of using Hermes will therefore be sharply reduced.
+ */
+def enableHermes = project.ext.react.get("enableHermes", false);
+
+/**
+ * Architectures to build native code for in debug.
+ */
+def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures")
+
+android {
+ ndkVersion rootProject.ext.ndkVersion
+
+ compileSdkVersion rootProject.ext.compileSdkVersion
+
+ defaultConfig {
+ applicationId "com.pairlunchpicker"
+ minSdkVersion rootProject.ext.minSdkVersion
+ targetSdkVersion rootProject.ext.targetSdkVersion
+ versionCode 1
+ versionName "1.0"
+ }
+ splits {
+ abi {
+ reset()
+ enable enableSeparateBuildPerCPUArchitecture
+ universalApk false // If true, also generate a universal APK
+ include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
+ }
+ }
+ signingConfigs {
+ debug {
+ storeFile file('debug.keystore')
+ storePassword 'qwerty123'
+ keyAlias 'key0'
+ keyPassword 'qwerty123'
+ }
+ }
+ buildTypes {
+ debug {
+ signingConfig signingConfigs.debug
+ if (nativeArchitectures) {
+ ndk {
+ abiFilters nativeArchitectures.split(',')
+ }
+ }
+ }
+ release {
+ // Caution! In production, you need to generate your own keystore file.
+ // see https://reactnative.dev/docs/signed-apk-android.
+ signingConfig signingConfigs.debug
+ minifyEnabled enableProguardInReleaseBuilds
+ proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
+ }
+ }
+
+ // applicationVariants are e.g. debug, release
+ applicationVariants.all { variant ->
+ variant.outputs.each { output ->
+ // For each separate APK per architecture, set a unique version code as described here:
+ // https://developer.android.com/studio/build/configure-apk-splits.html
+ // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
+ def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
+ def abi = output.getFilter(OutputFile.ABI)
+ if (abi != null) { // null for the universal-debug, universal-release variants
+ output.versionCodeOverride =
+ defaultConfig.versionCode * 1000 + versionCodes.get(abi)
+ }
+
+ }
+ }
+}
+
+dependencies {
+ implementation fileTree(dir: "libs", include: ["*.jar"])
+ //noinspection GradleDynamicVersion
+ implementation "com.facebook.react:react-native:+" // From node_modules
+
+ implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
+
+ implementation 'com.google.android.gms:play-services-auth:20.1.0'
+
+ debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
+ exclude group:'com.facebook.fbjni'
+ }
+
+ debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
+ exclude group:'com.facebook.flipper'
+ exclude group:'com.squareup.okhttp3', module:'okhttp'
+ }
+
+ debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
+ exclude group:'com.facebook.flipper'
+ }
+
+ if (enableHermes) {
+ def hermesPath = "../../node_modules/hermes-engine/android/";
+ debugImplementation files(hermesPath + "hermes-debug.aar")
+ releaseImplementation files(hermesPath + "hermes-release.aar")
+ } else {
+ implementation jscFlavor
+ }
+}
+
+// Run this once to be able to run the application with BUCK
+// puts all compile dependencies into folder libs for BUCK to use
+task copyDownloadableDepsToLibs(type: Copy) {
+ from configurations.implementation
+ into 'libs'
+}
+
+apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
diff --git a/android/app/build_defs.bzl b/android/app/build_defs.bzl
new file mode 100644
index 0000000..fff270f
--- /dev/null
+++ b/android/app/build_defs.bzl
@@ -0,0 +1,19 @@
+"""Helper definitions to glob .aar and .jar targets"""
+
+def create_aar_targets(aarfiles):
+ for aarfile in aarfiles:
+ name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
+ lib_deps.append(":" + name)
+ android_prebuilt_aar(
+ name = name,
+ aar = aarfile,
+ )
+
+def create_jar_targets(jarfiles):
+ for jarfile in jarfiles:
+ name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
+ lib_deps.append(":" + name)
+ prebuilt_jar(
+ name = name,
+ binary_jar = jarfile,
+ )
diff --git a/android/app/debug.keystore b/android/app/debug.keystore
new file mode 100644
index 0000000..f6ff79d
Binary files /dev/null and b/android/app/debug.keystore differ
diff --git a/android/app/debug/app-debug.aab b/android/app/debug/app-debug.aab
new file mode 100644
index 0000000..47c17c3
Binary files /dev/null and b/android/app/debug/app-debug.aab differ
diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro
new file mode 100644
index 0000000..11b0257
--- /dev/null
+++ b/android/app/proguard-rules.pro
@@ -0,0 +1,10 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000..b2f3ad9
--- /dev/null
+++ b/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/android/app/src/debug/java/com/pairlunchpicker/ReactNativeFlipper.java b/android/app/src/debug/java/com/pairlunchpicker/ReactNativeFlipper.java
new file mode 100644
index 0000000..e47a436
--- /dev/null
+++ b/android/app/src/debug/java/com/pairlunchpicker/ReactNativeFlipper.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) Facebook, Inc. and its 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.pairlunchpicker;
+
+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.react.ReactFlipperPlugin;
+import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
+import com.facebook.react.ReactInstanceManager;
+import com.facebook.react.bridge.ReactContext;
+import com.facebook.react.modules.network.NetworkingModule;
+import okhttp3.OkHttpClient;
+
+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 ReactFlipperPlugin());
+ 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 ReactInstanceManager.ReactInstanceEventListener() {
+ @Override
+ public void onReactContextInitialized(ReactContext reactContext) {
+ reactInstanceManager.removeReactInstanceEventListener(this);
+ reactContext.runOnNativeModulesQueueThread(
+ new Runnable() {
+ @Override
+ public void run() {
+ client.addPlugin(new FrescoFlipperPlugin());
+ }
+ });
+ }
+ });
+ } else {
+ client.addPlugin(new FrescoFlipperPlugin());
+ }
+ }
+ }
+}
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..11b96cb
--- /dev/null
+++ b/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/java/com/pairlunchpicker/MainActivity.java b/android/app/src/main/java/com/pairlunchpicker/MainActivity.java
new file mode 100644
index 0000000..98c7dfa
--- /dev/null
+++ b/android/app/src/main/java/com/pairlunchpicker/MainActivity.java
@@ -0,0 +1,15 @@
+package com.pairlunchpicker;
+
+import com.facebook.react.ReactActivity;
+
+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 "PairLunchPicker";
+ }
+}
diff --git a/android/app/src/main/java/com/pairlunchpicker/MainApplication.java b/android/app/src/main/java/com/pairlunchpicker/MainApplication.java
new file mode 100644
index 0000000..9d7cfea
--- /dev/null
+++ b/android/app/src/main/java/com/pairlunchpicker/MainApplication.java
@@ -0,0 +1,81 @@
+package com.pairlunchpicker;
+
+import android.app.Application;
+import android.content.Context;
+import com.facebook.react.PackageList;
+import com.facebook.react.ReactApplication;
+import com.oblador.vectoricons.VectorIconsPackage;
+import com.facebook.react.ReactInstanceManager;
+import com.facebook.react.ReactNativeHost;
+import com.facebook.react.ReactPackage;
+import com.facebook.soloader.SoLoader;
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+
+public class MainApplication extends Application implements ReactApplication {
+
+ private final ReactNativeHost mReactNativeHost =
+ new ReactNativeHost(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
+ public ReactNativeHost getReactNativeHost() {
+ return mReactNativeHost;
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ SoLoader.init(this, /* native exopackage */ false);
+ initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
+ }
+
+ /**
+ * Loads Flipper in React Native templates. Call this in the onCreate method with something like
+ * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
+ *
+ * @param context
+ * @param reactInstanceManager
+ */
+ private static void initializeFlipper(
+ Context context, ReactInstanceManager reactInstanceManager) {
+ if (BuildConfig.DEBUG) {
+ try {
+ /*
+ We use reflection here to pick up the class that initializes Flipper,
+ since Flipper library is not available in release mode
+ */
+ Class> aClass = Class.forName("com.pairlunchpicker.ReactNativeFlipper");
+ aClass
+ .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
+ .invoke(null, context, reactInstanceManager);
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
diff --git a/android/app/src/main/res/drawable/rn_edit_text_material.xml b/android/app/src/main/res/drawable/rn_edit_text_material.xml
new file mode 100644
index 0000000..f35d996
--- /dev/null
+++ b/android/app/src/main/res/drawable/rn_edit_text_material.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..a2f5908
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..1b52399
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..ff10afd
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..115a4c7
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..dcd3cd8
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..459ca60
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..8ca12fe
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..8e19b41
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..b824ebd
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..4c19a13
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..d9324ed
--- /dev/null
+++ b/android/app/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ PairLunchPicker
+
diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..7ba83a2
--- /dev/null
+++ b/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/android/build.gradle b/android/build.gradle
new file mode 100644
index 0000000..3be1031
--- /dev/null
+++ b/android/build.gradle
@@ -0,0 +1,42 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ ext {
+ buildToolsVersion = "30.0.2"
+ minSdkVersion = 21
+ compileSdkVersion = 30
+ targetSdkVersion = 30
+ ndkVersion = "21.4.7075529"
+ }
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath("com.android.tools.build:gradle:4.2.2")
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ maven {
+ // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
+ url("$rootDir/../node_modules/react-native/android")
+ }
+ maven {
+ // Android JSC is installed from npm
+ url("$rootDir/../node_modules/jsc-android/dist")
+ }
+ mavenCentral {
+ // We don't want to fetch react-native from Maven Central as there are
+ // older versions over there.
+ content {
+ excludeGroup "com.facebook.react"
+ }
+ }
+ google()
+ maven { url 'https://www.jitpack.io' }
+ }
+}
diff --git a/android/gradle.properties b/android/gradle.properties
new file mode 100644
index 0000000..11d6e02
--- /dev/null
+++ b/android/gradle.properties
@@ -0,0 +1,28 @@
+# 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: -Xmx1024m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# 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.99.0
diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
Binary files /dev/null and b/android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..a0f7639
--- /dev/null
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/android/gradlew b/android/gradlew
new file mode 100755
index 0000000..4f906e0
--- /dev/null
+++ b/android/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or 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 UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# 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
+ ;;
+ 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" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/android/gradlew.bat b/android/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/android/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/android/settings.gradle b/android/settings.gradle
new file mode 100644
index 0000000..76eecae
--- /dev/null
+++ b/android/settings.gradle
@@ -0,0 +1,5 @@
+rootProject.name = 'PairLunchPicker'
+include ':react-native-vector-icons'
+project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
+apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
+include ':app'
diff --git a/app.json b/app.json
new file mode 100644
index 0000000..c2d36c3
--- /dev/null
+++ b/app.json
@@ -0,0 +1,4 @@
+{
+ "name": "PairLunchPicker",
+ "displayName": "PairLunchPicker"
+}
\ No newline at end of file
diff --git a/babel.config.js b/babel.config.js
new file mode 100644
index 0000000..f842b77
--- /dev/null
+++ b/babel.config.js
@@ -0,0 +1,3 @@
+module.exports = {
+ presets: ['module:metro-react-native-babel-preset'],
+};
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..a850d03
--- /dev/null
+++ b/index.js
@@ -0,0 +1,9 @@
+/**
+ * @format
+ */
+
+import {AppRegistry} from 'react-native';
+import App from './App';
+import {name as appName} from './app.json';
+
+AppRegistry.registerComponent(appName, () => App);
diff --git a/ios/GoogleService-Info.plist b/ios/GoogleService-Info.plist
new file mode 100644
index 0000000..b52b1d0
--- /dev/null
+++ b/ios/GoogleService-Info.plist
@@ -0,0 +1,14 @@
+
+
+
+
+ CLIENT_ID
+ 862454311308-0ggt7j01k5fkgrs7g7eqg466eku122uu.apps.googleusercontent.com
+ REVERSED_CLIENT_ID
+ com.googleusercontent.apps.862454311308-0ggt7j01k5fkgrs7g7eqg466eku122uu
+ PLIST_VERSION
+ 1
+ BUNDLE_ID
+ org.reactjs.native.example.PairLunchPicker
+
+
\ No newline at end of file
diff --git a/ios/PairLunchPicker.xcodeproj/project.pbxproj b/ios/PairLunchPicker.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..e78eb8b
--- /dev/null
+++ b/ios/PairLunchPicker.xcodeproj/project.pbxproj
@@ -0,0 +1,662 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 54;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 00E356F31AD99517003FC87E /* PairLunchPickerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* PairLunchPickerTests.m */; };
+ 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
+ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
+ 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
+ 13C2693E8B55D03FDC1986D3 /* libPods-PairLunchPicker-PairLunchPickerTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F645C401BAF5FD924CFAC357 /* libPods-PairLunchPicker-PairLunchPickerTests.a */; };
+ 670ACC2427CC0184001CE22D /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 670ACC2127CC005B001CE22D /* GoogleService-Info.plist */; };
+ 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
+ A6ACE47A88695AD12969B020 /* libPods-PairLunchPicker.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C27A8C596778C816EFFBE78 /* libPods-PairLunchPicker.a */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
+ remoteInfo = PairLunchPicker;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 00E356EE1AD99517003FC87E /* PairLunchPickerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PairLunchPickerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 00E356F21AD99517003FC87E /* PairLunchPickerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PairLunchPickerTests.m; sourceTree = ""; };
+ 062A93C103B9F04AA42E6FDD /* Pods-PairLunchPicker-PairLunchPickerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PairLunchPicker-PairLunchPickerTests.release.xcconfig"; path = "Target Support Files/Pods-PairLunchPicker-PairLunchPickerTests/Pods-PairLunchPicker-PairLunchPickerTests.release.xcconfig"; sourceTree = ""; };
+ 13B07F961A680F5B00A75B9A /* PairLunchPicker.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PairLunchPicker.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = PairLunchPicker/AppDelegate.h; sourceTree = ""; };
+ 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = PairLunchPicker/AppDelegate.m; sourceTree = ""; };
+ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = PairLunchPicker/Images.xcassets; sourceTree = ""; };
+ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = PairLunchPicker/Info.plist; sourceTree = ""; };
+ 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = PairLunchPicker/main.m; sourceTree = ""; };
+ 5C27A8C596778C816EFFBE78 /* libPods-PairLunchPicker.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-PairLunchPicker.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 670ACC2127CC005B001CE22D /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; };
+ 7E6E3DFE5DD72B06D0E7259D /* Pods-PairLunchPicker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PairLunchPicker.debug.xcconfig"; path = "Target Support Files/Pods-PairLunchPicker/Pods-PairLunchPicker.debug.xcconfig"; sourceTree = ""; };
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = PairLunchPicker/LaunchScreen.storyboard; sourceTree = ""; };
+ DBBC09ADA8F201F59D168263 /* Pods-PairLunchPicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PairLunchPicker.release.xcconfig"; path = "Target Support Files/Pods-PairLunchPicker/Pods-PairLunchPicker.release.xcconfig"; sourceTree = ""; };
+ E7DFB94C3E63764C2F89CDF8 /* Pods-PairLunchPicker-PairLunchPickerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PairLunchPicker-PairLunchPickerTests.debug.xcconfig"; path = "Target Support Files/Pods-PairLunchPicker-PairLunchPickerTests/Pods-PairLunchPicker-PairLunchPickerTests.debug.xcconfig"; sourceTree = ""; };
+ ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
+ F645C401BAF5FD924CFAC357 /* libPods-PairLunchPicker-PairLunchPickerTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-PairLunchPicker-PairLunchPickerTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 00E356EB1AD99517003FC87E /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 13C2693E8B55D03FDC1986D3 /* libPods-PairLunchPicker-PairLunchPickerTests.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ A6ACE47A88695AD12969B020 /* libPods-PairLunchPicker.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 00E356EF1AD99517003FC87E /* PairLunchPickerTests */ = {
+ isa = PBXGroup;
+ children = (
+ 00E356F21AD99517003FC87E /* PairLunchPickerTests.m */,
+ 00E356F01AD99517003FC87E /* Supporting Files */,
+ );
+ path = PairLunchPickerTests;
+ sourceTree = "";
+ };
+ 00E356F01AD99517003FC87E /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 00E356F11AD99517003FC87E /* Info.plist */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ 13B07FAE1A68108700A75B9A /* PairLunchPicker */ = {
+ isa = PBXGroup;
+ children = (
+ 13B07FAF1A68108700A75B9A /* AppDelegate.h */,
+ 13B07FB01A68108700A75B9A /* AppDelegate.m */,
+ 13B07FB51A68108700A75B9A /* Images.xcassets */,
+ 13B07FB61A68108700A75B9A /* Info.plist */,
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
+ 13B07FB71A68108700A75B9A /* main.m */,
+ );
+ name = PairLunchPicker;
+ sourceTree = "";
+ };
+ 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
+ 5C27A8C596778C816EFFBE78 /* libPods-PairLunchPicker.a */,
+ F645C401BAF5FD924CFAC357 /* libPods-PairLunchPicker-PairLunchPickerTests.a */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 7049E7523310F3D11E56FD4C /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ 7E6E3DFE5DD72B06D0E7259D /* Pods-PairLunchPicker.debug.xcconfig */,
+ DBBC09ADA8F201F59D168263 /* Pods-PairLunchPicker.release.xcconfig */,
+ E7DFB94C3E63764C2F89CDF8 /* Pods-PairLunchPicker-PairLunchPickerTests.debug.xcconfig */,
+ 062A93C103B9F04AA42E6FDD /* Pods-PairLunchPicker-PairLunchPickerTests.release.xcconfig */,
+ );
+ path = Pods;
+ sourceTree = "";
+ };
+ 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = Libraries;
+ sourceTree = "";
+ };
+ 83CBB9F61A601CBA00E9B192 = {
+ isa = PBXGroup;
+ children = (
+ 670ACC2127CC005B001CE22D /* GoogleService-Info.plist */,
+ 13B07FAE1A68108700A75B9A /* PairLunchPicker */,
+ 832341AE1AAA6A7D00B99B32 /* Libraries */,
+ 00E356EF1AD99517003FC87E /* PairLunchPickerTests */,
+ 83CBBA001A601CBA00E9B192 /* Products */,
+ 2D16E6871FA4F8E400B85C8A /* Frameworks */,
+ 7049E7523310F3D11E56FD4C /* Pods */,
+ 9D2EEDB9F6B84FAD8C0D96E5 /* Resources */,
+ );
+ indentWidth = 2;
+ sourceTree = "";
+ tabWidth = 2;
+ usesTabs = 0;
+ };
+ 83CBBA001A601CBA00E9B192 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 13B07F961A680F5B00A75B9A /* PairLunchPicker.app */,
+ 00E356EE1AD99517003FC87E /* PairLunchPickerTests.xctest */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 9D2EEDB9F6B84FAD8C0D96E5 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = Resources;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 00E356ED1AD99517003FC87E /* PairLunchPickerTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "PairLunchPickerTests" */;
+ buildPhases = (
+ C77DFF5CD2DBFAB937D1ED83 /* [CP] Check Pods Manifest.lock */,
+ 00E356EA1AD99517003FC87E /* Sources */,
+ 00E356EB1AD99517003FC87E /* Frameworks */,
+ 00E356EC1AD99517003FC87E /* Resources */,
+ D697E7D7FA059C89FD3474D9 /* [CP] Copy Pods Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 00E356F51AD99517003FC87E /* PBXTargetDependency */,
+ );
+ name = PairLunchPickerTests;
+ productName = PairLunchPickerTests;
+ productReference = 00E356EE1AD99517003FC87E /* PairLunchPickerTests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
+ 13B07F861A680F5B00A75B9A /* PairLunchPicker */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "PairLunchPicker" */;
+ buildPhases = (
+ 6025D49C1433DADEE0D3508D /* [CP] Check Pods Manifest.lock */,
+ FD10A7F022414F080027D42C /* Start Packager */,
+ 13B07F871A680F5B00A75B9A /* Sources */,
+ 13B07F8C1A680F5B00A75B9A /* Frameworks */,
+ 13B07F8E1A680F5B00A75B9A /* Resources */,
+ 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
+ F25A5C5001CF6494753EAE80 /* [CP] Copy Pods Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = PairLunchPicker;
+ productName = PairLunchPicker;
+ productReference = 13B07F961A680F5B00A75B9A /* PairLunchPicker.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 83CBB9F71A601CBA00E9B192 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 1210;
+ TargetAttributes = {
+ 00E356ED1AD99517003FC87E = {
+ CreatedOnToolsVersion = 6.2;
+ TestTargetID = 13B07F861A680F5B00A75B9A;
+ };
+ 13B07F861A680F5B00A75B9A = {
+ LastSwiftMigration = 1120;
+ };
+ };
+ };
+ buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "PairLunchPicker" */;
+ compatibilityVersion = "Xcode 12.0";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ Base,
+ );
+ mainGroup = 83CBB9F61A601CBA00E9B192;
+ productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 13B07F861A680F5B00A75B9A /* PairLunchPicker */,
+ 00E356ED1AD99517003FC87E /* PairLunchPickerTests */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 00E356EC1AD99517003FC87E /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 13B07F8E1A680F5B00A75B9A /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 670ACC2427CC0184001CE22D /* GoogleService-Info.plist in Resources */,
+ 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
+ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Bundle React Native code and images";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "set -e\n\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
+ };
+ 6025D49C1433DADEE0D3508D /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-PairLunchPicker-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ C77DFF5CD2DBFAB937D1ED83 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-PairLunchPicker-PairLunchPickerTests-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ D697E7D7FA059C89FD3474D9 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-PairLunchPicker-PairLunchPickerTests/Pods-PairLunchPicker-PairLunchPickerTests-resources-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-PairLunchPicker-PairLunchPickerTests/Pods-PairLunchPicker-PairLunchPickerTests-resources-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PairLunchPicker-PairLunchPickerTests/Pods-PairLunchPicker-PairLunchPickerTests-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ F25A5C5001CF6494753EAE80 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-PairLunchPicker/Pods-PairLunchPicker-resources-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-PairLunchPicker/Pods-PairLunchPicker-resources-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PairLunchPicker/Pods-PairLunchPicker-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ FD10A7F022414F080027D42C /* Start Packager */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Start Packager";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n";
+ showEnvVarsInLog = 0;
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 00E356EA1AD99517003FC87E /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 00E356F31AD99517003FC87E /* PairLunchPickerTests.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 13B07F871A680F5B00A75B9A /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
+ 13B07FC11A68108700A75B9A /* main.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 13B07F861A680F5B00A75B9A /* PairLunchPicker */;
+ targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 00E356F61AD99517003FC87E /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = E7DFB94C3E63764C2F89CDF8 /* Pods-PairLunchPicker-PairLunchPickerTests.debug.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ INFOPLIST_FILE = PairLunchPickerTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ OTHER_LDFLAGS = (
+ "-ObjC",
+ "-lc++",
+ "$(inherited)",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PairLunchPicker.app/PairLunchPicker";
+ };
+ name = Debug;
+ };
+ 00E356F71AD99517003FC87E /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 062A93C103B9F04AA42E6FDD /* Pods-PairLunchPicker-PairLunchPickerTests.release.xcconfig */;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ COPY_PHASE_STRIP = NO;
+ INFOPLIST_FILE = PairLunchPickerTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
+ OTHER_LDFLAGS = (
+ "-ObjC",
+ "-lc++",
+ "$(inherited)",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PairLunchPicker.app/PairLunchPicker";
+ };
+ name = Release;
+ };
+ 13B07F941A680F5B00A75B9A /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 7E6E3DFE5DD72B06D0E7259D /* Pods-PairLunchPicker.debug.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
+ CURRENT_PROJECT_VERSION = 1;
+ ENABLE_BITCODE = NO;
+ INFOPLIST_FILE = PairLunchPicker/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_NAME = PairLunchPicker;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Debug;
+ };
+ 13B07F951A680F5B00A75B9A /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = DBBC09ADA8F201F59D168263 /* Pods-PairLunchPicker.release.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
+ CURRENT_PROJECT_VERSION = 1;
+ INFOPLIST_FILE = PairLunchPicker/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-ObjC",
+ "-lc++",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_NAME = PairLunchPicker;
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Release;
+ };
+ 83CBBA201A601CBA00E9B192 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ /usr/lib/swift,
+ "$(inherited)",
+ );
+ LIBRARY_SEARCH_PATHS = (
+ "\"$(SDKROOT)/usr/lib/swift\"",
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
+ "\"$(inherited)\"",
+ );
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ };
+ name = Debug;
+ };
+ 83CBBA211A601CBA00E9B192 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ /usr/lib/swift,
+ "$(inherited)",
+ );
+ LIBRARY_SEARCH_PATHS = (
+ "\"$(SDKROOT)/usr/lib/swift\"",
+ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
+ "\"$(inherited)\"",
+ );
+ MTL_ENABLE_DEBUG_INFO = NO;
+ SDKROOT = iphoneos;
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "PairLunchPickerTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 00E356F61AD99517003FC87E /* Debug */,
+ 00E356F71AD99517003FC87E /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "PairLunchPicker" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 13B07F941A680F5B00A75B9A /* Debug */,
+ 13B07F951A680F5B00A75B9A /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "PairLunchPicker" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 83CBBA201A601CBA00E9B192 /* Debug */,
+ 83CBBA211A601CBA00E9B192 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
+}
diff --git a/ios/PairLunchPicker.xcodeproj/xcshareddata/xcschemes/PairLunchPicker.xcscheme b/ios/PairLunchPicker.xcodeproj/xcshareddata/xcschemes/PairLunchPicker.xcscheme
new file mode 100644
index 0000000..fdc807d
--- /dev/null
+++ b/ios/PairLunchPicker.xcodeproj/xcshareddata/xcschemes/PairLunchPicker.xcscheme
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/PairLunchPicker.xcworkspace/contents.xcworkspacedata b/ios/PairLunchPicker.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..db4cd80
--- /dev/null
+++ b/ios/PairLunchPicker.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/ios/PairLunchPicker.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/PairLunchPicker.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/ios/PairLunchPicker.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/ios/PairLunchPicker/AppDelegate.h b/ios/PairLunchPicker/AppDelegate.h
new file mode 100644
index 0000000..ef1de86
--- /dev/null
+++ b/ios/PairLunchPicker/AppDelegate.h
@@ -0,0 +1,8 @@
+#import
+#import
+
+@interface AppDelegate : UIResponder
+
+@property (nonatomic, strong) UIWindow *window;
+
+@end
diff --git a/ios/PairLunchPicker/AppDelegate.m b/ios/PairLunchPicker/AppDelegate.m
new file mode 100644
index 0000000..5a470f5
--- /dev/null
+++ b/ios/PairLunchPicker/AppDelegate.m
@@ -0,0 +1,62 @@
+#import "AppDelegate.h"
+
+#import
+#import
+#import
+
+#ifdef FB_SONARKIT_ENABLED
+#import
+#import
+#import
+#import
+#import
+#import
+
+static void InitializeFlipper(UIApplication *application) {
+ FlipperClient *client = [FlipperClient sharedClient];
+ SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
+ [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
+ [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
+ [client addPlugin:[FlipperKitReactPlugin new]];
+ [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
+ [client start];
+}
+#endif
+
+@implementation AppDelegate
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+#ifdef FB_SONARKIT_ENABLED
+ InitializeFlipper(application);
+#endif
+
+ RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
+ RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
+ moduleName:@"PairLunchPicker"
+ initialProperties:nil];
+
+ if (@available(iOS 13.0, *)) {
+ rootView.backgroundColor = [UIColor systemBackgroundColor];
+ } else {
+ rootView.backgroundColor = [UIColor whiteColor];
+ }
+
+ self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
+ UIViewController *rootViewController = [UIViewController new];
+ rootViewController.view = rootView;
+ self.window.rootViewController = rootViewController;
+ [self.window makeKeyAndVisible];
+ return YES;
+}
+
+- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
+{
+#if DEBUG
+ return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
+#else
+ return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
+#endif
+}
+
+@end
diff --git a/ios/PairLunchPicker/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/PairLunchPicker/Images.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..118c98f
--- /dev/null
+++ b/ios/PairLunchPicker/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "images" : [
+ {
+ "idiom" : "iphone",
+ "size" : "29x29",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "29x29",
+ "scale" : "3x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "40x40",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "40x40",
+ "scale" : "3x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "60x60",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "60x60",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/ios/PairLunchPicker/Images.xcassets/Contents.json b/ios/PairLunchPicker/Images.xcassets/Contents.json
new file mode 100644
index 0000000..2d92bd5
--- /dev/null
+++ b/ios/PairLunchPicker/Images.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
diff --git a/ios/PairLunchPicker/Info.plist b/ios/PairLunchPicker/Info.plist
new file mode 100644
index 0000000..8e1b52e
--- /dev/null
+++ b/ios/PairLunchPicker/Info.plist
@@ -0,0 +1,84 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleDisplayName
+ PairLunchPicker
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleURLTypes
+
+
+ CFBundleTypeRole
+ Editor
+ CFBundleURLSchemes
+
+ com.googleusercontent.apps.862454311308-0ggt7j01k5fkgrs7g7eqg466eku122uu
+
+
+
+ CFBundleVersion
+ 1
+ LSRequiresIPhoneOS
+
+ NSAppTransportSecurity
+
+ NSExceptionDomains
+
+ localhost
+
+ NSExceptionAllowsInsecureHTTPLoads
+
+
+
+
+ NSLocationWhenInUseUsageDescription
+
+ UIAppFonts
+
+ AntDesign.ttf
+ Entypo.ttf
+ EvilIcons.ttf
+ Feather.ttf
+ FontAwesome.ttf
+ FontAwesome5_Brands.ttf
+ FontAwesome5_Regular.ttf
+ FontAwesome5_Solid.ttf
+ Foundation.ttf
+ Ionicons.ttf
+ MaterialIcons.ttf
+ MaterialCommunityIcons.ttf
+ SimpleLineIcons.ttf
+ Octicons.ttf
+ Zocial.ttf
+
+ UILaunchStoryboardName
+ LaunchScreen
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UIViewControllerBasedStatusBarAppearance
+
+
+
diff --git a/ios/PairLunchPicker/LaunchScreen.storyboard b/ios/PairLunchPicker/LaunchScreen.storyboard
new file mode 100644
index 0000000..98cf047
--- /dev/null
+++ b/ios/PairLunchPicker/LaunchScreen.storyboard
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/PairLunchPicker/main.m b/ios/PairLunchPicker/main.m
new file mode 100644
index 0000000..b1df44b
--- /dev/null
+++ b/ios/PairLunchPicker/main.m
@@ -0,0 +1,9 @@
+#import
+
+#import "AppDelegate.h"
+
+int main(int argc, char * argv[]) {
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+ }
+}
diff --git a/ios/PairLunchPickerTests/Info.plist b/ios/PairLunchPickerTests/Info.plist
new file mode 100644
index 0000000..ba72822
--- /dev/null
+++ b/ios/PairLunchPickerTests/Info.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1
+
+
diff --git a/ios/PairLunchPickerTests/PairLunchPickerTests.m b/ios/PairLunchPickerTests/PairLunchPickerTests.m
new file mode 100644
index 0000000..98c5fd0
--- /dev/null
+++ b/ios/PairLunchPickerTests/PairLunchPickerTests.m
@@ -0,0 +1,65 @@
+#import
+#import
+
+#import
+#import
+
+#define TIMEOUT_SECONDS 600
+#define TEXT_TO_LOOK_FOR @"Welcome to React"
+
+@interface PairLunchPickerTests : XCTestCase
+
+@end
+
+@implementation PairLunchPickerTests
+
+- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test
+{
+ if (test(view)) {
+ return YES;
+ }
+ for (UIView *subview in [view subviews]) {
+ if ([self findSubviewInView:subview matching:test]) {
+ return YES;
+ }
+ }
+ return NO;
+}
+
+- (void)testRendersWelcomeScreen
+{
+ UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
+ BOOL foundElement = NO;
+
+ __block NSString *redboxError = nil;
+#ifdef DEBUG
+ RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
+ if (level >= RCTLogLevelError) {
+ redboxError = message;
+ }
+ });
+#endif
+
+ while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
+ [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
+ [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
+
+ foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) {
+ if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
+ return YES;
+ }
+ return NO;
+ }];
+ }
+
+#ifdef DEBUG
+ RCTSetLogFunction(RCTDefaultLogFunction);
+#endif
+
+ XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
+ XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
+}
+
+
+@end
diff --git a/ios/Podfile b/ios/Podfile
new file mode 100644
index 0000000..4375a35
--- /dev/null
+++ b/ios/Podfile
@@ -0,0 +1,31 @@
+require_relative '../node_modules/react-native/scripts/react_native_pods'
+require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
+
+platform :ios, '11.0'
+
+target 'PairLunchPicker' do
+ config = use_native_modules!
+
+ use_react_native!(
+ :path => config[:reactNativePath],
+ # to enable hermes on iOS, change `false` to `true` and then install pods
+ :hermes_enabled => false
+ )
+
+
+ target 'PairLunchPickerTests' do
+ inherit! :complete
+ # Pods for testing
+ end
+
+ # Enables Flipper.
+ #
+ # Note that if you have use_frameworks! enabled, Flipper will not work and
+ # you should disable the next line.
+ # use_flipper!()
+
+ post_install do |installer|
+ react_native_post_install(installer)
+ # __apply_Xcode_12_5_M1_post_install_workaround(installer)
+ end
+end
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
new file mode 100644
index 0000000..74836d4
--- /dev/null
+++ b/ios/Podfile.lock
@@ -0,0 +1,515 @@
+PODS:
+ - AppAuth (1.4.0):
+ - AppAuth/Core (= 1.4.0)
+ - AppAuth/ExternalUserAgent (= 1.4.0)
+ - AppAuth/Core (1.4.0)
+ - AppAuth/ExternalUserAgent (1.4.0)
+ - boost (1.76.0)
+ - BVLinearGradient (2.5.6):
+ - React
+ - DoubleConversion (1.1.6)
+ - FBLazyVector (0.67.2)
+ - FBReactNativeSpec (0.67.2):
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - RCTRequired (= 0.67.2)
+ - RCTTypeSafety (= 0.67.2)
+ - React-Core (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - ReactCommon/turbomodule/core (= 0.67.2)
+ - fmt (6.2.1)
+ - glog (0.3.5)
+ - GoogleSignIn (6.1.0):
+ - AppAuth (~> 1.4)
+ - GTMAppAuth (~> 1.0)
+ - GTMSessionFetcher/Core (~> 1.1)
+ - GTMAppAuth (1.2.2):
+ - AppAuth/Core (~> 1.4)
+ - GTMSessionFetcher/Core (~> 1.5)
+ - GTMSessionFetcher/Core (1.7.0)
+ - RCT-Folly (2021.06.28.00-v2):
+ - boost
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - RCT-Folly/Default (= 2021.06.28.00-v2)
+ - RCT-Folly/Default (2021.06.28.00-v2):
+ - boost
+ - DoubleConversion
+ - fmt (~> 6.2.1)
+ - glog
+ - RCTRequired (0.67.2)
+ - RCTTypeSafety (0.67.2):
+ - FBLazyVector (= 0.67.2)
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - RCTRequired (= 0.67.2)
+ - React-Core (= 0.67.2)
+ - React (0.67.2):
+ - React-Core (= 0.67.2)
+ - React-Core/DevSupport (= 0.67.2)
+ - React-Core/RCTWebSocket (= 0.67.2)
+ - React-RCTActionSheet (= 0.67.2)
+ - React-RCTAnimation (= 0.67.2)
+ - React-RCTBlob (= 0.67.2)
+ - React-RCTImage (= 0.67.2)
+ - React-RCTLinking (= 0.67.2)
+ - React-RCTNetwork (= 0.67.2)
+ - React-RCTSettings (= 0.67.2)
+ - React-RCTText (= 0.67.2)
+ - React-RCTVibration (= 0.67.2)
+ - React-callinvoker (0.67.2)
+ - React-Core (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default (= 0.67.2)
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/CoreModulesHeaders (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/Default (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/DevSupport (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default (= 0.67.2)
+ - React-Core/RCTWebSocket (= 0.67.2)
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-jsinspector (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/RCTActionSheetHeaders (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/RCTAnimationHeaders (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/RCTBlobHeaders (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/RCTImageHeaders (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/RCTLinkingHeaders (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/RCTNetworkHeaders (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/RCTSettingsHeaders (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/RCTTextHeaders (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/RCTVibrationHeaders (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-Core/RCTWebSocket (0.67.2):
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/Default (= 0.67.2)
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsiexecutor (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - Yoga
+ - React-CoreModules (0.67.2):
+ - FBReactNativeSpec (= 0.67.2)
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - RCTTypeSafety (= 0.67.2)
+ - React-Core/CoreModulesHeaders (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-RCTImage (= 0.67.2)
+ - ReactCommon/turbomodule/core (= 0.67.2)
+ - React-cxxreact (0.67.2):
+ - boost (= 1.76.0)
+ - DoubleConversion
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-callinvoker (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-jsinspector (= 0.67.2)
+ - React-logger (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - React-runtimeexecutor (= 0.67.2)
+ - React-jsi (0.67.2):
+ - boost (= 1.76.0)
+ - DoubleConversion
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-jsi/Default (= 0.67.2)
+ - React-jsi/Default (0.67.2):
+ - boost (= 1.76.0)
+ - DoubleConversion
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-jsiexecutor (0.67.2):
+ - DoubleConversion
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - React-jsinspector (0.67.2)
+ - React-logger (0.67.2):
+ - glog
+ - react-native-pager-view (5.4.9):
+ - React-Core
+ - react-native-safe-area-context (3.3.2):
+ - React-Core
+ - react-native-spinkit (1.4.1):
+ - React
+ - react-native-sqlite-storage (6.0.1):
+ - React-Core
+ - React-perflogger (0.67.2)
+ - React-RCTActionSheet (0.67.2):
+ - React-Core/RCTActionSheetHeaders (= 0.67.2)
+ - React-RCTAnimation (0.67.2):
+ - FBReactNativeSpec (= 0.67.2)
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - RCTTypeSafety (= 0.67.2)
+ - React-Core/RCTAnimationHeaders (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - ReactCommon/turbomodule/core (= 0.67.2)
+ - React-RCTBlob (0.67.2):
+ - FBReactNativeSpec (= 0.67.2)
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/RCTBlobHeaders (= 0.67.2)
+ - React-Core/RCTWebSocket (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-RCTNetwork (= 0.67.2)
+ - ReactCommon/turbomodule/core (= 0.67.2)
+ - React-RCTImage (0.67.2):
+ - FBReactNativeSpec (= 0.67.2)
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - RCTTypeSafety (= 0.67.2)
+ - React-Core/RCTImageHeaders (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-RCTNetwork (= 0.67.2)
+ - ReactCommon/turbomodule/core (= 0.67.2)
+ - React-RCTLinking (0.67.2):
+ - FBReactNativeSpec (= 0.67.2)
+ - React-Core/RCTLinkingHeaders (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - ReactCommon/turbomodule/core (= 0.67.2)
+ - React-RCTNetwork (0.67.2):
+ - FBReactNativeSpec (= 0.67.2)
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - RCTTypeSafety (= 0.67.2)
+ - React-Core/RCTNetworkHeaders (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - ReactCommon/turbomodule/core (= 0.67.2)
+ - React-RCTSettings (0.67.2):
+ - FBReactNativeSpec (= 0.67.2)
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - RCTTypeSafety (= 0.67.2)
+ - React-Core/RCTSettingsHeaders (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - ReactCommon/turbomodule/core (= 0.67.2)
+ - React-RCTText (0.67.2):
+ - React-Core/RCTTextHeaders (= 0.67.2)
+ - React-RCTVibration (0.67.2):
+ - FBReactNativeSpec (= 0.67.2)
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-Core/RCTVibrationHeaders (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - ReactCommon/turbomodule/core (= 0.67.2)
+ - React-runtimeexecutor (0.67.2):
+ - React-jsi (= 0.67.2)
+ - ReactCommon/turbomodule/core (0.67.2):
+ - DoubleConversion
+ - glog
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - React-callinvoker (= 0.67.2)
+ - React-Core (= 0.67.2)
+ - React-cxxreact (= 0.67.2)
+ - React-jsi (= 0.67.2)
+ - React-logger (= 0.67.2)
+ - React-perflogger (= 0.67.2)
+ - RNCAsyncStorage (1.16.1):
+ - React-Core
+ - RNDateTimePicker (5.1.0):
+ - React-Core
+ - RNGestureHandler (1.10.3):
+ - React-Core
+ - RNGoogleSignin (7.1.0):
+ - GoogleSignIn (~> 6.1.0)
+ - React-Core
+ - RNScreens (3.11.1):
+ - React-Core
+ - React-RCTImage
+ - RNSearchBar (3.5.1):
+ - React
+ - RNSVG (12.1.1):
+ - React
+ - RNVectorIcons (9.0.0):
+ - React-Core
+ - Yoga (1.14.0)
+
+DEPENDENCIES:
+ - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
+ - BVLinearGradient (from `../node_modules/react-native-linear-gradient`)
+ - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
+ - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
+ - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
+ - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
+ - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
+ - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
+ - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
+ - React (from `../node_modules/react-native/`)
+ - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
+ - React-Core (from `../node_modules/react-native/`)
+ - React-Core/DevSupport (from `../node_modules/react-native/`)
+ - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
+ - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
+ - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
+ - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
+ - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
+ - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
+ - React-logger (from `../node_modules/react-native/ReactCommon/logger`)
+ - react-native-pager-view (from `../node_modules/react-native-pager-view`)
+ - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
+ - react-native-spinkit (from `../node_modules/react-native-spinkit`)
+ - react-native-sqlite-storage (from `../node_modules/react-native-sqlite-storage`)
+ - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
+ - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
+ - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
+ - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
+ - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
+ - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
+ - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
+ - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
+ - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
+ - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
+ - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
+ - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
+ - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)"
+ - "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
+ - RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
+ - "RNGoogleSignin (from `../node_modules/@react-native-google-signin/google-signin`)"
+ - RNScreens (from `../node_modules/react-native-screens`)
+ - RNSearchBar (from `../node_modules/react-native-search-bar`)
+ - RNSVG (from `../node_modules/react-native-svg`)
+ - RNVectorIcons (from `../node_modules/react-native-vector-icons`)
+ - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
+
+SPEC REPOS:
+ trunk:
+ - AppAuth
+ - fmt
+ - GoogleSignIn
+ - GTMAppAuth
+ - GTMSessionFetcher
+
+EXTERNAL SOURCES:
+ boost:
+ :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
+ BVLinearGradient:
+ :path: "../node_modules/react-native-linear-gradient"
+ DoubleConversion:
+ :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
+ FBLazyVector:
+ :path: "../node_modules/react-native/Libraries/FBLazyVector"
+ FBReactNativeSpec:
+ :path: "../node_modules/react-native/React/FBReactNativeSpec"
+ glog:
+ :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
+ RCT-Folly:
+ :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
+ RCTRequired:
+ :path: "../node_modules/react-native/Libraries/RCTRequired"
+ RCTTypeSafety:
+ :path: "../node_modules/react-native/Libraries/TypeSafety"
+ React:
+ :path: "../node_modules/react-native/"
+ React-callinvoker:
+ :path: "../node_modules/react-native/ReactCommon/callinvoker"
+ React-Core:
+ :path: "../node_modules/react-native/"
+ React-CoreModules:
+ :path: "../node_modules/react-native/React/CoreModules"
+ React-cxxreact:
+ :path: "../node_modules/react-native/ReactCommon/cxxreact"
+ React-jsi:
+ :path: "../node_modules/react-native/ReactCommon/jsi"
+ React-jsiexecutor:
+ :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
+ React-jsinspector:
+ :path: "../node_modules/react-native/ReactCommon/jsinspector"
+ React-logger:
+ :path: "../node_modules/react-native/ReactCommon/logger"
+ react-native-pager-view:
+ :path: "../node_modules/react-native-pager-view"
+ react-native-safe-area-context:
+ :path: "../node_modules/react-native-safe-area-context"
+ react-native-spinkit:
+ :path: "../node_modules/react-native-spinkit"
+ react-native-sqlite-storage:
+ :path: "../node_modules/react-native-sqlite-storage"
+ React-perflogger:
+ :path: "../node_modules/react-native/ReactCommon/reactperflogger"
+ React-RCTActionSheet:
+ :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
+ React-RCTAnimation:
+ :path: "../node_modules/react-native/Libraries/NativeAnimation"
+ React-RCTBlob:
+ :path: "../node_modules/react-native/Libraries/Blob"
+ React-RCTImage:
+ :path: "../node_modules/react-native/Libraries/Image"
+ React-RCTLinking:
+ :path: "../node_modules/react-native/Libraries/LinkingIOS"
+ React-RCTNetwork:
+ :path: "../node_modules/react-native/Libraries/Network"
+ React-RCTSettings:
+ :path: "../node_modules/react-native/Libraries/Settings"
+ React-RCTText:
+ :path: "../node_modules/react-native/Libraries/Text"
+ React-RCTVibration:
+ :path: "../node_modules/react-native/Libraries/Vibration"
+ React-runtimeexecutor:
+ :path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
+ ReactCommon:
+ :path: "../node_modules/react-native/ReactCommon"
+ RNCAsyncStorage:
+ :path: "../node_modules/@react-native-async-storage/async-storage"
+ RNDateTimePicker:
+ :path: "../node_modules/@react-native-community/datetimepicker"
+ RNGestureHandler:
+ :path: "../node_modules/react-native-gesture-handler"
+ RNGoogleSignin:
+ :path: "../node_modules/@react-native-google-signin/google-signin"
+ RNScreens:
+ :path: "../node_modules/react-native-screens"
+ RNSearchBar:
+ :path: "../node_modules/react-native-search-bar"
+ RNSVG:
+ :path: "../node_modules/react-native-svg"
+ RNVectorIcons:
+ :path: "../node_modules/react-native-vector-icons"
+ Yoga:
+ :path: "../node_modules/react-native/ReactCommon/yoga"
+
+SPEC CHECKSUMS:
+ AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7
+ boost: a7c83b31436843459a1961bfd74b96033dc77234
+ BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872
+ DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662
+ FBLazyVector: 244195e30d63d7f564c55da4410b9a24e8fbceaa
+ FBReactNativeSpec: c94002c1d93da3658f4d5119c6994d19961e3d52
+ fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
+ glog: 85ecdd10ee8d8ec362ef519a6a45ff9aa27b2e85
+ GoogleSignIn: c90b5bec45e780f54c6a8e1e3c182a86e3dda69d
+ GTMAppAuth: ad5c2b70b9a8689e1a04033c9369c4915bfcbe89
+ GTMSessionFetcher: 43748f93435c2aa068b1cbe39655aaf600652e91
+ RCT-Folly: 803a9cfd78114b2ec0f140cfa6fa2a6bafb2d685
+ RCTRequired: cd47794163052d2b8318c891a7a14fcfaccc75ab
+ RCTTypeSafety: 393bb40b3e357b224cde53d3fec26813c52428b1
+ React: dec6476bc27155b250eeadfc11ea779265f53ebf
+ React-callinvoker: e5047929e80aea942e6fdd96482504ef0189ca63
+ React-Core: e382655566b2b9a6e3b4f641d777b7bfdbe52358
+ React-CoreModules: cf262e82fa101c0aee022b6f90d1a5b612038b64
+ React-cxxreact: 69d53de3b30c7c161ba087ca1ecdffed9ccb1039
+ React-jsi: ce9a2d804adf75809ce2fe2374ba3fbbf5d59b03
+ React-jsiexecutor: 52beb652bbc61201bd70cbe4f0b8edb607e8da4f
+ React-jsinspector: 595f76eba2176ebd8817a1fffd47b84fbdab9383
+ React-logger: 23de8ea0f44fa00ee77e96060273225607fd4d78
+ react-native-pager-view: 3ee7d4c7697fb3ef788346e834a60cca97ed8540
+ react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057
+ react-native-spinkit: da294fd828216ad211fe36a5c14c1e09f09e62db
+ react-native-sqlite-storage: f6d515e1c446d1e6d026aa5352908a25d4de3261
+ React-perflogger: 3c9bb7372493e49036f07a82c44c8cf65cbe88db
+ React-RCTActionSheet: 052606483045a408693aa7e864410b4a052f541a
+ React-RCTAnimation: 08d4cac13222bb1348c687a0158dfd3b577cdb63
+ React-RCTBlob: 928ad1df65219c3d9e2ac80983b943a75b5c3629
+ React-RCTImage: 524d7313b142a39ee0e20fa312b67277917fe076
+ React-RCTLinking: 44036ea6f13a2e46238be07a67566247fee35244
+ React-RCTNetwork: 9b6faacf1e0789253e319ca53b1f8d92c2ac5455
+ React-RCTSettings: ecd8094f831130a49581d5112a8607220e5d12a5
+ React-RCTText: 14ba976fb48ed283cfdb1a754a5d4276471e0152
+ React-RCTVibration: 99c7f67fba7a5ade46e98e870c6ff2444484f995
+ React-runtimeexecutor: 2450b43df7ffe8e805a0b3dcb2abd4282f1f1836
+ ReactCommon: d98c6c96b567f9b3a15f9fd4cc302c1eda8e3cf2
+ RNCAsyncStorage: b49b4e38a1548d03b74b30e558a1d18465b94be7
+ RNDateTimePicker: 1dd15d7ed1ab7d999056bc77879a42920d139c12
+ RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211
+ RNGoogleSignin: 233fdfa02522216c19bf02a1e6c60b60a75ffb4c
+ RNScreens: 4d83613b50b74ed277026375dc0810893b0c347f
+ RNSearchBar: 9860431356b7d12a8449d2fddb2b5f3c78d1e99f
+ RNSVG: 551acb6562324b1d52a4e0758f7ca0ec234e278f
+ RNVectorIcons: 4143ba35feebab8fdbe6bc43d1e776b393d47ac8
+ Yoga: 9b6696970c3289e8dea34b3eda93f23e61fb8121
+
+PODFILE CHECKSUM: aa3046563840aaeffd18a6c0fb13c87a79baacea
+
+COCOAPODS: 1.11.2
diff --git a/metro.config.js b/metro.config.js
new file mode 100644
index 0000000..e91aba9
--- /dev/null
+++ b/metro.config.js
@@ -0,0 +1,17 @@
+/**
+ * Metro configuration for React Native
+ * https://github.com/facebook/react-native
+ *
+ * @format
+ */
+
+module.exports = {
+ transformer: {
+ getTransformOptions: async () => ({
+ transform: {
+ experimentalImportSupport: false,
+ inlineRequires: true,
+ },
+ }),
+ },
+};
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..0bd59cc
--- /dev/null
+++ b/package.json
@@ -0,0 +1,63 @@
+{
+ "name": "pairlunchpicker",
+ "version": "0.0.1",
+ "private": true,
+ "scripts": {
+ "android": "react-native run-android",
+ "ios": "react-native run-ios",
+ "start": "react-native start",
+ "test": "jest",
+ "lint": "eslint ."
+ },
+ "dependencies": {
+ "@fortawesome/fontawesome-svg-core": "^1.3.0",
+ "@fortawesome/free-regular-svg-icons": "^6.0.0",
+ "@fortawesome/free-solid-svg-icons": "^6.0.0",
+ "@fortawesome/react-native-fontawesome": "^0.2.7",
+ "@react-native-async-storage/async-storage": "^1.16.1",
+ "@react-native-community/datetimepicker": "^5.1.0",
+ "@react-native-google-signin/google-signin": "^7.1.0",
+ "@react-navigation/bottom-tabs": "^6.0.9",
+ "@react-navigation/elements": "^1.3.1",
+ "@react-navigation/native": "^6.0.8",
+ "@react-navigation/stack": "^6.1.1",
+ "axios": "^0.25.0",
+ "date-fns": "^2.28.0",
+ "react": "17.0.2",
+ "react-native": "0.67.2",
+ "react-native-countdown-component": "^2.7.1",
+ "react-native-elements": "^3.4.2",
+ "react-native-gesture-handler": "~1.10.2",
+ "react-native-keyboard-aware-scroll-view": "^0.9.5",
+ "react-native-linear-gradient": "^2.5.6",
+ "react-native-modal": "^13.0.0",
+ "react-native-modal-datetime-picker": "^13.0.1",
+ "react-native-pager-view": "^5.4.9",
+ "react-native-really-awesome-button": "^1.6.0",
+ "react-native-safe-area-context": "^3.3.2",
+ "react-native-screens": "^3.11.1",
+ "react-native-search-bar": "^3.5.1",
+ "react-native-segmented-control-tab": "^4.0.0",
+ "react-native-spinkit": "^1.5.1",
+ "react-native-sqlite-storage": "^6.0.1",
+ "react-native-svg": "^12.1.1",
+ "react-native-swiper": "^1.6.0",
+ "react-native-system-navigation-bar": "^1.0.2",
+ "react-native-tab-view": "^3.1.1",
+ "react-native-vector-icons": "^9.0.0",
+ "react-native-wheel-color-picker": "^1.2.0"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.12.9",
+ "@babel/runtime": "^7.12.5",
+ "@react-native-community/eslint-config": "^2.0.0",
+ "babel-jest": "^26.6.3",
+ "eslint": "7.14.0",
+ "jest": "^26.6.3",
+ "metro-react-native-babel-preset": "^0.66.2",
+ "react-test-renderer": "17.0.2"
+ },
+ "jest": {
+ "preset": "react-native"
+ }
+}
diff --git a/src/core/api/helpers.ts b/src/core/api/helpers.ts
new file mode 100644
index 0000000..7205103
--- /dev/null
+++ b/src/core/api/helpers.ts
@@ -0,0 +1,21 @@
+import AsyncStorage from "@react-native-async-storage/async-storage";
+
+export const storeData = async (value) => {
+ try {
+ const jsonValue = JSON.stringify(value);
+ await AsyncStorage.setItem("storage_Key", jsonValue);
+ } catch (e) {
+ // saving error
+ console.log("error", e);
+ }
+};
+
+export const getData = async () => {
+ try {
+ const jsonValue = await AsyncStorage.getItem("storage_Key");
+ return jsonValue != null ? JSON.parse(jsonValue) : undefined;
+ } catch (e) {
+ // error reading value
+ console.log("error", e);
+ }
+};
diff --git a/src/core/api/yelp-carousel-cheap-eats.tsx b/src/core/api/yelp-carousel-cheap-eats.tsx
new file mode 100644
index 0000000..dfccdd1
--- /dev/null
+++ b/src/core/api/yelp-carousel-cheap-eats.tsx
@@ -0,0 +1,181 @@
+import {useNavigation} from '@react-navigation/native';
+import axios from 'axios';
+import React, {FC, useEffect, useState} from 'react';
+import {
+ Dimensions,
+ FlatList,
+ ImageBackground,
+ StyleSheet,
+ Text,
+ TouchableOpacity,
+ View,
+} from 'react-native';
+import LinearGradient from 'react-native-linear-gradient';
+import Spinner from 'react-native-spinkit';
+import {getAddress} from '../../screens/home/helpers';
+
+type Props = {location?: string};
+
+export const YelpCarouselCheapEats: FC = props => {
+ const [isLoading, setLoading] = useState(true);
+ var RandomNumber = Math.floor(Math.random() * 50 - 1) + 1;
+
+ const config = {
+ headers: {
+ Authorization:
+ 'Bearer eu70nmGiCTtxJgzg5h3uL1M3rXa3YTsCpz92As8TQw4B5CJ7A0T37rnZ1n84OEvPgGZNNJi9BuYcjH1wj0Vql0P08jsYBEUjkjK0KPVDXUM4veb3jrZzSVwkQ9r4YHYx',
+ },
+ params: {
+ term: 'food',
+ location: getAddress(props.location),
+ radius: 1609,
+ limit: 50,
+ price: 1,
+ },
+ };
+ const [restaurants, setRestaurants] = useState([]);
+ const SLIDER_WIDTH = Dimensions.get('window').width;
+ const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.8);
+ const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 4);
+ const navigation = useNavigation();
+ useEffect(() => {
+ axios
+ .get('https://api.yelp.com/v3/businesses/search', config)
+ .then(response => {
+ setRestaurants(response.data.businesses);
+ setLoading(false);
+ });
+ }, [props.location]);
+
+ // const onSubmit = () => {
+ // var tempConfig = {
+ // headers: {
+ // Authorization:
+ // "Bearer eu70nmGiCTtxJgzg5h3uL1M3rXa3YTsCpz92As8TQw4B5CJ7A0T37rnZ1n84OEvPgGZNNJi9BuYcjH1wj0Vql0P08jsYBEUjkjK0KPVDXUM4veb3jrZzSVwkQ9r4YHYx",
+ // },
+ // params: {
+ // term: "restaurant",
+ // location: "206 S 5th Ave #300, Ann Arbor, MI 48104",
+ // radius: 1609,
+ // sort_by: "best_match",
+ // },
+ // };
+ // tempConfig.params.term = text;
+ // setConfig(tempConfig);
+ // };
+
+ const _renderItem = ({item, index}) => {
+ return (
+
+ //@ts-ignore
+ navigation.navigate('Detailed Restaurant View', {
+ id: item.id,
+ restaurant: item,
+ })
+ }>
+
+
+ {item.name}
+
+ {(item.distance / 1609.344).toFixed(2)} miles
+
+
+
+
+ );
+ };
+ if (isLoading) {
+ return (
+
+
+
+ );
+ }
+ return (
+
+ {/* */}
+
+
+ );
+};
+
+const SLIDER_WIDTH = Dimensions.get('window').width;
+const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.6);
+const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 3);
+const styles = StyleSheet.create({
+ input: {
+ height: 40,
+ margin: 12,
+ borderWidth: 1,
+ flex: 2,
+ color: 'black',
+ },
+ tempView: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ paddingRight: 10,
+ },
+ itemContainer: {
+ height: ITEM_HEIGHT,
+ width: ITEM_WIDTH,
+ marginRight: 12,
+ justifyContent: 'flex-end',
+ alignItems: 'flex-start',
+ display: 'flex',
+ flexDirection: 'column',
+ backgroundColor: '#F5F5F5',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ imageStyle: {
+ width: '100%',
+ height: '100%',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ text: {
+ color: 'white',
+ },
+ imageView: {
+ width: '100%',
+ height: '100%',
+ justifyContent: 'flex-end',
+ borderBottomLeftRadius: 5,
+ borderBottomRightRadius: 5,
+ paddingLeft: 5,
+ paddingBottom: 5,
+ paddingTop: 5,
+ },
+});
diff --git a/src/core/api/yelp-carousel-discover.tsx b/src/core/api/yelp-carousel-discover.tsx
new file mode 100644
index 0000000..41c906c
--- /dev/null
+++ b/src/core/api/yelp-carousel-discover.tsx
@@ -0,0 +1,177 @@
+import {useNavigation} from '@react-navigation/native';
+import axios from 'axios';
+import React, {FC, useEffect, useState} from 'react';
+import {
+ Dimensions,
+ FlatList,
+ ImageBackground,
+ StyleSheet,
+ Text,
+ TouchableOpacity,
+ View,
+} from 'react-native';
+import LinearGradient from 'react-native-linear-gradient';
+import Spinner from 'react-native-spinkit';
+import {getAddress} from '../../screens/home/helpers';
+
+type Props = {location?: string};
+
+export const YelpCarouselDiscover: FC = props => {
+ const [isLoading, setLoading] = useState(true);
+ var RandomNumber = Math.floor(Math.random() * 50 - 1) + 1;
+
+ const config = {
+ headers: {
+ Authorization:
+ 'Bearer eu70nmGiCTtxJgzg5h3uL1M3rXa3YTsCpz92As8TQw4B5CJ7A0T37rnZ1n84OEvPgGZNNJi9BuYcjH1wj0Vql0P08jsYBEUjkjK0KPVDXUM4veb3jrZzSVwkQ9r4YHYx',
+ },
+ params: {
+ term: 'restaurants',
+ location: getAddress(props.location),
+ radius: 1609,
+ offset: RandomNumber,
+ limit: 50,
+ },
+ };
+ const [restaurants, setRestaurants] = useState([]);
+ const SLIDER_WIDTH = Dimensions.get('window').width;
+ const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.8);
+ const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 4);
+ const navigation = useNavigation();
+ useEffect(() => {
+ axios
+ .get('https://api.yelp.com/v3/businesses/search', config)
+ .then(response => {
+ setRestaurants(response.data.businesses);
+ setLoading(false);
+ });
+ }, [props.location]);
+
+ // const onSubmit = () => {
+ // var tempConfig = {
+ // headers: {
+ // Authorization:
+ // "Bearer eu70nmGiCTtxJgzg5h3uL1M3rXa3YTsCpz92As8TQw4B5CJ7A0T37rnZ1n84OEvPgGZNNJi9BuYcjH1wj0Vql0P08jsYBEUjkjK0KPVDXUM4veb3jrZzSVwkQ9r4YHYx",
+ // },
+ // params: {
+ // term: "restaurant",
+ // location: "206 S 5th Ave #300, Ann Arbor, MI 48104",
+ // radius: 1609,
+ // sort_by: "best_match",
+ // },
+ // };
+ // tempConfig.params.term = text;
+ // setConfig(tempConfig);
+ // };
+
+ const _renderItem = ({item, index}) => {
+ return (
+
+ //@ts-ignore
+ navigation.navigate('Detailed Restaurant View', {
+ id: item.id,
+ restaurant: item,
+ })
+ }>
+
+
+ {item.name}
+
+ {(item.distance / 1609.344).toFixed(2)} miles
+
+
+
+
+ );
+ };
+ if (isLoading) {
+ return (
+
+
+
+ );
+ }
+ return (
+
+ {/* */}
+
+
+ );
+};
+
+const SLIDER_WIDTH = Dimensions.get('window').width;
+const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.6);
+const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 3);
+const styles = StyleSheet.create({
+ input: {
+ height: 40,
+ margin: 12,
+ borderWidth: 1,
+ flex: 2,
+ color: 'black',
+ },
+ tempView: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ paddingRight: 10,
+ },
+ itemContainer: {
+ height: ITEM_HEIGHT,
+ width: ITEM_WIDTH,
+ marginRight: 12,
+ justifyContent: 'flex-end',
+ alignItems: 'flex-start',
+ display: 'flex',
+ flexDirection: 'column',
+ backgroundColor: '#F5F5F5',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ imageStyle: {
+ width: '100%',
+ height: '100%',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ text: {
+ color: 'white',
+ },
+ imageView: {
+ width: '100%',
+ height: '100%',
+ justifyContent: 'flex-end',
+ borderBottomLeftRadius: 5,
+ borderBottomRightRadius: 5,
+ paddingLeft: 5,
+ paddingBottom: 5,
+ paddingTop: 5,
+ },
+});
diff --git a/src/core/api/yelp-carousel-hot.tsx b/src/core/api/yelp-carousel-hot.tsx
new file mode 100644
index 0000000..60b604c
--- /dev/null
+++ b/src/core/api/yelp-carousel-hot.tsx
@@ -0,0 +1,183 @@
+import {useNavigation} from '@react-navigation/native';
+import axios from 'axios';
+import React, {FC, useEffect, useState} from 'react';
+import {
+ Dimensions,
+ FlatList,
+ ImageBackground,
+ StyleSheet,
+ Text,
+ TouchableOpacity,
+ View,
+} from 'react-native';
+import LinearGradient from 'react-native-linear-gradient';
+import Spinner from 'react-native-spinkit';
+import {getAddress} from '../../screens/home/helpers';
+
+type Props = {location?: string};
+
+export const YelpCarouselHot: FC = props => {
+ const [isLoading, setLoading] = useState(true);
+ var RandomNumber = Math.floor(Math.random() * 50 - 1) + 1;
+
+ const config = {
+ headers: {
+ Authorization:
+ 'Bearer eu70nmGiCTtxJgzg5h3uL1M3rXa3YTsCpz92As8TQw4B5CJ7A0T37rnZ1n84OEvPgGZNNJi9BuYcjH1wj0Vql0P08jsYBEUjkjK0KPVDXUM4veb3jrZzSVwkQ9r4YHYx',
+ },
+ params: {
+ term: 'restaurants',
+ location: getAddress(props.location),
+ radius: 1609,
+ sort_by: 'rating',
+ limit: 50,
+ },
+ };
+ const [restaurants, setRestaurants] = useState([]);
+ const SLIDER_WIDTH = Dimensions.get('window').width;
+ const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.8);
+ const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 4);
+ const navigation = useNavigation();
+ useEffect(() => {
+ axios
+ .get('https://api.yelp.com/v3/businesses/search', config)
+ .then(response => {
+ setRestaurants(
+ response.data.businesses.sort(() => Math.random() - 0.5),
+ );
+ setLoading(false);
+ });
+ }, [props.location]);
+
+ // const onSubmit = () => {
+ // var tempConfig = {
+ // headers: {
+ // Authorization:
+ // "Bearer eu70nmGiCTtxJgzg5h3uL1M3rXa3YTsCpz92As8TQw4B5CJ7A0T37rnZ1n84OEvPgGZNNJi9BuYcjH1wj0Vql0P08jsYBEUjkjK0KPVDXUM4veb3jrZzSVwkQ9r4YHYx",
+ // },
+ // params: {
+ // term: "restaurant",
+ // location: "206 S 5th Ave #300, Ann Arbor, MI 48104",
+ // radius: 1609,
+ // sort_by: "best_match",
+ // },
+ // };
+ // tempConfig.params.term = text;
+ // setConfig(tempConfig);
+ // };
+
+ const _renderItem = ({item, index}) => {
+ return (
+
+ //@ts-ignore
+ navigation.navigate('Detailed Restaurant View', {
+ id: item.id,
+ restaurant: item,
+ })
+ }>
+
+
+ {item.name}
+
+ {(item.distance / 1609.344).toFixed(2)} miles
+
+
+
+
+ );
+ };
+ if (isLoading) {
+ return (
+
+
+
+ );
+ }
+ return (
+
+ {/* */}
+
+
+ );
+};
+
+const SLIDER_WIDTH = Dimensions.get('window').width;
+const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.6);
+const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 3);
+const styles = StyleSheet.create({
+ input: {
+ height: 40,
+ margin: 12,
+ borderWidth: 1,
+ flex: 2,
+ color: 'black',
+ },
+ tempView: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ paddingRight: 10,
+ },
+ itemContainer: {
+ height: ITEM_HEIGHT,
+ width: ITEM_WIDTH,
+ marginRight: 12,
+ justifyContent: 'flex-end',
+ alignItems: 'flex-start',
+ display: 'flex',
+ flexDirection: 'column',
+ backgroundColor: '#F5F5F5',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ imageStyle: {
+ width: '100%',
+ height: '100%',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ text: {
+ color: 'white',
+ },
+ imageView: {
+ width: '100%',
+ height: '100%',
+ justifyContent: 'flex-end',
+ borderBottomLeftRadius: 5,
+ borderBottomRightRadius: 5,
+ paddingLeft: 5,
+ paddingBottom: 5,
+ paddingTop: 5,
+ },
+});
diff --git a/src/core/api/yelp-carousel-near-me.tsx b/src/core/api/yelp-carousel-near-me.tsx
new file mode 100644
index 0000000..855816e
--- /dev/null
+++ b/src/core/api/yelp-carousel-near-me.tsx
@@ -0,0 +1,180 @@
+import {useNavigation} from '@react-navigation/native';
+import axios from 'axios';
+import React, {FC, useEffect, useState} from 'react';
+import {
+ Dimensions,
+ FlatList,
+ ImageBackground,
+ StyleSheet,
+ Text,
+ TouchableOpacity,
+ View,
+} from 'react-native';
+import LinearGradient from 'react-native-linear-gradient';
+import Spinner from 'react-native-spinkit';
+import {getAddress} from '../../screens/home/helpers';
+
+type Props = {location?: string};
+
+export const YelpCarouselNearMe: FC = props => {
+ const [isLoading, setLoading] = useState(true);
+ var RandomNumber = Math.floor(Math.random() * 50 - 1) + 1;
+
+ const config = {
+ headers: {
+ Authorization:
+ 'Bearer eu70nmGiCTtxJgzg5h3uL1M3rXa3YTsCpz92As8TQw4B5CJ7A0T37rnZ1n84OEvPgGZNNJi9BuYcjH1wj0Vql0P08jsYBEUjkjK0KPVDXUM4veb3jrZzSVwkQ9r4YHYx',
+ },
+ params: {
+ term: 'restaurants',
+ location: getAddress(props.location),
+ radius: 402,
+ limit: 50,
+ },
+ };
+ const [restaurants, setRestaurants] = useState([]);
+ const SLIDER_WIDTH = Dimensions.get('window').width;
+ const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.8);
+ const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 4);
+ const navigation = useNavigation();
+ useEffect(() => {
+ axios
+ .get('https://api.yelp.com/v3/businesses/search', config)
+ .then(response => {
+ setRestaurants(response.data.businesses);
+ setLoading(false);
+ });
+ }, [props.location]);
+
+ // const onSubmit = () => {
+ // var tempConfig = {
+ // headers: {
+ // Authorization:
+ // "Bearer eu70nmGiCTtxJgzg5h3uL1M3rXa3YTsCpz92As8TQw4B5CJ7A0T37rnZ1n84OEvPgGZNNJi9BuYcjH1wj0Vql0P08jsYBEUjkjK0KPVDXUM4veb3jrZzSVwkQ9r4YHYx",
+ // },
+ // params: {
+ // term: "restaurant",
+ // location: "206 S 5th Ave #300, Ann Arbor, MI 48104",
+ // radius: 1609,
+ // sort_by: "best_match",
+ // },
+ // };
+ // tempConfig.params.term = text;
+ // setConfig(tempConfig);
+ // };
+
+ const _renderItem = ({item, index}) => {
+ return (
+
+ //@ts-ignore
+ navigation.navigate('Detailed Restaurant View', {
+ id: item.id,
+ restaurant: item,
+ })
+ }>
+
+
+ {item.name}
+
+ {(item.distance / 1609.344).toFixed(2)} miles
+
+
+
+
+ );
+ };
+ if (isLoading) {
+ return (
+
+
+
+ );
+ }
+ return (
+
+ {/* */}
+
+
+ );
+};
+
+const SLIDER_WIDTH = Dimensions.get('window').width;
+const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.6);
+const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 3);
+const styles = StyleSheet.create({
+ input: {
+ height: 40,
+ margin: 12,
+ borderWidth: 1,
+ flex: 2,
+ color: 'black',
+ },
+ tempView: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ paddingRight: 10,
+ },
+ itemContainer: {
+ height: ITEM_HEIGHT,
+ width: ITEM_WIDTH,
+ marginRight: 12,
+ justifyContent: 'flex-end',
+ alignItems: 'flex-start',
+ display: 'flex',
+ flexDirection: 'column',
+ backgroundColor: '#F5F5F5',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ imageStyle: {
+ width: '100%',
+ height: '100%',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ text: {
+ color: 'white',
+ },
+ imageView: {
+ width: '100%',
+ height: '100%',
+ justifyContent: 'flex-end',
+ borderBottomLeftRadius: 5,
+ borderBottomRightRadius: 5,
+ paddingLeft: 5,
+ paddingBottom: 5,
+ paddingTop: 5,
+ },
+});
diff --git a/src/core/api/yelp-search-filter.tsx b/src/core/api/yelp-search-filter.tsx
new file mode 100644
index 0000000..7187c49
--- /dev/null
+++ b/src/core/api/yelp-search-filter.tsx
@@ -0,0 +1,757 @@
+import {useNavigation} from '@react-navigation/native';
+import axios from 'axios';
+import React, {FC, useEffect, useRef, useState} from 'react';
+import {
+ Animated,
+ Dimensions,
+ FlatList,
+ Image,
+ ImageBackground,
+ Keyboard,
+ Platform,
+ ScrollView,
+ StyleSheet,
+ Text,
+ TextInput,
+ useWindowDimensions,
+ View,
+} from 'react-native';
+import {Icon} from 'react-native-elements';
+import {
+ TouchableOpacity,
+ TouchableWithoutFeedback,
+} from 'react-native-gesture-handler';
+import LinearGradient from 'react-native-linear-gradient';
+import SearchBar from 'react-native-search-bar';
+import Spinner from 'react-native-spinkit';
+import {getAddress, useToggle, useToggleTrue} from '../../screens/home/helpers';
+import {
+ filterCategories,
+ FilterModal,
+} from '../../shared_components/filter_modal';
+import {Touchable} from '../../shared_components/touchable';
+
+type Props = {location?: string};
+
+export const YelpSearchFilter: FC = props => {
+ const [isLoading, setLoading] = useState(true);
+ var RandomNumber = Math.floor(Math.random() * 50 - 1) + 1;
+ const [restaurants, setRestaurants] = useState([]);
+ const SLIDER_WIDTH = Dimensions.get('window').width;
+ const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.8);
+ const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 4);
+ const [searchQuery, setSearchQuery] = useState('');
+ const [initialLoad, setInitialLoad] = useState(false);
+ const [editable, setEditable] = useState(false);
+ const {height} = useWindowDimensions();
+
+ const [isModalVisible, setModalVisible] = useState(false);
+
+ const fadeAnimation = useRef(new Animated.Value(0)).current;
+ const slideAnimation = useRef(new Animated.Value(0)).current;
+
+ const [displayFilter, setDisplayFilter] = useState(false);
+
+ const [filterCategory, setFilterCategory] = useState(filterCategories.price);
+
+ const [sortByCriteria, setSortByCriteria] = useState('Relevance');
+
+ const [mappedSortBy, setMappedSortBy] = useState('best_match');
+
+ const [priceRange, setPriceRange] = useState('Price');
+
+ const [priceRangeList, setPriceRangeList] = useState('');
+
+ const [visitedToggle, setVisitedToggle] = useToggle();
+
+ const [openToggle, setOpenToggle] = useToggleTrue();
+
+ const searchRef = useRef();
+ const textInputRef = useRef();
+
+ const flatListRef = useRef();
+
+ var tempConfig = {
+ headers: {
+ Authorization:
+ 'Bearer eu70nmGiCTtxJgzg5h3uL1M3rXa3YTsCpz92As8TQw4B5CJ7A0T37rnZ1n84OEvPgGZNNJi9BuYcjH1wj0Vql0P08jsYBEUjkjK0KPVDXUM4veb3jrZzSVwkQ9r4YHYx',
+ },
+ params: {
+ term: 'restaurant',
+ location: getAddress(props.location),
+ radius: 1609,
+ sort_by: mappedSortBy,
+ open_now: openToggle,
+ price: priceRangeList === '' ? '1,2,3,4' : priceRangeList,
+ },
+ };
+
+ const fadeIn = () => {
+ Animated.timing(fadeAnimation, {
+ toValue: 1,
+ duration: 400,
+ useNativeDriver: false,
+ }).start();
+ };
+ const slideDown = () => {
+ Animated.timing(slideAnimation, {
+ toValue: 1,
+ duration: 400,
+ useNativeDriver: false,
+ }).start();
+ };
+ const slideUp = () => {
+ Animated.timing(slideAnimation, {
+ toValue: 0,
+ duration: 400,
+ useNativeDriver: false,
+ }).start();
+ };
+
+ const fadeOut = () => {
+ Animated.timing(fadeAnimation, {
+ toValue: 0,
+ duration: 400,
+ useNativeDriver: false,
+ }).start();
+ };
+
+ const shrinkWidth = fadeAnimation.interpolate({
+ inputRange: [0, 1],
+ outputRange: [Platform.OS === 'ios' ? '100%' : '95%', '88%'],
+ });
+
+ const translateRight = fadeAnimation.interpolate({
+ inputRange: [0, 1],
+ outputRange: [0, 23],
+ });
+
+ const translateUp = fadeAnimation.interpolate({
+ inputRange: [0, 1],
+ outputRange: [-50, 0],
+ });
+
+ const translateDown = slideAnimation.interpolate({
+ inputRange: [0, 1],
+ outputRange: [0, height],
+ });
+
+ const toggleModal = () => {
+ setModalVisible(!isModalVisible);
+ Keyboard.dismiss();
+ };
+ const navigation = useNavigation();
+
+ const [config, setConfig] = useState(null);
+
+ const handleResponse = (response: any) => {
+ switch (filterCategory) {
+ case filterCategories.sortBy: {
+ setSortByCategory(response);
+ break;
+ }
+ case filterCategories.price: {
+ setSortByPrice(response);
+ }
+ }
+ };
+
+ const setSortByCategory = (index: number) => {
+ switch (index) {
+ case 0: {
+ setSortByCriteria('Relevance');
+ setMappedSortBy('best_match');
+ break;
+ }
+ case 1:
+ setSortByCriteria('Distance');
+ setMappedSortBy('distance');
+ break;
+ case 2:
+ setSortByCriteria('Rating');
+ setMappedSortBy('rating');
+ break;
+ case 3:
+ setSortByCriteria('Reviews');
+ setMappedSortBy('review_count');
+ break;
+ }
+ };
+
+ const setSortByPrice = (priceRange: any) => {
+ let priceString = '';
+ const sortedPriceRange = priceRange.sort((a, b) => a > b);
+ if (sortedPriceRange.length === 0) {
+ priceString = 'Price';
+ setPriceRange(priceString);
+ setPriceRangeList('1,2,3,4');
+ return;
+ } else if (sortedPriceRange.length === 1) {
+ priceString = getDollarSignByIndex(sortedPriceRange[0]) as string;
+ } else if (listIsConsecutive(sortedPriceRange)) {
+ priceString = ((getDollarSignByIndex(sortedPriceRange[0]) as string) +
+ '-' +
+ getDollarSignByIndex(
+ sortedPriceRange[sortedPriceRange.length - 1],
+ )) as string;
+ } else {
+ let i = 1;
+ priceString += getDollarSignByIndex(sortedPriceRange[0]);
+ for (i; i < sortedPriceRange.length; i++) {
+ priceString += ',';
+ priceString += getDollarSignByIndex(sortedPriceRange[i]);
+ }
+ }
+
+ setPriceRange(priceString);
+ let i = 1;
+ let finalPriceString = '';
+ finalPriceString += sortedPriceRange[0] + 1;
+ for (i; i < priceRange.length; i++) {
+ finalPriceString += ',';
+ finalPriceString += sortedPriceRange[i] + 1;
+ }
+ setPriceRangeList(finalPriceString);
+ };
+
+ const getDollarSignByIndex = (index: number) => {
+ switch (index) {
+ case 0:
+ return '$';
+ case 1:
+ return '$$';
+ case 2:
+ return '$$$';
+ case 3:
+ return '$$$$';
+ }
+ };
+
+ const listIsConsecutive = (numList: any) => {
+ let i = 0;
+ for (i; i < numList.length - 1; i++) {
+ if (numList[i + 1] - numList[i] != 1) {
+ return false;
+ }
+ }
+ return true;
+ };
+
+ useEffect(() => {
+ if (config !== null) {
+ axios
+ .get('https://api.yelp.com/v3/businesses/search', config)
+ .then(response => {
+ setRestaurants(response.data.businesses);
+ const tempRestaurants = response.data.businesses;
+ if (tempRestaurants.length === 0) {
+ setInitialLoad(false);
+ } else {
+ setInitialLoad(true);
+ }
+ setLoading(false);
+ });
+ } else {
+ setLoading(false);
+ }
+ }, [config]);
+
+ useEffect(() => {
+ if (config !== null) {
+ onSubmit();
+ setLoading(true);
+ } else {
+ setLoading(false);
+ }
+ }, [props.location]);
+
+ useEffect(() => {
+ if (searchQuery === '') {
+ setInitialLoad(false);
+ setConfig(null);
+ }
+ }, [searchQuery]);
+
+ useEffect(() => {
+ if (searchQuery !== '') {
+ onSubmit();
+ }
+ }, [openToggle, mappedSortBy, priceRangeList]);
+
+ const onSubmit = () => {
+ setInitialLoad(false);
+ if (searchQuery === '') {
+ setLoading(true);
+ setConfig(null);
+ setInitialLoad(false);
+ } else {
+ tempConfig.params.term = searchQuery;
+ setLoading(true);
+ setConfig(tempConfig);
+ }
+ };
+
+ const _renderItem = ({item, index}) => {
+ return (
+ {
+ fadeIn();
+ //@ts-ignore
+ navigation.navigate('Detailed Restaurant View', {
+ id: item.id,
+ restaurant: item,
+ });
+ }}
+ style={{marginBottom: 5}}>
+
+
+ {item.name}
+
+ {(item.distance / 1609.344).toFixed(2)} miles
+
+
+
+
+ );
+ };
+
+ return (
+
+ {
+ Keyboard.dismiss();
+ // searchRef.current.blur();
+ textInputRef.current.blur();
+ }}>
+
+ {
+ const a = new Promise((resolve, reject) => {
+ setTimeout(() => resolve('timeout'), 0);
+ });
+ a.then(() => {
+ // fadeInModal();
+ // searchRef.current?.focus();
+ textInputRef.current?.focus();
+ });
+ a.catch(console.log);
+ fadeIn();
+ slideDown();
+ setDisplayFilter(true);
+ setEditable(true);
+ }}>
+ {/* {
+ onSubmit();
+ Keyboard.dismiss();
+ searchRef.current.blur();
+ }}
+ /> */}
+
+
+ {
+ onSubmit();
+ Keyboard.dismiss();
+ textInputRef.current.blur();
+ }}
+ style={[
+ {
+ fontSize: 18,
+ },
+ styles.inputText,
+ ]}
+ />
+
+
+
+
+
+ {
+ setFilterCategory(filterCategories.sortBy);
+ toggleModal();
+ }}>
+
+
+ {sortByCriteria}
+
+
+ {
+ setFilterCategory(filterCategories.price);
+ toggleModal();
+ }}>
+
+
+ {priceRange}
+
+
+ {
+ setOpenToggle();
+ // onSubmit();
+ }}>
+
+ Open
+
+
+ {/* {
+ setVisitedToggle();
+ // onSubmit();
+ }}>
+
+ Visited
+
+ */}
+
+
+
+ {isLoading ? (
+
+
+
+ ) : (
+
+
+ {config !== null && restaurants.length === 0 ? (
+ No restaurants found...
+ ) : (
+
+ Search for a restaurant...
+
+ )}
+
+ )}
+ {initialLoad && (
+
+
+ {restaurants.length + ' restaurants found'}
+
+ id.toString()}
+ renderItem={_renderItem}
+ ListFooterComponent={
+
+ {
+ flatListRef.current.scrollToOffset({
+ animated: true,
+ offset: 0,
+ });
+ }}>
+
+ Back to top
+
+
+ }
+ />
+
+ )}
+
+
+ {
+ fadeOut();
+ slideUp();
+ setEditable(false);
+ setSearchQuery('');
+ setDisplayFilter(false);
+ // searchRef.current.blur();
+ textInputRef.current.blur();
+ }}>
+
+
+
+
+
+
+ );
+};
+
+const SLIDER_WIDTH = Dimensions.get('window').width;
+const SLIDER_HEIGHT = Dimensions.get('window').height;
+const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.9);
+const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 4);
+const styles = StyleSheet.create({
+ content: {
+ backgroundColor: 'white',
+ padding: 22,
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: 4,
+ borderColor: 'rgba(0, 0, 0, 0.1)',
+ },
+ contentTitle: {
+ fontSize: 20,
+ marginBottom: 12,
+ },
+ view: {
+ justifyContent: 'flex-end',
+ margin: 0,
+ },
+ searchContainer: {
+ width: '100%',
+ alignSelf: 'center',
+ paddingHorizontal: 5,
+ marginTop: 5,
+ marginBottom: 10,
+ },
+ listContainer: {
+ width: '100%',
+ alignSelf: 'center',
+ },
+ searchContainerModal: {
+ width: '100%',
+ marginTop: Platform.OS === 'ios' ? 50 : 25,
+ marginBottom: 15,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ imageStyle: {
+ width: '100%',
+ height: '100%',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ input: {
+ height: 40,
+ margin: 12,
+ borderWidth: 1,
+ flex: 2,
+ color: 'black',
+ },
+ inputTextContainer: {
+ borderWidth: 1,
+ padding: 8,
+ minWidth: '100%',
+ backgroundColor: 'white',
+ borderColor: 'lightgrey',
+ borderRadius: 5,
+ height: 39,
+ color: 'black',
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ inputText: {
+ padding: 8,
+ width: '90%',
+ backgroundColor: 'white',
+ height: 37,
+ color: 'black',
+ flexDirection: 'row',
+ alignItems: 'center',
+ textAlignVertical: 'center',
+ },
+ tempView: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ paddingRight: 10,
+ },
+ text: {
+ color: 'white',
+ },
+ buttonStyle: {
+ marginTop: 10,
+ backgroundColor: '#fd4f57',
+ },
+ imageView: {
+ width: '100%',
+ height: '100%',
+ justifyContent: 'flex-end',
+ borderBottomLeftRadius: 5,
+ borderBottomRightRadius: 5,
+ paddingLeft: 5,
+ paddingBottom: 5,
+ paddingTop: 5,
+ },
+ itemContainer: {
+ height: ITEM_HEIGHT,
+ justifyContent: 'flex-end',
+ alignItems: 'flex-start',
+ display: 'flex',
+ flexDirection: 'column',
+ backgroundColor: '#F5F5F5',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ marginBottom: 10,
+ },
+ searchCarousel: {
+ paddingHorizontal: 15,
+ marginTop: 15,
+ flex: 1,
+ },
+ filterContainer: {
+ backgroundColor: 'rgba(255, 255, 255, 0.5)',
+ borderRadius: 5,
+ paddingVertical: 5,
+ paddingHorizontal: 10,
+ marginHorizontal: 5,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ filterContainerSelected: {
+ backgroundColor: 'rgba(255, 255, 255, 0.8)',
+ borderRadius: 5,
+ paddingVertical: 5,
+ paddingHorizontal: 10,
+ marginHorizontal: 5,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ filterTextCarrot: {
+ marginLeft: 5,
+ },
+ filterText: {
+ margin: 0,
+ },
+ telescope: {
+ height: 246.6,
+ width: 165.4,
+ },
+ telescopeView: {
+ alignItems: 'center',
+ justifyContent: 'center',
+ height: SLIDER_HEIGHT - ITEM_HEIGHT - 100,
+ },
+ searchText: {
+ fontWeight: 'bold',
+ marginHorizontal: 10,
+ fontSize: 22,
+ },
+ resultText: {
+ fontWeight: 'bold',
+ fontSize: 18,
+ marginBottom: 10,
+ },
+});
diff --git a/src/core/api/yelp.tsx b/src/core/api/yelp.tsx
new file mode 100644
index 0000000..ad6ea3c
--- /dev/null
+++ b/src/core/api/yelp.tsx
@@ -0,0 +1,185 @@
+import {useNavigation} from '@react-navigation/native';
+import axios from 'axios';
+import React, {FC, useEffect, useState} from 'react';
+import {
+ AppState,
+ Dimensions,
+ ImageBackground,
+ StyleSheet,
+ Text,
+ TouchableOpacity,
+ Linking,
+} from 'react-native';
+import LinearGradient from 'react-native-linear-gradient';
+import Spinner from 'react-native-spinkit';
+import {getAddress} from '../../screens/home/helpers';
+import {getData, storeData} from './helpers';
+
+type Props = {location?: string};
+
+export const Yelp: FC = props => {
+ const [isLoading, setLoading] = useState(true);
+ const navigation = useNavigation();
+ const [todaysRestaurant, setTodaysRestaurant] = useState(null);
+
+ const [appState, setAppState] = useState('');
+
+ const config = {
+ headers: {
+ Authorization:
+ 'Bearer eu70nmGiCTtxJgzg5h3uL1M3rXa3YTsCpz92As8TQw4B5CJ7A0T37rnZ1n84OEvPgGZNNJi9BuYcjH1wj0Vql0P08jsYBEUjkjK0KPVDXUM4veb3jrZzSVwkQ9r4YHYx',
+ },
+ params: {
+ term: 'Restaurants',
+ location: getAddress(props.location),
+ limit: 50,
+ radius: 2000,
+ },
+ };
+
+ useEffect(() => {
+ const subscription = AppState.addEventListener('change', nextAppState => {
+ setAppState(nextAppState);
+ });
+
+ return () => {
+ subscription.remove();
+ };
+ }, []);
+
+ const today = getCurrentDate();
+
+ useEffect(() => {
+ axios
+ .get('https://api.yelp.com/v3/businesses/search', config)
+ .then(response => {
+ const indexedRestaurants = response.data.businesses.reduce(
+ (accumulator, restaurant) => ({
+ ...accumulator,
+ [restaurant.id]: restaurant,
+ }),
+ );
+ const restaurants = indexedRestaurants;
+
+ getData().then((restaurantDateMap = {}) => {
+ const currentRestaurant = restaurantDateMap[today];
+ if (currentRestaurant && currentRestaurant[props.location]) {
+ const restaurant =
+ indexedRestaurants[currentRestaurant[props.location]];
+ if (restaurant) {
+ setTodaysRestaurant(restaurant);
+ return;
+ }
+ }
+ while (1) {
+ const randomNumber = Math.floor(
+ Math.random() * (Object.keys(restaurants).length - 16 + 1) + 16,
+ );
+
+ const potentialRestaurantId =
+ Object.keys(restaurants)[randomNumber];
+ const isAlreadyShown = !!Object.values(restaurantDateMap).filter(
+ location => location[props.location] == potentialRestaurantId,
+ )[0];
+ if (!isAlreadyShown) {
+ setTodaysRestaurant(restaurants[potentialRestaurantId]);
+ storeData({
+ ...restaurantDateMap,
+ [today]: {
+ ...restaurantDateMap[today],
+ [props.location]: restaurants[potentialRestaurantId].id,
+ },
+ }).catch(e => console.log(e));
+ break;
+ }
+ }
+ });
+
+ setLoading(false);
+ });
+ }, [props.location, today]);
+
+ if (!todaysRestaurant) {
+ return (
+
+ );
+ }
+ return (
+ {
+ //@ts-ignore
+ navigation.navigate('Detailed Restaurant View', {
+ id: todaysRestaurant.id,
+ restaurant: todaysRestaurant,
+ });
+ }}>
+
+
+ {todaysRestaurant.name}
+
+ {(todaysRestaurant.distance / 1609.344).toFixed(2)} miles
+
+
+
+
+ );
+};
+
+const SLIDER_WIDTH = Dimensions.get('window').width;
+const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.8);
+const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 4);
+const styles = StyleSheet.create({
+ itemContainer: {
+ height: ITEM_HEIGHT,
+ justifyContent: 'flex-end',
+ alignItems: 'flex-start',
+ display: 'flex',
+ flexDirection: 'column',
+ backgroundColor: '#F5F5F5',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ width: '100%',
+ },
+ touchableContainer: {
+ width: '100%',
+ height: ITEM_HEIGHT,
+ },
+ imageStyle: {
+ width: '100%',
+ height: '100%',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ text: {
+ color: 'white',
+ },
+ imageView: {
+ width: '100%',
+ height: '100%',
+ justifyContent: 'flex-end',
+ borderBottomLeftRadius: 5,
+ borderBottomRightRadius: 5,
+ paddingLeft: 5,
+ paddingBottom: 5,
+ paddingTop: 5,
+ },
+});
+
+export const getCurrentDate = () => {
+ return new Date().toISOString().split('T')[0];
+};
diff --git a/src/core/models/index.ts b/src/core/models/index.ts
new file mode 100644
index 0000000..1e134fd
--- /dev/null
+++ b/src/core/models/index.ts
@@ -0,0 +1,13 @@
+export type ToDoItem = {
+ id: number;
+ value: string;
+};
+
+export type newPairLunch = {
+ id: string;
+ atom: string;
+ date: string;
+ restaurant: string;
+ color: string;
+ column: number;
+};
diff --git a/src/core/storage/db-service.ts b/src/core/storage/db-service.ts
new file mode 100644
index 0000000..ed5d8e2
--- /dev/null
+++ b/src/core/storage/db-service.ts
@@ -0,0 +1,96 @@
+import {
+ enablePromise,
+ openDatabase,
+ SQLiteDatabase,
+} from "react-native-sqlite-storage";
+import { newPairLunch } from "../models";
+
+const tableName = "pairLunchData";
+
+enablePromise(true);
+
+export const getDBConnection = async () => {
+ return openDatabase({ name: "pair-lunch.db", location: "default" });
+};
+
+export const createTable = async (db: SQLiteDatabase) => {
+ // create table if not exists
+ const query = `CREATE TABLE IF NOT EXISTS ${tableName}(
+ rowid TEXT PRIMARY KEY,
+ atom TEXT NOT NULL,
+ date TEXT NOT NULL,
+ restaurant TEXT NOT NULL,
+ color TEXT NOT NULL,
+ column INTEGER NOT NULL
+ );`;
+
+ await db.executeSql(query);
+};
+
+export const getPairLunches = async (
+ db: SQLiteDatabase
+): Promise => {
+ try {
+ const newPairLunch: newPairLunch[] = [];
+ const results = await db.executeSql(
+ `SELECT rowid as id,atom,date,restaurant,color,column FROM ${tableName}`
+ );
+ results.forEach((result) => {
+ for (let index = 0; index < result.rows.length; index++) {
+ newPairLunch.push(result.rows.item(index));
+ }
+ });
+ return newPairLunch;
+ } catch (error) {
+ console.error(error);
+ throw Error("Failed to get todoItems !!!");
+ }
+};
+
+export const getPairLunch = async (
+ db: SQLiteDatabase,
+ name: string
+): Promise => {
+ try {
+ const newPairLunch: newPairLunch[] = [];
+ const results = await db.executeSql(
+ `SELECT rowid as id,atom,date,restaurant,color,column FROM ${tableName} WHERE atom = '${name}'`
+ );
+ results.forEach((result) => {
+ for (let index = 0; index < result.rows.length; index++) {
+ newPairLunch.push(result.rows.item(index));
+ }
+ });
+ return newPairLunch;
+ } catch (error) {
+ console.error(error);
+ throw Error("Failed to get todoItems !!!");
+ }
+};
+
+export const savePairLunches = async (
+ db: SQLiteDatabase,
+ pairLunch: newPairLunch[]
+) => {
+ const insertQuery =
+ `INSERT OR REPLACE INTO ${tableName}(rowid, atom, date, restaurant, color, column) values` +
+ pairLunch
+ .map(
+ (i) =>
+ `('${i.id}', '${i.atom}', '${i.date}', '${i.restaurant}', '${i.color}', ${i.column})`
+ )
+ .join(",");
+
+ return db.executeSql(insertQuery);
+};
+
+export const deletePairLunch = async (db: SQLiteDatabase, id: number) => {
+ const deleteQuery = `DELETE from ${tableName} where rowid = ${id}`;
+ await db.executeSql(deleteQuery);
+};
+
+export const deleteTable = async (db: SQLiteDatabase) => {
+ const query = `drop table ${tableName}`;
+
+ await db.executeSql(query);
+};
diff --git a/src/core/storage/realm.tsx b/src/core/storage/realm.tsx
new file mode 100644
index 0000000..d3632f0
--- /dev/null
+++ b/src/core/storage/realm.tsx
@@ -0,0 +1,31 @@
+import Realm from "realm";
+import {
+ PairLunchListSchema,
+ PAIRLUNCHLIST_SCHEMA,
+ PairLunchSchema,
+} from "./schema";
+
+export const databaseOptions = {
+ schema: [PairLunchListSchema, PairLunchSchema],
+ schemaVersion: 0,
+};
+
+export const getRealm = async () => {
+ const realm = await Realm.open({
+ path: "pairLunchPicker.realm",
+ schema: [PairLunchListSchema, PairLunchSchema],
+ schemaVersion: 0,
+ });
+ return realm;
+};
+
+export const getRealmLunches = async () => {
+ const realm = await getRealm();
+ const allPairLunchLists: any = realm.objects(PAIRLUNCHLIST_SCHEMA);
+ if (allPairLunchLists[0] !== undefined) {
+ return allPairLunchLists[0].lunches;
+ }
+ return [];
+};
+
+export default new Realm(databaseOptions);
diff --git a/src/core/storage/schema.ts b/src/core/storage/schema.ts
new file mode 100644
index 0000000..7786895
--- /dev/null
+++ b/src/core/storage/schema.ts
@@ -0,0 +1,31 @@
+export const PAIRLUNCHLIST_SCHEMA = "PairLunchList";
+export const PAIRLUNCH_SCHEMA = "PairLunch";
+
+export const PairLunchSchema = {
+ name: PAIRLUNCH_SCHEMA,
+ embedded: true,
+ properties: {
+ id: "objectId",
+ atom: { type: "string", indexed: true },
+ date: "string",
+ restaurant: "string",
+ color: "string",
+ column: "int",
+ },
+};
+
+export const PairLunchListSchema = {
+ name: PAIRLUNCHLIST_SCHEMA,
+ primaryKey: "id",
+ properties: {
+ id: "objectId",
+ atom: "string",
+ lunches: { type: "list", objectType: PAIRLUNCH_SCHEMA },
+ },
+};
+
+export type PairLunchListObject = {
+ id: string,
+ atom: string,
+ lunches: [string],
+};
diff --git a/src/images/SearchBar.png b/src/images/SearchBar.png
new file mode 100644
index 0000000..a7e6e64
Binary files /dev/null and b/src/images/SearchBar.png differ
diff --git a/src/images/atom_portraits/Abel-Ryan.jpg b/src/images/atom_portraits/Abel-Ryan.jpg
new file mode 100644
index 0000000..b824ac8
Binary files /dev/null and b/src/images/atom_portraits/Abel-Ryan.jpg differ
diff --git a/src/images/atom_portraits/Alger-Molly.jpg b/src/images/atom_portraits/Alger-Molly.jpg
new file mode 100644
index 0000000..2e7d314
Binary files /dev/null and b/src/images/atom_portraits/Alger-Molly.jpg differ
diff --git a/src/images/atom_portraits/Alles-Micah.jpg b/src/images/atom_portraits/Alles-Micah.jpg
new file mode 100644
index 0000000..677b9ca
Binary files /dev/null and b/src/images/atom_portraits/Alles-Micah.jpg differ
diff --git a/src/images/atom_portraits/Bacon-Patrick.jpg b/src/images/atom_portraits/Bacon-Patrick.jpg
new file mode 100644
index 0000000..40248b8
Binary files /dev/null and b/src/images/atom_portraits/Bacon-Patrick.jpg differ
diff --git a/src/images/atom_portraits/Bailey-Jonah.jpg b/src/images/atom_portraits/Bailey-Jonah.jpg
new file mode 100644
index 0000000..683b1a5
Binary files /dev/null and b/src/images/atom_portraits/Bailey-Jonah.jpg differ
diff --git a/src/images/atom_portraits/Behrens-Mattie.jpg b/src/images/atom_portraits/Behrens-Mattie.jpg
new file mode 100644
index 0000000..879536e
Binary files /dev/null and b/src/images/atom_portraits/Behrens-Mattie.jpg differ
diff --git a/src/images/atom_portraits/Bell-Rob.jpg b/src/images/atom_portraits/Bell-Rob.jpg
new file mode 100644
index 0000000..ed3049f
Binary files /dev/null and b/src/images/atom_portraits/Bell-Rob.jpg differ
diff --git a/src/images/atom_portraits/Berwanger-Louie.jpg b/src/images/atom_portraits/Berwanger-Louie.jpg
new file mode 100644
index 0000000..a805a5f
Binary files /dev/null and b/src/images/atom_portraits/Berwanger-Louie.jpg differ
diff --git a/src/images/atom_portraits/Bohn-Kasey.jpg b/src/images/atom_portraits/Bohn-Kasey.jpg
new file mode 100644
index 0000000..b77fa0c
Binary files /dev/null and b/src/images/atom_portraits/Bohn-Kasey.jpg differ
diff --git a/src/images/atom_portraits/Brockett-Sarah.jpg b/src/images/atom_portraits/Brockett-Sarah.jpg
new file mode 100644
index 0000000..16f2878
Binary files /dev/null and b/src/images/atom_portraits/Brockett-Sarah.jpg differ
diff --git a/src/images/atom_portraits/Canterbury-Rebecca.jpg b/src/images/atom_portraits/Canterbury-Rebecca.jpg
new file mode 100644
index 0000000..dda82e7
Binary files /dev/null and b/src/images/atom_portraits/Canterbury-Rebecca.jpg differ
diff --git a/src/images/atom_portraits/Cerone-Jimmy.jpg b/src/images/atom_portraits/Cerone-Jimmy.jpg
new file mode 100644
index 0000000..e983c6d
Binary files /dev/null and b/src/images/atom_portraits/Cerone-Jimmy.jpg differ
diff --git a/src/images/atom_portraits/Chaffer-Jonathan.jpg b/src/images/atom_portraits/Chaffer-Jonathan.jpg
new file mode 100644
index 0000000..feb96e3
Binary files /dev/null and b/src/images/atom_portraits/Chaffer-Jonathan.jpg differ
diff --git a/src/images/atom_portraits/Choi-Wonyoung.jpg b/src/images/atom_portraits/Choi-Wonyoung.jpg
new file mode 100644
index 0000000..0c983e7
Binary files /dev/null and b/src/images/atom_portraits/Choi-Wonyoung.jpg differ
diff --git a/src/images/atom_portraits/Chrysler-Joe.jpg b/src/images/atom_portraits/Chrysler-Joe.jpg
new file mode 100644
index 0000000..c258986
Binary files /dev/null and b/src/images/atom_portraits/Chrysler-Joe.jpg differ
diff --git a/src/images/atom_portraits/Colthorp-Drew.jpg b/src/images/atom_portraits/Colthorp-Drew.jpg
new file mode 100644
index 0000000..e3e2da2
Binary files /dev/null and b/src/images/atom_portraits/Colthorp-Drew.jpg differ
diff --git a/src/images/atom_portraits/Cooper-Noah.jpg b/src/images/atom_portraits/Cooper-Noah.jpg
new file mode 100644
index 0000000..84b486c
Binary files /dev/null and b/src/images/atom_portraits/Cooper-Noah.jpg differ
diff --git a/src/images/atom_portraits/Crawford-Kim.jpg b/src/images/atom_portraits/Crawford-Kim.jpg
new file mode 100644
index 0000000..d284842
Binary files /dev/null and b/src/images/atom_portraits/Crawford-Kim.jpg differ
diff --git a/src/images/atom_portraits/Crowley-Shawn.jpg b/src/images/atom_portraits/Crowley-Shawn.jpg
new file mode 100644
index 0000000..8bbf549
Binary files /dev/null and b/src/images/atom_portraits/Crowley-Shawn.jpg differ
diff --git a/src/images/atom_portraits/Cupery-Lydia.jpg b/src/images/atom_portraits/Cupery-Lydia.jpg
new file mode 100644
index 0000000..aada334
Binary files /dev/null and b/src/images/atom_portraits/Cupery-Lydia.jpg differ
diff --git a/src/images/atom_portraits/Daniels-Kelly.jpg b/src/images/atom_portraits/Daniels-Kelly.jpg
new file mode 100644
index 0000000..7a01522
Binary files /dev/null and b/src/images/atom_portraits/Daniels-Kelly.jpg differ
diff --git a/src/images/atom_portraits/Diemer-Kaitlin.jpg b/src/images/atom_portraits/Diemer-Kaitlin.jpg
new file mode 100644
index 0000000..98cb5a9
Binary files /dev/null and b/src/images/atom_portraits/Diemer-Kaitlin.jpg differ
diff --git a/src/images/atom_portraits/Dondzila-Kory.jpg b/src/images/atom_portraits/Dondzila-Kory.jpg
new file mode 100644
index 0000000..7644843
Binary files /dev/null and b/src/images/atom_portraits/Dondzila-Kory.jpg differ
diff --git a/src/images/atom_portraits/DuMez-Grace.jpg b/src/images/atom_portraits/DuMez-Grace.jpg
new file mode 100644
index 0000000..b9d05f2
Binary files /dev/null and b/src/images/atom_portraits/DuMez-Grace.jpg differ
diff --git a/src/images/atom_portraits/Ebels-Lauren.jpg b/src/images/atom_portraits/Ebels-Lauren.jpg
new file mode 100644
index 0000000..28c06f9
Binary files /dev/null and b/src/images/atom_portraits/Ebels-Lauren.jpg differ
diff --git a/src/images/atom_portraits/Elkus-Bryan.jpg b/src/images/atom_portraits/Elkus-Bryan.jpg
new file mode 100644
index 0000000..3d23b1c
Binary files /dev/null and b/src/images/atom_portraits/Elkus-Bryan.jpg differ
diff --git a/src/images/atom_portraits/Erickson-Carl.jpg b/src/images/atom_portraits/Erickson-Carl.jpg
new file mode 100644
index 0000000..10baa44
Binary files /dev/null and b/src/images/atom_portraits/Erickson-Carl.jpg differ
diff --git a/src/images/atom_portraits/Ezekiel-Elaine.jpg b/src/images/atom_portraits/Ezekiel-Elaine.jpg
new file mode 100644
index 0000000..20f563f
Binary files /dev/null and b/src/images/atom_portraits/Ezekiel-Elaine.jpg differ
diff --git a/src/images/atom_portraits/Falkowski-Casey.jpg b/src/images/atom_portraits/Falkowski-Casey.jpg
new file mode 100644
index 0000000..6377e00
Binary files /dev/null and b/src/images/atom_portraits/Falkowski-Casey.jpg differ
diff --git a/src/images/atom_portraits/Fan-Jing.jpg b/src/images/atom_portraits/Fan-Jing.jpg
new file mode 100644
index 0000000..225c5cd
Binary files /dev/null and b/src/images/atom_portraits/Fan-Jing.jpg differ
diff --git a/src/images/atom_portraits/Farber-Chris.jpg b/src/images/atom_portraits/Farber-Chris.jpg
new file mode 100644
index 0000000..8623d8a
Binary files /dev/null and b/src/images/atom_portraits/Farber-Chris.jpg differ
diff --git a/src/images/atom_portraits/Fisher-John.jpg b/src/images/atom_portraits/Fisher-John.jpg
new file mode 100644
index 0000000..c3776c1
Binary files /dev/null and b/src/images/atom_portraits/Fisher-John.jpg differ
diff --git a/src/images/atom_portraits/Fitins-Justin.jpg b/src/images/atom_portraits/Fitins-Justin.jpg
new file mode 100644
index 0000000..620dc6e
Binary files /dev/null and b/src/images/atom_portraits/Fitins-Justin.jpg differ
diff --git a/src/images/atom_portraits/Fletcher-Matt.jpg b/src/images/atom_portraits/Fletcher-Matt.jpg
new file mode 100644
index 0000000..1baeda1
Binary files /dev/null and b/src/images/atom_portraits/Fletcher-Matt.jpg differ
diff --git a/src/images/atom_portraits/Gittlen-Nate.jpg b/src/images/atom_portraits/Gittlen-Nate.jpg
new file mode 100644
index 0000000..585efad
Binary files /dev/null and b/src/images/atom_portraits/Gittlen-Nate.jpg differ
diff --git a/src/images/atom_portraits/Goings-Dylan.jpg b/src/images/atom_portraits/Goings-Dylan.jpg
new file mode 100644
index 0000000..2bf79e1
Binary files /dev/null and b/src/images/atom_portraits/Goings-Dylan.jpg differ
diff --git a/src/images/atom_portraits/Guyton-Stephen.jpg b/src/images/atom_portraits/Guyton-Stephen.jpg
new file mode 100644
index 0000000..76c2008
Binary files /dev/null and b/src/images/atom_portraits/Guyton-Stephen.jpg differ
diff --git a/src/images/atom_portraits/Haan-Kendra.jpg b/src/images/atom_portraits/Haan-Kendra.jpg
new file mode 100644
index 0000000..0ce8736
Binary files /dev/null and b/src/images/atom_portraits/Haan-Kendra.jpg differ
diff --git a/src/images/atom_portraits/Harris-Kyle.jpg b/src/images/atom_portraits/Harris-Kyle.jpg
new file mode 100644
index 0000000..a166096
Binary files /dev/null and b/src/images/atom_portraits/Harris-Kyle.jpg differ
diff --git a/src/images/atom_portraits/Hazekamp-Nick.jpg b/src/images/atom_portraits/Hazekamp-Nick.jpg
new file mode 100644
index 0000000..4c79643
Binary files /dev/null and b/src/images/atom_portraits/Hazekamp-Nick.jpg differ
diff --git a/src/images/atom_portraits/Hill-Jesse.jpg b/src/images/atom_portraits/Hill-Jesse.jpg
new file mode 100644
index 0000000..3dbf441
Binary files /dev/null and b/src/images/atom_portraits/Hill-Jesse.jpg differ
diff --git a/src/images/atom_portraits/Hunter-Brittany.jpg b/src/images/atom_portraits/Hunter-Brittany.jpg
new file mode 100644
index 0000000..a690e82
Binary files /dev/null and b/src/images/atom_portraits/Hunter-Brittany.jpg differ
diff --git a/src/images/atom_portraits/Interino-Justin.jpg b/src/images/atom_portraits/Interino-Justin.jpg
new file mode 100644
index 0000000..2f5602b
Binary files /dev/null and b/src/images/atom_portraits/Interino-Justin.jpg differ
diff --git a/src/images/atom_portraits/Janyska-Allen.jpg b/src/images/atom_portraits/Janyska-Allen.jpg
new file mode 100644
index 0000000..3e7e55f
Binary files /dev/null and b/src/images/atom_portraits/Janyska-Allen.jpg differ
diff --git a/src/images/atom_portraits/Johnson-Zachary.jpg b/src/images/atom_portraits/Johnson-Zachary.jpg
new file mode 100644
index 0000000..93b71fb
Binary files /dev/null and b/src/images/atom_portraits/Johnson-Zachary.jpg differ
diff --git a/src/images/atom_portraits/Kelch-Dan.jpg b/src/images/atom_portraits/Kelch-Dan.jpg
new file mode 100644
index 0000000..c9c3fb6
Binary files /dev/null and b/src/images/atom_portraits/Kelch-Dan.jpg differ
diff --git a/src/images/atom_portraits/Keuning-Nick.jpg b/src/images/atom_portraits/Keuning-Nick.jpg
new file mode 100644
index 0000000..ad6b6f7
Binary files /dev/null and b/src/images/atom_portraits/Keuning-Nick.jpg differ
diff --git a/src/images/atom_portraits/Kirkham-Phil.jpg b/src/images/atom_portraits/Kirkham-Phil.jpg
new file mode 100644
index 0000000..7029c5f
Binary files /dev/null and b/src/images/atom_portraits/Kirkham-Phil.jpg differ
diff --git a/src/images/atom_portraits/Li-Michael.jpg b/src/images/atom_portraits/Li-Michael.jpg
new file mode 100644
index 0000000..8f470d9
Binary files /dev/null and b/src/images/atom_portraits/Li-Michael.jpg differ
diff --git a/src/images/atom_portraits/Lind-Meredith.jpg b/src/images/atom_portraits/Lind-Meredith.jpg
new file mode 100644
index 0000000..ba827d4
Binary files /dev/null and b/src/images/atom_portraits/Lind-Meredith.jpg differ
diff --git a/src/images/atom_portraits/Marsiglia-Danielle.jpg b/src/images/atom_portraits/Marsiglia-Danielle.jpg
new file mode 100644
index 0000000..e9d3ce9
Binary files /dev/null and b/src/images/atom_portraits/Marsiglia-Danielle.jpg differ
diff --git a/src/images/atom_portraits/Marsiglia-Mike.jpg b/src/images/atom_portraits/Marsiglia-Mike.jpg
new file mode 100644
index 0000000..66ff329
Binary files /dev/null and b/src/images/atom_portraits/Marsiglia-Mike.jpg differ
diff --git a/src/images/atom_portraits/May-Brian.jpg b/src/images/atom_portraits/May-Brian.jpg
new file mode 100644
index 0000000..0ba1f33
Binary files /dev/null and b/src/images/atom_portraits/May-Brian.jpg differ
diff --git a/src/images/atom_portraits/McQuater-Rachael.jpg b/src/images/atom_portraits/McQuater-Rachael.jpg
new file mode 100644
index 0000000..ebc350c
Binary files /dev/null and b/src/images/atom_portraits/McQuater-Rachael.jpg differ
diff --git a/src/images/atom_portraits/Medema-Adam.jpg b/src/images/atom_portraits/Medema-Adam.jpg
new file mode 100644
index 0000000..f3e8b96
Binary files /dev/null and b/src/images/atom_portraits/Medema-Adam.jpg differ
diff --git a/src/images/atom_portraits/Miller-Lina.jpg b/src/images/atom_portraits/Miller-Lina.jpg
new file mode 100644
index 0000000..9fa789e
Binary files /dev/null and b/src/images/atom_portraits/Miller-Lina.jpg differ
diff --git a/src/images/atom_portraits/Munasinghe-Anjali.jpg b/src/images/atom_portraits/Munasinghe-Anjali.jpg
new file mode 100644
index 0000000..625d4b9
Binary files /dev/null and b/src/images/atom_portraits/Munasinghe-Anjali.jpg differ
diff --git a/src/images/atom_portraits/Nelson-Jordan.jpg b/src/images/atom_portraits/Nelson-Jordan.jpg
new file mode 100644
index 0000000..ad8a121
Binary files /dev/null and b/src/images/atom_portraits/Nelson-Jordan.jpg differ
diff --git a/src/images/atom_portraits/ONeill-Mary.jpg b/src/images/atom_portraits/ONeill-Mary.jpg
new file mode 100644
index 0000000..dbf4cd8
Binary files /dev/null and b/src/images/atom_portraits/ONeill-Mary.jpg differ
diff --git a/src/images/atom_portraits/Pale-Patrick.jpg b/src/images/atom_portraits/Pale-Patrick.jpg
new file mode 100644
index 0000000..1ba712e
Binary files /dev/null and b/src/images/atom_portraits/Pale-Patrick.jpg differ
diff --git a/src/images/atom_portraits/Papes-Nathan.jpg b/src/images/atom_portraits/Papes-Nathan.jpg
new file mode 100644
index 0000000..fbc7b6b
Binary files /dev/null and b/src/images/atom_portraits/Papes-Nathan.jpg differ
diff --git a/src/images/atom_portraits/Pearson-Tammy.jpg b/src/images/atom_portraits/Pearson-Tammy.jpg
new file mode 100644
index 0000000..2bd1041
Binary files /dev/null and b/src/images/atom_portraits/Pearson-Tammy.jpg differ
diff --git a/src/images/atom_portraits/Peterson-Andy.jpg b/src/images/atom_portraits/Peterson-Andy.jpg
new file mode 100644
index 0000000..b739e52
Binary files /dev/null and b/src/images/atom_portraits/Peterson-Andy.jpg differ
diff --git a/src/images/atom_portraits/Porritt-Jason.jpg b/src/images/atom_portraits/Porritt-Jason.jpg
new file mode 100644
index 0000000..e16a251
Binary files /dev/null and b/src/images/atom_portraits/Porritt-Jason.jpg differ
diff --git a/src/images/atom_portraits/Rosas-Viviana.jpg b/src/images/atom_portraits/Rosas-Viviana.jpg
new file mode 100644
index 0000000..368f81f
Binary files /dev/null and b/src/images/atom_portraits/Rosas-Viviana.jpg differ
diff --git a/src/images/atom_portraits/Ruble-John.jpg b/src/images/atom_portraits/Ruble-John.jpg
new file mode 100644
index 0000000..2d059dc
Binary files /dev/null and b/src/images/atom_portraits/Ruble-John.jpg differ
diff --git a/src/images/atom_portraits/Schaenzle-Jordan.jpg b/src/images/atom_portraits/Schaenzle-Jordan.jpg
new file mode 100644
index 0000000..ddb359f
Binary files /dev/null and b/src/images/atom_portraits/Schaenzle-Jordan.jpg differ
diff --git a/src/images/atom_portraits/Sera-Sivhaun.jpg b/src/images/atom_portraits/Sera-Sivhaun.jpg
new file mode 100644
index 0000000..fe1082c
Binary files /dev/null and b/src/images/atom_portraits/Sera-Sivhaun.jpg differ
diff --git a/src/images/atom_portraits/Shipp-Doug.jpg b/src/images/atom_portraits/Shipp-Doug.jpg
new file mode 100644
index 0000000..13d767c
Binary files /dev/null and b/src/images/atom_portraits/Shipp-Doug.jpg differ
diff --git a/src/images/atom_portraits/Silas-Jake.jpg b/src/images/atom_portraits/Silas-Jake.jpg
new file mode 100644
index 0000000..752f150
Binary files /dev/null and b/src/images/atom_portraits/Silas-Jake.jpg differ
diff --git a/src/images/atom_portraits/Soto-Matt.jpg b/src/images/atom_portraits/Soto-Matt.jpg
new file mode 100644
index 0000000..3f8fd1b
Binary files /dev/null and b/src/images/atom_portraits/Soto-Matt.jpg differ
diff --git a/src/images/atom_portraits/Swanson-Tyler.jpg b/src/images/atom_portraits/Swanson-Tyler.jpg
new file mode 100644
index 0000000..7064806
Binary files /dev/null and b/src/images/atom_portraits/Swanson-Tyler.jpg differ
diff --git a/src/images/atom_portraits/Swieton-Mike.jpg b/src/images/atom_portraits/Swieton-Mike.jpg
new file mode 100644
index 0000000..6237e27
Binary files /dev/null and b/src/images/atom_portraits/Swieton-Mike.jpg differ
diff --git a/src/images/atom_portraits/Tahiri-Sam.jpg b/src/images/atom_portraits/Tahiri-Sam.jpg
new file mode 100644
index 0000000..3ca1557
Binary files /dev/null and b/src/images/atom_portraits/Tahiri-Sam.jpg differ
diff --git a/src/images/atom_portraits/VandenHoek-Taylor.jpg b/src/images/atom_portraits/VandenHoek-Taylor.jpg
new file mode 100644
index 0000000..3c4436b
Binary files /dev/null and b/src/images/atom_portraits/VandenHoek-Taylor.jpg differ
diff --git a/src/images/atom_portraits/VanderClay-Gage.jpg b/src/images/atom_portraits/VanderClay-Gage.jpg
new file mode 100644
index 0000000..9c68554
Binary files /dev/null and b/src/images/atom_portraits/VanderClay-Gage.jpg differ
diff --git a/src/images/atom_portraits/Vanderwal-Brian.jpg b/src/images/atom_portraits/Vanderwal-Brian.jpg
new file mode 100644
index 0000000..90237ce
Binary files /dev/null and b/src/images/atom_portraits/Vanderwal-Brian.jpg differ
diff --git a/src/images/atom_portraits/Vruggink-Terri.jpg b/src/images/atom_portraits/Vruggink-Terri.jpg
new file mode 100644
index 0000000..a16c58d
Binary files /dev/null and b/src/images/atom_portraits/Vruggink-Terri.jpg differ
diff --git a/src/images/atom_portraits/Warren-Patrick.jpg b/src/images/atom_portraits/Warren-Patrick.jpg
new file mode 100644
index 0000000..6b628df
Binary files /dev/null and b/src/images/atom_portraits/Warren-Patrick.jpg differ
diff --git a/src/images/atom_portraits/Williams-Jeff.jpg b/src/images/atom_portraits/Williams-Jeff.jpg
new file mode 100644
index 0000000..d14c6b3
Binary files /dev/null and b/src/images/atom_portraits/Williams-Jeff.jpg differ
diff --git a/src/images/atom_portraits/Zurek-Alex.jpg b/src/images/atom_portraits/Zurek-Alex.jpg
new file mode 100644
index 0000000..6e0c61a
Binary files /dev/null and b/src/images/atom_portraits/Zurek-Alex.jpg differ
diff --git a/src/images/atomic_telescope.png b/src/images/atomic_telescope.png
new file mode 100644
index 0000000..28240e9
Binary files /dev/null and b/src/images/atomic_telescope.png differ
diff --git a/src/images/no-image.jpeg b/src/images/no-image.jpeg
new file mode 100644
index 0000000..37c2040
Binary files /dev/null and b/src/images/no-image.jpeg differ
diff --git a/src/images/school-lunch-transparent.png b/src/images/school-lunch-transparent.png
new file mode 100644
index 0000000..8eb9357
Binary files /dev/null and b/src/images/school-lunch-transparent.png differ
diff --git a/src/images/tracker.png b/src/images/tracker.png
new file mode 100644
index 0000000..4b18195
Binary files /dev/null and b/src/images/tracker.png differ
diff --git a/src/images/twopeoplelunch.png b/src/images/twopeoplelunch.png
new file mode 100644
index 0000000..204113f
Binary files /dev/null and b/src/images/twopeoplelunch.png differ
diff --git a/src/navigation/BottomTabNavigator.tsx b/src/navigation/BottomTabNavigator.tsx
new file mode 100644
index 0000000..5d1d81b
--- /dev/null
+++ b/src/navigation/BottomTabNavigator.tsx
@@ -0,0 +1,75 @@
+import {createBottomTabNavigator} from '@react-navigation/bottom-tabs';
+import * as React from 'react';
+import {Icon} from 'react-native-elements/dist/icons/Icon';
+import {HomeScreen} from '../screens/home';
+import {Tracker} from '../screens/tracker';
+
+const Tab = createBottomTabNavigator();
+
+const tabBarIcon = (
+ iconName: string,
+ iconProps: {
+ focused: boolean;
+ color: string;
+ size: number;
+ },
+) => {
+ switch (iconName) {
+ case 'home':
+ return (
+
+ );
+ case 'tracker':
+ return (
+
+ );
+ default:
+ return (
+
+ );
+ }
+};
+
+export const TabNavigator: React.FC = () => {
+ return (
+
+ tabBarIcon('home', {...props, size: 24}),
+ headerShown: false,
+ }}
+ name="Home"
+ component={HomeScreen}
+ />
+ tabBarIcon('tracker', {...props, size: 24}),
+ headerStyle: {backgroundColor: '#fd4f57'},
+ headerShown: false,
+ }}
+ name="Pair Lunch Tracker"
+ component={Tracker}
+ />
+
+ );
+};
diff --git a/src/navigation/RootNavigator.tsx b/src/navigation/RootNavigator.tsx
new file mode 100644
index 0000000..7012d1e
--- /dev/null
+++ b/src/navigation/RootNavigator.tsx
@@ -0,0 +1,65 @@
+import { createStackNavigator } from "@react-navigation/stack";
+import * as React from "react";
+import { HomeScreen } from "../screens/home";
+import { DetailedRestaurantView } from "../screens/drv";
+import { TabNavigator } from "./BottomTabNavigator";
+import { AtomicPeopleView } from "../screens/profile";
+
+const RootStack = createStackNavigator();
+
+export const RootNavigator: React.FC = () => {
+ return (
+
+
+
+
+
+
+ );
+};
diff --git a/src/screens/drv/index.tsx b/src/screens/drv/index.tsx
new file mode 100644
index 0000000..d936d2d
--- /dev/null
+++ b/src/screens/drv/index.tsx
@@ -0,0 +1,552 @@
+import {useNavigation} from '@react-navigation/native';
+import axios from 'axios';
+import React, {FC, useEffect, useState} from 'react';
+import {
+ Dimensions,
+ ImageBackground,
+ Linking,
+ Platform,
+ SafeAreaView,
+ ScrollView,
+ StyleSheet,
+ Text,
+ TouchableOpacity,
+ View,
+} from 'react-native';
+import {Icon} from 'react-native-elements';
+import Spinner from 'react-native-spinkit';
+import Swiper from 'react-native-swiper';
+import SystemNavigationBar from 'react-native-system-navigation-bar';
+import {yelpBusinessResponse, yelpReviewResponse} from '../../types';
+
+SystemNavigationBar.setNavigationColor('#fd4f57');
+
+const config = {
+ headers: {
+ Authorization:
+ 'Bearer eu70nmGiCTtxJgzg5h3uL1M3rXa3YTsCpz92As8TQw4B5CJ7A0T37rnZ1n84OEvPgGZNNJi9BuYcjH1wj0Vql0P08jsYBEUjkjK0KPVDXUM4veb3jrZzSVwkQ9r4YHYx',
+ },
+ params: {
+ term: 'Restaurants',
+ location: '206 S 5th Ave #300, Ann Arbor, MI 48104',
+ },
+};
+
+var now = new Date();
+
+const dayPlusOne = (day: number) => {
+ if (day === 0) {
+ return 6;
+ }
+ return day - 1;
+};
+
+const getTodayOrTomorrow = () => {
+ if (now.getHours() > 12) {
+ return 'tomorrow';
+ }
+ return 'today';
+};
+
+const addColonToTime = (time: string) => {
+ if (parseInt(time.substring(0, 2)) > 12) {
+ return (
+ (parseInt(time.substring(0, 2)) - 12).toString() +
+ ':' +
+ time.substring(2) +
+ 'pm'
+ );
+ } else if (parseInt(time.substring(0, 2)) === 12) {
+ return (
+ parseInt(time.substring(0, 2)).toString() + ':' + time.substring(2) + 'pm'
+ );
+ }
+ if (time.substring(0, 2) === '00') {
+ return '12:00am';
+ }
+ if (time.substring(0, 1) === '0') {
+ return time.substring(1, 2) + ':' + time.substring(2) + 'am';
+ }
+ return time.substring(0, 2) + ':' + time.substring(2) + 'am';
+};
+
+//@ts-ignore
+export const DetailedRestaurantView: FC = ({route}) => {
+ const [restaurant, setRestaurants] = useState([]);
+ const [reviews, setReviews] = useState([]);
+ const [isLoadingBus, setLoadingBus] = useState(true);
+ const [isLoadingRev, setLoadingRev] = useState(true);
+
+ const [isModalVisible, setModalVisible] = useState(false);
+
+ const [busImages, setBusImages] = useState([]);
+
+ const BannerWidth = Dimensions.get('window').width;
+ // const SLIDER_WIDTH = Dimensions.get("window").width;
+ // const SLIDER_HEIGHT = Dimensions.get("window").height;
+ // const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.9);
+ // const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 4);
+ const BannerHeight = Dimensions.get('window').height / 3 - 15;
+
+ const navigation = useNavigation();
+
+ useEffect(() => {
+ axios
+ .get('https://api.yelp.com/v3/businesses/' + route.params.id, config)
+ .then(response => {
+ setRestaurants(response.data);
+ let tempList = [];
+ tempList.push(response.data.image_url);
+ tempList = [...response.data.photos];
+ if (tempList.length === 0) {
+ tempList.push(
+ 'https://st3.depositphotos.com/23594922/31822/v/600/depositphotos_318221368-stock-illustration-missing-picture-page-for-website.jpg',
+ );
+ }
+ setBusImages(tempList);
+ setLoadingBus(false);
+ });
+ }, []);
+
+ useEffect(() => {
+ axios
+ .get(
+ 'https://api.yelp.com/v3/businesses/' + route.params.id + '/reviews',
+ config,
+ )
+ .then(response => {
+ setReviews(response.data);
+ setLoadingRev(false);
+ });
+ }, []);
+
+ const business: yelpBusinessResponse =
+ restaurant as unknown as yelpBusinessResponse;
+
+ const openMaps = () => {
+ const latitude = business.coordinates.latitude;
+ const longitude = business.coordinates.longitude;
+ const label = business.name;
+
+ const url = Platform.select({
+ ios: 'maps:' + latitude + ',' + longitude + '?q=' + label,
+ android: 'geo:' + latitude + ',' + longitude + '?q=' + label,
+ });
+
+ Linking.openURL(url);
+ };
+
+ const callNumber = phone => {
+ Linking.openURL(`tel:${phone}`).catch(e => console.warn(e));
+ };
+
+ const ratings: yelpReviewResponse = reviews as unknown as yelpReviewResponse;
+
+ if (isLoadingBus || isLoadingRev) {
+ return (
+
+ );
+ }
+
+ const renderStars = (numStars: number) => {
+ var finalStarString = '';
+ console.log(numStars);
+ var i = 0;
+ for (i = 0; i < 5; i++) {
+ if (i < numStars) {
+ finalStarString += '★';
+ } else {
+ finalStarString += '☆';
+ }
+ }
+ return finalStarString;
+ };
+
+ const renderRatings = () => {
+ var i = 0;
+ var rows = [];
+ if (ratings.reviews) {
+ for (i = 0; i < ratings.total; i++) {
+ if (ratings.reviews[i]) {
+ rows.push(
+
+
+ {ratings.reviews[i].user.name}
+
+
+ {renderStars(ratings.reviews[i].rating)}
+
+
+ {ratings.reviews[i].text}
+
+ ,
+ );
+ } else {
+ break;
+ }
+ }
+ }
+ return rows;
+ };
+
+ const renderPage = (image, index) => {
+ return (
+
+
+
+ );
+ };
+
+ return (
+
+
+
+ {/* */}
+
+ }
+ activeDot={
+
+ }>
+ {busImages.map((image, index) => renderPage(image, index))}
+
+ {business.name}
+
+ ★ {business.rating}/5
+
+ ({business.review_count} reviews)
+
+ {business.price && (
+ <>
+ •
+ {business.price}
+ >
+ )}
+ {business.categories && (
+ <>
+ •
+
+ {business.categories[0].title}
+
+ >
+ )}
+
+ {business.hours && business.hours[0].is_open_now ? (
+
+ {business.hours &&
+ business.hours[0].is_open_now &&
+ business.hours[0].open[dayPlusOne(now.getDay())] && (
+
+ Opens until{' '}
+ {addColonToTime(
+ business.hours[0].open[dayPlusOne(now.getDay())].end,
+ )}
+
+ )}
+
+ ) : (
+
+ {business.hours &&
+ !business.hours[0].is_open_now &&
+ business.hours[0].open[dayPlusOne(now.getDay())] && (
+
+ Opens at{' '}
+ {addColonToTime(
+ business.hours[0].open[dayPlusOne(now.getDay())].start,
+ )}{' '}
+ {getTodayOrTomorrow()}
+
+ )}
+
+ )}
+ {business.phone !== '' && (
+ callNumber(business.phone)}
+ style={styles.flexRowContainer}>
+
+ {business.display_phone}
+
+ )}
+
+
+
+ {route.params.restaurant.location.address1}.
+
+
+
+
+ {(route.params.restaurant.distance / 1609.344).toFixed(2)} miles
+ away
+
+
+
+ navigation.navigate('Pair Lunch Tracker', {
+ restaurant: route.params.restaurant,
+ })
+ }>
+
+
+
+ Go on a pair lunch here!
+
+
+
+
+ Reviews
+ {renderRatings()}
+
+
+
+ );
+};
+
+const SLIDER_WIDTH = Dimensions.get('window').width;
+const SLIDER_HEIGHT = Dimensions.get('window').height;
+const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.9);
+const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 4);
+const styles = StyleSheet.create({
+ view: {
+ justifyContent: 'flex-end',
+ margin: 0,
+ },
+ title: {
+ fontSize: 20,
+ fontWeight: '500',
+ textAlign: 'center',
+ color: 'black',
+ marginTop: 10,
+ },
+ titleSmall: {
+ fontSize: 15,
+ fontWeight: '500',
+ textAlign: 'center',
+ color: 'black',
+ marginTop: 10,
+ },
+ titleLeft: {
+ fontSize: 20,
+ fontWeight: '500',
+ textAlign: 'center',
+ color: 'black',
+ marginTop: 10,
+ marginRight: 20,
+ },
+ titleLeftSchedule: {
+ fontSize: 15,
+ fontWeight: '600',
+ textAlign: 'center',
+ color: 'black',
+ marginRight: 5,
+ paddingVertical: 5,
+ },
+ titleLeftSmall: {
+ fontSize: 15,
+ fontWeight: '500',
+ textAlign: 'center',
+ color: 'black',
+ marginTop: 10,
+ marginRight: 5,
+ },
+ nameLeftSmall: {
+ fontSize: 15,
+ fontWeight: '500',
+ textAlign: 'left',
+ color: 'black',
+ marginTop: 10,
+ marginLeft: 15,
+ marginRight: 5,
+ },
+ reviewsLeftSmall: {
+ fontSize: 15,
+ fontWeight: '400',
+ textAlign: 'left',
+ color: 'black',
+ marginVertical: 5,
+ marginHorizontal: 15,
+ },
+ starLeftSmall: {
+ fontSize: 15,
+ fontWeight: '500',
+ textAlign: 'left',
+ color: '#fd4f57',
+ marginTop: 5,
+ marginLeft: 13,
+ marginRight: 5,
+ },
+ titleName: {
+ fontSize: 30,
+ fontWeight: '600',
+ textAlign: 'left',
+ marginHorizontal: 15,
+ marginTop: -5,
+ color: 'black',
+ },
+ titleReviews: {
+ fontSize: 20,
+ fontWeight: '600',
+ textAlign: 'left',
+ marginLeft: 15,
+ color: 'black',
+ marginTop: 15,
+ },
+ contentView: {
+ borderTopColor: 'black',
+ },
+ imageStyle: {
+ width: '100%',
+ height: '100%',
+ },
+ text: {
+ color: 'white',
+ },
+ imageView: {
+ width: '100%',
+ height: '100%',
+ justifyContent: 'flex-end',
+ borderBottomLeftRadius: 5,
+ borderBottomRightRadius: 5,
+ paddingLeft: 5,
+ paddingBottom: 5,
+ paddingTop: 5,
+ },
+ itemContainer: {
+ height: ITEM_HEIGHT,
+ justifyContent: 'flex-end',
+ alignItems: 'flex-start',
+ display: 'flex',
+ flexDirection: 'column',
+ backgroundColor: '#F5F5F5',
+ width: '100%',
+ },
+ bottomModal: {
+ height: '100%',
+ backgroundColor: 'white',
+ },
+ modalUp: {
+ position: 'absolute',
+ width: '100%',
+ height: '100%',
+ backgroundColor: '#F1F1F1',
+ },
+ openSmall: {
+ color: 'green',
+ fontSize: 15,
+ fontWeight: '500',
+ textAlign: 'center',
+ marginTop: 10,
+ marginRight: 5,
+ },
+ closedSmall: {
+ color: '#fd4f57',
+ fontSize: 15,
+ fontWeight: '500',
+ textAlign: 'center',
+ marginTop: 10,
+ marginRight: 5,
+ },
+ flexRowContainer: {
+ flexDirection: 'row',
+ justifyContent: 'flex-start',
+ paddingHorizontal: 15,
+ flexWrap: 'wrap',
+ },
+ flexColContainer: {
+ flexDirection: 'column',
+ justifyContent: 'flex-start',
+ paddingHorizontal: 15,
+ height: 200,
+ backgroundColor: 'red',
+ },
+ ratingsContainer: {},
+ wrapper: {
+ height: SLIDER_HEIGHT / 3,
+ },
+});
diff --git a/src/screens/home/helpers.ts b/src/screens/home/helpers.ts
new file mode 100644
index 0000000..7bdac4b
--- /dev/null
+++ b/src/screens/home/helpers.ts
@@ -0,0 +1,35 @@
+import React from "react";
+
+export function useToggle(
+ initialValue: boolean = false
+): [boolean, () => void] {
+ const [value, setValue] = React.useState(initialValue);
+ const toggle = React.useCallback(() => {
+ setValue((v) => !v);
+ }, []);
+ return [value, toggle];
+}
+
+export function useToggleTrue(
+ initialValue: boolean = true
+): [boolean, () => void] {
+ const [value, setValue] = React.useState(initialValue);
+ const toggle = React.useCallback(() => {
+ setValue((v) => !v);
+ }, []);
+ return [value, toggle];
+}
+
+export const getAddress = (location: string) => {
+ if (location === "Ann Arbor") {
+ return "206 S 5th Ave #300, Ann Arbor, MI 48104";
+ } else if (location === "Grand Rapids") {
+ return "1034 Wealthy St SE, Grand Rapids, MI 49506";
+ } else if (location === "Chicago") {
+ return "500 W Madison St Suite 1000, Chicago, IL 60661";
+ } else if (location === "Troy") {
+ return "2241 Radcliffe Dr, Troy, MI 48085";
+ } else {
+ return "206 S 5th Ave #300, Ann Arbor, MI 48104";
+ }
+};
diff --git a/src/screens/home/index.tsx b/src/screens/home/index.tsx
new file mode 100644
index 0000000..748a9a1
--- /dev/null
+++ b/src/screens/home/index.tsx
@@ -0,0 +1,444 @@
+import {useNavigation} from '@react-navigation/core';
+import React, {FC, useEffect, useState} from 'react';
+import {
+ Dimensions,
+ Keyboard,
+ SafeAreaView,
+ StatusBar,
+ StyleSheet,
+ Text,
+ TouchableOpacity,
+ View,
+} from 'react-native';
+import {Icon} from 'react-native-elements';
+import {ScrollView} from 'react-native-gesture-handler';
+import Modal from 'react-native-modal';
+import SegmentedControlTab from 'react-native-segmented-control-tab';
+import {Yelp} from '../../core/api/yelp';
+import {YelpCarouselCheapEats} from '../../core/api/yelp-carousel-cheap-eats';
+import {YelpCarouselDiscover} from '../../core/api/yelp-carousel-discover';
+import {YelpCarouselHot} from '../../core/api/yelp-carousel-hot';
+import {YelpCarouselNearMe} from '../../core/api/yelp-carousel-near-me';
+import {YelpSearchFilter} from '../../core/api/yelp-search-filter';
+import SystemNavigationBar from 'react-native-system-navigation-bar';
+import {
+ GoogleSignin,
+ GoogleSigninButton,
+ statusCodes,
+} from '@react-native-google-signin/google-signin';
+// import auth from "@react-native-firebase/auth";
+
+export const HomeScreen: FC = () => {
+ const navigation = useNavigation();
+ const backgroundStyle = {
+ backgroundColor: '#fd4f57',
+ };
+ const SLIDER_WIDTH = Dimensions.get('window').width;
+ const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.8);
+ const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 4);
+ const [location, setLocation] = useState('Ann Arbor');
+
+ const [isModalVisible, setModalVisible] = useState(false);
+
+ const [isOpenClosed, setIsOpenClosed] = useState(0);
+
+ const [selectedIndex, setSelectedIndex] = useState(0);
+
+ const [value, setValue] = useState(true);
+
+ const cities = ['Ann Arbor', 'Grand Rapids', 'Chicago'];
+
+ const openClosedOptions = ['All', 'Open Only'];
+
+ const [loggedIn, setloggedIn] = useState(false);
+ const [userInfo, setuserInfo] = useState(null);
+
+ const toggleModal = () => {
+ setModalVisible(!isModalVisible);
+ Keyboard.dismiss();
+ };
+
+ SystemNavigationBar.setNavigationColor('#fd4f57');
+
+ const signIn = async () => {
+ try {
+ await GoogleSignin.hasPlayServices();
+ const tokens = await GoogleSignin.signIn();
+ console.log(tokens);
+ setloggedIn(true);
+ } catch (error) {
+ if (error.code === statusCodes.SIGN_IN_CANCELLED) {
+ // user cancelled the login flow
+ alert('Cancel');
+ } else if (error.code === statusCodes.IN_PROGRESS) {
+ alert('Signin in progress');
+ // operation (f.e. sign in) is in progress already
+ } else if (error.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
+ alert('PLAY_SERVICES_NOT_AVAILABLE');
+ // play services not available or outdated
+ } else {
+ alert(error);
+ // some other error happened
+ }
+ }
+ };
+
+ const signOut = async () => {
+ try {
+ await GoogleSignin.revokeAccess();
+ await GoogleSignin.signOut();
+ // auth()
+ // .signOut()
+ // .then(() => alert("Your are signed out!"));
+ setloggedIn(false);
+ setuserInfo([]);
+ } catch (error) {
+ console.error(error);
+ }
+ };
+
+ const onAuthStateChanged = user => {
+ setuserInfo(user);
+ };
+
+ useEffect(() => {
+ GoogleSignin.configure({
+ scopes: ['email'], // what API you want to access on behalf of the user, default is email and profile
+ webClientId:
+ '862454311308-89tjf9m0607d4t3uh3joic2h61lr27a8.apps.googleusercontent.com', // client ID of type WEB for your server (needed to verify user ID and offline access)
+ offlineAccess: true, // if you want to access Google API on behalf of the user FROM YOUR SERVER
+ });
+ }, []);
+
+ // const toggleOpenClosed = () => {
+ // setIsOpenClosed(!isOpenClosed);
+ // };
+
+ return (
+
+
+
+
+
+
+
+ Location: {location}
+
+
+
+
+
+
+
+
+ {/* {!loggedIn ? (
+
+ ) : (
+
+ Welcome {userInfo ? userInfo.displayName : ''}
+
+ Sign Out
+
+
+ )} */}
+
+
+ Our Pick
+
+
+
+
+ Discover Restaurants
+
+
+ Restaurants Near Me
+
+
+ Cheap Eats
+
+
+ Highly Rated
+
+
+
+
+
+
+
+ Choose a location
+
+ {
+ toggleModal();
+ setLocation(cities[selectedIndex]);
+ }}
+ style={styles.checkButton}>
+
+
+
+
+
+ );
+};
+
+const SLIDER_WIDTH = Dimensions.get('window').width;
+const ITEM_WIDTH = Math.round(SLIDER_WIDTH * 0.9);
+const ITEM_HEIGHT = Math.round((ITEM_WIDTH * 3) / 4);
+const styles = StyleSheet.create({
+ content: {
+ backgroundColor: 'white',
+ padding: 22,
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: 4,
+ borderColor: 'rgba(0, 0, 0, 0.1)',
+ },
+ contentTitle: {
+ fontSize: 20,
+ marginBottom: 12,
+ },
+ contentText: {
+ fontSize: 16,
+ marginBottom: 12,
+ },
+ applyButton: {
+ color: '#fd4f57',
+ fontWeight: 'bold',
+ fontSize: 18,
+ marginVertical: 10,
+ },
+ view: {
+ justifyContent: 'flex-end',
+ margin: 0,
+ },
+ randomContainer: {
+ backgroundColor: 'white',
+ borderTopRightRadius: 10,
+ borderTopLeftRadius: 10,
+ },
+ randomOuter: {
+ backgroundColor: '#E7E7E7',
+ },
+ pickContainer: {
+ backgroundColor: 'white',
+ borderTopRightRadius: 10,
+ borderTopLeftRadius: 10,
+ },
+ pickOuter: {
+ backgroundColor: '#fd4f57',
+ },
+ bottomModal: {
+ marginBottom: 50,
+ backgroundColor: 'white',
+ },
+ scrollContentContainer: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginBottom: 10,
+ marginHorizontal: 15,
+ },
+ sectionContainer: {
+ width: '100%',
+ height: ITEM_HEIGHT,
+ justifyContent: 'center',
+ alignItems: 'center',
+ display: 'flex',
+ flexDirection: 'row',
+ backgroundColor: '#F5F5F5',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ locationContainer: {
+ backgroundColor: '#fd4f57',
+ },
+ itemContainer: {
+ height: ITEM_HEIGHT,
+ marginLeft: -(SLIDER_WIDTH - ITEM_WIDTH - (SLIDER_WIDTH - ITEM_WIDTH) / 2),
+ marginRight: SLIDER_WIDTH - ITEM_WIDTH - (SLIDER_WIDTH - ITEM_WIDTH) / 2,
+ justifyContent: 'center',
+ alignItems: 'center',
+ display: 'flex',
+ flexDirection: 'row',
+ backgroundColor: '#F5F5F5',
+ borderRadius: 5,
+ shadowColor: '#000',
+ shadowOffset: {width: 0, height: 2},
+ shadowOpacity: 0.2,
+ },
+ sectionTitle: {
+ fontSize: 24,
+ fontWeight: '600',
+ backgroundColor: '#fd4f57',
+ padding: 10,
+ textAlign: 'center',
+ },
+ sectionDescription: {
+ fontSize: 25,
+ fontWeight: '500',
+ textAlign: 'center',
+ color: 'white',
+ },
+ title: {
+ fontSize: 18,
+ fontWeight: '500',
+ textAlign: 'left',
+ marginLeft: 15,
+ color: 'black',
+ marginTop: 10,
+ marginBottom: 5,
+ },
+ titleBot: {
+ fontSize: 10,
+ fontWeight: '500',
+ textAlign: 'center',
+ color: 'black',
+ marginTop: 20,
+ },
+ locationTitle: {
+ fontSize: 18,
+ fontWeight: '500',
+ textAlign: 'center',
+ color: 'black',
+ paddingVertical: 5,
+ paddingRight: 10,
+ },
+ contentView: {
+ borderTopColor: '#4c4845',
+ justifyContent: 'center',
+ },
+ image: {
+ flex: 1,
+ justifyContent: 'center',
+ },
+ rotdContainer: {
+ backgroundColor: 'black',
+ justifyContent: 'center',
+ borderBottomColor: '#C0C0C0',
+ borderTopWidth: 1,
+ borderBottomWidth: 1,
+ flex: 1,
+ marginVertical: 0,
+ },
+ searchContainer: {
+ backgroundColor: '#fd4f57',
+ },
+ highlight: {
+ fontWeight: '700',
+ },
+ changeLocationContainer: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ changeLocationText: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ paddingHorizontal: 10,
+ },
+ checkButton: {
+ shadowColor: '#171717',
+ shadowOffset: {width: -2, height: 4},
+ shadowOpacity: 0.2,
+ shadowRadius: 3,
+ backgroundColor: '#fd4f57',
+ width: 100,
+ height: 50,
+ borderRadius: 50 / 2,
+ justifyContent: 'center',
+ margin: 15,
+ },
+ addButton: {
+ shadowColor: '#171717',
+ shadowOffset: {width: -2, height: 4},
+ shadowOpacity: 0.2,
+ shadowRadius: 3,
+ backgroundColor: '#fd4f57',
+ width: 50,
+ height: 50,
+ margin: 10,
+ borderRadius: 50 / 2,
+ justifyContent: 'center',
+ position: 'absolute',
+ bottom: 50,
+ right: 0,
+ },
+});
diff --git a/src/screens/profile/index.tsx b/src/screens/profile/index.tsx
new file mode 100644
index 0000000..163004e
--- /dev/null
+++ b/src/screens/profile/index.tsx
@@ -0,0 +1,346 @@
+import React, {FC, useCallback, useEffect, useState} from 'react';
+import {
+ Image,
+ LogBox,
+ SafeAreaView,
+ ScrollView,
+ StyleSheet,
+ Text,
+ View,
+} from 'react-native';
+import CountDown from 'react-native-countdown-component';
+import {TouchableOpacity} from 'react-native-gesture-handler';
+import {getDBConnection, getPairLunch} from '../../core/storage/db-service';
+import {useToggle} from '../home/helpers';
+import {atomic_people_urls} from '../tracker/people_list';
+
+LogBox.ignoreLogs(["EventEmitter.removeListener('appStateDidChange', ...):"]); // Ignore log notification by message
+
+//@ts-ignore
+export const AtomicPeopleView: FC = ({route}) => {
+ const [ableToSchedule, toggleAbleToSchedule] = useToggle(false);
+ const [pairLunch, setPairLunch] = useState(null);
+ var lunchId = 0;
+
+ if (route.params === undefined) {
+ return null;
+ }
+
+ const atom_name = route.params.name;
+
+ const getLunchId = () => {
+ const tempId = lunchId;
+ lunchId += 1;
+ return tempId;
+ };
+
+ const loadDataCallback = useCallback(async () => {
+ try {
+ const db = await getDBConnection();
+ const storedPairLunches = await getPairLunch(db, atom_name);
+ if (storedPairLunches.length === 0) {
+ toggleAbleToSchedule();
+ }
+ const sortedPairLunches = []
+ .concat(storedPairLunches)
+ .sort((a, b) =>
+ calculateTotalSecondsComp(a.date) < calculateTotalSecondsComp(b.date)
+ ? 1
+ : -1,
+ );
+ setPairLunch(sortedPairLunches);
+ } catch (error) {
+ console.error(error);
+ }
+ }, []);
+
+ useEffect(() => {
+ loadDataCallback();
+ }, []);
+
+ const renderCanScheduleHeader = () => {
+ if (ableToSchedule) {
+ return You can schedule a Pair Lunch! ;
+ }
+ if (calculateTimeUntilNextLunch(pairLunch[0].date) !== -1) {
+ return (
+ <>
+ Schedule a pair lunch in:
+ {
+ toggleAbleToSchedule();
+ }}
+ size={20}
+ digitStyle={{backgroundColor: '#fd4f57'}}
+ timeToShow={['D', 'H', 'M']}
+ />
+ >
+ );
+ }
+ return (
+
+ You already have a pair lunch scheduled!
+
+ );
+ };
+
+ const splitPairLunchesPast = () => {
+ const lunchPast = pairLunch.filter(lunch => {
+ return (
+ calculateTotalSecondsComp(lunch.date) <= calculateTotalSecondsNow()
+ );
+ });
+ return lunchPast;
+ };
+
+ const splitPairLunchesUpcoming = () => {
+ const lunchUpcoming = pairLunch.filter(lunch => {
+ return calculateTotalSecondsComp(lunch.date) > calculateTotalSecondsNow();
+ });
+ return lunchUpcoming;
+ };
+
+ const renderSplitPairLunchesUpcoming = () => {
+ if (splitPairLunchesUpcoming().length !== 0) {
+ return (
+ <>
+ Upcoming Lunches
+ {splitPairLunchesUpcoming().map((lunch, index) => (
+
+
+ {lunch.restaurant}
+
+ {lunch.date}
+
+ ))}
+ >
+ );
+ } else return <>>;
+ };
+
+ const renderSplitPairLunchesPast = () => {
+ if (splitPairLunchesPast().length !== 0) {
+ return (
+ <>
+ Past Lunches
+ {splitPairLunchesPast().map((lunch, index) => (
+
+
+ {lunch.restaurant}
+
+ {lunch.date}
+
+ ))}
+ >
+ );
+ } else return <>>;
+ };
+
+ if (pairLunch === null) {
+ return null;
+ }
+
+ return (
+
+
+
+
+ {atom_name}
+ {renderCanScheduleHeader()}
+
+
+
+ {renderSplitPairLunchesUpcoming()}
+ {renderSplitPairLunchesPast()}
+ {pairLunch.length === 0 && (
+
+ You have no lunches with this atom. Please schedule one :)
+
+ )}
+
+
+
+
+
+ );
+};
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ backgroundColor: 'white',
+ },
+ imageStyle: {
+ width: 250,
+ height: 250,
+ borderRadius: 250 / 2,
+ borderWidth: 5,
+ borderColor: 'white',
+ },
+ scrollContainer: {
+ width: '100%',
+ paddingTop: 15,
+ paddingBottom: 15,
+ borderBottomWidth: 2,
+ borderBottomColor: 'white',
+ backgroundColor: 'white',
+ paddingHorizontal: 10,
+ },
+ imageContainer: {
+ alignItems: 'center',
+ backgroundColor: '#E5E5E5',
+ paddingVertical: 10,
+ paddingHorizontal: 10,
+ borderRadius: 10,
+ width: '100%',
+ },
+ pastLunchesContainer: {
+ alignItems: 'center',
+ backgroundColor: '#E5E5E5',
+ paddingVertical: 10,
+ paddingHorizontal: 10,
+ borderRadius: 10,
+ width: '100%',
+ marginTop: 15,
+ },
+ headerText: {
+ fontSize: 32,
+ fontWeight: 'bold',
+ marginTop: 5,
+ },
+ pastLunchText: {
+ fontSize: 18,
+ fontWeight: '400',
+ marginBottom: 5,
+ marginTop: 10,
+ textAlign: 'center',
+ },
+ upcomingLunchText: {
+ fontSize: 18,
+ fontWeight: '400',
+ marginBottom: 5,
+ textAlign: 'center',
+ },
+ subText: {
+ fontSize: 18,
+ color: '#fd4f57',
+ marginTop: 3,
+ marginBottom: 10,
+ },
+});
+
+const calculateTotalSecondsComp = (date: string) => {
+ const splitComp = date.split(' ');
+ const dateComp = splitComp[0];
+ const splitDateComp = dateComp.split('/');
+
+ const monthComp = splitDateComp[0];
+ const dayComp = splitDateComp[1];
+ const yearComp = splitDateComp[2];
+
+ const timeComp = splitComp[2];
+ const splitTimeComp = timeComp.split(':');
+ const hourComp = splitTimeComp[0];
+ const minutesComp = splitTimeComp[1].substring(0, 2);
+ const am_pm_comp = splitTimeComp[1].substring(2);
+
+ const totalSecondsComp =
+ Number(yearComp) * 31536000 +
+ Number(monthComp) * 2629746 +
+ Number(dayComp) * 86400 +
+ Number(convertStandardToMilitary(hourComp, am_pm_comp)) * 3600 +
+ Number(minutesComp) * 60;
+
+ return totalSecondsComp;
+};
+
+const calculateTotalSecondsNow = () => {
+ const isoDate = new Date().toLocaleDateString();
+ console.log(new Date().toLocaleDateString());
+ const splitDate = isoDate.split('/');
+ const monthNow = splitDate[0];
+ const dayNow = splitDate[1];
+ let yearNow = splitDate[2];
+ if (yearNow.length === 2) {
+ yearNow = '20' + yearNow;
+ }
+
+ const time = new Date().toLocaleTimeString();
+ const splitTime = time.split(':');
+ const hourNow = splitTime[0];
+ const minutesNow = splitTime[1];
+ console.log(
+ 'FDJSLFS',
+ yearNow,
+ ' ',
+ monthNow,
+ ' ',
+ dayNow,
+ ' ',
+ hourNow,
+ ' ',
+ minutesNow,
+ );
+ let totalSecondsNow = 0;
+ if (splitTime[2].split(' ')[1]) {
+ const am_pm = splitTime[2].split(' ')[1].toLowerCase();
+ totalSecondsNow =
+ Number(yearNow) * 31536000 +
+ Number(monthNow) * 2629746 +
+ Number(dayNow) * 86400 +
+ Number(convertStandardToMilitary(hourNow, am_pm)) * 3600 +
+ Number(minutesNow) * 60;
+ } else {
+ console.log(hourNow);
+ totalSecondsNow =
+ Number(yearNow) * 31536000 +
+ Number(monthNow) * 2629746 +
+ Number(dayNow) * 86400 +
+ Number(hourNow) * 3600 +
+ Number(minutesNow) * 60;
+ }
+
+ console.log(totalSecondsNow);
+
+ return totalSecondsNow;
+};
+
+const calculateTimeUntilNextLunch = (date: string) => {
+ const totalSecondsComp = calculateTotalSecondsComp(date);
+
+ const totalSecondsNow = calculateTotalSecondsNow();
+
+ console.log('totalSecondsNow - totalSecondsComp', totalSecondsComp);
+
+ if (totalSecondsNow - totalSecondsComp < 0) {
+ return -1;
+ }
+
+ return 30 * 24 * 60 * 60 - (totalSecondsNow - totalSecondsComp);
+};
+
+const convertStandardToMilitary = (hour: string, am_pm: string) => {
+ console.log(am_pm);
+ if (am_pm === 'pm') {
+ if (Number(hour) === 12) {
+ return '12';
+ }
+ const newHour = (Number(hour) + 12).toString();
+ return newHour;
+ }
+ if (Number(hour) === 12) {
+ return '0';
+ }
+ return hour;
+};
diff --git a/src/screens/tracker/directory_modal.tsx b/src/screens/tracker/directory_modal.tsx
new file mode 100644
index 0000000..ff64f39
--- /dev/null
+++ b/src/screens/tracker/directory_modal.tsx
@@ -0,0 +1,215 @@
+import {useNavigation} from '@react-navigation/native';
+import React, {FC, useEffect, useRef, useState} from 'react';
+import {
+ Keyboard,
+ SafeAreaView,
+ SectionList,
+ StyleSheet,
+ Text,
+ TextInput,
+ TouchableOpacity,
+ View,
+} from 'react-native';
+import {Icon} from 'react-native-elements';
+import Modal from 'react-native-modal';
+import SearchBar from 'react-native-search-bar';
+import {atomicDirectory, atomic_people} from './people_list';
+
+type Props = {toggleVisibility: () => void; isVisible: boolean};
+
+export const DirectoryModal: FC = props => {
+ const searchRef = useRef();
+ const textInputRef = useRef();
+ const [searchQuery, setSearchQuery] = useState('');
+ const [aD, setAD] = useState(atomicDirectory);
+
+ const navigation = useNavigation();
+
+ useEffect(() => {
+ textInputRef.current?.focus();
+ }, []);
+
+ const onTextChange = (text: string) => {
+ setSearchQuery(text);
+ const directory = atomic_people.filter(person => {
+ const personLower = person.toLowerCase();
+ const textLower = text.toLowerCase();
+ return personLower.indexOf(textLower) > -1;
+ });
+ let dictionary = directory.reduce(
+ (a, x) => ({
+ ...a,
+ [x[0].toUpperCase()]:
+ a[x[0].toUpperCase()] === undefined
+ ? x
+ : a[x[0].toUpperCase()] + '/' + x,
+ }),
+ {},
+ );
+
+ const finDictionary = Object.keys(dictionary).map((key, index) => {
+ return {title: key, data: dictionary[key].split('/') as string[]};
+ });
+ setAD(finDictionary.sort((a, b) => (a.title > b.title ? 1 : -1)));
+ };
+ return (
+
+
+
+
+
+ {
+ Keyboard.dismiss();
+ textInputRef.current.blur();
+ }}
+ style={[
+ {
+ fontSize: 18,
+ },
+ styles.inputText,
+ ]}
+ />
+
+ {
+ props.toggleVisibility();
+ Keyboard.dismiss();
+ textInputRef.current.blur();
+ }}
+ style={{padding: 5, marginRight: 5}}>
+
+
+
+ (
+ {
+ //@ts-ignore
+ navigation.navigate('Atomic People View', {
+ name: item,
+ });
+ props.toggleVisibility();
+ }}>
+ {item}
+
+ )}
+ onScroll={() => {
+ Keyboard.dismiss();
+ textInputRef.current.blur();
+ }}
+ renderSectionHeader={({section}) => (
+ {section.title}
+ )}
+ //@ts-ignore
+ keyExtractor={(item, index) => index}
+ />
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ content: {
+ backgroundColor: 'white',
+ padding: 22,
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: 4,
+ borderColor: 'rgba(0, 0, 0, 0.1)',
+ },
+ contentTitle: {
+ fontSize: 20,
+ marginBottom: 12,
+ },
+ view: {
+ justifyContent: 'flex-end',
+ margin: 0,
+ },
+ checkButton: {
+ shadowColor: '#171717',
+ shadowOffset: {width: -2, height: 4},
+ shadowOpacity: 0.2,
+ shadowRadius: 3,
+ backgroundColor: '#fd4f57',
+ width: 100,
+ height: 50,
+ borderRadius: 50 / 2,
+ justifyContent: 'center',
+ margin: 15,
+ },
+ container: {
+ flex: 1,
+ paddingTop: 22,
+ backgroundColor: 'white',
+ },
+ sectionHeader: {
+ paddingTop: 2,
+ paddingLeft: 10,
+ paddingRight: 10,
+ paddingBottom: 2,
+ fontSize: 14,
+ fontWeight: 'bold',
+ backgroundColor: 'rgba(240,240,240,1.0)',
+ },
+ item: {
+ padding: 10,
+ fontSize: 18,
+ height: 44,
+ },
+ inputTextContainer: {
+ borderWidth: 1,
+ padding: 8,
+ backgroundColor: 'white',
+ borderColor: 'lightgrey',
+ borderRadius: 5,
+ height: 39,
+ color: 'black',
+ flexDirection: 'row',
+ alignItems: 'center',
+ flex: 1,
+ marginHorizontal: 7,
+ },
+ inputText: {
+ padding: 8,
+ backgroundColor: 'white',
+ height: 37,
+ color: 'black',
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginRight: 10,
+ minWidth: '70%',
+ },
+});
diff --git a/src/screens/tracker/directory_modal_picker.tsx b/src/screens/tracker/directory_modal_picker.tsx
new file mode 100644
index 0000000..5e98891
--- /dev/null
+++ b/src/screens/tracker/directory_modal_picker.tsx
@@ -0,0 +1,226 @@
+import {useNavigation} from '@react-navigation/native';
+import React, {FC, useEffect, useRef, useState} from 'react';
+import {
+ Keyboard,
+ SafeAreaView,
+ SectionList,
+ StyleSheet,
+ Text,
+ TextInput,
+ TouchableOpacity,
+ View,
+} from 'react-native';
+import {Icon} from 'react-native-elements';
+import Modal from 'react-native-modal';
+import SearchBar from 'react-native-search-bar';
+import {atomicDirectory, atomic_people} from './people_list';
+
+type Props = {
+ toggleVisibility: () => void;
+ isVisible: boolean;
+ sendAtom: (response: any) => void;
+};
+
+export const DirectoryModalPicker: FC = props => {
+ const searchRef = useRef();
+ const textInputRef = useRef();
+ const [searchQuery, setSearchQuery] = useState('');
+ const [aD, setAD] = useState(atomicDirectory);
+
+ const navigation = useNavigation();
+
+ useEffect(() => {
+ textInputRef.current?.focus();
+ }, []);
+
+ const onTextChange = (text: string) => {
+ setSearchQuery(text);
+ const directory = atomic_people.filter(person => {
+ const personLower = person.toLowerCase();
+ const textLower = text.toLowerCase();
+ return personLower.indexOf(textLower) > -1;
+ });
+ let dictionary = directory.reduce(
+ (a, x) => ({
+ ...a,
+ [x[0].toUpperCase()]:
+ a[x[0].toUpperCase()] === undefined
+ ? x
+ : a[x[0].toUpperCase()] + '/' + x,
+ }),
+ {},
+ );
+
+ const finDictionary = Object.keys(dictionary).map((key, index) => {
+ return {title: key, data: dictionary[key].split('/') as string[]};
+ });
+ setAD(finDictionary.sort((a, b) => (a.title > b.title ? 1 : -1)));
+ };
+ return (
+
+
+
+
+
+ {
+ Keyboard.dismiss();
+ textInputRef.current.blur();
+ }}
+ style={[
+ {
+ fontSize: 18,
+ },
+ styles.inputText,
+ ]}
+ />
+
+ {
+ props.toggleVisibility();
+ Keyboard.dismiss();
+ textInputRef.current.blur();
+ }}
+ style={{padding: 5, marginRight: 5}}>
+
+
+
+ (
+ {
+ //@ts-ignore
+ props.sendAtom(item);
+ props.toggleVisibility();
+ }}>
+ {item}
+
+ )}
+ onScroll={() => {
+ Keyboard.dismiss();
+ textInputRef.current.blur();
+ }}
+ renderSectionHeader={({section}) => (
+ {section.title}
+ )}
+ //@ts-ignore
+ keyExtractor={(item, index) => index}
+ />
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ content: {
+ backgroundColor: 'white',
+ padding: 22,
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: 4,
+ borderColor: 'rgba(0, 0, 0, 0.1)',
+ },
+ contentTitle: {
+ fontSize: 20,
+ marginBottom: 12,
+ },
+ view: {
+ justifyContent: 'flex-end',
+ margin: 0,
+ },
+ checkButton: {
+ shadowColor: '#171717',
+ shadowOffset: {width: -2, height: 4},
+ shadowOpacity: 0.2,
+ shadowRadius: 3,
+ backgroundColor: '#fd4f57',
+ width: 100,
+ height: 50,
+ borderRadius: 50 / 2,
+ justifyContent: 'center',
+ margin: 15,
+ },
+ container: {
+ flex: 1,
+ paddingTop: 22,
+ backgroundColor: 'white',
+ },
+ sectionHeader: {
+ paddingTop: 2,
+ paddingLeft: 10,
+ paddingRight: 10,
+ paddingBottom: 2,
+ fontSize: 14,
+ fontWeight: 'bold',
+ backgroundColor: 'rgba(240,240,240,1.0)',
+ },
+ item: {
+ padding: 10,
+ fontSize: 18,
+ height: 44,
+ },
+ inputTextContainer: {
+ borderWidth: 1,
+ padding: 8,
+ backgroundColor: 'white',
+ borderColor: 'lightgrey',
+ borderRadius: 5,
+ height: 39,
+ color: 'black',
+ flexDirection: 'row',
+ alignItems: 'center',
+ flex: 1,
+ marginHorizontal: 7,
+ },
+ inputText: {
+ padding: 8,
+ backgroundColor: 'white',
+ height: 37,
+ color: 'black',
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginRight: 10,
+ minWidth: '70%',
+ },
+});
diff --git a/src/screens/tracker/draggable_grid.tsx b/src/screens/tracker/draggable_grid.tsx
new file mode 100644
index 0000000..a6787af
--- /dev/null
+++ b/src/screens/tracker/draggable_grid.tsx
@@ -0,0 +1,1093 @@
+import {useNavigation} from '@react-navigation/native';
+import React, {FC, useCallback, useEffect, useState} from 'react';
+import {
+ Alert,
+ Dimensions,
+ FlatList,
+ Image,
+ LogBox,
+ Modal as RNModal,
+ SafeAreaView,
+ StyleSheet,
+ Text,
+ TextInput,
+ TouchableOpacity,
+ useWindowDimensions,
+ View,
+ Linking,
+} from 'react-native';
+import {Icon} from 'react-native-elements';
+import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';
+import Modal from 'react-native-modal';
+import DateTimePickerModal from 'react-native-modal-datetime-picker';
+import AwesomeButton from 'react-native-really-awesome-button';
+import {SceneMap, TabBar, TabView} from 'react-native-tab-view';
+import ColorPicker from 'react-native-wheel-color-picker';
+import {ToDoItem} from '../../core/models';
+import {
+ createTable,
+ deletePairLunch,
+ getDBConnection,
+ getPairLunches,
+ savePairLunches,
+} from '../../core/storage/db-service';
+import {Touchable} from '../../shared_components/touchable';
+import {useToggle} from '../home/helpers';
+import {DirectoryModal} from './directory_modal';
+import {DirectoryModalPicker} from './directory_modal_picker';
+import {atomicPeople} from './people_list';
+
+LogBox.ignoreLogs([
+ 'BSON: For React Native please polyfill crypto.getRandomValues',
+]);
+
+type Props = {
+ atomic_people: any;
+ pre_restaurant?: any;
+ reset_pre_restaurant?: () => void;
+};
+
+const COLUMN_WIDTH = Dimensions.get('window').width * 0.6;
+
+const DnDBoard: FC = props => {
+ const [currentId, setCurrentId] = useState(0);
+
+ const [isModalVisible, setModalVisible] = useState(false);
+ const toggleModal = () => {
+ setModalVisible(!isModalVisible);
+ };
+ const [dateText, setDateText] = useState('');
+ const [timeText, setTimeText] = useState('');
+ const [restaurant, setRestaurant] = useState('');
+ const [selectedItem, setSelectedItems] = useState('');
+ const [isDatePickerVisible, setDatePickerVisibility] = useState(false);
+ const [isTimePickerVisible, setTimePickerVisibility] = useState(false);
+
+ const [colorWheelOpen, setColorWheelOpen] = useToggle(false);
+ const [infoMenuOpen, setInfoMenuOpen] = useToggle(false);
+
+ const [color, setColor] = useState('#ffffff');
+
+ const [pairLunchListUpcoming, setPairLunchListUpcoming] = useState([]);
+ const [pairLunchListPast, setPairLunchListPast] = useState([]);
+
+ const [initPairLunchListUpcoming, setInitPairLunchListUpcoming] = useState(
+ [],
+ );
+ const [initPairLunchListPast, setInitPairLunchListPast] = useState([]);
+
+ const [isFirstLoad, setIsFirstLoad] = useState(true);
+
+ const [isContactModalVisible, setContactModalVisible] = useState(false);
+ const toggleContactModal = () => {
+ setContactModalVisible(!isContactModalVisible);
+ };
+ const [isContactPickerModalVisible, setContactPickerModalVisible] =
+ useState(false);
+ const toggleContactPickerModal = () => {
+ setContactPickerModalVisible(!isContactPickerModalVisible);
+ };
+
+ const [todos, setTodos] = useState([]);
+ const [newTodo, setNewTodo] = useState('');
+
+ const {width} = useWindowDimensions();
+
+ const [index, setIndex] = React.useState(0);
+ const [routes] = React.useState([
+ {key: 'upcoming', title: 'Upcoming'},
+ {key: 'past', title: 'Past'},
+ ]);
+
+ const navigation = useNavigation();
+
+ const loadDataCallback = useCallback(async () => {
+ try {
+ const initPairLunches = [];
+ const db = await getDBConnection();
+ await createTable(db);
+ const storedPairLunches = await getPairLunches(db);
+ if (storedPairLunches.length) {
+ const upcomingLunches = storedPairLunches.filter(lunch => {
+ if (compareDates(lunch.date.split(' ')[0]) === 'after') {
+ return true;
+ }
+ if (compareDates(lunch.date.split(' ')[0]) === 'afterSame') {
+ if (compareTime(lunch.date) === 'after') {
+ return true;
+ }
+ return false;
+ }
+ return false;
+ });
+ const previousLunches = storedPairLunches.filter(lunch => {
+ if (compareDates(lunch.date.split(' ')[0]) === 'after') {
+ return false;
+ }
+ if (compareDates(lunch.date.split(' ')[0]) === 'afterSame') {
+ if (compareTime(lunch.date) === 'after') {
+ return false;
+ }
+ return true;
+ }
+ return true;
+ });
+ setPairLunchListUpcoming(upcomingLunches);
+ setPairLunchListPast(previousLunches);
+ } else {
+ // await savePairLunches(db, initPairLunches);
+ setPairLunchListUpcoming(initPairLunches);
+ }
+ } catch (error) {
+ console.error(error);
+ }
+ }, []);
+
+ useEffect(() => {
+ loadDataCallback();
+ if (props.pre_restaurant !== null) {
+ setTimeout(() => {
+ toggleModal();
+ setRestaurant(props.pre_restaurant.name);
+ }, 100);
+ }
+ }, [props]);
+
+ const sendAtom = (response: any) => {
+ setSelectedItems(response);
+ };
+
+ const atomic_people = atomicPeople;
+ atomic_people.sort((a, b) => (a.name > b.name ? 1 : -1));
+
+ const addPairLunch = async () => {
+ const atom = atomic_people
+ .filter(item => {
+ return item.name === selectedItem;
+ })
+ .map(({name}) => {
+ return name;
+ });
+ const cardCol = compareDates(dateText);
+ let colNum = 0;
+
+ if (cardCol === 'after' || cardCol === 'afterSame') {
+ colNum = 1;
+ } else {
+ colNum = 2;
+ }
+ try {
+ if (compareDates(timeText.split(' ')[0]) === 'after') {
+ const newPairLunchList = [
+ ...pairLunchListUpcoming,
+ {
+ id: new Date().toISOString(),
+ atom: atom[0],
+ date: timeText,
+ restaurant: restaurant,
+ color: color,
+ column: colNum,
+ },
+ ];
+ setPairLunchListUpcoming(newPairLunchList);
+ } else if (compareDates(timeText.split(' ')[0]) === 'afterSame') {
+ if (compareTime(timeText) === 'after') {
+ const newPairLunchList = [
+ ...pairLunchListUpcoming,
+ {
+ id: new Date().toISOString(),
+ atom: atom[0],
+ date: timeText,
+ restaurant: restaurant,
+ color: color,
+ column: colNum,
+ },
+ ];
+ setPairLunchListUpcoming(newPairLunchList);
+ } else {
+ const newPairLunchList = [
+ ...pairLunchListPast,
+ {
+ id: new Date().toISOString(),
+ atom: atom[0],
+ date: timeText,
+ restaurant: restaurant,
+ color: color,
+ column: colNum,
+ },
+ ];
+ setPairLunchListPast(newPairLunchList);
+ }
+ } else {
+ const newPairLunchList = [
+ ...pairLunchListPast,
+ {
+ id: new Date().toISOString(),
+ atom: atom[0],
+ date: timeText,
+ restaurant: restaurant,
+ color: color,
+ column: colNum,
+ },
+ ];
+ setPairLunchListPast(newPairLunchList);
+ }
+ const db = await getDBConnection();
+ const storedPairLunches = await getPairLunches(db);
+ const newPairLunchList = [
+ ...storedPairLunches,
+ {
+ id: new Date().toISOString(),
+ atom: atom[0],
+ date: timeText,
+ restaurant: restaurant,
+ color: color,
+ column: colNum,
+ },
+ ];
+ await savePairLunches(db, newPairLunchList);
+ setCurrentId(currentId + 1);
+
+ setDateText('');
+ setTimeText('');
+ setRestaurant('');
+ setIsFirstLoad(false);
+ setSelectedItems('');
+ } catch (error) {
+ console.error(error);
+ }
+ };
+ const deleteItem = async (id: number) => {
+ try {
+ const db = await getDBConnection();
+ await deletePairLunch(db, id);
+ todos.splice(id, 1);
+ setTodos(todos.slice(0));
+ } catch (error) {
+ console.error(error);
+ }
+ };
+
+ const showDatePicker = () => {
+ setDatePickerVisibility(true);
+ };
+
+ const hideDatePicker = () => {
+ setDatePickerVisibility(false);
+ };
+
+ const handleConfirmDate = date => {
+ console.log(date);
+ setDateText(
+ date.toISOString().split('T')[0].split('-')[1] +
+ '/' +
+ date.toISOString().split('T')[0].split('-')[2] +
+ '/' +
+ date.toISOString().split('T')[0].split('-')[0],
+ );
+ hideDatePicker();
+ setTimeout(() => {
+ showTimePicker();
+ }, 500);
+ };
+
+ const showTimePicker = () => {
+ setTimePickerVisibility(true);
+ };
+
+ const hideTimePicker = () => {
+ setTimePickerVisibility(false);
+ };
+
+ const handleConfirmTime = date => {
+ let hours = date.getHours();
+ let minutes = makeTwoDigits(date.getMinutes());
+ let time = '';
+ if (hours > 12) {
+ hours = hours - 12;
+ time = hours + ':' + minutes + 'pm';
+ } else if (hours === 0) {
+ time = 12 + ':' + minutes + 'am';
+ } else if (hours === 12) {
+ time = 12 + ':' + minutes + 'pm';
+ } else {
+ time = hours + ':' + minutes + 'am';
+ }
+
+ setTimeText(dateText + ' at ' + time);
+
+ hideTimePicker();
+ };
+
+ const checkFieldsFilled = () => {
+ return dateText !== '' && restaurant !== '' && selectedItem !== ''
+ ? false
+ : true;
+ };
+
+ const renderCard = ({item}) => {
+ return (
+ {
+ setInfoMenuOpen();
+ }}
+ onPress={() => {
+ //@ts-ignore
+ navigation.navigate('Atomic People View', {
+ name: item.atom,
+ });
+ }}>
+
+
+
+
+
+
+
+
+
+ {item.atom}
+
+ {item.date}
+ {item.restaurant}
+
+
+
+
+ );
+ };
+
+ const handleScroll = e => {
+ const paddingToBottom = 20;
+ const isBottom =
+ e.nativeEvent.layoutMeasurement.height + e.nativeEvent.contentOffset.y >=
+ e.nativeEvent.contentSize.height - paddingToBottom;
+ if (
+ e.nativeEvent.layoutMeasurement.height < e.nativeEvent.contentSize.height
+ ) {
+ if (isBottom) {
+ }
+ }
+ };
+
+ const FirstRouteInit = () => {
+ return (
+
+
+
+ );
+ };
+ const SecondRouteInit = () => {
+ return (
+
+
+
+ );
+ };
+ const FirstRoute = () => {
+ return (
+
+
+
+ );
+ };
+ const SecondRoute = () => {
+ return (
+
+
+
+ );
+ };
+
+ const renderSceneInit: any = SceneMap({
+ upcoming: FirstRouteInit,
+ past: SecondRouteInit,
+ });
+
+ const renderSceneAdd: any = SceneMap({
+ upcoming: FirstRoute,
+ past: SecondRoute,
+ });
+
+ const renderTabBar = props => (
+ (
+
+ {route.title}
+
+ )}
+ />
+ );
+
+ return (
+
+
+ Pair Lunch Tracker
+ {
+ toggleContactModal();
+ }}
+ style={{
+ position: 'absolute',
+ right: 0,
+ marginRight: 12,
+ padding: 5,
+ }}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Profile
+
+
+
+ Edit
+
+
+
+ Delete
+
+
+
+ {
+ setInfoMenuOpen();
+ }}>
+
+
+
+
+
+
+
+
+ Add a pair lunch
+
+
+
+
+ Choose a color
+
+
+
+ Atom
+ {
+ toggleContactPickerModal();
+ }}>
+
+
+
+
+ Date/Time
+
+
+
+
+
+
+
+
+ Restaurant
+
+
+
+ {
+ setTimeout(() => {
+ toggleModal();
+ addPairLunch();
+ }, 1000);
+ }}
+ stretch
+ style={styles.button}
+ type="primary"
+ height={55}
+ backgroundColor={checkFieldsFilled() ? '#faa849' : '#ffcd6a'}
+ backgroundDarker={'#faa849'}
+ textColor={'black'}
+ textSize={16}
+ borderRadius={5}
+ disabled={checkFieldsFilled()}>
+ Add Pair Lunch
+
+
+ Cancel
+
+
+
+
+
+
+
+ {
+ setColorWheelOpen();
+ }}>
+
+
+
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ width: '100%',
+ },
+ header: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ paddingVertical: 16,
+ },
+ hederName: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ },
+ board: {
+ paddingVertical: 16,
+ backgroundColor: '#E0E8EF',
+ },
+ column: {
+ backgroundColor: '#F8FAFB',
+ marginHorizontal: 6,
+ paddingHorizontal: 16,
+ paddingVertical: 12,
+ borderRadius: 4,
+ },
+ columnHeader: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ marginBottom: 16,
+ },
+ columnName: {
+ fontWeight: 'bold',
+ },
+ addColumn: {
+ marginRight: 12,
+ padding: 12,
+ minWidth: COLUMN_WIDTH,
+ },
+ card: {
+ borderRadius: 4,
+ borderWidth: 1,
+ borderColor: '#F6F7FB',
+ backgroundColor: '#FFFFFF',
+ paddingHorizontal: 24,
+ paddingVertical: 16,
+ marginBottom: 12,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ addCard: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: 'rgb(233, 233, 233)',
+ borderRadius: 4,
+ paddingVertical: 12,
+ borderWidth: 1,
+ borderColor: '#F5F6F8',
+ },
+ button: {
+ marginTop: 20,
+ marginBottom: 20,
+ paddingRight: 20,
+ paddingLeft: 20,
+ marginLeft: 40,
+ },
+ input: {
+ borderWidth: 1,
+ padding: 14,
+ minWidth: '100%',
+ backgroundColor: 'white',
+ borderColor: 'lightgrey',
+ borderRadius: 5,
+ height: 45,
+ color: 'black',
+ },
+ selectContainer: {
+ paddingHorizontal: 20,
+ marginVertical: 5,
+ },
+ flexRow: {
+ flexDirection: 'row',
+ },
+ logo: {
+ width: 170,
+ height: 170,
+ },
+ pairLunchLogo: {
+ width: 315,
+ height: 300,
+ },
+ trackText: {
+ fontWeight: 'bold',
+ marginHorizontal: 10,
+ fontSize: 22,
+ },
+ addButton: {
+ shadowColor: '#171717',
+ shadowOffset: {width: -2, height: 4},
+ shadowOpacity: 0.2,
+ shadowRadius: 3,
+ backgroundColor: '#fd4f57',
+ width: 50,
+ height: 50,
+ margin: 10,
+ borderRadius: 50 / 2,
+ justifyContent: 'center',
+ position: 'absolute',
+ bottom: 0,
+ right: 0,
+ },
+ checkButton: {
+ shadowColor: '#171717',
+ shadowOffset: {width: -2, height: 4},
+ shadowOpacity: 0.2,
+ shadowRadius: 3,
+ backgroundColor: '#fd4f57',
+ width: 100,
+ height: 50,
+ borderRadius: 50 / 2,
+ justifyContent: 'center',
+ marginTop: 12,
+ },
+ infoButton: {
+ shadowColor: '#171717',
+ shadowOffset: {width: -2, height: 4},
+ shadowOpacity: 0.2,
+ shadowRadius: 3,
+ backgroundColor: '#fd4f57',
+ width: 80,
+ height: 80,
+ borderRadius: 80 / 2,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ content: {
+ backgroundColor: '#fd4f57',
+ padding: 22,
+ borderRadius: 4,
+ borderColor: 'rgba(0, 0, 0, 0.1)',
+ height: '100%',
+ },
+ contentTitle: {
+ fontSize: 24,
+ marginVertical: 16,
+ fontWeight: 'bold',
+ },
+ pairLunchTitle: {
+ fontSize: 20,
+ marginVertical: 10,
+ fontWeight: 'bold',
+ },
+ contentText: {
+ fontSize: 16,
+ marginBottom: 12,
+ marginHorizontal: 12,
+ flex: 1,
+ },
+ headerText: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ },
+ view: {
+ justifyContent: 'center',
+ },
+ colorWheelView: {
+ justifyContent: 'flex-end',
+ margin: 0,
+ },
+ infoMenu: {
+ justifyContent: 'flex-end',
+ margin: 0,
+ },
+ infoText: {
+ color: 'white',
+ fontWeight: 'bold',
+ },
+ modalText: {
+ fontWeight: 'bold',
+ color: 'black',
+ },
+ cardText: {
+ marginVertical: 2,
+ marginLeft: 8,
+ fontSize: 14,
+ },
+ nameIcons: {
+ marginVertical: 2,
+ },
+});
+
+const compareDates = date => {
+ const dateNow = new Date();
+ const compDate =
+ dateNow.toISOString().split('T')[0].split('-')[1] +
+ '-' +
+ dateNow.toISOString().split('T')[0].split('-')[2] +
+ '-' +
+ dateNow.toISOString().split('T')[0].split('-')[0];
+
+ const monthComp = date.split('/')[0];
+ const dayComp = date.split('/')[1];
+ const yearComp = date.split('/')[2];
+
+ const monthNow = compDate.split('-')[0];
+ const dayNow = compDate.split('-')[1];
+ const yearNow = compDate.split('-')[2];
+
+ if (yearComp > yearNow) {
+ return 'after';
+ }
+
+ if (yearComp < yearNow) {
+ return 'before';
+ }
+
+ if (monthComp > monthNow) {
+ return 'after';
+ }
+
+ if (monthComp < monthNow) {
+ return 'before';
+ }
+
+ if (dayComp > dayNow) {
+ return 'after';
+ }
+
+ if (dayComp < dayNow) {
+ return 'before';
+ }
+
+ if (yearComp === yearNow && monthComp === monthNow && dayComp === dayNow) {
+ return 'afterSame';
+ }
+
+ return 'before';
+};
+
+const compareTime = lunch => {
+ const timeLunch = lunch.split(' ')[2] as string;
+ const date = new Date();
+ let hours = date.getHours();
+ let minutes = makeTwoDigits(date.getMinutes());
+ const isAMPM = timeLunch.slice(timeLunch.length - 2, timeLunch.length - 1);
+ let newHours = 0;
+ let newMinutes = parseInt(timeLunch.split(':')[1].substr(0, 2));
+ if (isAMPM === 'pm') {
+ newHours = parseInt(timeLunch.split(':')[0]) + 12;
+ } else {
+ newHours = parseInt(timeLunch.split(':')[0]);
+ }
+
+ if (newHours > hours) {
+ return 'after';
+ }
+
+ if (newHours < hours) {
+ return 'before';
+ }
+
+ if (newMinutes > minutes) {
+ return 'after';
+ }
+
+ if (newMinutes < minutes) {
+ return 'before';
+ }
+
+ return 'after';
+};
+
+const makeTwoDigits = time => {
+ const timeString = `${time}`;
+ if (timeString.length === 2) return time;
+ return `0${time}`;
+};
+
+export {DnDBoard};
diff --git a/src/screens/tracker/index.tsx b/src/screens/tracker/index.tsx
new file mode 100644
index 0000000..e4f36ed
--- /dev/null
+++ b/src/screens/tracker/index.tsx
@@ -0,0 +1,36 @@
+import React, { FC, useState } from "react";
+import { LogBox, SafeAreaView, StatusBar, StyleSheet } from "react-native";
+import { DnDBoard } from "./draggable_grid";
+LogBox.ignoreLogs(["Animated: `useNativeDriver` was not specified."]); // Ignore log notification by message
+LogBox.ignoreLogs(["Module RNBubbleSelectNodeViewManager"]); // Ignore log notification by message
+
+export const Tracker: FC = ({ route }) => {
+ const backgroundStyle = {
+ backgroundColor: "#fd4f57",
+ };
+ const [data, setData] = useState([]);
+
+ // TODO:
+ // 1. Implement draggable grid https://github.com/SHISME/react-native-draggable-grid
+ // 2. Implement long press and hold to reveal edit and delete. Different atom list view that I can edit the name?
+ // 3. Change date to days remaining until next pair lunch.
+ // 4. Search the grid functionality by editing the array?
+
+ return (
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: "center",
+ alignItems: "center",
+ },
+});
diff --git a/src/screens/tracker/people_list.ts b/src/screens/tracker/people_list.ts
new file mode 100644
index 0000000..0da0f2b
--- /dev/null
+++ b/src/screens/tracker/people_list.ts
@@ -0,0 +1,751 @@
+export const atomic_people = [
+ 'Ryan Abel',
+ 'Molly Alger',
+ 'Micah Alles',
+ 'Patrick Bacon',
+ 'Jonah Bailey',
+ 'Mattie Behrens',
+ 'Rob Bell',
+ 'Louie Berwanger',
+ 'Kasey Bohn',
+ 'Sarah Brockett',
+ 'Rebecca Canterbury',
+ 'Jimmy Cerone',
+ 'Jonathon Chaffer',
+ 'Wonyoung Choi',
+ 'Joe Chrysler',
+ 'Drew Colthorp',
+ 'Noah Cooper',
+ 'Kimberly Crawford',
+ 'Shawn Crowley',
+ 'Lydia Cupery',
+ 'Kelly Daniels',
+ 'Kaitlin Diemer',
+ 'Kory Dondzila',
+ 'Grace Du Mez',
+ 'Lauren Ebels',
+ 'Bryan Elkus',
+ 'Victoria Elliott',
+ 'Carl Erickson',
+ 'Elaine Ezekiel',
+ 'Casey Falkowski',
+ 'Jing Fan',
+ 'Chris Farber',
+ 'John Fisher',
+ 'Justin Fitins',
+ 'Matt Fletcher',
+ 'Nate Gittlen',
+ 'Dylan Goings',
+ 'Stephen Guyton',
+ 'Kendra Haan',
+ 'Kyle Harris',
+ 'Nick Hazekamp',
+ 'Jesse Hill',
+ 'Brittany Hunter',
+ 'Justin Interino',
+ 'Allen Janyska',
+ 'Zachary Johnson',
+ 'Dan Kelch',
+ 'Nicholas Keuning',
+ 'Phil Kirkham',
+ 'Michael Li',
+ 'Meredith Lind',
+ 'Danielle Marsiglia',
+ 'Mike Marsiglia',
+ 'Brian May',
+ 'Rachael McQuater',
+ 'Adam Medema',
+ 'Lina Miller',
+ 'Anjali Munasinghe',
+ 'Jordan Nelson',
+ "Mary O'Neill",
+ 'Patrick Pale',
+ 'Nathan Papes',
+ 'Tammy Pearson',
+ 'Andy Peterson',
+ 'Jason Porritt',
+ 'Viviana Rosas Romero',
+ 'John Ruble',
+ 'Jordan Schaenzle',
+ 'Sivhaun Sera',
+ 'Doug Shipp',
+ 'Jake Silas',
+ 'Matt Soto',
+ 'Ty Swanson',
+ 'Michael Swieton',
+ 'Sam Tahiri',
+ 'Taylor Vanden Hoek',
+ 'Gage Vander Clay',
+ 'Brian Vanderwal',
+ 'Terri Vruggink',
+ 'Patrick Warren',
+ 'Jeff Williams',
+ 'Alex Zurek',
+];
+
+export const atomic_people_urls = [
+ {
+ 'Ryan Abel': require('../../images/atom_portraits/Abel-Ryan.jpg'),
+ 'Molly Alger': require('../../images/atom_portraits/Alger-Molly.jpg'),
+ 'Micah Alles': require('../../images/atom_portraits/Alles-Micah.jpg'),
+ 'Patrick Bacon': require('../../images/atom_portraits/Bacon-Patrick.jpg'),
+ 'Jonah Bailey': require('../../images/atom_portraits/Bailey-Jonah.jpg'),
+ 'Mattie Behrens': require('../../images/atom_portraits/Behrens-Mattie.jpg'),
+ 'Rob Bell': require('../../images/atom_portraits/Bell-Rob.jpg'),
+ 'Louie Berwanger': require('../../images/atom_portraits/Berwanger-Louie.jpg'),
+ 'Kasey Bohn': require('../../images/atom_portraits/Bohn-Kasey.jpg'),
+ 'Sarah Brockett': require('../../images/atom_portraits/Brockett-Sarah.jpg'),
+ 'Rebecca Canterbury': require('../../images/atom_portraits/Canterbury-Rebecca.jpg'),
+ 'Jimmy Cerone': require('../../images/atom_portraits/Cerone-Jimmy.jpg'),
+ 'Jonathan Chaffer': require('../../images/atom_portraits/Chaffer-Jonathan.jpg'),
+ 'Wonyoung Choi': require('../../images/atom_portraits/Choi-Wonyoung.jpg'),
+ 'Joe Chrysler': require('../../images/atom_portraits/Chrysler-Joe.jpg'),
+ 'Drew Colthorp': require('../../images/atom_portraits/Colthorp-Drew.jpg'),
+ 'Noah Cooper': require('../../images/atom_portraits/Cooper-Noah.jpg'),
+ 'Kimberly Crawford': require('../../images/atom_portraits/Crawford-Kim.jpg'),
+ 'Shawn Crowley': require('../../images/atom_portraits/Crowley-Shawn.jpg'),
+ 'Lydia Cupery': require('../../images/atom_portraits/Cupery-Lydia.jpg'),
+ 'Kelly Daniels': require('../../images/atom_portraits/Daniels-Kelly.jpg'),
+ 'Kaitlin Diemer': require('../../images/atom_portraits/Diemer-Kaitlin.jpg'),
+ 'Kory Dondzila': require('../../images/atom_portraits/Dondzila-Kory.jpg'),
+ 'Grace Du Mez': require('../../images/atom_portraits/DuMez-Grace.jpg'),
+ 'Lauren Ebels': require('../../images/atom_portraits/Ebels-Lauren.jpg'),
+ 'Bryan Elkus': require('../../images/atom_portraits/Elkus-Bryan.jpg'),
+ 'Victoria Elliott': require('../../images/no-image.jpeg'),
+ 'Carl Erickson': require('../../images/atom_portraits/Erickson-Carl.jpg'),
+ 'Elaine Ezekiel': require('../../images/atom_portraits/Ezekiel-Elaine.jpg'),
+ 'Casey Falkowski': require('../../images/atom_portraits/Falkowski-Casey.jpg'),
+ 'Jing Fan': require('../../images/atom_portraits/Fan-Jing.jpg'),
+ 'Chris Farber': require('../../images/atom_portraits/Farber-Chris.jpg'),
+ 'John Fisher': require('../../images/atom_portraits/Fisher-John.jpg'),
+ 'Justin Fitins': require('../../images/atom_portraits/Fitins-Justin.jpg'),
+ 'Matt Fletcher': require('../../images/atom_portraits/Fletcher-Matt.jpg'),
+ 'Nate Gittlen': require('../../images/atom_portraits/Gittlen-Nate.jpg'),
+ 'Dylan Goings': require('../../images/atom_portraits/Goings-Dylan.jpg'),
+ 'Stephen Guyton': require('../../images/atom_portraits/Guyton-Stephen.jpg'),
+ 'Kendra Haan': require('../../images/atom_portraits/Haan-Kendra.jpg'),
+ 'Kyle Harris': require('../../images/atom_portraits/Harris-Kyle.jpg'),
+ 'Nick Hazekamp': require('../../images/atom_portraits/Hazekamp-Nick.jpg'),
+ 'Jesse Hill': require('../../images/atom_portraits/Hill-Jesse.jpg'),
+ 'Brittany Hunter': require('../../images/atom_portraits/Hunter-Brittany.jpg'),
+ 'Justin Interino': require('../../images/atom_portraits/Interino-Justin.jpg'),
+ 'Allen Janyska': require('../../images/atom_portraits/Janyska-Allen.jpg'),
+ 'Zachary Johnson': require('../../images/atom_portraits/Johnson-Zachary.jpg'),
+ 'Dan Kelch': require('../../images/atom_portraits/Kelch-Dan.jpg'),
+ 'Nicholas Keuning': require('../../images/atom_portraits/Keuning-Nick.jpg'),
+ 'Phil Kirkham': require('../../images/atom_portraits/Kirkham-Phil.jpg'),
+ 'Michael Li': require('../../images/atom_portraits/Li-Michael.jpg'),
+ 'Meredith Lind': require('../../images/atom_portraits/Lind-Meredith.jpg'),
+ 'Danielle Marsiglia': require('../../images/atom_portraits/Marsiglia-Danielle.jpg'),
+ 'Mike Marsiglia': require('../../images/atom_portraits/Marsiglia-Mike.jpg'),
+ 'Brian May': require('../../images/atom_portraits/May-Brian.jpg'),
+ 'Rachael McQuater': require('../../images/atom_portraits/McQuater-Rachael.jpg'),
+ 'Adam Medema': require('../../images/atom_portraits/Medema-Adam.jpg'),
+ 'Lina Miller': require('../../images/atom_portraits/Miller-Lina.jpg'),
+ 'Anjali Munasinghe': require('../../images/atom_portraits/Munasinghe-Anjali.jpg'),
+ 'Jordan Nelson': require('../../images/atom_portraits/Nelson-Jordan.jpg'),
+ "Mary O'Neill": require('../../images/atom_portraits/ONeill-Mary.jpg'),
+ 'Patrick Pale': require('../../images/atom_portraits/Pale-Patrick.jpg'),
+ 'Nathan Papes': require('../../images/atom_portraits/Papes-Nathan.jpg'),
+ 'Tammy Pearson': require('../../images/atom_portraits/Pearson-Tammy.jpg'),
+ 'Andy Peterson': require('../../images/atom_portraits/Peterson-Andy.jpg'),
+ 'Jason Porritt': require('../../images/atom_portraits/Porritt-Jason.jpg'),
+ 'Viviana Rosas Romero': require('../../images/atom_portraits/Rosas-Viviana.jpg'),
+ 'John Ruble': require('../../images/atom_portraits/Ruble-John.jpg'),
+ 'Jordan Schaenzle': require('../../images/atom_portraits/Schaenzle-Jordan.jpg'),
+ 'Sivhaun Sera': require('../../images/atom_portraits/Sera-Sivhaun.jpg'),
+ 'Doug Shipp': require('../../images/atom_portraits/Shipp-Doug.jpg'),
+ 'Jake Silas': require('../../images/atom_portraits/Silas-Jake.jpg'),
+ 'Matt Soto': require('../../images/atom_portraits/Soto-Matt.jpg'),
+ 'Ty Swanson': require('../../images/atom_portraits/Swanson-Tyler.jpg'),
+ 'Michael Swieton': require('../../images/atom_portraits/Swieton-Mike.jpg'),
+ 'Sam Tahiri': require('../../images/atom_portraits/Tahiri-Sam.jpg'),
+ 'Taylor Vanden Hoek': require('../../images/atom_portraits/VandenHoek-Taylor.jpg'),
+ 'Gage Vander Clay': require('../../images/atom_portraits/VanderClay-Gage.jpg'),
+ 'Brian Vanderwal': require('../../images/atom_portraits/Vanderwal-Brian.jpg'),
+ 'Terri Vruggink': require('../../images/atom_portraits/Vruggink-Terri.jpg'),
+ 'Patrick Warren': require('../../images/atom_portraits/Warren-Patrick.jpg'),
+ 'Jeff Williams': require('../../images/atom_portraits/Williams-Jeff.jpg'),
+ 'Alex Zurek': require('../../images/atom_portraits/Zurek-Alex.jpg'),
+ },
+];
+
+export const atomicPeople = [
+ {
+ id: 0,
+ name: atomic_people[0],
+ isChecked: false,
+ },
+ {
+ id: 1,
+ name: atomic_people[1],
+ isChecked: false,
+ },
+ {
+ id: 2,
+ name: atomic_people[2],
+ isChecked: false,
+ },
+ {
+ id: 3,
+ name: atomic_people[3],
+ isChecked: false,
+ },
+ {
+ id: 4,
+ name: atomic_people[4],
+ isChecked: false,
+ },
+ {
+ id: 5,
+ name: atomic_people[5],
+ isChecked: false,
+ },
+ {
+ id: 6,
+ name: atomic_people[6],
+ isChecked: false,
+ },
+ {
+ id: 7,
+ name: atomic_people[7],
+ isChecked: false,
+ },
+ {
+ id: 8,
+ name: atomic_people[8],
+ isChecked: false,
+ },
+ {
+ id: 9,
+ name: atomic_people[9],
+ isChecked: false,
+ },
+ {
+ id: 10,
+ name: atomic_people[10],
+ isChecked: false,
+ },
+ {
+ id: 11,
+ name: atomic_people[11],
+ isChecked: false,
+ },
+ {
+ id: 12,
+ name: atomic_people[12],
+ isChecked: false,
+ },
+ {
+ id: 13,
+ name: atomic_people[13],
+ isChecked: false,
+ },
+ {
+ id: 14,
+ name: atomic_people[14],
+ isChecked: false,
+ },
+ {
+ id: 15,
+ name: atomic_people[15],
+ isChecked: false,
+ },
+ {
+ id: 16,
+ name: atomic_people[16],
+ isChecked: false,
+ },
+ {
+ id: 17,
+ name: atomic_people[17],
+ isChecked: false,
+ },
+ {
+ id: 18,
+ name: atomic_people[18],
+ isChecked: false,
+ },
+ {
+ id: 19,
+ name: atomic_people[19],
+ isChecked: false,
+ },
+ {
+ id: 20,
+ name: atomic_people[20],
+ isChecked: false,
+ },
+ {
+ id: 21,
+ name: atomic_people[21],
+ isChecked: false,
+ },
+ {
+ id: 22,
+ name: atomic_people[22],
+ isChecked: false,
+ },
+ {
+ id: 23,
+ name: atomic_people[23],
+ isChecked: false,
+ },
+ {
+ id: 24,
+ name: atomic_people[24],
+ isChecked: false,
+ },
+ {
+ id: 25,
+ name: atomic_people[25],
+ isChecked: false,
+ },
+ {
+ id: 26,
+ name: atomic_people[26],
+ isChecked: false,
+ },
+ {
+ id: 27,
+ name: atomic_people[27],
+ isChecked: false,
+ },
+ {
+ id: 28,
+ name: atomic_people[28],
+ isChecked: false,
+ },
+ {
+ id: 29,
+ name: atomic_people[29],
+ isChecked: false,
+ },
+ {
+ id: 30,
+ name: atomic_people[30],
+ isChecked: false,
+ },
+ {
+ id: 31,
+ name: atomic_people[31],
+ isChecked: false,
+ },
+ {
+ id: 32,
+ name: atomic_people[32],
+ isChecked: false,
+ },
+ {
+ id: 33,
+ name: atomic_people[33],
+ isChecked: false,
+ },
+ {
+ id: 34,
+ name: atomic_people[34],
+ isChecked: false,
+ },
+ {
+ id: 35,
+ name: atomic_people[35],
+ isChecked: false,
+ },
+ {
+ id: 36,
+ name: atomic_people[36],
+ isChecked: false,
+ },
+ {
+ id: 37,
+ name: atomic_people[37],
+ isChecked: false,
+ },
+ {
+ id: 38,
+ name: atomic_people[38],
+ isChecked: false,
+ },
+ {
+ id: 39,
+ name: atomic_people[39],
+ isChecked: false,
+ },
+ {
+ id: 40,
+ name: atomic_people[40],
+ isChecked: false,
+ },
+ {
+ id: 41,
+ name: atomic_people[41],
+ isChecked: false,
+ },
+ {
+ id: 42,
+ name: atomic_people[42],
+ isChecked: false,
+ },
+ {
+ id: 43,
+ name: atomic_people[43],
+ isChecked: false,
+ },
+ {
+ id: 44,
+ name: atomic_people[44],
+ isChecked: false,
+ },
+ {
+ id: 45,
+ name: atomic_people[45],
+ isChecked: false,
+ },
+ {
+ id: 46,
+ name: atomic_people[46],
+ isChecked: false,
+ },
+ {
+ id: 47,
+ name: atomic_people[47],
+ isChecked: false,
+ },
+ {
+ id: 48,
+ name: atomic_people[48],
+ isChecked: false,
+ },
+ {
+ id: 49,
+ name: atomic_people[49],
+ isChecked: false,
+ },
+ {
+ id: 50,
+ name: atomic_people[50],
+ isChecked: false,
+ },
+ {
+ id: 51,
+ name: atomic_people[51],
+ isChecked: false,
+ },
+ {
+ id: 52,
+ name: atomic_people[52],
+ isChecked: false,
+ },
+ {
+ id: 53,
+ name: atomic_people[53],
+ isChecked: false,
+ },
+ {
+ id: 54,
+ name: atomic_people[54],
+ isChecked: false,
+ },
+ {
+ id: 55,
+ name: atomic_people[55],
+ isChecked: false,
+ },
+ {
+ id: 56,
+ name: atomic_people[56],
+ isChecked: false,
+ },
+ {
+ id: 57,
+ name: atomic_people[57],
+ isChecked: false,
+ },
+ {
+ id: 58,
+ name: atomic_people[58],
+ isChecked: false,
+ },
+ {
+ id: 59,
+ name: atomic_people[59],
+ isChecked: false,
+ },
+ {
+ id: 60,
+ name: atomic_people[60],
+ isChecked: false,
+ },
+ {
+ id: 61,
+ name: atomic_people[61],
+ isChecked: false,
+ },
+ {
+ id: 62,
+ name: atomic_people[62],
+ isChecked: false,
+ },
+ {
+ id: 63,
+ name: atomic_people[63],
+ isChecked: false,
+ },
+ {
+ id: 64,
+ name: atomic_people[64],
+ isChecked: false,
+ },
+ {
+ id: 65,
+ name: atomic_people[65],
+ isChecked: false,
+ },
+ {
+ id: 66,
+ name: atomic_people[66],
+ isChecked: false,
+ },
+ {
+ id: 67,
+ name: atomic_people[67],
+ isChecked: false,
+ },
+ {
+ id: 68,
+ name: atomic_people[68],
+ isChecked: false,
+ },
+ {
+ id: 69,
+ name: atomic_people[69],
+ isChecked: false,
+ },
+ {
+ id: 70,
+ name: atomic_people[70],
+ isChecked: false,
+ },
+ {
+ id: 71,
+ name: atomic_people[71],
+ isChecked: false,
+ },
+ {
+ id: 72,
+ name: atomic_people[72],
+ isChecked: false,
+ },
+ {
+ id: 73,
+ name: atomic_people[73],
+ isChecked: false,
+ },
+ {
+ id: 74,
+ name: atomic_people[74],
+ isChecked: false,
+ },
+ {
+ id: 75,
+ name: atomic_people[75],
+ isChecked: false,
+ },
+ {
+ id: 76,
+ name: atomic_people[76],
+ isChecked: false,
+ },
+ {
+ id: 77,
+ name: atomic_people[77],
+ isChecked: false,
+ },
+ {
+ id: 78,
+ name: atomic_people[78],
+ isChecked: false,
+ },
+ {
+ id: 79,
+ name: atomic_people[79],
+ isChecked: false,
+ },
+ {
+ id: 80,
+ name: atomic_people[80],
+ isChecked: false,
+ },
+ {
+ id: 81,
+ name: atomic_people[81],
+ isChecked: false,
+ },
+];
+
+export const atomic_people_sorted = atomicPeople.sort((a, b) =>
+ a.name > b.name ? 1 : -1,
+);
+
+export const atomicDirectory = [
+ {
+ title: 'A',
+ data: [
+ atomic_people_sorted[0].name,
+ atomic_people_sorted[1].name,
+ atomic_people_sorted[2].name,
+ atomic_people_sorted[3].name,
+ atomic_people_sorted[4].name,
+ ],
+ },
+ {
+ title: 'B',
+ data: [
+ atomic_people_sorted[5].name,
+ atomic_people_sorted[6].name,
+ atomic_people_sorted[7].name,
+ atomic_people_sorted[8].name,
+ ],
+ },
+ {
+ title: 'C',
+ data: [
+ atomic_people_sorted[9].name,
+ atomic_people_sorted[10].name,
+ atomic_people_sorted[11].name,
+ ],
+ },
+ {
+ title: 'D',
+ data: [
+ atomic_people_sorted[12].name,
+ atomic_people_sorted[13].name,
+ atomic_people_sorted[14].name,
+ atomic_people_sorted[15].name,
+ atomic_people_sorted[16].name,
+ ],
+ },
+ {
+ title: 'E',
+ data: [atomic_people_sorted[17].name],
+ },
+ {
+ title: 'G',
+ data: [atomic_people_sorted[18].name, atomic_people_sorted[19].name],
+ },
+ {
+ title: 'J',
+ data: [
+ atomic_people_sorted[20].name,
+ atomic_people_sorted[21].name,
+ atomic_people_sorted[22].name,
+ atomic_people_sorted[23].name,
+ atomic_people_sorted[24].name,
+ atomic_people_sorted[25].name,
+ atomic_people_sorted[26].name,
+ atomic_people_sorted[27].name,
+ atomic_people_sorted[28].name,
+ atomic_people_sorted[29].name,
+ atomic_people_sorted[30].name,
+ atomic_people_sorted[31].name,
+ atomic_people_sorted[32].name,
+ atomic_people_sorted[33].name,
+ atomic_people_sorted[34].name,
+ ],
+ },
+ {
+ title: 'K',
+ data: [
+ atomic_people_sorted[35].name,
+ atomic_people_sorted[36].name,
+ atomic_people_sorted[37].name,
+ atomic_people_sorted[38].name,
+ atomic_people_sorted[39].name,
+ atomic_people_sorted[40].name,
+ atomic_people_sorted[41].name,
+ ],
+ },
+ {
+ title: 'L',
+ data: [
+ atomic_people_sorted[42].name,
+ atomic_people_sorted[43].name,
+ atomic_people_sorted[44].name,
+ atomic_people_sorted[45].name,
+ ],
+ },
+ {
+ title: 'M',
+ data: [
+ atomic_people_sorted[46].name,
+ atomic_people_sorted[47].name,
+ atomic_people_sorted[48].name,
+ atomic_people_sorted[49].name,
+ atomic_people_sorted[50].name,
+ atomic_people_sorted[51].name,
+ atomic_people_sorted[52].name,
+ atomic_people_sorted[53].name,
+ atomic_people_sorted[54].name,
+ atomic_people_sorted[55].name,
+ ],
+ },
+ {
+ title: 'N',
+ data: [
+ atomic_people_sorted[56].name,
+ atomic_people_sorted[57].name,
+ atomic_people_sorted[58].name,
+ atomic_people_sorted[59].name,
+ atomic_people_sorted[60].name,
+ ],
+ },
+ {
+ title: 'P',
+ data: [
+ atomic_people_sorted[61].name,
+ atomic_people_sorted[62].name,
+ atomic_people_sorted[63].name,
+ atomic_people_sorted[64].name,
+ ],
+ },
+ {
+ title: 'R',
+ data: [
+ atomic_people_sorted[65].name,
+ atomic_people_sorted[66].name,
+ atomic_people_sorted[67].name,
+ atomic_people_sorted[68].name,
+ ],
+ },
+ {
+ title: 'S',
+ data: [
+ atomic_people_sorted[69].name,
+ atomic_people_sorted[70].name,
+ atomic_people_sorted[71].name,
+ atomic_people_sorted[72].name,
+ atomic_people_sorted[73].name,
+ ],
+ },
+ {
+ title: 'T',
+ data: [
+ atomic_people_sorted[74].name,
+ atomic_people_sorted[75].name,
+ atomic_people_sorted[76].name,
+ atomic_people_sorted[77].name,
+ ],
+ },
+ {
+ title: 'V',
+ data: [atomic_people_sorted[78].name, atomic_people_sorted[79].name],
+ },
+ {
+ title: 'W',
+ data: [atomic_people_sorted[80].name],
+ },
+ {
+ title: 'Z',
+ data: [atomic_people_sorted[81].name],
+ },
+];
diff --git a/src/shared_components/filter_modal.tsx b/src/shared_components/filter_modal.tsx
new file mode 100644
index 0000000..f4e973f
--- /dev/null
+++ b/src/shared_components/filter_modal.tsx
@@ -0,0 +1,227 @@
+import React, {FC, useState} from 'react';
+import {View, Text, Button, StyleSheet, TouchableOpacity} from 'react-native';
+import {Icon} from 'react-native-elements';
+import Modal from 'react-native-modal';
+import SegmentedControlTab from 'react-native-segmented-control-tab';
+
+type Props = {
+ toggleVisibility: () => void;
+ isVisible: boolean;
+ category: filterCategories;
+ handleResponse: (response: any) => void;
+};
+
+export enum filterCategories {
+ sortBy = 'sort by',
+ price = 'price',
+ distance = 'distance',
+ rating = 'rating',
+ visited = 'visited',
+ open = 'open',
+}
+
+export const FilterModal: FC = props => {
+ const [selectedPriceIndex, setSelectedPriceIndex] = useState([0]);
+
+ const [selectedSortBy, setSelectedSortBy] = useState(0);
+
+ const [selectedRating, setSelectedRating] = useState(0);
+
+ const sendResponse = (category: any) => {
+ if (category === filterCategories.price) {
+ props.handleResponse(selectedPriceIndex);
+ } else if (category === filterCategories.sortBy) {
+ props.handleResponse(selectedSortBy);
+ }
+ };
+
+ const priceList = ['$', '$$', '$$$', '$$$$'];
+
+ const sortList = ['Relevance', 'Distance', 'Rating', 'Reviews'];
+
+ const sortRating = ['All', '3.5', '4', '4.5'];
+
+ const setSelectedIndices = (index: number) => {
+ let tempList = [];
+ if (selectedPriceIndex.includes(index)) {
+ const newList = selectedPriceIndex.filter(item => item !== index);
+ setSelectedPriceIndex(newList);
+ } else {
+ tempList.push(index);
+ tempList = [...selectedPriceIndex, ...tempList];
+ setSelectedPriceIndex(tempList);
+ }
+ };
+
+ if (props.category === filterCategories.price) {
+ return (
+
+
+
+ Choose a price range
+
+ {
+ props.toggleVisibility();
+ sendResponse(filterCategories.price);
+ }}
+ style={styles.checkButton}>
+
+
+
+
+ );
+ } else if (props.category === filterCategories.sortBy) {
+ return (
+
+
+
+ Sort by
+
+ {
+ props.toggleVisibility();
+ sendResponse(filterCategories.sortBy);
+ }}
+ style={styles.checkButton}>
+
+
+
+
+ );
+ } else if (props.category === filterCategories.rating) {
+ return (
+
+
+
+ Rating
+
+ {
+ props.toggleVisibility();
+ sendResponse(filterCategories.rating);
+ }}
+ style={styles.checkButton}>
+
+
+
+
+ );
+ } else {
+ return (
+
+ We Broke!!!
+
+ );
+ }
+};
+
+const styles = StyleSheet.create({
+ content: {
+ backgroundColor: 'white',
+ padding: 22,
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: 4,
+ borderColor: 'rgba(0, 0, 0, 0.1)',
+ },
+ contentTitle: {
+ fontSize: 20,
+ marginBottom: 12,
+ },
+ view: {
+ justifyContent: 'flex-end',
+ margin: 0,
+ },
+ checkButton: {
+ shadowColor: '#171717',
+ shadowOffset: {width: -2, height: 4},
+ shadowOpacity: 0.2,
+ shadowRadius: 3,
+ backgroundColor: '#fd4f57',
+ width: 100,
+ height: 50,
+ borderRadius: 50 / 2,
+ justifyContent: 'center',
+ margin: 15,
+ },
+});
diff --git a/src/shared_components/touchable.tsx b/src/shared_components/touchable.tsx
new file mode 100644
index 0000000..77182e2
--- /dev/null
+++ b/src/shared_components/touchable.tsx
@@ -0,0 +1,5 @@
+import { Platform, TouchableOpacity } from "react-native";
+import { TouchableOpacity as TouchableOpacityIOS } from "react-native-gesture-handler";
+
+export const Touchable =
+ Platform.OS === "ios" ? TouchableOpacityIOS : TouchableOpacity;
diff --git a/src/types.tsx b/src/types.tsx
new file mode 100644
index 0000000..ff44782
--- /dev/null
+++ b/src/types.tsx
@@ -0,0 +1,80 @@
+export type yelpBusinessResponse = {
+ id: string;
+ alias: string;
+ name: string;
+ image_url: string;
+ is_claimed: boolean;
+ is_closed: boolean;
+ url: string;
+ phone: string;
+ display_phone: string;
+ review_count: number;
+ categories: [
+ {
+ alias: string;
+ title: string;
+ }
+ ];
+ rating: number;
+ location: {
+ address1: string;
+ address2: string;
+ address3: string;
+ city: string;
+ zip_code: string;
+ country: string;
+ state: string;
+ display_address: [string];
+ cross_streets: string;
+ };
+ coordinates: {
+ latitude: number;
+ longitude: number;
+ };
+ photos: [string];
+ price: string;
+ hours: [
+ {
+ open: [
+ {
+ is_overnight: boolean;
+ start: string;
+ end: string;
+ day: number;
+ }
+ ];
+ hours_type: string;
+ is_open_now: boolean;
+ }
+ ];
+ transactions: [];
+ special_hours: [
+ {
+ date: string;
+ is_closed: boolean | null;
+ start: string;
+ end: string;
+ is_overnight: boolean;
+ }
+ ];
+};
+
+export type yelpReviewResponse = {
+ total: number;
+ possible_languages: string[];
+ reviews: [
+ {
+ id: string;
+ text: string;
+ url: string;
+ rating: number;
+ time_created: string;
+ user: {
+ id: string;
+ profile_url: string;
+ name: string;
+ image_url: string;
+ };
+ }
+ ];
+};
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..863f3f3
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,7283 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@ampproject/remapping@^2.0.0":
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz"
+ integrity sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.0"
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz"
+ integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==
+ dependencies:
+ "@babel/highlight" "^7.16.7"
+
+"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4":
+ version "7.17.0"
+ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz"
+ integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==
+
+"@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.12.3", "@babel/core@^7.12.9", "@babel/core@^7.14.0", "@babel/core@^7.7.5":
+ version "7.17.2"
+ resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz"
+ integrity sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==
+ dependencies:
+ "@ampproject/remapping" "^2.0.0"
+ "@babel/code-frame" "^7.16.7"
+ "@babel/generator" "^7.17.0"
+ "@babel/helper-compilation-targets" "^7.16.7"
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helpers" "^7.17.2"
+ "@babel/parser" "^7.17.0"
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.17.0"
+ "@babel/types" "^7.17.0"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.1.2"
+ semver "^6.3.0"
+
+"@babel/generator@^7.14.0", "@babel/generator@^7.17.0":
+ version "7.17.0"
+ resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz"
+ integrity sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==
+ dependencies:
+ "@babel/types" "^7.17.0"
+ jsesc "^2.5.1"
+ source-map "^0.5.0"
+
+"@babel/helper-annotate-as-pure@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz"
+ integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz"
+ integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==
+ dependencies:
+ "@babel/helper-explode-assignable-expression" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz"
+ integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==
+ dependencies:
+ "@babel/compat-data" "^7.16.4"
+ "@babel/helper-validator-option" "^7.16.7"
+ browserslist "^4.17.5"
+ semver "^6.3.0"
+
+"@babel/helper-create-class-features-plugin@^7.16.7":
+ version "7.17.1"
+ resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz"
+ integrity sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-member-expression-to-functions" "^7.16.7"
+ "@babel/helper-optimise-call-expression" "^7.16.7"
+ "@babel/helper-replace-supers" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
+
+"@babel/helper-create-regexp-features-plugin@^7.16.7":
+ version "7.17.0"
+ resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz"
+ integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ regexpu-core "^5.0.1"
+
+"@babel/helper-define-polyfill-provider@^0.3.1":
+ version "0.3.1"
+ resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz"
+ integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.13.0"
+ "@babel/helper-module-imports" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/traverse" "^7.13.0"
+ debug "^4.1.1"
+ lodash.debounce "^4.0.8"
+ resolve "^1.14.2"
+ semver "^6.1.2"
+
+"@babel/helper-environment-visitor@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz"
+ integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-explode-assignable-expression@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz"
+ integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-function-name@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz"
+ integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.16.7"
+ "@babel/template" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-get-function-arity@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz"
+ integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-hoist-variables@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz"
+ integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-member-expression-to-functions@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz"
+ integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz"
+ integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-module-transforms@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz"
+ integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/helper-simple-access" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
+ "@babel/helper-validator-identifier" "^7.16.7"
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-optimise-call-expression@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz"
+ integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz"
+ integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==
+
+"@babel/helper-remap-async-to-generator@^7.16.8":
+ version "7.16.8"
+ resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz"
+ integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-wrap-function" "^7.16.8"
+ "@babel/types" "^7.16.8"
+
+"@babel/helper-replace-supers@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz"
+ integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-member-expression-to-functions" "^7.16.7"
+ "@babel/helper-optimise-call-expression" "^7.16.7"
+ "@babel/traverse" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-simple-access@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz"
+ integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
+ version "7.16.0"
+ resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz"
+ integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==
+ dependencies:
+ "@babel/types" "^7.16.0"
+
+"@babel/helper-split-export-declaration@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz"
+ integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-validator-identifier@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz"
+ integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
+
+"@babel/helper-validator-option@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz"
+ integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==
+
+"@babel/helper-wrap-function@^7.16.8":
+ version "7.16.8"
+ resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz"
+ integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==
+ dependencies:
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.16.8"
+ "@babel/types" "^7.16.8"
+
+"@babel/helpers@^7.17.2":
+ version "7.17.2"
+ resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz"
+ integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==
+ dependencies:
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.17.0"
+ "@babel/types" "^7.17.0"
+
+"@babel/highlight@^7.16.7":
+ version "7.16.10"
+ resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz"
+ integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.16.7"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
+"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.0", "@babel/parser@^7.7.0":
+ version "7.17.0"
+ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz"
+ integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==
+
+"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.1.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz"
+ integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-proposal-export-default-from@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz"
+ integrity sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-export-default-from" "^7.16.7"
+
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.1.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz"
+ integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+"@babel/plugin-proposal-object-rest-spread@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz"
+ integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==
+ dependencies:
+ "@babel/compat-data" "^7.16.4"
+ "@babel/helper-compilation-targets" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.16.7"
+
+"@babel/plugin-proposal-optional-catch-binding@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz"
+ integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
+"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.1.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz"
+ integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+"@babel/plugin-syntax-async-generators@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz"
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-bigint@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz"
+ integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.8.3":
+ version "7.12.13"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz"
+ integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-dynamic-import@^7.0.0":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz"
+ integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz"
+ integrity sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.16.7", "@babel/plugin-syntax-flow@^7.2.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz"
+ integrity sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-syntax-import-meta@^7.8.3":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz"
+ integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-json-strings@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz"
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz"
+ integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz"
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.8.3":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz"
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz"
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-top-level-await@^7.8.3":
+ version "7.14.5"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz"
+ integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-typescript@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz"
+ integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-arrow-functions@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz"
+ integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-async-to-generator@^7.0.0":
+ version "7.16.8"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz"
+ integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==
+ dependencies:
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-remap-async-to-generator" "^7.16.8"
+
+"@babel/plugin-transform-block-scoped-functions@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz"
+ integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-block-scoping@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz"
+ integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-classes@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz"
+ integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-optimise-call-expression" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-replace-supers" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
+ globals "^11.1.0"
+
+"@babel/plugin-transform-computed-properties@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz"
+ integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-destructuring@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz"
+ integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-exponentiation-operator@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz"
+ integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz"
+ integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-flow" "^7.16.7"
+
+"@babel/plugin-transform-for-of@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz"
+ integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-function-name@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz"
+ integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-literals@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz"
+ integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-member-expression-literals@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz"
+ integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.1.0":
+ version "7.16.8"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz"
+ integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-simple-access" "^7.16.7"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-object-assign@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.16.7.tgz"
+ integrity sha512-R8mawvm3x0COTJtveuoqZIjNypn2FjfvXZr4pSQ8VhEFBuQGBz4XhHasZtHXjgXU4XptZ4HtGof3NoYc93ZH9Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-object-super@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz"
+ integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-replace-supers" "^7.16.7"
+
+"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz"
+ integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-property-literals@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz"
+ integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-display-name@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz"
+ integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-jsx-self@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.16.7.tgz"
+ integrity sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-jsx-source@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz"
+ integrity sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-react-jsx@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz"
+ integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-jsx" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
+"@babel/plugin-transform-regenerator@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz"
+ integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==
+ dependencies:
+ regenerator-transform "^0.14.2"
+
+"@babel/plugin-transform-runtime@^7.0.0":
+ version "7.17.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz"
+ integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==
+ dependencies:
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ babel-plugin-polyfill-corejs2 "^0.3.0"
+ babel-plugin-polyfill-corejs3 "^0.5.0"
+ babel-plugin-polyfill-regenerator "^0.3.0"
+ semver "^6.3.0"
+
+"@babel/plugin-transform-shorthand-properties@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz"
+ integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-spread@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz"
+ integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+
+"@babel/plugin-transform-sticky-regex@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz"
+ integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-template-literals@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz"
+ integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-typescript@^7.16.7", "@babel/plugin-transform-typescript@^7.5.0":
+ version "7.16.8"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz"
+ integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-typescript" "^7.16.7"
+
+"@babel/plugin-transform-unicode-regex@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz"
+ integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/preset-flow@^7.0.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.7.tgz"
+ integrity sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-validator-option" "^7.16.7"
+ "@babel/plugin-transform-flow-strip-types" "^7.16.7"
+
+"@babel/preset-typescript@^7.1.0":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz"
+ integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-validator-option" "^7.16.7"
+ "@babel/plugin-transform-typescript" "^7.16.7"
+
+"@babel/register@^7.0.0":
+ version "7.17.0"
+ resolved "https://registry.npmjs.org/@babel/register/-/register-7.17.0.tgz"
+ integrity sha512-UNZsMAZ7uKoGHo1HlEXfteEOYssf64n/PNLHGqOKq/bgYcu/4LrQWAHJwSCb3BRZK8Hi5gkJdRcwrGTO2wtRCg==
+ dependencies:
+ clone-deep "^4.0.1"
+ find-cache-dir "^2.0.0"
+ make-dir "^2.1.0"
+ pirates "^4.0.5"
+ source-map-support "^0.5.16"
+
+"@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4":
+ version "7.17.2"
+ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz"
+ integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+"@babel/template@^7.0.0", "@babel/template@^7.16.7", "@babel/template@^7.3.3":
+ version "7.16.7"
+ resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz"
+ integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==
+ dependencies:
+ "@babel/code-frame" "^7.16.7"
+ "@babel/parser" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
+"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4":
+ version "7.17.0"
+ resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz"
+ integrity sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==
+ dependencies:
+ "@babel/code-frame" "^7.16.7"
+ "@babel/generator" "^7.17.0"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-hoist-variables" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
+ "@babel/parser" "^7.17.0"
+ "@babel/types" "^7.17.0"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
+"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.7.0":
+ version "7.17.0"
+ resolved "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz"
+ integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.16.7"
+ to-fast-properties "^2.0.0"
+
+"@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz"
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
+"@cnakazawa/watch@^1.0.3":
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz"
+ integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==
+ dependencies:
+ exec-sh "^0.3.2"
+ minimist "^1.2.0"
+
+"@egjs/hammerjs@^2.0.17":
+ version "2.0.17"
+ resolved "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz"
+ integrity sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==
+ dependencies:
+ "@types/hammerjs" "^2.0.36"
+
+"@eslint/eslintrc@^0.2.1":
+ version "0.2.2"
+ resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz"
+ integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==
+ dependencies:
+ ajv "^6.12.4"
+ debug "^4.1.1"
+ espree "^7.3.0"
+ globals "^12.1.0"
+ ignore "^4.0.6"
+ import-fresh "^3.2.1"
+ js-yaml "^3.13.1"
+ lodash "^4.17.19"
+ minimatch "^3.0.4"
+ strip-json-comments "^3.1.1"
+
+"@fortawesome/fontawesome-common-types@^0.3.0":
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.3.0.tgz#949995a05c0d8801be7e0a594f775f1dbaa0d893"
+ integrity sha512-CA3MAZBTxVsF6SkfkHXDerkhcQs0QPofy43eFdbWJJkZiq3SfiaH1msOkac59rQaqto5EqWnASboY1dBuKen5w==
+
+"@fortawesome/fontawesome-svg-core@^1.3.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.3.0.tgz#343fac91fa87daa630d26420bfedfba560f85885"
+ integrity sha512-UIL6crBWhjTNQcONt96ExjUnKt1D68foe3xjEensLDclqQ6YagwCRYVQdrp/hW0ALRp/5Fv/VKw+MqTUWYYvPg==
+ dependencies:
+ "@fortawesome/fontawesome-common-types" "^0.3.0"
+
+"@fortawesome/free-regular-svg-icons@^6.0.0":
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.0.0.tgz#f3cb91dac643472fe8138024b93fbfbdf05675cc"
+ integrity sha512-lYK6oyQL8HwZUAVWGqF7TGuwQBVfphNBVTdvPSD3h4gmQfGazm/xcwg3kmtcRycu3y6QspOC7hPXSoJbVqSYCw==
+ dependencies:
+ "@fortawesome/fontawesome-common-types" "^0.3.0"
+
+"@fortawesome/free-solid-svg-icons@^6.0.0":
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.0.0.tgz#bed4a501b631c6cfa35c09830f7cb63ffca1589d"
+ integrity sha512-o4FZ1XbndcgeWNb8Wh0y+Hgf73CjmyOQowUSaqQCtgIIdS+XliSBSOwCl330wER+I6CGYE96hT27bHBPmzX2Gg==
+ dependencies:
+ "@fortawesome/fontawesome-common-types" "^0.3.0"
+
+"@fortawesome/react-native-fontawesome@^0.2.7":
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/@fortawesome/react-native-fontawesome/-/react-native-fontawesome-0.2.7.tgz#2fea96c4afeb19cdab641b8fbb6022a8e6ee4aec"
+ integrity sha512-H3FjE01PDKGTZW+pXMsaCklT0FADaHo4D+Ni63BSXNQclmFgKj2Xlky37cx0s1BaIIw1geuHcyg0hdFxbACusw==
+ dependencies:
+ humps "^2.0.1"
+ prop-types "^15.7.2"
+
+"@hapi/hoek@^9.0.0":
+ version "9.2.1"
+ resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz"
+ integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==
+
+"@hapi/topo@^5.0.0":
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz"
+ integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==
+ dependencies:
+ "@hapi/hoek" "^9.0.0"
+
+"@istanbuljs/load-nyc-config@^1.0.0":
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz"
+ integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
+ dependencies:
+ camelcase "^5.3.1"
+ find-up "^4.1.0"
+ get-package-type "^0.1.0"
+ js-yaml "^3.13.1"
+ resolve-from "^5.0.0"
+
+"@istanbuljs/schema@^0.1.2":
+ version "0.1.3"
+ resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz"
+ integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
+
+"@jest/console@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz"
+ integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ jest-message-util "^26.6.2"
+ jest-util "^26.6.2"
+ slash "^3.0.0"
+
+"@jest/core@^26.6.3":
+ version "26.6.3"
+ resolved "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz"
+ integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==
+ dependencies:
+ "@jest/console" "^26.6.2"
+ "@jest/reporters" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.4"
+ jest-changed-files "^26.6.2"
+ jest-config "^26.6.3"
+ jest-haste-map "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-regex-util "^26.0.0"
+ jest-resolve "^26.6.2"
+ jest-resolve-dependencies "^26.6.3"
+ jest-runner "^26.6.3"
+ jest-runtime "^26.6.3"
+ jest-snapshot "^26.6.2"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
+ jest-watcher "^26.6.2"
+ micromatch "^4.0.2"
+ p-each-series "^2.1.0"
+ rimraf "^3.0.0"
+ slash "^3.0.0"
+ strip-ansi "^6.0.0"
+
+"@jest/create-cache-key-function@^27.0.1":
+ version "27.5.1"
+ resolved "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz"
+ integrity sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==
+ dependencies:
+ "@jest/types" "^27.5.1"
+
+"@jest/environment@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz"
+ integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==
+ dependencies:
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ jest-mock "^26.6.2"
+
+"@jest/fake-timers@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz"
+ integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ "@sinonjs/fake-timers" "^6.0.1"
+ "@types/node" "*"
+ jest-message-util "^26.6.2"
+ jest-mock "^26.6.2"
+ jest-util "^26.6.2"
+
+"@jest/globals@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz"
+ integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==
+ dependencies:
+ "@jest/environment" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ expect "^26.6.2"
+
+"@jest/reporters@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz"
+ integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ chalk "^4.0.0"
+ collect-v8-coverage "^1.0.0"
+ exit "^0.1.2"
+ glob "^7.1.2"
+ graceful-fs "^4.2.4"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^4.0.3"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.0.2"
+ jest-haste-map "^26.6.2"
+ jest-resolve "^26.6.2"
+ jest-util "^26.6.2"
+ jest-worker "^26.6.2"
+ slash "^3.0.0"
+ source-map "^0.6.0"
+ string-length "^4.0.1"
+ terminal-link "^2.0.0"
+ v8-to-istanbul "^7.0.0"
+ optionalDependencies:
+ node-notifier "^8.0.0"
+
+"@jest/source-map@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz"
+ integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==
+ dependencies:
+ callsites "^3.0.0"
+ graceful-fs "^4.2.4"
+ source-map "^0.6.0"
+
+"@jest/test-result@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz"
+ integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==
+ dependencies:
+ "@jest/console" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
+
+"@jest/test-sequencer@^26.6.3":
+ version "26.6.3"
+ resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz"
+ integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==
+ dependencies:
+ "@jest/test-result" "^26.6.2"
+ graceful-fs "^4.2.4"
+ jest-haste-map "^26.6.2"
+ jest-runner "^26.6.3"
+ jest-runtime "^26.6.3"
+
+"@jest/transform@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz"
+ integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==
+ dependencies:
+ "@babel/core" "^7.1.0"
+ "@jest/types" "^26.6.2"
+ babel-plugin-istanbul "^6.0.0"
+ chalk "^4.0.0"
+ convert-source-map "^1.4.0"
+ fast-json-stable-stringify "^2.0.0"
+ graceful-fs "^4.2.4"
+ jest-haste-map "^26.6.2"
+ jest-regex-util "^26.0.0"
+ jest-util "^26.6.2"
+ micromatch "^4.0.2"
+ pirates "^4.0.1"
+ slash "^3.0.0"
+ source-map "^0.6.1"
+ write-file-atomic "^3.0.0"
+
+"@jest/types@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz"
+ integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==
+ dependencies:
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
+ "@types/yargs" "^15.0.0"
+ chalk "^4.0.0"
+
+"@jest/types@^27.5.1":
+ version "27.5.1"
+ resolved "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz"
+ integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==
+ dependencies:
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
+ "@types/yargs" "^16.0.0"
+ chalk "^4.0.0"
+
+"@jridgewell/resolve-uri@^3.0.3":
+ version "3.0.5"
+ resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz"
+ integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==
+
+"@jridgewell/sourcemap-codec@^1.4.10":
+ version "1.4.11"
+ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz"
+ integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==
+
+"@jridgewell/trace-mapping@^0.3.0":
+ version "0.3.4"
+ resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz"
+ integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@react-native-async-storage/async-storage@^1.16.1":
+ version "1.16.1"
+ resolved "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.16.1.tgz"
+ integrity sha512-aQ7ka+Ii1e/q+7AVFIZPt4kDeSH8b784wMDtz19Kf4A7hf+OgCHBlUQpOXsrv8XxhlBxu0hv4tfrDO15ChnV0Q==
+ dependencies:
+ merge-options "^3.0.4"
+
+"@react-native-community/cli-debugger-ui@^6.0.0-rc.0":
+ version "6.0.0-rc.0"
+ resolved "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-6.0.0-rc.0.tgz"
+ integrity sha512-achYcPPoWa9D02C5tn6TBzjeY443wQTyx37urptc75JpZ7gR5YHsDyIEEWa3DDYp1va9zx/iGg+uZ/hWw07GAw==
+ dependencies:
+ serve-static "^1.13.1"
+
+"@react-native-community/cli-hermes@^6.3.0":
+ version "6.3.0"
+ resolved "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-6.3.0.tgz"
+ integrity sha512-Uhbm9bubyZLZ12vFCIfWbE/Qi3SBTbYIN/TC08EudTLhv/KbPomCQnmFsnJ7AXQFuOZJs73mBxoEAYSbRbwyVA==
+ dependencies:
+ "@react-native-community/cli-platform-android" "^6.3.0"
+ "@react-native-community/cli-tools" "^6.2.0"
+ chalk "^4.1.2"
+ hermes-profile-transformer "^0.0.6"
+ ip "^1.1.5"
+
+"@react-native-community/cli-platform-android@^6.0.0", "@react-native-community/cli-platform-android@^6.3.0":
+ version "6.3.0"
+ resolved "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-6.3.0.tgz"
+ integrity sha512-d5ufyYcvrZoHznYm5bjBXaiHIJv552t5gYtQpnUsxBhHSQ8QlaNmlLUyeSPRDfOw4ND9b0tPHqs4ufwx6vp/fQ==
+ dependencies:
+ "@react-native-community/cli-tools" "^6.2.0"
+ chalk "^4.1.2"
+ execa "^1.0.0"
+ fs-extra "^8.1.0"
+ glob "^7.1.3"
+ jetifier "^1.6.2"
+ lodash "^4.17.15"
+ logkitty "^0.7.1"
+ slash "^3.0.0"
+ xmldoc "^1.1.2"
+
+"@react-native-community/cli-platform-ios@^6.0.0":
+ version "6.2.0"
+ resolved "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-6.2.0.tgz"
+ integrity sha512-k15MhExxLiLDDZOeuPgvTxbp0CsoLQQpk2Du0HjZDePqqWcKJylQqMZru1o8HuQHPcEr+b71HIs5V+lKyFYpfg==
+ dependencies:
+ "@react-native-community/cli-tools" "^6.2.0"
+ chalk "^4.1.2"
+ glob "^7.1.3"
+ js-yaml "^3.13.1"
+ lodash "^4.17.15"
+ ora "^3.4.0"
+ plist "^3.0.2"
+ xcode "^2.0.0"
+
+"@react-native-community/cli-plugin-metro@^6.4.0":
+ version "6.4.0"
+ resolved "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-6.4.0.tgz"
+ integrity sha512-lcrNODvHd3ZVhiEshXAjyBoqP44rjhkytkOSUpnZHAcmMLiguxDmvhWeWqbwu3XqSX/f0gVKmfj81t+opI1bSw==
+ dependencies:
+ "@react-native-community/cli-server-api" "^6.4.0"
+ "@react-native-community/cli-tools" "^6.2.0"
+ chalk "^4.1.2"
+ metro "^0.66.1"
+ metro-config "^0.66.1"
+ metro-core "^0.66.1"
+ metro-react-native-babel-transformer "^0.66.1"
+ metro-resolver "^0.66.1"
+ metro-runtime "^0.66.1"
+ readline "^1.3.0"
+
+"@react-native-community/cli-server-api@^6.4.0":
+ version "6.4.0"
+ resolved "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-6.4.0.tgz"
+ integrity sha512-zYUfOEHLTFEmNoa5oscgWOu2xtOcB4NZWqCdpkxNmgGQhC48CSNl8V4rxXLoozcymEsSUN0rj5pDRiXz/5CYow==
+ dependencies:
+ "@react-native-community/cli-debugger-ui" "^6.0.0-rc.0"
+ "@react-native-community/cli-tools" "^6.2.0"
+ compression "^1.7.1"
+ connect "^3.6.5"
+ errorhandler "^1.5.0"
+ nocache "^2.1.0"
+ pretty-format "^26.6.2"
+ serve-static "^1.13.1"
+ ws "^1.1.0"
+
+"@react-native-community/cli-tools@^6.2.0":
+ version "6.2.0"
+ resolved "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-6.2.0.tgz"
+ integrity sha512-08ssz4GMEnRxC/1FgTTN/Ud7mExQi5xMphItPjfHiTxpZPhrFn+IMx6mya0ncFEhhxQ207wYlJMRLPRRdBZ8oA==
+ dependencies:
+ appdirsjs "^1.2.4"
+ chalk "^4.1.2"
+ lodash "^4.17.15"
+ mime "^2.4.1"
+ node-fetch "^2.6.0"
+ open "^6.2.0"
+ semver "^6.3.0"
+ shell-quote "1.6.1"
+
+"@react-native-community/cli-types@^6.0.0":
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-6.0.0.tgz"
+ integrity sha512-K493Fk2DMJC0ZM8s8gnfseKxGasIhuDaCUDeLZcoCSFlrjKEuEs1BKKEJiev0CARhKEXKOyyp/uqYM9nWhisNw==
+ dependencies:
+ ora "^3.4.0"
+
+"@react-native-community/cli@^6.0.0":
+ version "6.4.0"
+ resolved "https://registry.npmjs.org/@react-native-community/cli/-/cli-6.4.0.tgz"
+ integrity sha512-UNvYnWaALa4mJEaWdLY3fVK+csZzx/Ja/FGvXISPJ9W9lrKvGtyXkidViUCPbPtMsJUi7teA4uIShHn0mbGmnQ==
+ dependencies:
+ "@react-native-community/cli-debugger-ui" "^6.0.0-rc.0"
+ "@react-native-community/cli-hermes" "^6.3.0"
+ "@react-native-community/cli-plugin-metro" "^6.4.0"
+ "@react-native-community/cli-server-api" "^6.4.0"
+ "@react-native-community/cli-tools" "^6.2.0"
+ "@react-native-community/cli-types" "^6.0.0"
+ appdirsjs "^1.2.4"
+ chalk "^4.1.2"
+ command-exists "^1.2.8"
+ commander "^2.19.0"
+ cosmiconfig "^5.1.0"
+ deepmerge "^3.2.0"
+ envinfo "^7.7.2"
+ execa "^1.0.0"
+ find-up "^4.1.0"
+ fs-extra "^8.1.0"
+ glob "^7.1.3"
+ graceful-fs "^4.1.3"
+ joi "^17.2.1"
+ leven "^3.1.0"
+ lodash "^4.17.15"
+ minimist "^1.2.0"
+ node-stream-zip "^1.9.1"
+ ora "^3.4.0"
+ pretty-format "^26.6.2"
+ prompts "^2.4.0"
+ semver "^6.3.0"
+ serve-static "^1.13.1"
+ strip-ansi "^5.2.0"
+ sudo-prompt "^9.0.0"
+ wcwidth "^1.0.1"
+
+"@react-native-community/datetimepicker@^5.1.0":
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/@react-native-community/datetimepicker/-/datetimepicker-5.1.0.tgz"
+ integrity sha512-DsKmdthZIb1AfuvpPE0iOiw4iQLXUWY3mJEYpGe9iUJt7pOkNnqHk6D95wqg4wjZ2bEBLAPfvndoeWZAjAZKfw==
+ dependencies:
+ invariant "^2.2.4"
+
+"@react-native-community/eslint-config@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/@react-native-community/eslint-config/-/eslint-config-2.0.0.tgz"
+ integrity sha512-vHaMMfvMp9BWCQQ0lNIXibOJTcXIbYUQ8dSUsMOsrXgVkeVQJj88OwrKS00rQyqwMaC4/a6HuDiFzYUkGKOpVg==
+ dependencies:
+ "@react-native-community/eslint-plugin" "^1.1.0"
+ "@typescript-eslint/eslint-plugin" "^3.1.0"
+ "@typescript-eslint/parser" "^3.1.0"
+ babel-eslint "^10.1.0"
+ eslint-config-prettier "^6.10.1"
+ eslint-plugin-eslint-comments "^3.1.2"
+ eslint-plugin-flowtype "2.50.3"
+ eslint-plugin-jest "22.4.1"
+ eslint-plugin-prettier "3.1.2"
+ eslint-plugin-react "^7.20.0"
+ eslint-plugin-react-hooks "^4.0.4"
+ eslint-plugin-react-native "^3.8.1"
+ prettier "^2.0.2"
+
+"@react-native-community/eslint-plugin@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/@react-native-community/eslint-plugin/-/eslint-plugin-1.1.0.tgz"
+ integrity sha512-W/J0fNYVO01tioHjvYWQ9m6RgndVtbElzYozBq1ZPrHO/iCzlqoySHl4gO/fpCl9QEFjvJfjPgtPMTMlsoq5DQ==
+
+"@react-native-google-signin/google-signin@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@react-native-google-signin/google-signin/-/google-signin-7.1.0.tgz#de39000dc1e095c54b8136436ad43cfd8c938a0c"
+ integrity sha512-F8eaK4hATG/r+YSObKK15eFbJ2dZsf/fEL8+7T7iL4kDM4+oUJ43qUYv6fbvdsR29aRHaHcezVrfLVIY1Gswiw==
+
+"@react-native/assets@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz"
+ integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==
+
+"@react-native/normalize-color@2.0.0":
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.0.0.tgz"
+ integrity sha512-Wip/xsc5lw8vsBlmY2MO/gFLp3MvuZ2baBZjDeTjjndMgM0h5sxz7AZR62RDPGgstp8Np7JzjvVqVT7tpFZqsw==
+
+"@react-native/polyfills@2.0.0":
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz"
+ integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==
+
+"@react-navigation/bottom-tabs@^6.0.9":
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.2.0.tgz#8f6b650c2d05fa63ac42d5e662aece9e554d7a38"
+ integrity sha512-MNwXbybjapRFZJtO+fNu5YuTYQGzzYAUIF4IsY2+ZBXoCRpzuDq8gXV7ChKDJaaTeX39IoDUng3qGXbvtVcivA==
+ dependencies:
+ "@react-navigation/elements" "^1.3.1"
+ color "^3.1.3"
+ warn-once "^0.1.0"
+
+"@react-navigation/core@^6.1.1":
+ version "6.1.1"
+ resolved "https://registry.npmjs.org/@react-navigation/core/-/core-6.1.1.tgz"
+ integrity sha512-njysuiqztgvR1Z9Noxk2OGJfYtFGFDRyji5Vmm1jHzlql0m+q0wh1dUiyaIEtTyrhFXr/YNgdrKuiPaU9Jp8OA==
+ dependencies:
+ "@react-navigation/routers" "^6.1.0"
+ escape-string-regexp "^4.0.0"
+ nanoid "^3.1.23"
+ query-string "^7.0.0"
+ react-is "^16.13.0"
+
+"@react-navigation/elements@^1.3.1":
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.1.tgz"
+ integrity sha512-jIDRJaG8YPIinl4hZXJu/W3TnhDe8hLYmGSEdL1mxZ1aoNMiApCBYkgTy11oq0EfK/koZd3DPSkJNbzBAQmPJw==
+
+"@react-navigation/native@^6.0.8":
+ version "6.0.8"
+ resolved "https://registry.npmjs.org/@react-navigation/native/-/native-6.0.8.tgz"
+ integrity sha512-6022M3+Btok3xJC/49B88er3SRrlDAZ4FdmGndhEVvBcGSHWmscU2qKCwFd0RY6A0AGCVmdIlXudrfdcdRAkpQ==
+ dependencies:
+ "@react-navigation/core" "^6.1.1"
+ escape-string-regexp "^4.0.0"
+ fast-deep-equal "^3.1.3"
+ nanoid "^3.1.23"
+
+"@react-navigation/routers@^6.1.0":
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.0.tgz"
+ integrity sha512-8xJL+djIzpFdRW/sGlKojQ06fWgFk1c5jER9501HYJ12LF5DIJFr/tqBI2TJ6bk+y+QFu0nbNyeRC80OjRlmkA==
+ dependencies:
+ nanoid "^3.1.23"
+
+"@react-navigation/stack@^6.1.1":
+ version "6.1.1"
+ resolved "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.1.1.tgz"
+ integrity sha512-mr7CrP3rvYapTZj/xUInJYDte2QEQPvK8qBI6kbJ6goeLqRMkcO7haK4Q5FeV1HVYCUnssAn7CA5j+OOm59syg==
+ dependencies:
+ "@react-navigation/elements" "^1.3.1"
+ color "^3.1.3"
+ warn-once "^0.1.0"
+
+"@sideway/address@^4.1.3":
+ version "4.1.3"
+ resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz"
+ integrity sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==
+ dependencies:
+ "@hapi/hoek" "^9.0.0"
+
+"@sideway/formula@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz"
+ integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==
+
+"@sideway/pinpoint@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz"
+ integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
+
+"@sinonjs/commons@^1.7.0":
+ version "1.8.3"
+ resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz"
+ integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==
+ dependencies:
+ type-detect "4.0.8"
+
+"@sinonjs/fake-timers@^6.0.1":
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz"
+ integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==
+ dependencies:
+ "@sinonjs/commons" "^1.7.0"
+
+"@tootallnate/once@1":
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz"
+ integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
+
+"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7":
+ version "7.1.18"
+ resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz"
+ integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+ version "7.6.4"
+ resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz"
+ integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+ version "7.4.1"
+ resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz"
+ integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6":
+ version "7.14.2"
+ resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz"
+ integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==
+ dependencies:
+ "@babel/types" "^7.3.0"
+
+"@types/eslint-visitor-keys@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz"
+ integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==
+
+"@types/graceful-fs@^4.1.2":
+ version "4.1.5"
+ resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz"
+ integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==
+ dependencies:
+ "@types/node" "*"
+
+"@types/hammerjs@^2.0.36":
+ version "2.0.41"
+ resolved "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz"
+ integrity sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz"
+ integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==
+
+"@types/istanbul-lib-report@*":
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz"
+ integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+
+"@types/istanbul-reports@^3.0.0":
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz"
+ integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==
+ dependencies:
+ "@types/istanbul-lib-report" "*"
+
+"@types/json-schema@^7.0.3":
+ version "7.0.9"
+ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz"
+ integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
+
+"@types/node@*":
+ version "17.0.17"
+ resolved "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz"
+ integrity sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==
+
+"@types/normalize-package-data@^2.4.0":
+ version "2.4.1"
+ resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz"
+ integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==
+
+"@types/prettier@^2.0.0":
+ version "2.4.4"
+ resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz"
+ integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==
+
+"@types/prop-types@*":
+ version "15.7.4"
+ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz"
+ integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
+
+"@types/react-native-vector-icons@^6.4.6":
+ version "6.4.10"
+ resolved "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.10.tgz"
+ integrity sha512-z4sexbuZ7nmYsp7Z9YB5fSQoN3KFn6nZA3QsCkQLOYnVmVlxX4U22v/bM9Xx/6dOA1vClxoRZo2CFDX16uryXQ==
+ dependencies:
+ "@types/react" "*"
+ "@types/react-native" "*"
+
+"@types/react-native@*":
+ version "0.66.15"
+ resolved "https://registry.npmjs.org/@types/react-native/-/react-native-0.66.15.tgz"
+ integrity sha512-qNK3LZhNpSd2Hdr0OFdvQ/VOb1qcjNhmw96LsOtxIN+1RtXHO/1dVzxYUlWnKMCtV+E5WSaWM703c9Q7gG9tyg==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*":
+ version "17.0.39"
+ resolved "https://registry.npmjs.org/@types/react/-/react-17.0.39.tgz"
+ integrity sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
+"@types/scheduler@*":
+ version "0.16.2"
+ resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz"
+ integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
+
+"@types/stack-utils@^2.0.0":
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz"
+ integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==
+
+"@types/yargs-parser@*":
+ version "20.2.1"
+ resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz"
+ integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==
+
+"@types/yargs@^15.0.0":
+ version "15.0.14"
+ resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz"
+ integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==
+ dependencies:
+ "@types/yargs-parser" "*"
+
+"@types/yargs@^16.0.0":
+ version "16.0.4"
+ resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz"
+ integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==
+ dependencies:
+ "@types/yargs-parser" "*"
+
+"@typescript-eslint/eslint-plugin@^3.1.0":
+ version "3.10.1"
+ resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz"
+ integrity sha512-PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ==
+ dependencies:
+ "@typescript-eslint/experimental-utils" "3.10.1"
+ debug "^4.1.1"
+ functional-red-black-tree "^1.0.1"
+ regexpp "^3.0.0"
+ semver "^7.3.2"
+ tsutils "^3.17.1"
+
+"@typescript-eslint/experimental-utils@3.10.1":
+ version "3.10.1"
+ resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz"
+ integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==
+ dependencies:
+ "@types/json-schema" "^7.0.3"
+ "@typescript-eslint/types" "3.10.1"
+ "@typescript-eslint/typescript-estree" "3.10.1"
+ eslint-scope "^5.0.0"
+ eslint-utils "^2.0.0"
+
+"@typescript-eslint/parser@^3.1.0":
+ version "3.10.1"
+ resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.10.1.tgz"
+ integrity sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==
+ dependencies:
+ "@types/eslint-visitor-keys" "^1.0.0"
+ "@typescript-eslint/experimental-utils" "3.10.1"
+ "@typescript-eslint/types" "3.10.1"
+ "@typescript-eslint/typescript-estree" "3.10.1"
+ eslint-visitor-keys "^1.1.0"
+
+"@typescript-eslint/types@3.10.1":
+ version "3.10.1"
+ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz"
+ integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==
+
+"@typescript-eslint/typescript-estree@3.10.1":
+ version "3.10.1"
+ resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz"
+ integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==
+ dependencies:
+ "@typescript-eslint/types" "3.10.1"
+ "@typescript-eslint/visitor-keys" "3.10.1"
+ debug "^4.1.1"
+ glob "^7.1.6"
+ is-glob "^4.0.1"
+ lodash "^4.17.15"
+ semver "^7.3.2"
+ tsutils "^3.17.1"
+
+"@typescript-eslint/visitor-keys@3.10.1":
+ version "3.10.1"
+ resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz"
+ integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
+abab@^2.0.3, abab@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz"
+ integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==
+
+abort-controller@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz"
+ integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
+ dependencies:
+ event-target-shim "^5.0.0"
+
+absolute-path@^0.0.0:
+ version "0.0.0"
+ resolved "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz"
+ integrity sha1-p4di+9rftSl76ZsV01p4Wy8JW/c=
+
+accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7:
+ version "1.3.8"
+ resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz"
+ integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
+ dependencies:
+ mime-types "~2.1.34"
+ negotiator "0.6.3"
+
+acorn-globals@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz"
+ integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==
+ dependencies:
+ acorn "^7.1.1"
+ acorn-walk "^7.1.1"
+
+acorn-jsx@^5.3.1:
+ version "5.3.2"
+ resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
+ integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+
+acorn-walk@^7.1.1:
+ version "7.2.0"
+ resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz"
+ integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+
+acorn@^7.1.1, acorn@^7.4.0:
+ version "7.4.1"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
+ integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
+acorn@^8.2.4:
+ version "8.7.0"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz"
+ integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
+
+agent-base@6:
+ version "6.0.2"
+ resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz"
+ integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+ dependencies:
+ debug "4"
+
+ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4:
+ version "6.12.6"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+anser@^1.4.9:
+ version "1.4.10"
+ resolved "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz"
+ integrity sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==
+
+ansi-colors@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz"
+ integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
+
+ansi-escapes@^4.2.1:
+ version "4.3.2"
+ resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz"
+ integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ dependencies:
+ type-fest "^0.21.3"
+
+ansi-fragments@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz"
+ integrity sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==
+ dependencies:
+ colorette "^1.0.7"
+ slice-ansi "^2.0.0"
+ strip-ansi "^5.0.0"
+
+ansi-regex@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"
+ integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
+
+ansi-regex@^5.0.0, ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-styles@^3.2.0, ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+anymatch@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz"
+ integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
+ dependencies:
+ micromatch "^3.1.4"
+ normalize-path "^2.1.1"
+
+anymatch@^3.0.3:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"
+ integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+appdirsjs@^1.2.4:
+ version "1.2.6"
+ resolved "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.6.tgz"
+ integrity sha512-D8wJNkqMCeQs3kLasatELsddox/Xqkhp+J07iXGyL54fVN7oc+nmNfYzGuCs1IEP6uBw+TfpuO3JKwc+lECy4w==
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+arr-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz"
+ integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
+
+arr-flatten@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
+ integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
+
+arr-union@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz"
+ integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+
+array-filter@~0.0.0:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz"
+ integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw=
+
+array-includes@^3.1.3, array-includes@^3.1.4:
+ version "3.1.4"
+ resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz"
+ integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
+ get-intrinsic "^1.1.1"
+ is-string "^1.0.7"
+
+array-map@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz"
+ integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=
+
+array-reduce@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz"
+ integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=
+
+array-unique@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz"
+ integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+
+array.prototype.flatmap@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz"
+ integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.0"
+
+asap@~2.0.3, asap@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
+
+assign-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz"
+ integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+
+ast-types@0.14.2:
+ version "0.14.2"
+ resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz"
+ integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==
+ dependencies:
+ tslib "^2.0.1"
+
+astral-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz"
+ integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
+
+async-limiter@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz"
+ integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
+
+async@^2.4.0:
+ version "2.6.3"
+ resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz"
+ integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
+ dependencies:
+ lodash "^4.17.14"
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
+ integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+
+atob@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
+ integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+
+axios@^0.25.0:
+ version "0.25.0"
+ resolved "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz"
+ integrity sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==
+ dependencies:
+ follow-redirects "^1.14.7"
+
+babel-core@^7.0.0-bridge.0:
+ version "7.0.0-bridge.0"
+ resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz"
+ integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==
+
+babel-eslint@^10.1.0:
+ version "10.1.0"
+ resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz"
+ integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/parser" "^7.7.0"
+ "@babel/traverse" "^7.7.0"
+ "@babel/types" "^7.7.0"
+ eslint-visitor-keys "^1.0.0"
+ resolve "^1.12.0"
+
+babel-jest@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz"
+ integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==
+ dependencies:
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/babel__core" "^7.1.7"
+ babel-plugin-istanbul "^6.0.0"
+ babel-preset-jest "^26.6.2"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.4"
+ slash "^3.0.0"
+
+babel-plugin-dynamic-import-node@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz"
+ integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
+ dependencies:
+ object.assign "^4.1.0"
+
+babel-plugin-istanbul@^6.0.0:
+ version "6.1.1"
+ resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz"
+ integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-instrument "^5.0.4"
+ test-exclude "^6.0.0"
+
+babel-plugin-jest-hoist@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz"
+ integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==
+ dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
+ "@types/babel__core" "^7.0.0"
+ "@types/babel__traverse" "^7.0.6"
+
+babel-plugin-polyfill-corejs2@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz"
+ integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==
+ dependencies:
+ "@babel/compat-data" "^7.13.11"
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
+ semver "^6.1.1"
+
+babel-plugin-polyfill-corejs3@^0.5.0:
+ version "0.5.2"
+ resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz"
+ integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
+ core-js-compat "^3.21.0"
+
+babel-plugin-polyfill-regenerator@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz"
+ integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
+
+babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0:
+ version "7.0.0-beta.0"
+ resolved "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz"
+ integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==
+
+babel-preset-current-node-syntax@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz"
+ integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
+ dependencies:
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-bigint" "^7.8.3"
+ "@babel/plugin-syntax-class-properties" "^7.8.3"
+ "@babel/plugin-syntax-import-meta" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-top-level-await" "^7.8.3"
+
+babel-preset-fbjs@^3.4.0:
+ version "3.4.0"
+ resolved "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz"
+ integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==
+ dependencies:
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-syntax-class-properties" "^7.0.0"
+ "@babel/plugin-syntax-flow" "^7.0.0"
+ "@babel/plugin-syntax-jsx" "^7.0.0"
+ "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
+ "@babel/plugin-transform-arrow-functions" "^7.0.0"
+ "@babel/plugin-transform-block-scoped-functions" "^7.0.0"
+ "@babel/plugin-transform-block-scoping" "^7.0.0"
+ "@babel/plugin-transform-classes" "^7.0.0"
+ "@babel/plugin-transform-computed-properties" "^7.0.0"
+ "@babel/plugin-transform-destructuring" "^7.0.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+ "@babel/plugin-transform-for-of" "^7.0.0"
+ "@babel/plugin-transform-function-name" "^7.0.0"
+ "@babel/plugin-transform-literals" "^7.0.0"
+ "@babel/plugin-transform-member-expression-literals" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/plugin-transform-object-super" "^7.0.0"
+ "@babel/plugin-transform-parameters" "^7.0.0"
+ "@babel/plugin-transform-property-literals" "^7.0.0"
+ "@babel/plugin-transform-react-display-name" "^7.0.0"
+ "@babel/plugin-transform-react-jsx" "^7.0.0"
+ "@babel/plugin-transform-shorthand-properties" "^7.0.0"
+ "@babel/plugin-transform-spread" "^7.0.0"
+ "@babel/plugin-transform-template-literals" "^7.0.0"
+ babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0"
+
+babel-preset-jest@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz"
+ integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==
+ dependencies:
+ babel-plugin-jest-hoist "^26.6.2"
+ babel-preset-current-node-syntax "^1.0.0"
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base64-js@^1.1.2, base64-js@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+base@^0.11.1:
+ version "0.11.2"
+ resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz"
+ integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
+ dependencies:
+ cache-base "^1.0.1"
+ class-utils "^0.3.5"
+ component-emitter "^1.2.1"
+ define-property "^1.0.0"
+ isobject "^3.0.1"
+ mixin-deep "^1.2.0"
+ pascalcase "^0.1.1"
+
+big-integer@1.6.x:
+ version "1.6.51"
+ resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz"
+ integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
+
+boolbase@^1.0.0, boolbase@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
+
+bplist-creator@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz"
+ integrity sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==
+ dependencies:
+ stream-buffers "2.2.x"
+
+bplist-parser@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.0.tgz"
+ integrity sha512-zgmaRvT6AN1JpPPV+S0a1/FAtoxSreYDccZGIqEMSvZl9DMe70mJ7MFzpxa1X+gHVdkToE2haRUHHMiW1OdejA==
+ dependencies:
+ big-integer "1.6.x"
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+braces@^2.3.1:
+ version "2.3.2"
+ resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz"
+ integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
+ dependencies:
+ arr-flatten "^1.1.0"
+ array-unique "^0.3.2"
+ extend-shallow "^2.0.1"
+ fill-range "^4.0.0"
+ isobject "^3.0.1"
+ repeat-element "^1.1.2"
+ snapdragon "^0.8.1"
+ snapdragon-node "^2.0.1"
+ split-string "^3.0.2"
+ to-regex "^3.0.1"
+
+braces@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
+browser-process-hrtime@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz"
+ integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
+
+browserslist@^4.17.5, browserslist@^4.19.1:
+ version "4.19.1"
+ resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz"
+ integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==
+ dependencies:
+ caniuse-lite "^1.0.30001286"
+ electron-to-chromium "^1.4.17"
+ escalade "^3.1.1"
+ node-releases "^2.0.1"
+ picocolors "^1.0.0"
+
+bser@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz"
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
+ dependencies:
+ node-int64 "^0.4.0"
+
+buffer-from@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
+bytes@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz"
+ integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
+
+cache-base@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz"
+ integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
+ dependencies:
+ collection-visit "^1.0.0"
+ component-emitter "^1.2.1"
+ get-value "^2.0.6"
+ has-value "^1.0.0"
+ isobject "^3.0.1"
+ set-value "^2.0.0"
+ to-object-path "^0.3.0"
+ union-value "^1.0.0"
+ unset-value "^1.0.0"
+
+call-bind@^1.0.0, call-bind@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
+ integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+
+caller-callsite@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz"
+ integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+ dependencies:
+ callsites "^2.0.0"
+
+caller-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz"
+ integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+ dependencies:
+ caller-callsite "^2.0.0"
+
+callsites@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz"
+ integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
+
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camelcase@^5.0.0, camelcase@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+camelcase@^6.0.0:
+ version "6.3.0"
+ resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
+ integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
+
+caniuse-lite@^1.0.30001286:
+ version "1.0.30001311"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001311.tgz"
+ integrity sha512-mleTFtFKfykEeW34EyfhGIFjGCqzhh38Y0LhdQ9aWF+HorZTtdgKV/1hEE0NlFkG2ubvisPV6l400tlbPys98A==
+
+capture-exit@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz"
+ integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==
+ dependencies:
+ rsvp "^4.8.4"
+
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chalk@^4.0.0, chalk@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+char-regex@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz"
+ integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
+
+ci-info@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz"
+ integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+
+cjs-module-lexer@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz"
+ integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==
+
+class-utils@^0.3.5:
+ version "0.3.6"
+ resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz"
+ integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
+ dependencies:
+ arr-union "^3.1.0"
+ define-property "^0.2.5"
+ isobject "^3.0.0"
+ static-extend "^0.1.1"
+
+cli-cursor@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz"
+ integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
+ dependencies:
+ restore-cursor "^2.0.0"
+
+cli-spinners@^2.0.0:
+ version "2.6.1"
+ resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz"
+ integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==
+
+cliui@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz"
+ integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^6.2.0"
+
+cliui@^7.0.2:
+ version "7.0.4"
+ resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"
+ integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^7.0.0"
+
+clone-deep@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz"
+ integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+ dependencies:
+ is-plain-object "^2.0.4"
+ kind-of "^6.0.2"
+ shallow-clone "^3.0.0"
+
+clone@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz"
+ integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
+ integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
+
+collect-v8-coverage@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz"
+ integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
+
+collection-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz"
+ integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
+ dependencies:
+ map-visit "^1.0.0"
+ object-visit "^1.0.0"
+
+color-convert@^1.9.0, color-convert@^1.9.3:
+ version "1.9.3"
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+color-name@^1.0.0, color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+color-string@^1.6.0:
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz"
+ integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+color@^3.1.2, color@^3.1.3:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz"
+ integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
+ dependencies:
+ color-convert "^1.9.3"
+ color-string "^1.6.0"
+
+colorette@^1.0.7:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz"
+ integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
+
+colors@^1.1.2:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz"
+ integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
+
+combined-stream@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+command-exists@^1.2.8:
+ version "1.2.9"
+ resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz"
+ integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==
+
+commander@^2.19.0:
+ version "2.20.3"
+ resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+commander@~2.13.0:
+ version "2.13.0"
+ resolved "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz"
+ integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz"
+ integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
+
+component-emitter@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz"
+ integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+
+compressible@~2.0.16:
+ version "2.0.18"
+ resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz"
+ integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
+ dependencies:
+ mime-db ">= 1.43.0 < 2"
+
+compression@^1.7.1:
+ version "1.7.4"
+ resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz"
+ integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
+ dependencies:
+ accepts "~1.3.5"
+ bytes "3.0.0"
+ compressible "~2.0.16"
+ debug "2.6.9"
+ on-headers "~1.0.2"
+ safe-buffer "5.1.2"
+ vary "~1.1.2"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+connect@^3.6.5:
+ version "3.7.0"
+ resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz"
+ integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==
+ dependencies:
+ debug "2.6.9"
+ finalhandler "1.1.2"
+ parseurl "~1.3.3"
+ utils-merge "1.0.1"
+
+convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
+ version "1.8.0"
+ resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz"
+ integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
+ dependencies:
+ safe-buffer "~5.1.1"
+
+copy-descriptor@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"
+ integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
+
+core-js-compat@^3.21.0:
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz"
+ integrity sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==
+ dependencies:
+ browserslist "^4.19.1"
+ semver "7.0.0"
+
+core-util-is@~1.0.0:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz"
+ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+
+cosmiconfig@^5.0.5, cosmiconfig@^5.1.0:
+ version "5.2.1"
+ resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz"
+ integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
+ dependencies:
+ import-fresh "^2.0.0"
+ is-directory "^0.3.1"
+ js-yaml "^3.13.1"
+ parse-json "^4.0.0"
+
+cross-fetch@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
+ integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
+ dependencies:
+ node-fetch "2.6.7"
+
+cross-spawn@^6.0.0:
+ version "6.0.5"
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz"
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
+ dependencies:
+ nice-try "^1.0.4"
+ path-key "^2.0.1"
+ semver "^5.5.0"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+cross-spawn@^7.0.0, cross-spawn@^7.0.2:
+ version "7.0.3"
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+css-select@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
+ integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^3.2.1"
+ domutils "^1.7.0"
+ nth-check "^1.0.2"
+
+css-tree@^1.0.0-alpha.39:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
+ integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+ dependencies:
+ mdn-data "2.0.14"
+ source-map "^0.6.1"
+
+css-what@^3.2.1:
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4"
+ integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==
+
+cssom@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz"
+ integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
+
+cssom@~0.3.6:
+ version "0.3.8"
+ resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz"
+ integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
+
+cssstyle@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz"
+ integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
+ dependencies:
+ cssom "~0.3.6"
+
+csstype@^3.0.2:
+ version "3.0.10"
+ resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz"
+ integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==
+
+data-urls@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz"
+ integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==
+ dependencies:
+ abab "^2.0.3"
+ whatwg-mimetype "^2.3.0"
+ whatwg-url "^8.0.0"
+
+date-fns@^2.28.0:
+ version "2.28.0"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2"
+ integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==
+
+dayjs@^1.8.15:
+ version "1.10.7"
+ resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz"
+ integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==
+
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
+ version "2.6.9"
+ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
+ version "4.3.3"
+ resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz"
+ integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
+ dependencies:
+ ms "2.1.2"
+
+decamelize@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+
+decimal.js@^10.2.1:
+ version "10.3.1"
+ resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz"
+ integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==
+
+decode-uri-component@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz"
+ integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+
+deep-is@^0.1.3, deep-is@~0.1.3:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
+ integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+deepmerge@^3.2.0:
+ version "3.3.0"
+ resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz"
+ integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==
+
+deepmerge@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz"
+ integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
+defaults@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz"
+ integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=
+ dependencies:
+ clone "^1.0.2"
+
+define-properties@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz"
+ integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+ dependencies:
+ object-keys "^1.0.12"
+
+define-property@^0.2.5:
+ version "0.2.5"
+ resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
+ dependencies:
+ is-descriptor "^0.1.0"
+
+define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"
+ integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
+ dependencies:
+ is-descriptor "^1.0.0"
+
+define-property@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz"
+ integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
+ dependencies:
+ is-descriptor "^1.0.2"
+ isobject "^3.0.1"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+
+denodeify@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz"
+ integrity sha1-OjYof1A05pnnV3kBBSwubJQlFjE=
+
+depd@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
+ integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
+
+destroy@~1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
+ integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
+
+detect-newline@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz"
+ integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
+
+diff-sequences@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz"
+ integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==
+
+doctrine@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz"
+ integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
+ dependencies:
+ esutils "^2.0.2"
+
+doctrine@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
+ integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+ dependencies:
+ esutils "^2.0.2"
+
+dom-serializer@0:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
+ integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
+ dependencies:
+ domelementtype "^2.0.1"
+ entities "^2.0.0"
+
+domelementtype@1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
+ integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
+
+domelementtype@^2.0.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
+ integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
+
+domexception@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz"
+ integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==
+ dependencies:
+ webidl-conversions "^5.0.0"
+
+domutils@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
+ integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
+ dependencies:
+ dom-serializer "0"
+ domelementtype "1"
+
+ee-first@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
+ integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
+
+electron-to-chromium@^1.4.17:
+ version "1.4.68"
+ resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz"
+ integrity sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==
+
+emittery@^0.7.1:
+ version "0.7.2"
+ resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz"
+ integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==
+
+emoji-regex@^7.0.1:
+ version "7.0.3"
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz"
+ integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+encodeurl@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
+ integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+
+end-of-stream@^1.1.0:
+ version "1.4.4"
+ resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ dependencies:
+ once "^1.4.0"
+
+enquirer@^2.3.5:
+ version "2.3.6"
+ resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz"
+ integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
+ dependencies:
+ ansi-colors "^4.1.1"
+
+entities@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
+ integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+
+envinfo@^7.7.2:
+ version "7.8.1"
+ resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz"
+ integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
+
+error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+error-stack-parser@^2.0.6:
+ version "2.0.7"
+ resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz"
+ integrity sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==
+ dependencies:
+ stackframe "^1.1.1"
+
+errorhandler@^1.5.0:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz"
+ integrity sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==
+ dependencies:
+ accepts "~1.3.7"
+ escape-html "~1.0.3"
+
+es-abstract@^1.19.0, es-abstract@^1.19.1:
+ version "1.19.1"
+ resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz"
+ integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
+ dependencies:
+ call-bind "^1.0.2"
+ es-to-primitive "^1.2.1"
+ function-bind "^1.1.1"
+ get-intrinsic "^1.1.1"
+ get-symbol-description "^1.0.0"
+ has "^1.0.3"
+ has-symbols "^1.0.2"
+ internal-slot "^1.0.3"
+ is-callable "^1.2.4"
+ is-negative-zero "^2.0.1"
+ is-regex "^1.1.4"
+ is-shared-array-buffer "^1.0.1"
+ is-string "^1.0.7"
+ is-weakref "^1.0.1"
+ object-inspect "^1.11.0"
+ object-keys "^1.1.1"
+ object.assign "^4.1.2"
+ string.prototype.trimend "^1.0.4"
+ string.prototype.trimstart "^1.0.4"
+ unbox-primitive "^1.0.1"
+
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"
+ integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+ dependencies:
+ is-callable "^1.1.4"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.2"
+
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-html@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
+ integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
+
+escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+escape-string-regexp@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz"
+ integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+
+escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+escodegen@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz"
+ integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==
+ dependencies:
+ esprima "^4.0.1"
+ estraverse "^5.2.0"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.6.1"
+
+eslint-config-prettier@^6.10.1:
+ version "6.15.0"
+ resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz"
+ integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==
+ dependencies:
+ get-stdin "^6.0.0"
+
+eslint-plugin-eslint-comments@^3.1.2:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz"
+ integrity sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==
+ dependencies:
+ escape-string-regexp "^1.0.5"
+ ignore "^5.0.5"
+
+eslint-plugin-flowtype@2.50.3:
+ version "2.50.3"
+ resolved "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.3.tgz"
+ integrity sha512-X+AoKVOr7Re0ko/yEXyM5SSZ0tazc6ffdIOocp2fFUlWoDt7DV0Bz99mngOkAFLOAWjqRA5jPwqUCbrx13XoxQ==
+ dependencies:
+ lodash "^4.17.10"
+
+eslint-plugin-jest@22.4.1:
+ version "22.4.1"
+ resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.4.1.tgz"
+ integrity sha512-gcLfn6P2PrFAVx3AobaOzlIEevpAEf9chTpFZz7bYfc7pz8XRv7vuKTIE4hxPKZSha6XWKKplDQ0x9Pq8xX2mg==
+
+eslint-plugin-prettier@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz"
+ integrity sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==
+ dependencies:
+ prettier-linter-helpers "^1.0.0"
+
+eslint-plugin-react-hooks@^4.0.4:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz"
+ integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==
+
+eslint-plugin-react-native-globals@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz"
+ integrity sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==
+
+eslint-plugin-react-native@^3.8.1:
+ version "3.11.0"
+ resolved "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-3.11.0.tgz"
+ integrity sha512-7F3OTwrtQPfPFd+VygqKA2VZ0f2fz0M4gJmry/TRE18JBb94/OtMxwbL7Oqwu7FGyrdeIOWnXQbBAveMcSTZIA==
+ dependencies:
+ "@babel/traverse" "^7.7.4"
+ eslint-plugin-react-native-globals "^0.1.1"
+
+eslint-plugin-react@^7.20.0:
+ version "7.28.0"
+ resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz"
+ integrity sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==
+ dependencies:
+ array-includes "^3.1.4"
+ array.prototype.flatmap "^1.2.5"
+ doctrine "^2.1.0"
+ estraverse "^5.3.0"
+ jsx-ast-utils "^2.4.1 || ^3.0.0"
+ minimatch "^3.0.4"
+ object.entries "^1.1.5"
+ object.fromentries "^2.0.5"
+ object.hasown "^1.1.0"
+ object.values "^1.1.5"
+ prop-types "^15.7.2"
+ resolve "^2.0.0-next.3"
+ semver "^6.3.0"
+ string.prototype.matchall "^4.0.6"
+
+eslint-scope@^5.0.0, eslint-scope@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"
+ integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^4.1.1"
+
+eslint-utils@^2.0.0, eslint-utils@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz"
+ integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
+eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"
+ integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
+
+eslint-visitor-keys@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
+ integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
+
+eslint@7.14.0:
+ version "7.14.0"
+ resolved "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz"
+ integrity sha512-5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@eslint/eslintrc" "^0.2.1"
+ ajv "^6.10.0"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.2"
+ debug "^4.0.1"
+ doctrine "^3.0.0"
+ enquirer "^2.3.5"
+ eslint-scope "^5.1.1"
+ eslint-utils "^2.1.0"
+ eslint-visitor-keys "^2.0.0"
+ espree "^7.3.0"
+ esquery "^1.2.0"
+ esutils "^2.0.2"
+ file-entry-cache "^5.0.1"
+ functional-red-black-tree "^1.0.1"
+ glob-parent "^5.0.0"
+ globals "^12.1.0"
+ ignore "^4.0.6"
+ import-fresh "^3.0.0"
+ imurmurhash "^0.1.4"
+ is-glob "^4.0.0"
+ js-yaml "^3.13.1"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.4.1"
+ lodash "^4.17.19"
+ minimatch "^3.0.4"
+ natural-compare "^1.4.0"
+ optionator "^0.9.1"
+ progress "^2.0.0"
+ regexpp "^3.1.0"
+ semver "^7.2.1"
+ strip-ansi "^6.0.0"
+ strip-json-comments "^3.1.0"
+ table "^5.2.3"
+ text-table "^0.2.0"
+ v8-compile-cache "^2.0.3"
+
+espree@^7.3.0:
+ version "7.3.1"
+ resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz"
+ integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
+ dependencies:
+ acorn "^7.4.0"
+ acorn-jsx "^5.3.1"
+ eslint-visitor-keys "^1.3.0"
+
+esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+esquery@^1.2.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz"
+ integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+ dependencies:
+ estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^4.1.1:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+etag@~1.8.1:
+ version "1.8.1"
+ resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
+ integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+
+event-target-shim@^5.0.0, event-target-shim@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz"
+ integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
+
+exec-sh@^0.3.2:
+ version "0.3.6"
+ resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz"
+ integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==
+
+execa@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz"
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+ dependencies:
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+execa@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz"
+ integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
+ dependencies:
+ cross-spawn "^7.0.0"
+ get-stream "^5.0.0"
+ human-signals "^1.1.1"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.0"
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+ strip-final-newline "^2.0.0"
+
+exit@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
+ integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
+
+expand-brackets@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz"
+ integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
+ dependencies:
+ debug "^2.3.3"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ posix-character-classes "^0.1.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+expect@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz"
+ integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ ansi-styles "^4.0.0"
+ jest-get-type "^26.3.0"
+ jest-matcher-utils "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-regex-util "^26.0.0"
+
+extend-shallow@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
+ dependencies:
+ is-extendable "^0.1.0"
+
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz"
+ integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
+ dependencies:
+ assign-symbols "^1.0.0"
+ is-extendable "^1.0.1"
+
+extglob@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz"
+ integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
+ dependencies:
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ expand-brackets "^2.1.4"
+ extend-shallow "^2.0.1"
+ fragment-cache "^0.2.1"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-diff@^1.1.2:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz"
+ integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+fb-watchman@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz"
+ integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==
+ dependencies:
+ bser "2.1.1"
+
+fbjs-css-vars@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8"
+ integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==
+
+fbjs@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6"
+ integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==
+ dependencies:
+ cross-fetch "^3.1.5"
+ fbjs-css-vars "^1.0.0"
+ loose-envify "^1.0.0"
+ object-assign "^4.1.0"
+ promise "^7.1.1"
+ setimmediate "^1.0.5"
+ ua-parser-js "^0.7.30"
+
+file-entry-cache@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz"
+ integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
+ dependencies:
+ flat-cache "^2.0.1"
+
+fill-range@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz"
+ integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+ to-regex-range "^2.1.0"
+
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+filter-obj@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz"
+ integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs=
+
+finalhandler@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"
+ integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
+ dependencies:
+ debug "2.6.9"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ on-finished "~2.3.0"
+ parseurl "~1.3.3"
+ statuses "~1.5.0"
+ unpipe "~1.0.0"
+
+find-cache-dir@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz"
+ integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^2.0.0"
+ pkg-dir "^3.0.0"
+
+find-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"
+ integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
+ dependencies:
+ locate-path "^3.0.0"
+
+find-up@^4.0.0, find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+flat-cache@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz"
+ integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
+ dependencies:
+ flatted "^2.0.0"
+ rimraf "2.6.3"
+ write "1.0.3"
+
+flatted@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz"
+ integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
+
+flow-parser@0.*:
+ version "0.171.0"
+ resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.171.0.tgz"
+ integrity sha512-cqEsgic6HH81Pz0IQLeyuoh0O8Y7ECAIdZ0idPQ9P1jZ/kHB9KK0hwqnjVtqTGog15JURkIxvyXm+9pAb6uuSQ==
+
+flow-parser@^0.121.0:
+ version "0.121.0"
+ resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.121.0.tgz"
+ integrity sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg==
+
+follow-redirects@^1.14.7:
+ version "1.14.8"
+ resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz"
+ integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==
+
+for-in@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
+
+form-data@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz"
+ integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
+fragment-cache@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz"
+ integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
+ dependencies:
+ map-cache "^0.2.2"
+
+fresh@0.5.2:
+ version "0.5.2"
+ resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
+ integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
+
+fs-extra@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz"
+ integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^2.1.0"
+ klaw "^1.0.0"
+
+fs-extra@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+fsevents@^2.1.2:
+ version "2.3.2"
+ resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+functional-red-black-tree@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"
+ integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+
+gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+get-caller-file@^2.0.1, get-caller-file@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz"
+ integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+
+get-package-type@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz"
+ integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
+
+get-stdin@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz"
+ integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
+
+get-stream@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz"
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+ dependencies:
+ pump "^3.0.0"
+
+get-stream@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz"
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ dependencies:
+ pump "^3.0.0"
+
+get-symbol-description@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz"
+ integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.1.1"
+
+get-value@^2.0.3, get-value@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz"
+ integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+
+glob-parent@^5.0.0:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
+glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
+ version "7.2.0"
+ resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz"
+ integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^11.1.0:
+ version "11.12.0"
+ resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+globals@^12.1.0:
+ version "12.4.0"
+ resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz"
+ integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
+ dependencies:
+ type-fest "^0.8.1"
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
+ version "4.2.9"
+ resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz"
+ integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
+
+growly@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz"
+ integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
+
+has-bigints@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz"
+ integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-symbols@^1.0.1, has-symbols@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz"
+ integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+
+has-tostringtag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz"
+ integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
+ dependencies:
+ has-symbols "^1.0.2"
+
+has-value@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz"
+ integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
+ dependencies:
+ get-value "^2.0.3"
+ has-values "^0.1.4"
+ isobject "^2.0.0"
+
+has-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz"
+ integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
+ dependencies:
+ get-value "^2.0.6"
+ has-values "^1.0.0"
+ isobject "^3.0.0"
+
+has-values@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz"
+ integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
+
+has-values@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz"
+ integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+hermes-engine@~0.9.0:
+ version "0.9.0"
+ resolved "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.9.0.tgz"
+ integrity sha512-r7U+Y4P2Qg/igFVZN+DpT7JFfXUn1MM4dFne8aW+cCrF6RRymof+VqrUHs1kl07j8h8V2CNesU19RKgWbr3qPw==
+
+hermes-parser@0.4.7:
+ version "0.4.7"
+ resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.4.7.tgz"
+ integrity sha512-jc+zCtXbtwTiXoMAoXOHepxAaGVFIp89wwE9qcdwnMd/uGVEtPoY8FaFSsx0ThPvyKirdR2EsIIDVrpbSXz1Ag==
+
+hermes-profile-transformer@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz"
+ integrity sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==
+ dependencies:
+ source-map "^0.7.3"
+
+hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
+hosted-git-info@^2.1.4:
+ version "2.8.9"
+ resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz"
+ integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
+
+html-encoding-sniffer@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz"
+ integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==
+ dependencies:
+ whatwg-encoding "^1.0.5"
+
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
+http-errors@1.8.1:
+ version "1.8.1"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz"
+ integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.4"
+ setprototypeof "1.2.0"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.1"
+
+http-proxy-agent@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz"
+ integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
+ dependencies:
+ "@tootallnate/once" "1"
+ agent-base "6"
+ debug "4"
+
+https-proxy-agent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz"
+ integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
+ dependencies:
+ agent-base "6"
+ debug "4"
+
+human-signals@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz"
+ integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+
+humps@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/humps/-/humps-2.0.1.tgz#dd02ea6081bd0568dc5d073184463957ba9ef9aa"
+ integrity sha1-3QLqYIG9BWjcXQcxhEY5V7qe+ao=
+
+iconv-lite@0.4.24:
+ version "0.4.24"
+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+ignore@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz"
+ integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+
+ignore@^5.0.5:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz"
+ integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
+
+image-size@^0.6.0:
+ version "0.6.3"
+ resolved "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz"
+ integrity sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==
+
+import-fresh@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz"
+ integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+ dependencies:
+ caller-path "^2.0.0"
+ resolve-from "^3.0.0"
+
+import-fresh@^3.0.0, import-fresh@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+import-local@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz"
+ integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
+ dependencies:
+ pkg-dir "^4.2.0"
+ resolve-cwd "^3.0.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@2.0.4, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+internal-slot@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz"
+ integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
+ dependencies:
+ get-intrinsic "^1.1.0"
+ has "^1.0.3"
+ side-channel "^1.0.4"
+
+invariant@^2.2.4:
+ version "2.2.4"
+ resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz"
+ integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
+ dependencies:
+ loose-envify "^1.0.0"
+
+ip@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz"
+ integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
+
+is-accessor-descriptor@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz"
+ integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-accessor-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"
+ integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
+ dependencies:
+ kind-of "^6.0.0"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
+is-bigint@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz"
+ integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
+ dependencies:
+ has-bigints "^1.0.1"
+
+is-boolean-object@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz"
+ integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
+ dependencies:
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
+
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
+is-callable@^1.1.4, is-callable@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz"
+ integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
+
+is-ci@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz"
+ integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
+ dependencies:
+ ci-info "^2.0.0"
+
+is-core-module@^2.2.0, is-core-module@^2.8.1:
+ version "2.8.1"
+ resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz"
+ integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
+ dependencies:
+ has "^1.0.3"
+
+is-data-descriptor@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"
+ integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-data-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"
+ integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
+ dependencies:
+ kind-of "^6.0.0"
+
+is-date-object@^1.0.1:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz"
+ integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+is-descriptor@^0.1.0:
+ version "0.1.6"
+ resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz"
+ integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
+ dependencies:
+ is-accessor-descriptor "^0.1.6"
+ is-data-descriptor "^0.1.4"
+ kind-of "^5.0.0"
+
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"
+ integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+ dependencies:
+ is-accessor-descriptor "^1.0.0"
+ is-data-descriptor "^1.0.0"
+ kind-of "^6.0.2"
+
+is-directory@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz"
+ integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
+
+is-docker@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz"
+ integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+
+is-extendable@^0.1.0, is-extendable@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
+ integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+
+is-extendable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
+ dependencies:
+ is-plain-object "^2.0.4"
+
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-generator-fn@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz"
+ integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
+
+is-glob@^4.0.0, is-glob@^4.0.1:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-negative-zero@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz"
+ integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
+
+is-number-object@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz"
+ integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+is-number@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz"
+ integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-plain-obj@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz"
+ integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
+
+is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+ dependencies:
+ isobject "^3.0.1"
+
+is-potential-custom-element-name@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz"
+ integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
+
+is-regex@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
+ integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
+ dependencies:
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
+
+is-shared-array-buffer@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz"
+ integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==
+
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+
+is-stream@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
+ integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+
+is-string@^1.0.5, is-string@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz"
+ integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+is-symbol@^1.0.2, is-symbol@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz"
+ integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
+ dependencies:
+ has-symbols "^1.0.2"
+
+is-typedarray@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
+ integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+
+is-weakref@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz"
+ integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
+ dependencies:
+ call-bind "^1.0.2"
+
+is-windows@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz"
+ integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
+
+is-wsl@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz"
+ integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
+
+is-wsl@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"
+ integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+ dependencies:
+ is-docker "^2.0.0"
+
+isarray@1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
+ dependencies:
+ isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz"
+ integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
+
+istanbul-lib-instrument@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz"
+ integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==
+ dependencies:
+ "@babel/core" "^7.7.5"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.0.0"
+ semver "^6.3.0"
+
+istanbul-lib-instrument@^5.0.4:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz"
+ integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==
+ dependencies:
+ "@babel/core" "^7.12.3"
+ "@babel/parser" "^7.14.7"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^6.3.0"
+
+istanbul-lib-report@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz"
+ integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^3.0.0"
+ supports-color "^7.1.0"
+
+istanbul-lib-source-maps@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz"
+ integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
+ dependencies:
+ debug "^4.1.1"
+ istanbul-lib-coverage "^3.0.0"
+ source-map "^0.6.1"
+
+istanbul-reports@^3.0.2:
+ version "3.1.4"
+ resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz"
+ integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==
+ dependencies:
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
+
+jest-changed-files@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz"
+ integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ execa "^4.0.0"
+ throat "^5.0.0"
+
+jest-cli@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz"
+ integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==
+ dependencies:
+ "@jest/core" "^26.6.3"
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ chalk "^4.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.4"
+ import-local "^3.0.2"
+ is-ci "^2.0.0"
+ jest-config "^26.6.3"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
+ prompts "^2.0.1"
+ yargs "^15.4.1"
+
+jest-config@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz"
+ integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==
+ dependencies:
+ "@babel/core" "^7.1.0"
+ "@jest/test-sequencer" "^26.6.3"
+ "@jest/types" "^26.6.2"
+ babel-jest "^26.6.3"
+ chalk "^4.0.0"
+ deepmerge "^4.2.2"
+ glob "^7.1.1"
+ graceful-fs "^4.2.4"
+ jest-environment-jsdom "^26.6.2"
+ jest-environment-node "^26.6.2"
+ jest-get-type "^26.3.0"
+ jest-jasmine2 "^26.6.3"
+ jest-regex-util "^26.0.0"
+ jest-resolve "^26.6.2"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
+ micromatch "^4.0.2"
+ pretty-format "^26.6.2"
+
+jest-diff@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz"
+ integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==
+ dependencies:
+ chalk "^4.0.0"
+ diff-sequences "^26.6.2"
+ jest-get-type "^26.3.0"
+ pretty-format "^26.6.2"
+
+jest-docblock@^26.0.0:
+ version "26.0.0"
+ resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz"
+ integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==
+ dependencies:
+ detect-newline "^3.0.0"
+
+jest-each@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz"
+ integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ chalk "^4.0.0"
+ jest-get-type "^26.3.0"
+ jest-util "^26.6.2"
+ pretty-format "^26.6.2"
+
+jest-environment-jsdom@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz"
+ integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==
+ dependencies:
+ "@jest/environment" "^26.6.2"
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ jest-mock "^26.6.2"
+ jest-util "^26.6.2"
+ jsdom "^16.4.0"
+
+jest-environment-node@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz"
+ integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==
+ dependencies:
+ "@jest/environment" "^26.6.2"
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ jest-mock "^26.6.2"
+ jest-util "^26.6.2"
+
+jest-get-type@^26.3.0:
+ version "26.3.0"
+ resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz"
+ integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==
+
+jest-haste-map@^26.5.2, jest-haste-map@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz"
+ integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ "@types/graceful-fs" "^4.1.2"
+ "@types/node" "*"
+ anymatch "^3.0.3"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.2.4"
+ jest-regex-util "^26.0.0"
+ jest-serializer "^26.6.2"
+ jest-util "^26.6.2"
+ jest-worker "^26.6.2"
+ micromatch "^4.0.2"
+ sane "^4.0.3"
+ walker "^1.0.7"
+ optionalDependencies:
+ fsevents "^2.1.2"
+
+jest-jasmine2@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz"
+ integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==
+ dependencies:
+ "@babel/traverse" "^7.1.0"
+ "@jest/environment" "^26.6.2"
+ "@jest/source-map" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ co "^4.6.0"
+ expect "^26.6.2"
+ is-generator-fn "^2.0.0"
+ jest-each "^26.6.2"
+ jest-matcher-utils "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-runtime "^26.6.3"
+ jest-snapshot "^26.6.2"
+ jest-util "^26.6.2"
+ pretty-format "^26.6.2"
+ throat "^5.0.0"
+
+jest-leak-detector@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz"
+ integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==
+ dependencies:
+ jest-get-type "^26.3.0"
+ pretty-format "^26.6.2"
+
+jest-matcher-utils@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz"
+ integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==
+ dependencies:
+ chalk "^4.0.0"
+ jest-diff "^26.6.2"
+ jest-get-type "^26.3.0"
+ pretty-format "^26.6.2"
+
+jest-message-util@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz"
+ integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@jest/types" "^26.6.2"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.4"
+ micromatch "^4.0.2"
+ pretty-format "^26.6.2"
+ slash "^3.0.0"
+ stack-utils "^2.0.2"
+
+jest-mock@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz"
+ integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+
+jest-pnp-resolver@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz"
+ integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==
+
+jest-regex-util@^26.0.0:
+ version "26.0.0"
+ resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz"
+ integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==
+
+jest-resolve-dependencies@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz"
+ integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ jest-regex-util "^26.0.0"
+ jest-snapshot "^26.6.2"
+
+jest-resolve@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz"
+ integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.4"
+ jest-pnp-resolver "^1.2.2"
+ jest-util "^26.6.2"
+ read-pkg-up "^7.0.1"
+ resolve "^1.18.1"
+ slash "^3.0.0"
+
+jest-runner@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz"
+ integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==
+ dependencies:
+ "@jest/console" "^26.6.2"
+ "@jest/environment" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ emittery "^0.7.1"
+ exit "^0.1.2"
+ graceful-fs "^4.2.4"
+ jest-config "^26.6.3"
+ jest-docblock "^26.0.0"
+ jest-haste-map "^26.6.2"
+ jest-leak-detector "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-resolve "^26.6.2"
+ jest-runtime "^26.6.3"
+ jest-util "^26.6.2"
+ jest-worker "^26.6.2"
+ source-map-support "^0.5.6"
+ throat "^5.0.0"
+
+jest-runtime@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz"
+ integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==
+ dependencies:
+ "@jest/console" "^26.6.2"
+ "@jest/environment" "^26.6.2"
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/globals" "^26.6.2"
+ "@jest/source-map" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/yargs" "^15.0.0"
+ chalk "^4.0.0"
+ cjs-module-lexer "^0.6.0"
+ collect-v8-coverage "^1.0.0"
+ exit "^0.1.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.4"
+ jest-config "^26.6.3"
+ jest-haste-map "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-mock "^26.6.2"
+ jest-regex-util "^26.0.0"
+ jest-resolve "^26.6.2"
+ jest-snapshot "^26.6.2"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
+ slash "^3.0.0"
+ strip-bom "^4.0.0"
+ yargs "^15.4.1"
+
+jest-serializer@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz"
+ integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==
+ dependencies:
+ "@types/node" "*"
+ graceful-fs "^4.2.4"
+
+jest-snapshot@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz"
+ integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==
+ dependencies:
+ "@babel/types" "^7.0.0"
+ "@jest/types" "^26.6.2"
+ "@types/babel__traverse" "^7.0.4"
+ "@types/prettier" "^2.0.0"
+ chalk "^4.0.0"
+ expect "^26.6.2"
+ graceful-fs "^4.2.4"
+ jest-diff "^26.6.2"
+ jest-get-type "^26.3.0"
+ jest-haste-map "^26.6.2"
+ jest-matcher-utils "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-resolve "^26.6.2"
+ natural-compare "^1.4.0"
+ pretty-format "^26.6.2"
+ semver "^7.3.2"
+
+jest-util@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz"
+ integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.4"
+ is-ci "^2.0.0"
+ micromatch "^4.0.2"
+
+jest-validate@^26.5.2, jest-validate@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz"
+ integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ camelcase "^6.0.0"
+ chalk "^4.0.0"
+ jest-get-type "^26.3.0"
+ leven "^3.1.0"
+ pretty-format "^26.6.2"
+
+jest-watcher@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz"
+ integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==
+ dependencies:
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ jest-util "^26.6.2"
+ string-length "^4.0.1"
+
+jest-worker@^26.0.0, jest-worker@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz"
+ integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
+ dependencies:
+ "@types/node" "*"
+ merge-stream "^2.0.0"
+ supports-color "^7.0.0"
+
+jest@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz"
+ integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==
+ dependencies:
+ "@jest/core" "^26.6.3"
+ import-local "^3.0.2"
+ jest-cli "^26.6.3"
+
+jetifier@^1.6.2:
+ version "1.6.8"
+ resolved "https://registry.npmjs.org/jetifier/-/jetifier-1.6.8.tgz"
+ integrity sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==
+
+joi@^17.2.1:
+ version "17.6.0"
+ resolved "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz"
+ integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==
+ dependencies:
+ "@hapi/hoek" "^9.0.0"
+ "@hapi/topo" "^5.0.0"
+ "@sideway/address" "^4.1.3"
+ "@sideway/formula" "^3.0.0"
+ "@sideway/pinpoint" "^2.0.0"
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^3.13.1:
+ version "3.14.1"
+ resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz"
+ integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+jsc-android@^250230.2.1:
+ version "250230.2.1"
+ resolved "https://registry.npmjs.org/jsc-android/-/jsc-android-250230.2.1.tgz"
+ integrity sha512-KmxeBlRjwoqCnBBKGsihFtvsBHyUFlBxJPK4FzeYcIuBfdjv6jFys44JITAgSTbQD+vIdwMEfyZklsuQX0yI1Q==
+
+jscodeshift@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.11.0.tgz"
+ integrity sha512-SdRK2C7jjs4k/kT2mwtO07KJN9RnjxtKn03d9JVj6c3j9WwaLcFYsICYDnLAzY0hp+wG2nxl+Cm2jWLiNVYb8g==
+ dependencies:
+ "@babel/core" "^7.1.6"
+ "@babel/parser" "^7.1.6"
+ "@babel/plugin-proposal-class-properties" "^7.1.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.1.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.1.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.1.0"
+ "@babel/preset-flow" "^7.0.0"
+ "@babel/preset-typescript" "^7.1.0"
+ "@babel/register" "^7.0.0"
+ babel-core "^7.0.0-bridge.0"
+ colors "^1.1.2"
+ flow-parser "0.*"
+ graceful-fs "^4.2.4"
+ micromatch "^3.1.10"
+ neo-async "^2.5.0"
+ node-dir "^0.1.17"
+ recast "^0.20.3"
+ temp "^0.8.1"
+ write-file-atomic "^2.3.0"
+
+jsdom@^16.4.0:
+ version "16.7.0"
+ resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz"
+ integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==
+ dependencies:
+ abab "^2.0.5"
+ acorn "^8.2.4"
+ acorn-globals "^6.0.0"
+ cssom "^0.4.4"
+ cssstyle "^2.3.0"
+ data-urls "^2.0.0"
+ decimal.js "^10.2.1"
+ domexception "^2.0.1"
+ escodegen "^2.0.0"
+ form-data "^3.0.0"
+ html-encoding-sniffer "^2.0.1"
+ http-proxy-agent "^4.0.1"
+ https-proxy-agent "^5.0.0"
+ is-potential-custom-element-name "^1.0.1"
+ nwsapi "^2.2.0"
+ parse5 "6.0.1"
+ saxes "^5.0.1"
+ symbol-tree "^3.2.4"
+ tough-cookie "^4.0.0"
+ w3c-hr-time "^1.0.2"
+ w3c-xmlserializer "^2.0.0"
+ webidl-conversions "^6.1.0"
+ whatwg-encoding "^1.0.5"
+ whatwg-mimetype "^2.3.0"
+ whatwg-url "^8.5.0"
+ ws "^7.4.6"
+ xml-name-validator "^3.0.0"
+
+jsesc@^2.5.1:
+ version "2.5.2"
+ resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+jsesc@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
+ integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
+
+json-parse-better-errors@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
+ integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
+json5@^2.1.2:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz"
+ integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
+ dependencies:
+ minimist "^1.2.5"
+
+jsonfile@^2.1.0:
+ version "2.4.0"
+ resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz"
+ integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonify@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+ integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
+
+"jsx-ast-utils@^2.4.1 || ^3.0.0":
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz"
+ integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==
+ dependencies:
+ array-includes "^3.1.3"
+ object.assign "^4.1.2"
+
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"
+ integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz"
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
+
+kind-of@^6.0.0, kind-of@^6.0.2:
+ version "6.0.3"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+
+klaw@^1.0.0:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz"
+ integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk=
+ optionalDependencies:
+ graceful-fs "^4.1.9"
+
+kleur@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz"
+ integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
+leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz"
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
+levn@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
+ integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+ dependencies:
+ prelude-ls "^1.2.1"
+ type-check "~0.4.0"
+
+levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz"
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+lines-and-columns@^1.1.6:
+ version "1.2.4"
+ resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
+ integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+
+locate-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"
+ integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+ dependencies:
+ p-locate "^3.0.0"
+ path-exists "^3.0.0"
+
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+lodash._reinterpolate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz"
+ integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
+
+lodash.debounce@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz"
+ integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+
+lodash.frompairs@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/lodash.frompairs/-/lodash.frompairs-4.0.1.tgz"
+ integrity sha1-vE5SB/onV8E25XNhTpZkUGsrG9I=
+
+lodash.isequal@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz"
+ integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
+
+lodash.isstring@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz"
+ integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
+
+lodash.omit@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz"
+ integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=
+
+lodash.pick@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz"
+ integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
+
+lodash.template@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz"
+ integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+ lodash.templatesettings "^4.0.0"
+
+lodash.templatesettings@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz"
+ integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+
+lodash.throttle@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz"
+ integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
+
+lodash@^4.17.10, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.7.0:
+ version "4.17.21"
+ resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+log-symbols@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz"
+ integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
+ dependencies:
+ chalk "^2.0.1"
+
+logkitty@^0.7.1:
+ version "0.7.1"
+ resolved "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz"
+ integrity sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==
+ dependencies:
+ ansi-fragments "^0.2.1"
+ dayjs "^1.8.15"
+ yargs "^15.1.0"
+
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ dependencies:
+ yallist "^4.0.0"
+
+make-dir@^2.0.0, make-dir@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz"
+ integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
+ dependencies:
+ pify "^4.0.1"
+ semver "^5.6.0"
+
+make-dir@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
+makeerror@1.0.12:
+ version "1.0.12"
+ resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz"
+ integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
+ dependencies:
+ tmpl "1.0.5"
+
+map-cache@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz"
+ integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
+
+map-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz"
+ integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
+ dependencies:
+ object-visit "^1.0.0"
+
+mdn-data@2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
+ integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
+merge-options@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz"
+ integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==
+ dependencies:
+ is-plain-obj "^2.1.0"
+
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+metro-babel-register@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.66.2.tgz"
+ integrity sha512-3F+vsVubUPJYKfVMeol8/7pd8CC287Rw92QYzJD8LEmI980xcgwMUEVBZ0UIAUwlLgiJG/f4Mwhuji2EeBXrPg==
+ dependencies:
+ "@babel/core" "^7.14.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.0.0"
+ "@babel/plugin-syntax-class-properties" "^7.0.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/register" "^7.0.0"
+ escape-string-regexp "^1.0.5"
+
+metro-babel-transformer@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.66.2.tgz"
+ integrity sha512-aJ/7fc/Xkofw8Fqa51OTDhBzBz26mmpIWrXAZcPdQ8MSTt883EWncxeCEjasc79NJ89BRi7sOkkaWZo2sXlKvw==
+ dependencies:
+ "@babel/core" "^7.14.0"
+ hermes-parser "0.4.7"
+ metro-source-map "0.66.2"
+ nullthrows "^1.1.1"
+
+metro-cache-key@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.66.2.tgz"
+ integrity sha512-WtkNmRt41qOpHh1MkNA4nLiQ/m7iGL90ysSKD+fcLqlUnOBKJptPQm0ZUv8Kfqk18ddWX2KmsSbq+Sf3I6XohQ==
+
+metro-cache@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-cache/-/metro-cache-0.66.2.tgz"
+ integrity sha512-5QCYJtJOHoBSbL3H4/Fpl36oA697C3oYHqsce+Hk/dh2qtODUGpS3gOBhvP1B8iB+H8jJMyR75lZq129LJEsIQ==
+ dependencies:
+ metro-core "0.66.2"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+
+metro-config@0.66.2, metro-config@^0.66.1:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.66.2.tgz"
+ integrity sha512-0C+PrKKIBNNzLZUKN/8ZDJS2U5FLMOTXDWbvBHIdqb6YXz8WplXR2+xlSlaSCCi5b+GR7cWFWUNeKA4GQS1/AQ==
+ dependencies:
+ cosmiconfig "^5.0.5"
+ jest-validate "^26.5.2"
+ metro "0.66.2"
+ metro-cache "0.66.2"
+ metro-core "0.66.2"
+ metro-runtime "0.66.2"
+
+metro-core@0.66.2, metro-core@^0.66.1:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.66.2.tgz"
+ integrity sha512-JieLZkef/516yxXYvQxWnf3OWw5rcgWRy76K8JV/wr/i8LGVGulPAXlIi445/QZzXVydzRVASKAEVqyxM5F4mA==
+ dependencies:
+ jest-haste-map "^26.5.2"
+ lodash.throttle "^4.1.1"
+ metro-resolver "0.66.2"
+
+metro-hermes-compiler@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.66.2.tgz"
+ integrity sha512-nCVL1g9uR6vrw5+X1wjwZruRyMkndnzGRMqjqoljf+nGEqBTD607CR7elXw4fMWn/EM+1y0Vdq5altUu9LdgCA==
+
+metro-inspector-proxy@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.66.2.tgz"
+ integrity sha512-gnLc9121eznwP0iiA9tCBW8qZjwIsCgwHWMF1g1Qaki9le9tzeJv3dK4/lFNGxyfSaLO7vahQEhsEYsiRnTROg==
+ dependencies:
+ connect "^3.6.5"
+ debug "^2.2.0"
+ ws "^1.1.5"
+ yargs "^15.3.1"
+
+metro-minify-uglify@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.66.2.tgz"
+ integrity sha512-7TUK+L5CmB5x1PVnFbgmjzHW4CUadq9H5jgp0HfFoWT1skXAyEsx0DHkKDXwnot0khnNhBOEfl62ctQOnE110Q==
+ dependencies:
+ uglify-es "^3.1.9"
+
+metro-react-native-babel-preset@0.66.2, metro-react-native-babel-preset@^0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.66.2.tgz"
+ integrity sha512-H/nLBAz0MgfDloSe1FjyH4EnbokHFdncyERvLPXDACY3ROVRCeUyFNo70ywRGXW2NMbrV4H7KUyU4zkfWhC2HQ==
+ dependencies:
+ "@babel/core" "^7.14.0"
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-export-default-from" "^7.0.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.0.0"
+ "@babel/plugin-syntax-dynamic-import" "^7.0.0"
+ "@babel/plugin-syntax-export-default-from" "^7.0.0"
+ "@babel/plugin-syntax-flow" "^7.2.0"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.0.0"
+ "@babel/plugin-transform-arrow-functions" "^7.0.0"
+ "@babel/plugin-transform-async-to-generator" "^7.0.0"
+ "@babel/plugin-transform-block-scoping" "^7.0.0"
+ "@babel/plugin-transform-classes" "^7.0.0"
+ "@babel/plugin-transform-computed-properties" "^7.0.0"
+ "@babel/plugin-transform-destructuring" "^7.0.0"
+ "@babel/plugin-transform-exponentiation-operator" "^7.0.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+ "@babel/plugin-transform-for-of" "^7.0.0"
+ "@babel/plugin-transform-function-name" "^7.0.0"
+ "@babel/plugin-transform-literals" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/plugin-transform-object-assign" "^7.0.0"
+ "@babel/plugin-transform-parameters" "^7.0.0"
+ "@babel/plugin-transform-react-display-name" "^7.0.0"
+ "@babel/plugin-transform-react-jsx" "^7.0.0"
+ "@babel/plugin-transform-react-jsx-self" "^7.0.0"
+ "@babel/plugin-transform-react-jsx-source" "^7.0.0"
+ "@babel/plugin-transform-regenerator" "^7.0.0"
+ "@babel/plugin-transform-runtime" "^7.0.0"
+ "@babel/plugin-transform-shorthand-properties" "^7.0.0"
+ "@babel/plugin-transform-spread" "^7.0.0"
+ "@babel/plugin-transform-sticky-regex" "^7.0.0"
+ "@babel/plugin-transform-template-literals" "^7.0.0"
+ "@babel/plugin-transform-typescript" "^7.5.0"
+ "@babel/plugin-transform-unicode-regex" "^7.0.0"
+ "@babel/template" "^7.0.0"
+ react-refresh "^0.4.0"
+
+metro-react-native-babel-transformer@0.66.2, metro-react-native-babel-transformer@^0.66.1:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.66.2.tgz"
+ integrity sha512-z1ab7ihIT0pJrwgi9q2IH+LcW/xUWMQ0hH+Mrk7wbKQB0RnJdXFoxphrfoVHBHMUu+TBPetUcEkKawkK1e7Cng==
+ dependencies:
+ "@babel/core" "^7.14.0"
+ babel-preset-fbjs "^3.4.0"
+ hermes-parser "0.4.7"
+ metro-babel-transformer "0.66.2"
+ metro-react-native-babel-preset "0.66.2"
+ metro-source-map "0.66.2"
+ nullthrows "^1.1.1"
+
+metro-resolver@0.66.2, metro-resolver@^0.66.1:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.66.2.tgz"
+ integrity sha512-pXQAJR/xauRf4kWFj2/hN5a77B4jLl0Fom5I3PHp6Arw/KxSBp0cnguXpGLwNQ6zQC0nxKCoYGL9gQpzMnN7Hw==
+ dependencies:
+ absolute-path "^0.0.0"
+
+metro-runtime@0.66.2, metro-runtime@^0.66.1:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.66.2.tgz"
+ integrity sha512-vFhKBk2ot9FS4b+2v0OTa/guCF/QDAOJubY0CNg7PzCS5+w4y3IvZIcPX4SSS1t8pYEZBLvtdtTDarlDl81xmg==
+
+metro-source-map@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.66.2.tgz"
+ integrity sha512-038tFmB7vSh73VQcDWIbr5O1m+WXWyYafDaOy+1A/2K308YP0oj33gbEgDnZsLZDwcJ+xt1x6KUEBIzlX4YGeQ==
+ dependencies:
+ "@babel/traverse" "^7.14.0"
+ "@babel/types" "^7.0.0"
+ invariant "^2.2.4"
+ metro-symbolicate "0.66.2"
+ nullthrows "^1.1.1"
+ ob1 "0.66.2"
+ source-map "^0.5.6"
+ vlq "^1.0.0"
+
+metro-symbolicate@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.66.2.tgz"
+ integrity sha512-u+DeQHyAFXVD7mVP+GST/894WHJ3i/U8oEJFnT7U3P52ZuLgX8n4tMNxhqZU12RcLR6etF8143aP0Ktx1gFLEQ==
+ dependencies:
+ invariant "^2.2.4"
+ metro-source-map "0.66.2"
+ nullthrows "^1.1.1"
+ source-map "^0.5.6"
+ through2 "^2.0.1"
+ vlq "^1.0.0"
+
+metro-transform-plugins@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.66.2.tgz"
+ integrity sha512-KTvqplh0ut7oDKovvDG6yzXM02R6X+9b2oVG+qYq8Zd3aCGTi51ASx4ThCNkAHyEvCuJdYg9fxXTL+j+wvhB5w==
+ dependencies:
+ "@babel/core" "^7.14.0"
+ "@babel/generator" "^7.14.0"
+ "@babel/template" "^7.0.0"
+ "@babel/traverse" "^7.14.0"
+ nullthrows "^1.1.1"
+
+metro-transform-worker@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.66.2.tgz"
+ integrity sha512-dO4PtYOMGB7Vzte8aIzX39xytODhmbJrBYPu+zYzlDjyefJZT7BkZ0LkPIThtyJi96xWcGqi9JBSo0CeRupAHw==
+ dependencies:
+ "@babel/core" "^7.14.0"
+ "@babel/generator" "^7.14.0"
+ "@babel/parser" "^7.14.0"
+ "@babel/types" "^7.0.0"
+ babel-preset-fbjs "^3.4.0"
+ metro "0.66.2"
+ metro-babel-transformer "0.66.2"
+ metro-cache "0.66.2"
+ metro-cache-key "0.66.2"
+ metro-hermes-compiler "0.66.2"
+ metro-source-map "0.66.2"
+ metro-transform-plugins "0.66.2"
+ nullthrows "^1.1.1"
+
+metro@0.66.2, metro@^0.66.1:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/metro/-/metro-0.66.2.tgz"
+ integrity sha512-uNsISfcQ3iKKSHoN5Q+LAh0l3jeeg7ZcNZ/4BAHGsk02erA0OP+l2m+b5qYVoPptHz9Oc3KyG5oGJoTu41pWjg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/core" "^7.14.0"
+ "@babel/generator" "^7.14.0"
+ "@babel/parser" "^7.14.0"
+ "@babel/template" "^7.0.0"
+ "@babel/traverse" "^7.14.0"
+ "@babel/types" "^7.0.0"
+ absolute-path "^0.0.0"
+ accepts "^1.3.7"
+ async "^2.4.0"
+ chalk "^4.0.0"
+ ci-info "^2.0.0"
+ connect "^3.6.5"
+ debug "^2.2.0"
+ denodeify "^1.2.1"
+ error-stack-parser "^2.0.6"
+ fs-extra "^1.0.0"
+ graceful-fs "^4.1.3"
+ hermes-parser "0.4.7"
+ image-size "^0.6.0"
+ invariant "^2.2.4"
+ jest-haste-map "^26.5.2"
+ jest-worker "^26.0.0"
+ lodash.throttle "^4.1.1"
+ metro-babel-register "0.66.2"
+ metro-babel-transformer "0.66.2"
+ metro-cache "0.66.2"
+ metro-cache-key "0.66.2"
+ metro-config "0.66.2"
+ metro-core "0.66.2"
+ metro-hermes-compiler "0.66.2"
+ metro-inspector-proxy "0.66.2"
+ metro-minify-uglify "0.66.2"
+ metro-react-native-babel-preset "0.66.2"
+ metro-resolver "0.66.2"
+ metro-runtime "0.66.2"
+ metro-source-map "0.66.2"
+ metro-symbolicate "0.66.2"
+ metro-transform-plugins "0.66.2"
+ metro-transform-worker "0.66.2"
+ mime-types "^2.1.27"
+ mkdirp "^0.5.1"
+ node-fetch "^2.2.0"
+ nullthrows "^1.1.1"
+ rimraf "^2.5.4"
+ serialize-error "^2.1.0"
+ source-map "^0.5.6"
+ strip-ansi "^6.0.0"
+ temp "0.8.3"
+ throat "^5.0.0"
+ ws "^1.1.5"
+ yargs "^15.3.1"
+
+micromatch@^3.1.10, micromatch@^3.1.4:
+ version "3.1.10"
+ resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz"
+ integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ braces "^2.3.1"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ extglob "^2.0.4"
+ fragment-cache "^0.2.1"
+ kind-of "^6.0.2"
+ nanomatch "^1.2.9"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.2"
+
+micromatch@^4.0.2:
+ version "4.0.4"
+ resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz"
+ integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
+ dependencies:
+ braces "^3.0.1"
+ picomatch "^2.2.3"
+
+mime-db@1.51.0, "mime-db@>= 1.43.0 < 2":
+ version "1.51.0"
+ resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz"
+ integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
+
+mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.34:
+ version "2.1.34"
+ resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz"
+ integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
+ dependencies:
+ mime-db "1.51.0"
+
+mime@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
+mime@^2.4.1:
+ version "2.6.0"
+ resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz"
+ integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
+
+mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz"
+ integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
+
+mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+minimatch@^3.0.2, minimatch@^3.0.4:
+ version "3.0.5"
+ resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz"
+ integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
+mixin-deep@^1.2.0:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz"
+ integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
+ dependencies:
+ for-in "^1.0.2"
+ is-extendable "^1.0.1"
+
+mkdirp@^0.5.1:
+ version "0.5.5"
+ resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz"
+ integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+ dependencies:
+ minimist "^1.2.5"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+ms@2.1.3:
+ version "2.1.3"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+nanoid@^3.1.23:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz"
+ integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==
+
+nanomatch@^1.2.9:
+ version "1.2.13"
+ resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz"
+ integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ fragment-cache "^0.2.1"
+ is-windows "^1.0.2"
+ kind-of "^6.0.2"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
+ integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+
+negotiator@0.6.3:
+ version "0.6.3"
+ resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
+ integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+
+neo-async@^2.5.0:
+ version "2.6.2"
+ resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
+nice-try@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz"
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+
+nocache@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz"
+ integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==
+
+node-dir@^0.1.17:
+ version "0.1.17"
+ resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz"
+ integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=
+ dependencies:
+ minimatch "^3.0.2"
+
+node-fetch@2.6.7, node-fetch@^2.2.0, node-fetch@^2.6.0:
+ version "2.6.7"
+ resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz"
+ integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
+ dependencies:
+ whatwg-url "^5.0.0"
+
+node-int64@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz"
+ integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=
+
+node-notifier@^8.0.0:
+ version "8.0.2"
+ resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz"
+ integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==
+ dependencies:
+ growly "^1.3.0"
+ is-wsl "^2.2.0"
+ semver "^7.3.2"
+ shellwords "^0.1.1"
+ uuid "^8.3.0"
+ which "^2.0.2"
+
+node-releases@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz"
+ integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==
+
+node-stream-zip@^1.9.1:
+ version "1.15.0"
+ resolved "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz"
+ integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==
+
+normalize-package-data@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+ dependencies:
+ hosted-git-info "^2.1.4"
+ resolve "^1.10.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+normalize-path@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"
+ integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
+normalize-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz"
+ integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
+ dependencies:
+ path-key "^2.0.0"
+
+npm-run-path@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+ dependencies:
+ path-key "^3.0.0"
+
+nth-check@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
+ integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
+ dependencies:
+ boolbase "~1.0.0"
+
+nullthrows@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz"
+ integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==
+
+nwsapi@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz"
+ integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
+
+ob1@0.66.2:
+ version "0.66.2"
+ resolved "https://registry.npmjs.org/ob1/-/ob1-0.66.2.tgz"
+ integrity sha512-RFewnL/RjE0qQBOuM+2bbY96zmJPIge/aDtsiDbLSb+MOiK8CReAhBHDgL+zrA3F1hQk00lMWpUwYcep750plA==
+
+object-assign@^4.1.0, object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+object-copy@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz"
+ integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
+ dependencies:
+ copy-descriptor "^0.1.0"
+ define-property "^0.2.5"
+ kind-of "^3.0.3"
+
+object-inspect@^1.11.0, object-inspect@^1.9.0:
+ version "1.12.0"
+ resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz"
+ integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
+
+object-keys@^1.0.12, object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object-visit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz"
+ integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
+ dependencies:
+ isobject "^3.0.0"
+
+object.assign@^4.1.0, object.assign@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz"
+ integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ has-symbols "^1.0.1"
+ object-keys "^1.1.1"
+
+object.entries@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz"
+ integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
+
+object.fromentries@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz"
+ integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
+
+object.hasown@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz"
+ integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
+
+object.pick@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz"
+ integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
+ dependencies:
+ isobject "^3.0.1"
+
+object.values@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz"
+ integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
+
+on-finished@~2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"
+ integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
+ dependencies:
+ ee-first "1.1.1"
+
+on-headers@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"
+ integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ dependencies:
+ wrappy "1"
+
+onetime@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz"
+ integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
+ dependencies:
+ mimic-fn "^1.0.0"
+
+onetime@^5.1.0:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+open@^6.2.0:
+ version "6.4.0"
+ resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz"
+ integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==
+ dependencies:
+ is-wsl "^1.1.0"
+
+opencollective-postinstall@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz"
+ integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
+
+optionator@^0.8.1:
+ version "0.8.3"
+ resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz"
+ integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.6"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ word-wrap "~1.2.3"
+
+optionator@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"
+ integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+ dependencies:
+ deep-is "^0.1.3"
+ fast-levenshtein "^2.0.6"
+ levn "^0.4.1"
+ prelude-ls "^1.2.1"
+ type-check "^0.4.0"
+ word-wrap "^1.2.3"
+
+options@>=0.0.5:
+ version "0.0.6"
+ resolved "https://registry.npmjs.org/options/-/options-0.0.6.tgz"
+ integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=
+
+ora@^3.4.0:
+ version "3.4.0"
+ resolved "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz"
+ integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==
+ dependencies:
+ chalk "^2.4.2"
+ cli-cursor "^2.1.0"
+ cli-spinners "^2.0.0"
+ log-symbols "^2.2.0"
+ strip-ansi "^5.2.0"
+ wcwidth "^1.0.1"
+
+os-tmpdir@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
+ integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
+
+p-each-series@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz"
+ integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz"
+ integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+
+p-limit@^2.0.0, p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-locate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"
+ integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+ dependencies:
+ p-limit "^2.0.0"
+
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
+parse-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz"
+ integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
+ dependencies:
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+
+parse-json@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
+parse5@6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz"
+ integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
+
+parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+pascalcase@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz"
+ integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
+ integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-key@^2.0.0, path-key@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"
+ integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
+
+path-key@^3.0.0, path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.6, path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+picocolors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+picomatch@^2.0.4, picomatch@^2.2.3:
+ version "2.3.1"
+ resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+pify@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz"
+ integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+
+pirates@^4.0.1, pirates@^4.0.5:
+ version "4.0.5"
+ resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz"
+ integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
+
+pkg-dir@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz"
+ integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
+ dependencies:
+ find-up "^3.0.0"
+
+pkg-dir@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+ dependencies:
+ find-up "^4.0.0"
+
+plist@^3.0.2, plist@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz"
+ integrity sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==
+ dependencies:
+ base64-js "^1.5.1"
+ xmlbuilder "^9.0.7"
+
+posix-character-classes@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz"
+ integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+
+prelude-ls@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
+ integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
+
+prettier-linter-helpers@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"
+ integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
+ dependencies:
+ fast-diff "^1.1.2"
+
+prettier@^2.0.2:
+ version "2.5.1"
+ resolved "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz"
+ integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
+
+pretty-format@^26.5.2, pretty-format@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz"
+ integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==
+ dependencies:
+ "@jest/types" "^26.6.2"
+ ansi-regex "^5.0.0"
+ ansi-styles "^4.0.0"
+ react-is "^17.0.1"
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+progress@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz"
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+
+promise@^7.1.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
+ dependencies:
+ asap "~2.0.3"
+
+promise@^8.0.3:
+ version "8.1.0"
+ resolved "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz"
+ integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==
+ dependencies:
+ asap "~2.0.6"
+
+prompts@^2.0.1, prompts@^2.4.0:
+ version "2.4.2"
+ resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz"
+ integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
+ dependencies:
+ kleur "^3.0.3"
+ sisteransi "^1.0.5"
+
+prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2:
+ version "15.8.1"
+ resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
+ integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
+ dependencies:
+ loose-envify "^1.4.0"
+ object-assign "^4.1.1"
+ react-is "^16.13.1"
+
+psl@^1.1.33:
+ version "1.8.0"
+ resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz"
+ integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
+
+pump@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+punycode@^2.1.0, punycode@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+query-string@^7.0.0:
+ version "7.1.1"
+ resolved "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz"
+ integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==
+ dependencies:
+ decode-uri-component "^0.2.0"
+ filter-obj "^1.1.0"
+ split-on-first "^1.0.0"
+ strict-uri-encode "^2.0.0"
+
+range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+react-devtools-core@4.19.1:
+ version "4.19.1"
+ resolved "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.19.1.tgz"
+ integrity sha512-2wJiGffPWK0KggBjVwnTaAk+Z3MSxKInHmdzPTrBh1mAarexsa93Kw+WMX88+XjN+TtYgAiLe9xeTqcO5FfJTw==
+ dependencies:
+ shell-quote "^1.6.1"
+ ws "^7"
+
+react-freeze@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.0.tgz"
+ integrity sha512-yQaiOqDmoKqks56LN9MTgY06O0qQHgV4FUrikH357DydArSZHQhl0BJFqGKIZoTqi8JizF9Dxhuk1FIZD6qCaw==
+
+"react-is@^16.12.0 || ^17.0.0", react-is@^17.0.1, react-is@^17.0.2:
+ version "17.0.2"
+ resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
+ integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+
+react-is@^16.13.0, react-is@^16.13.1, react-is@^16.7.0:
+ version "16.13.1"
+ resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
+react-native-animatable@1.3.3:
+ version "1.3.3"
+ resolved "https://registry.npmjs.org/react-native-animatable/-/react-native-animatable-1.3.3.tgz"
+ integrity sha512-2ckIxZQAsvWn25Ho+DK3d1mXIgj7tITkrS4pYDvx96WyOttSvzzFeQnM2od0+FUMzILbdHDsDEqZvnz1DYNQ1w==
+ dependencies:
+ prop-types "^15.7.2"
+
+react-native-codegen@^0.0.8:
+ version "0.0.8"
+ resolved "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.0.8.tgz"
+ integrity sha512-k/944+0XD+8l7zDaiKfYabyEKmAmyZgS1mj+4LcSRPyHnrjgCHKrh/Y6jM6kucQ6xU1+1uyMmF/dSkikxK8i+Q==
+ dependencies:
+ flow-parser "^0.121.0"
+ jscodeshift "^0.11.0"
+ nullthrows "^1.1.1"
+
+react-native-countdown-component@^2.7.1:
+ version "2.7.1"
+ resolved "https://registry.npmjs.org/react-native-countdown-component/-/react-native-countdown-component-2.7.1.tgz"
+ integrity sha512-H7D/YvMjY1hCJf9xFrNh5CsIwkcel/Suno2gYR6ulWwoa2xnUgmltFWoMyEIODsUy7lIK1KCPm+Zn26QajbRaw==
+ dependencies:
+ lodash "^4.17.13"
+ prop-types "^15.5.8"
+ sprintf-js "^1.1.1"
+
+react-native-elements@^3.4.2:
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/react-native-elements/-/react-native-elements-3.4.2.tgz#66602be9c5e0e0a2a831913adec80ff6518d1ee2"
+ integrity sha512-m0eAWOn7JuR1wNTNY0WHuaqst4LI/gFE4N5Bbyfsc4DiryWsMST7aAg5w/Gos4IexWIzhLKCIkPxthND1m/8Xg==
+ dependencies:
+ "@types/react-native-vector-icons" "^6.4.6"
+ color "^3.1.2"
+ deepmerge "^4.2.2"
+ hoist-non-react-statics "^3.3.2"
+ lodash.isequal "^4.5.0"
+ opencollective-postinstall "^2.0.3"
+ react-native-ratings "8.0.4"
+ react-native-size-matters "^0.3.1"
+
+react-native-elevation@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/react-native-elevation/-/react-native-elevation-1.0.0.tgz"
+ integrity sha512-BWIKcEYtzjRV6GpkX0Km5/w2E7fgIcywiQOT7JZTc5NSbv/YI9kpFinB9lRFsOoRVGmiqq/O3VfP/oH2clIiBA==
+
+react-native-gesture-handler@~1.10.2:
+ version "1.10.3"
+ resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-1.10.3.tgz#942bbf2963bbf49fa79593600ee9d7b5dab3cfc0"
+ integrity sha512-cBGMi1IEsIVMgoox4RvMx7V2r6bNKw0uR1Mu1o7NbuHS6BRSVLq0dP34l2ecnPlC+jpWd3le6Yg1nrdCjby2Mw==
+ dependencies:
+ "@egjs/hammerjs" "^2.0.17"
+ fbjs "^3.0.0"
+ hoist-non-react-statics "^3.3.0"
+ invariant "^2.2.4"
+ prop-types "^15.7.2"
+
+react-native-iphone-x-helper@^1.0.3:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz"
+ integrity sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==
+
+react-native-keyboard-aware-scroll-view@^0.9.5:
+ version "0.9.5"
+ resolved "https://registry.npmjs.org/react-native-keyboard-aware-scroll-view/-/react-native-keyboard-aware-scroll-view-0.9.5.tgz"
+ integrity sha512-XwfRn+T/qBH9WjTWIBiJD2hPWg0yJvtaEw6RtPCa5/PYHabzBaWxYBOl0usXN/368BL1XktnZPh8C2lmTpOREA==
+ dependencies:
+ prop-types "^15.6.2"
+ react-native-iphone-x-helper "^1.0.3"
+
+react-native-linear-gradient@^2.5.6:
+ version "2.5.6"
+ resolved "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.5.6.tgz"
+ integrity sha512-HDwEaXcQIuXXCV70O+bK1rizFong3wj+5Q/jSyifKFLg0VWF95xh8XQgfzXwtq0NggL9vNjPKXa016KuFu+VFg==
+
+react-native-modal-datetime-picker@^13.0.1:
+ version "13.0.1"
+ resolved "https://registry.npmjs.org/react-native-modal-datetime-picker/-/react-native-modal-datetime-picker-13.0.1.tgz"
+ integrity sha512-uPgonEKa/nIotmboEEriTCVfWLgrtuR+fybqSw6XcPc/+ve7Q6p55cbUGKtne3+sFcelk+QHcb0aPu56+VbsJA==
+ dependencies:
+ prop-types "^15.7.2"
+
+react-native-modal@^13.0.0:
+ version "13.0.0"
+ resolved "https://registry.npmjs.org/react-native-modal/-/react-native-modal-13.0.0.tgz"
+ integrity sha512-k6r9T31mc7HIDFj1V53ceAAN1dwc8052c4JLtDVEmEQ19Bbq9yiLXoDsQuNb+hB8A+2tVOXmo5Gq4IQfb11upw==
+ dependencies:
+ prop-types "^15.6.2"
+ react-native-animatable "1.3.3"
+
+react-native-pager-view@^5.4.9:
+ version "5.4.9"
+ resolved "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-5.4.9.tgz"
+ integrity sha512-D6tzxpwMGdl6CXgtskGWhKRc5cJakCazESRGt7PkqnpyiH3N35ft1KmR82pCSQetAFlytFiToeu3a/dG5CELvA==
+
+react-native-ratings@8.0.4:
+ version "8.0.4"
+ resolved "https://registry.npmjs.org/react-native-ratings/-/react-native-ratings-8.0.4.tgz"
+ integrity sha512-Xczu5lskIIRD6BEdz9A0jDRpEck/SFxRqiglkXi0u67yAtI1/pcJC76P4MukCbT8K4BPVl+42w83YqXBoBRl7A==
+ dependencies:
+ lodash "^4.17.15"
+
+react-native-really-awesome-button@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/react-native-really-awesome-button/-/react-native-really-awesome-button-1.6.0.tgz"
+ integrity sha512-Lar69MRWnCqO0CgOIk/s63P3bS0xKqeMi/m8TDul14tRkYuOW55ZaF4pBeL13GodI+3Cw0dbihwighsQ+obXSA==
+
+react-native-safe-area-context@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-3.3.2.tgz"
+ integrity sha512-yOwiiPJ1rk+/nfK13eafbpW6sKW0jOnsRem2C1LPJjM3tfTof6hlvV5eWHATye3XOpu2cJ7N+HdkUvUDGwFD2Q==
+
+react-native-screens@^3.11.1:
+ version "3.11.1"
+ resolved "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.11.1.tgz"
+ integrity sha512-ziQqVm97tNtovacyHwNmDwJPb8n9CqwsfttXx2p5Hk7wUWemDcPAX0ZJ/nNnGMSq2p2QPhPjjUpr3qKXuES0sQ==
+ dependencies:
+ react-freeze "^1.0.0"
+ warn-once "^0.1.0"
+
+react-native-search-bar@^3.5.1:
+ version "3.5.1"
+ resolved "https://registry.npmjs.org/react-native-search-bar/-/react-native-search-bar-3.5.1.tgz"
+ integrity sha512-L+y2gQZstApb2DavE8se6Mzj3CgxZiHxM0DezAdT4kb6+kV4+WeTN8jPxvrP6zgwbGcjuYKaHrASKnBmhuWmhA==
+ dependencies:
+ prop-types "^15.5.10"
+
+react-native-segmented-control-tab@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/react-native-segmented-control-tab/-/react-native-segmented-control-tab-4.0.0.tgz"
+ integrity sha512-Iyxabn5T7HGFGjLAvOWUL6K/o0r+UglAUDDQzMgqlHcz3tCnK9C6QUgZaAkzMTSgB/2JO9yLgk3XROPmb8064A==
+
+react-native-size-matters@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.npmjs.org/react-native-size-matters/-/react-native-size-matters-0.3.1.tgz"
+ integrity sha512-mKOfBLIBFBcs9br1rlZDvxD5+mAl8Gfr5CounwJtxI6Z82rGrMO+Kgl9EIg3RMVf3G855a85YVqHJL2f5EDRlw==
+
+react-native-spinkit@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/react-native-spinkit/-/react-native-spinkit-1.5.1.tgz"
+ integrity sha512-XkTgP4e+/MZpbI1GdZTIEQ+6WeMWQT4duWnSiXaaVW7py0rtaBLswtAEA6uXQGUhnxMnPWZhbLz7QponpH3ciQ==
+ dependencies:
+ prop-types "^15.5.8"
+
+react-native-sqlite-storage@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/react-native-sqlite-storage/-/react-native-sqlite-storage-6.0.1.tgz"
+ integrity sha512-1tDFjrint6X6qSYKf3gDyz+XB+X79jfiL6xTugKHPRtF0WvqMtVgdLuNqZunIXjNEvNtNVEbXaeZ6MsguFu00A==
+
+react-native-svg@^12.1.1:
+ version "12.1.1"
+ resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-12.1.1.tgz#5f292410b8bcc07bbc52b2da7ceb22caf5bcaaee"
+ integrity sha512-NIAJ8jCnXGCqGWXkkJ1GTzO4a3Md5at5sagYV8Vh4MXYnL4z5Rh428Wahjhh+LIjx40EE5xM5YtwyJBqOIba2Q==
+ dependencies:
+ css-select "^2.1.0"
+ css-tree "^1.0.0-alpha.39"
+
+react-native-swiper@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/react-native-swiper/-/react-native-swiper-1.6.0.tgz"
+ integrity sha512-OnkTTZi+9uZUgy0uz1I9oYDhCU3z36lZn+LFsk9FXPRelxb/KeABzvPs3r3SrHWy1aA67KGtSFj0xNK2QD0NJQ==
+ dependencies:
+ prop-types "^15.5.10"
+
+react-native-system-navigation-bar@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/react-native-system-navigation-bar/-/react-native-system-navigation-bar-1.0.2.tgz"
+ integrity sha512-qaqJlQLksBF1Q+OJB0gMeAql8iXHGpeG/VNcGTRFt7W4M0iY35au5GHSntbpxm/7/OagfVf4WU3ppGEK7MvbZg==
+
+react-native-tab-view@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-3.1.1.tgz"
+ integrity sha512-M5pRN6utQfytKWoKlKVzg5NbkYu308qNoW1khGTtEOTs1k14p2dHJ/BWOJoJYHKbPVUyZldbG9MFT7gUl4YHnw==
+
+react-native-vector-icons@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.0.0.tgz"
+ integrity sha512-qKX5d5/TafHmI4B7UOSZCL3BAGh7ZfF30iLwRgxBkKfZl2lKSuHp8Ottj9OyWh9b5fFtlg+LtyvZrns3g2kh+w==
+ dependencies:
+ lodash.frompairs "^4.0.1"
+ lodash.isequal "^4.5.0"
+ lodash.isstring "^4.0.1"
+ lodash.omit "^4.5.0"
+ lodash.pick "^4.4.0"
+ lodash.template "^4.5.0"
+ prop-types "^15.7.2"
+ yargs "^16.1.1"
+
+react-native-wheel-color-picker@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/react-native-wheel-color-picker/-/react-native-wheel-color-picker-1.2.0.tgz"
+ integrity sha512-j4IcN7so9dZAkXyrPTTaPqCKsjkGBZkd5F7HqLo0OTRB1EZX3Ww5VMKsKjloxv6Omv193wGOhwfG20ec2KnxJQ==
+ dependencies:
+ react-native-elevation "^1.0.0"
+
+react-native@0.67.2:
+ version "0.67.2"
+ resolved "https://registry.npmjs.org/react-native/-/react-native-0.67.2.tgz"
+ integrity sha512-grEtpOLLvtSg8Bivg0ffVRCjTkresqMt7Jdog/geF6VAYhb4RnLaaUCWvyrfyB9buf135FKnqg5BIuve/XQNXA==
+ dependencies:
+ "@jest/create-cache-key-function" "^27.0.1"
+ "@react-native-community/cli" "^6.0.0"
+ "@react-native-community/cli-platform-android" "^6.0.0"
+ "@react-native-community/cli-platform-ios" "^6.0.0"
+ "@react-native/assets" "1.0.0"
+ "@react-native/normalize-color" "2.0.0"
+ "@react-native/polyfills" "2.0.0"
+ abort-controller "^3.0.0"
+ anser "^1.4.9"
+ base64-js "^1.1.2"
+ event-target-shim "^5.0.1"
+ hermes-engine "~0.9.0"
+ invariant "^2.2.4"
+ jsc-android "^250230.2.1"
+ metro-react-native-babel-transformer "0.66.2"
+ metro-runtime "0.66.2"
+ metro-source-map "0.66.2"
+ nullthrows "^1.1.1"
+ pretty-format "^26.5.2"
+ promise "^8.0.3"
+ prop-types "^15.7.2"
+ react-devtools-core "4.19.1"
+ react-native-codegen "^0.0.8"
+ react-refresh "^0.4.0"
+ regenerator-runtime "^0.13.2"
+ scheduler "^0.20.2"
+ stacktrace-parser "^0.1.3"
+ use-subscription "^1.0.0"
+ whatwg-fetch "^3.0.0"
+ ws "^6.1.4"
+
+react-refresh@^0.4.0:
+ version "0.4.3"
+ resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz"
+ integrity sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==
+
+react-shallow-renderer@^16.13.1:
+ version "16.14.1"
+ resolved "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.14.1.tgz"
+ integrity sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg==
+ dependencies:
+ object-assign "^4.1.1"
+ react-is "^16.12.0 || ^17.0.0"
+
+react-test-renderer@17.0.2:
+ version "17.0.2"
+ resolved "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz"
+ integrity sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==
+ dependencies:
+ object-assign "^4.1.1"
+ react-is "^17.0.2"
+ react-shallow-renderer "^16.13.1"
+ scheduler "^0.20.2"
+
+react@17.0.2:
+ version "17.0.2"
+ resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz"
+ integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
+read-pkg-up@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz"
+ integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
+ dependencies:
+ find-up "^4.1.0"
+ read-pkg "^5.2.0"
+ type-fest "^0.8.1"
+
+read-pkg@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz"
+ integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
+ dependencies:
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
+
+readable-stream@~2.3.6:
+ version "2.3.7"
+ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"
+ integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+readline@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz"
+ integrity sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw=
+
+recast@^0.20.3:
+ version "0.20.5"
+ resolved "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz"
+ integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==
+ dependencies:
+ ast-types "0.14.2"
+ esprima "~4.0.0"
+ source-map "~0.6.1"
+ tslib "^2.0.1"
+
+regenerate-unicode-properties@^10.0.1:
+ version "10.0.1"
+ resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz"
+ integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==
+ dependencies:
+ regenerate "^1.4.2"
+
+regenerate@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz"
+ integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
+
+regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4:
+ version "0.13.9"
+ resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz"
+ integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
+
+regenerator-transform@^0.14.2:
+ version "0.14.5"
+ resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz"
+ integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
+ dependencies:
+ "@babel/runtime" "^7.8.4"
+
+regex-not@^1.0.0, regex-not@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz"
+ integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
+ dependencies:
+ extend-shallow "^3.0.2"
+ safe-regex "^1.1.0"
+
+regexp.prototype.flags@^1.3.1:
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz"
+ integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+regexpp@^3.0.0, regexpp@^3.1.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz"
+ integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
+
+regexpu-core@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz"
+ integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==
+ dependencies:
+ regenerate "^1.4.2"
+ regenerate-unicode-properties "^10.0.1"
+ regjsgen "^0.6.0"
+ regjsparser "^0.8.2"
+ unicode-match-property-ecmascript "^2.0.0"
+ unicode-match-property-value-ecmascript "^2.0.0"
+
+regjsgen@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz"
+ integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==
+
+regjsparser@^0.8.2:
+ version "0.8.4"
+ resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz"
+ integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==
+ dependencies:
+ jsesc "~0.5.0"
+
+remove-trailing-separator@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"
+ integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
+
+repeat-element@^1.1.2:
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz"
+ integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
+
+repeat-string@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
+require-main-filename@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"
+ integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
+
+resolve-cwd@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz"
+ integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
+ dependencies:
+ resolve-from "^5.0.0"
+
+resolve-from@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz"
+ integrity sha1-six699nWiBvItuZTM17rywoYh0g=
+
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
+resolve-url@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz"
+ integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
+
+resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1:
+ version "1.22.0"
+ resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz"
+ integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
+ dependencies:
+ is-core-module "^2.8.1"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+resolve@^2.0.0-next.3:
+ version "2.0.0-next.3"
+ resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz"
+ integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==
+ dependencies:
+ is-core-module "^2.2.0"
+ path-parse "^1.0.6"
+
+restore-cursor@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz"
+ integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
+ dependencies:
+ onetime "^2.0.0"
+ signal-exit "^3.0.2"
+
+ret@~0.1.10:
+ version "0.1.15"
+ resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz"
+ integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
+
+rimraf@2.6.3, rimraf@~2.6.2:
+ version "2.6.3"
+ resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz"
+ integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
+ dependencies:
+ glob "^7.1.3"
+
+rimraf@^2.5.4:
+ version "2.7.1"
+ resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+ dependencies:
+ glob "^7.1.3"
+
+rimraf@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
+
+rimraf@~2.2.6:
+ version "2.2.8"
+ resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
+ integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=
+
+rsvp@^4.8.4:
+ version "4.8.5"
+ resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz"
+ integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
+
+safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz"
+ integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
+ dependencies:
+ ret "~0.1.10"
+
+"safer-buffer@>= 2.1.2 < 3":
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+sane@^4.0.3:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz"
+ integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==
+ dependencies:
+ "@cnakazawa/watch" "^1.0.3"
+ anymatch "^2.0.0"
+ capture-exit "^2.0.0"
+ exec-sh "^0.3.2"
+ execa "^1.0.0"
+ fb-watchman "^2.0.0"
+ micromatch "^3.1.4"
+ minimist "^1.1.1"
+ walker "~1.0.5"
+
+sax@^1.2.1:
+ version "1.2.4"
+ resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"
+ integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+
+saxes@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz"
+ integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==
+ dependencies:
+ xmlchars "^2.2.0"
+
+scheduler@^0.20.2:
+ version "0.20.2"
+ resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz"
+ integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
+"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0:
+ version "5.7.1"
+ resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+semver@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz"
+ integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+
+semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+semver@^7.2.1, semver@^7.3.2:
+ version "7.3.5"
+ resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz"
+ integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
+ dependencies:
+ lru-cache "^6.0.0"
+
+send@0.17.2:
+ version "0.17.2"
+ resolved "https://registry.npmjs.org/send/-/send-0.17.2.tgz"
+ integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==
+ dependencies:
+ debug "2.6.9"
+ depd "~1.1.2"
+ destroy "~1.0.4"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "1.8.1"
+ mime "1.6.0"
+ ms "2.1.3"
+ on-finished "~2.3.0"
+ range-parser "~1.2.1"
+ statuses "~1.5.0"
+
+serialize-error@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz"
+ integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=
+
+serve-static@^1.13.1:
+ version "1.14.2"
+ resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz"
+ integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==
+ dependencies:
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ parseurl "~1.3.3"
+ send "0.17.2"
+
+set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
+set-value@^2.0.0, set-value@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz"
+ integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.3"
+ split-string "^3.0.1"
+
+setimmediate@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+ integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
+
+setprototypeof@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
+shallow-clone@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz"
+ integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
+ dependencies:
+ kind-of "^6.0.2"
+
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz"
+ integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-command@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ dependencies:
+ shebang-regex "^3.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"
+ integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
+
+shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+shell-quote@1.6.1:
+ version "1.6.1"
+ resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz"
+ integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=
+ dependencies:
+ array-filter "~0.0.0"
+ array-map "~0.0.0"
+ array-reduce "~0.0.0"
+ jsonify "~0.0.0"
+
+shell-quote@^1.6.1:
+ version "1.7.3"
+ resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz"
+ integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==
+
+shellwords@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz"
+ integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
+
+side-channel@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
+ integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+ dependencies:
+ call-bind "^1.0.0"
+ get-intrinsic "^1.0.2"
+ object-inspect "^1.9.0"
+
+signal-exit@^3.0.0, signal-exit@^3.0.2:
+ version "3.0.7"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+simple-plist@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.0.tgz"
+ integrity sha512-uYWpeGFtZtVt2NhG4AHgpwx323zxD85x42heMJBan1qAiqqozIlaGrwrEt6kRjXWRWIXsuV1VLCvVmZan2B5dg==
+ dependencies:
+ bplist-creator "0.1.0"
+ bplist-parser "0.3.0"
+ plist "^3.0.4"
+
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
+ dependencies:
+ is-arrayish "^0.3.1"
+
+sisteransi@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz"
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
+slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
+slice-ansi@^2.0.0, slice-ansi@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz"
+ integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
+ dependencies:
+ ansi-styles "^3.2.0"
+ astral-regex "^1.0.0"
+ is-fullwidth-code-point "^2.0.0"
+
+snapdragon-node@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz"
+ integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
+ dependencies:
+ define-property "^1.0.0"
+ isobject "^3.0.0"
+ snapdragon-util "^3.0.1"
+
+snapdragon-util@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz"
+ integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
+ dependencies:
+ kind-of "^3.2.0"
+
+snapdragon@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz"
+ integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
+ dependencies:
+ base "^0.11.1"
+ debug "^2.2.0"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ map-cache "^0.2.2"
+ source-map "^0.5.6"
+ source-map-resolve "^0.5.0"
+ use "^3.1.0"
+
+source-map-resolve@^0.5.0:
+ version "0.5.3"
+ resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz"
+ integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
+ dependencies:
+ atob "^2.1.2"
+ decode-uri-component "^0.2.0"
+ resolve-url "^0.2.1"
+ source-map-url "^0.4.0"
+ urix "^0.1.0"
+
+source-map-support@^0.5.16, source-map-support@^0.5.6:
+ version "0.5.21"
+ resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz"
+ integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map-url@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz"
+ integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
+
+source-map@^0.5.0, source-map@^0.5.6:
+ version "0.5.7"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+source-map@^0.7.3:
+ version "0.7.3"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz"
+ integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+spdx-correct@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz"
+ integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-exceptions@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz"
+ integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
+
+spdx-expression-parse@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz"
+ integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.11"
+ resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz"
+ integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==
+
+split-on-first@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz"
+ integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
+
+split-string@^3.0.1, split-string@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz"
+ integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
+ dependencies:
+ extend-shallow "^3.0.0"
+
+sprintf-js@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz"
+ integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+stack-utils@^2.0.2:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz"
+ integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==
+ dependencies:
+ escape-string-regexp "^2.0.0"
+
+stackframe@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz"
+ integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==
+
+stacktrace-parser@^0.1.3:
+ version "0.1.10"
+ resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz"
+ integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==
+ dependencies:
+ type-fest "^0.7.1"
+
+static-extend@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz"
+ integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
+ dependencies:
+ define-property "^0.2.5"
+ object-copy "^0.1.0"
+
+"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
+ integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
+
+stream-buffers@2.2.x:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz"
+ integrity sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=
+
+strict-uri-encode@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz"
+ integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY=
+
+string-length@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz"
+ integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
+ dependencies:
+ char-regex "^1.0.2"
+ strip-ansi "^6.0.0"
+
+string-width@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"
+ integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
+ dependencies:
+ emoji-regex "^7.0.1"
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^5.1.0"
+
+string-width@^4.1.0, string-width@^4.2.0:
+ version "4.2.3"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string.prototype.matchall@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz"
+ integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
+ get-intrinsic "^1.1.1"
+ has-symbols "^1.0.2"
+ internal-slot "^1.0.3"
+ regexp.prototype.flags "^1.3.1"
+ side-channel "^1.0.4"
+
+string.prototype.trimend@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz"
+ integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+string.prototype.trimstart@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz"
+ integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
+ integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+ dependencies:
+ ansi-regex "^4.1.0"
+
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+strip-bom@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz"
+ integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz"
+ integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
+
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+sudo-prompt@^9.0.0:
+ version "9.2.1"
+ resolved "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz"
+ integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==
+
+supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-color@^7.0.0, supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ dependencies:
+ has-flag "^4.0.0"
+
+supports-hyperlinks@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz"
+ integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==
+ dependencies:
+ has-flag "^4.0.0"
+ supports-color "^7.0.0"
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+symbol-tree@^3.2.4:
+ version "3.2.4"
+ resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"
+ integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
+
+table@^5.2.3:
+ version "5.4.6"
+ resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz"
+ integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
+ dependencies:
+ ajv "^6.10.2"
+ lodash "^4.17.14"
+ slice-ansi "^2.1.0"
+ string-width "^3.0.0"
+
+temp@0.8.3:
+ version "0.8.3"
+ resolved "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz"
+ integrity sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=
+ dependencies:
+ os-tmpdir "^1.0.0"
+ rimraf "~2.2.6"
+
+temp@^0.8.1:
+ version "0.8.4"
+ resolved "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz"
+ integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==
+ dependencies:
+ rimraf "~2.6.2"
+
+terminal-link@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz"
+ integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
+ dependencies:
+ ansi-escapes "^4.2.1"
+ supports-hyperlinks "^2.0.0"
+
+test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz"
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
+ dependencies:
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
+ minimatch "^3.0.4"
+
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
+ integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
+throat@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz"
+ integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==
+
+through2@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz"
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+ dependencies:
+ readable-stream "~2.3.6"
+ xtend "~4.0.1"
+
+tmpl@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz"
+ integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
+
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
+ integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
+to-object-path@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz"
+ integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
+ dependencies:
+ kind-of "^3.0.2"
+
+to-regex-range@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz"
+ integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
+ dependencies:
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+to-regex@^3.0.1, to-regex@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz"
+ integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
+ dependencies:
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ regex-not "^1.0.2"
+ safe-regex "^1.1.0"
+
+toidentifier@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
+tough-cookie@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz"
+ integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==
+ dependencies:
+ psl "^1.1.33"
+ punycode "^2.1.1"
+ universalify "^0.1.2"
+
+tr46@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz"
+ integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==
+ dependencies:
+ punycode "^2.1.1"
+
+tr46@~0.0.3:
+ version "0.0.3"
+ resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz"
+ integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
+
+tslib@^1.8.1:
+ version "1.14.1"
+ resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
+ integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+
+tslib@^2.0.1:
+ version "2.3.1"
+ resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz"
+ integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
+
+tsutils@^3.17.1:
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz"
+ integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
+ dependencies:
+ tslib "^1.8.1"
+
+type-check@^0.4.0, type-check@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
+ integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+ dependencies:
+ prelude-ls "^1.2.1"
+
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
+ dependencies:
+ prelude-ls "~1.1.2"
+
+type-detect@4.0.8:
+ version "4.0.8"
+ resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
+type-fest@^0.21.3:
+ version "0.21.3"
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"
+ integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
+type-fest@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz"
+ integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+
+type-fest@^0.7.1:
+ version "0.7.1"
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz"
+ integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==
+
+type-fest@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz"
+ integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+
+typedarray-to-buffer@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz"
+ integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
+ dependencies:
+ is-typedarray "^1.0.0"
+
+ua-parser-js@^0.7.30:
+ version "0.7.31"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6"
+ integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==
+
+uglify-es@^3.1.9:
+ version "3.3.9"
+ resolved "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz"
+ integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==
+ dependencies:
+ commander "~2.13.0"
+ source-map "~0.6.1"
+
+ultron@1.0.x:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz"
+ integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=
+
+unbox-primitive@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz"
+ integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
+ dependencies:
+ function-bind "^1.1.1"
+ has-bigints "^1.0.1"
+ has-symbols "^1.0.2"
+ which-boxed-primitive "^1.0.2"
+
+unicode-canonical-property-names-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz"
+ integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+
+unicode-match-property-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz"
+ integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^2.0.0"
+ unicode-property-aliases-ecmascript "^2.0.0"
+
+unicode-match-property-value-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz"
+ integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
+
+unicode-property-aliases-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz"
+ integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==
+
+union-value@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz"
+ integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
+ dependencies:
+ arr-union "^3.1.0"
+ get-value "^2.0.6"
+ is-extendable "^0.1.1"
+ set-value "^2.0.1"
+
+universalify@^0.1.0, universalify@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
+unpipe@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
+ integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
+
+unset-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz"
+ integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
+ dependencies:
+ has-value "^0.3.1"
+ isobject "^3.0.0"
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+urix@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"
+ integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
+
+use-subscription@^1.0.0:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz"
+ integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==
+ dependencies:
+ object-assign "^4.1.1"
+
+use@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz"
+ integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+utils-merge@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
+ integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
+
+uuid@^3.3.2:
+ version "3.4.0"
+ resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"
+ integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+
+uuid@^8.3.0:
+ version "8.3.2"
+ resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
+ integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
+v8-compile-cache@^2.0.3:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz"
+ integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
+
+v8-to-istanbul@^7.0.0:
+ version "7.1.2"
+ resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz"
+ integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==
+ dependencies:
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^1.6.0"
+ source-map "^0.7.3"
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+vary@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
+ integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
+
+vlq@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz"
+ integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==
+
+w3c-hr-time@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz"
+ integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
+ dependencies:
+ browser-process-hrtime "^1.0.0"
+
+w3c-xmlserializer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz"
+ integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==
+ dependencies:
+ xml-name-validator "^3.0.0"
+
+walker@^1.0.7, walker@~1.0.5:
+ version "1.0.8"
+ resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz"
+ integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
+ dependencies:
+ makeerror "1.0.12"
+
+warn-once@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/warn-once/-/warn-once-0.1.0.tgz"
+ integrity sha512-recZTSvuaH/On5ZU5ywq66y99lImWqzP93+AiUo9LUwG8gXHW+LJjhOd6REJHm7qb0niYqrEQJvbHSQfuJtTqA==
+
+wcwidth@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz"
+ integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=
+ dependencies:
+ defaults "^1.0.3"
+
+webidl-conversions@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz"
+ integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
+
+webidl-conversions@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz"
+ integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==
+
+webidl-conversions@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz"
+ integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
+
+whatwg-encoding@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz"
+ integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
+ dependencies:
+ iconv-lite "0.4.24"
+
+whatwg-fetch@^3.0.0:
+ version "3.6.2"
+ resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz"
+ integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==
+
+whatwg-mimetype@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz"
+ integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
+
+whatwg-url@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz"
+ integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
+ dependencies:
+ tr46 "~0.0.3"
+ webidl-conversions "^3.0.0"
+
+whatwg-url@^8.0.0, whatwg-url@^8.5.0:
+ version "8.7.0"
+ resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz"
+ integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==
+ dependencies:
+ lodash "^4.7.0"
+ tr46 "^2.1.0"
+ webidl-conversions "^6.1.0"
+
+which-boxed-primitive@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz"
+ integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
+ dependencies:
+ is-bigint "^1.0.1"
+ is-boolean-object "^1.1.0"
+ is-number-object "^1.0.4"
+ is-string "^1.0.5"
+ is-symbol "^1.0.3"
+
+which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
+ integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
+
+which@^1.2.9:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+ dependencies:
+ isexe "^2.0.0"
+
+which@^2.0.1, which@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
+word-wrap@^1.2.3, word-wrap@~1.2.3:
+ version "1.2.3"
+ resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
+ integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
+wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+write-file-atomic@^2.3.0:
+ version "2.4.3"
+ resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz"
+ integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.2"
+
+write-file-atomic@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz"
+ integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
+ dependencies:
+ imurmurhash "^0.1.4"
+ is-typedarray "^1.0.0"
+ signal-exit "^3.0.2"
+ typedarray-to-buffer "^3.1.5"
+
+write@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz"
+ integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
+ dependencies:
+ mkdirp "^0.5.1"
+
+ws@^1.1.0, ws@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz"
+ integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==
+ dependencies:
+ options ">=0.0.5"
+ ultron "1.0.x"
+
+ws@^6.1.4:
+ version "6.2.2"
+ resolved "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz"
+ integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
+ dependencies:
+ async-limiter "~1.0.0"
+
+ws@^7, ws@^7.4.6:
+ version "7.5.7"
+ resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz"
+ integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==
+
+xcode@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/xcode/-/xcode-2.1.0.tgz"
+ integrity sha512-uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ==
+ dependencies:
+ simple-plist "^1.0.0"
+ uuid "^3.3.2"
+
+xml-name-validator@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz"
+ integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
+
+xmlbuilder@^9.0.7:
+ version "9.0.7"
+ resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz"
+ integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
+
+xmlchars@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz"
+ integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
+
+xmldoc@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz"
+ integrity sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==
+ dependencies:
+ sax "^1.2.1"
+
+xtend@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+y18n@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz"
+ integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
+
+y18n@^5.0.5:
+ version "5.0.8"
+ resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yargs-parser@^18.1.2:
+ version "18.1.3"
+ resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz"
+ integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+yargs-parser@^20.2.2:
+ version "20.2.9"
+ resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"
+ integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+
+yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1:
+ version "15.4.1"
+ resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz"
+ integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
+ dependencies:
+ cliui "^6.0.0"
+ decamelize "^1.2.0"
+ find-up "^4.1.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^4.2.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^18.1.2"
+
+yargs@^16.1.1:
+ version "16.2.0"
+ resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"
+ integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+ dependencies:
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+ yargs-parser "^20.2.2"