From aaa571db32191907fe1139c9b5da131950c20357 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Tue, 14 Apr 2020 16:39:51 -0400 Subject: [PATCH] Upgrade to RN 0.62.2 (#4093) * Upgrade to RN 0.62.0 * Update packager module paths * Fix Android PasteableInput * Fix regression on Android share extension credentials needed * Update android/app/src/main/java/com/mattermost/rnbeta/RNPasteableEditTextOnPasteListener.java * Reject commit if TSC check fails and Fix small eslint issues automatically * Use super.getExportedCustomBubblingEventTypeConstants in RNPasteableTextInputManager * Update to rn 0.62.2 Co-authored-by: Miguel Alatzar --- .eslintrc.json | 1 + .flowconfig | 7 +- .gitattributes | 3 + android/app/build.gradle | 32 +- .../debug/java/com/rn/ReactNativeFlipper.java | 68 + android/app/src/main/AndroidManifest.xml | 2 +- .../mattermost/rnbeta/MainApplication.java | 34 + .../RNPasteableEditTextOnPasteListener.java | 4 +- .../rnbeta/RNPasteableTextInputManager.java | 8 +- android/build.gradle | 4 +- android/gradle.properties | 10 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/gradlew | 24 +- android/gradlew.bat | 160 +- .../__snapshots__/fade.test.js.snap | 8 +- .../announcement_banner.test.js.snap | 9 +- .../announcement_banner.js | 1 + .../__snapshots__/channel_loader.test.js.snap | 52 +- .../network_indicator/network_indicator.js | 3 + .../custom_text_input.test.js.snap | 12 - .../__snapshots__/index.test.js.snap | 2 +- .../pasteable_text_input/custom_text_input.js | 90 - .../custom_text_input.test.js | 17 - app/components/pasteable_text_input/index.js | 19 +- .../__snapshots__/post_textbox.test.js.snap | 10 +- .../post_textbox/components/typing/typing.js | 1 + .../progressive_image.test.js.snap | 4 +- .../retry_bar_indicator.js | 1 + .../__snapshots__/channel_item.test.js.snap | 48 +- .../slide_up_panel_indicator.test.js.snap | 4 +- .../__snapshots__/radio_setting.test.js.snap | 15 +- app/mm-redux/client/client4.ts | 581 ++- app/mm-redux/client/websocket_client.ts | 254 + app/mm-redux/reducers/requests/channels.ts | 10 +- app/mm-redux/reducers/requests/files.ts | 4 +- app/mm-redux/reducers/requests/general.ts | 2 +- app/mm-redux/reducers/requests/helpers.ts | 2 +- app/mm-redux/reducers/requests/jobs.ts | 8 +- app/mm-redux/reducers/requests/posts.ts | 6 +- app/mm-redux/reducers/requests/roles.ts | 8 +- app/mm-redux/reducers/requests/search.ts | 4 +- app/mm-redux/reducers/requests/teams.ts | 6 +- .../selectors/entities/channel_categories.ts | 18 +- app/mm-redux/selectors/entities/channels.ts | 26 +- app/mm-redux/selectors/entities/emojis.ts | 8 +- app/mm-redux/selectors/entities/files.ts | 2 +- app/mm-redux/selectors/entities/general.ts | 6 +- app/mm-redux/selectors/entities/groups.ts | 8 +- .../selectors/entities/integrations.ts | 6 +- app/mm-redux/selectors/entities/jobs.ts | 2 +- app/mm-redux/selectors/entities/posts.ts | 28 +- .../selectors/entities/preferences.ts | 24 +- app/mm-redux/selectors/entities/roles.ts | 26 +- app/mm-redux/selectors/entities/search.ts | 2 +- app/mm-redux/selectors/entities/teams.ts | 40 +- app/mm-redux/selectors/entities/users.ts | 46 +- app/mm-redux/utils/deep_freeze.ts | 2 +- app/mm-redux/utils/theme_utils.ts | 8 +- .../channel_drawer_button.test.js.snap | 10 +- .../__snapshots__/channel_title.test.js.snap | 20 +- .../channel_info_header.test.js.snap | 84 +- .../__snapshots__/image_preview.test.js.snap | 31 +- app/screens/login/login.js | 83 +- app/screens/login/login.test.js | 10 +- .../__snapshots__/long_post.test.js.snap | 5 +- app/screens/more_dms/more_dms.js | 17 +- .../more_dms/selected_users/selected_user.js | 3 +- .../option_modal_list.test.js.snap | 30 +- app/screens/options_modal/options_modal.js | 2 + .../__snapshots__/permalink.test.js.snap | 5 +- .../reaction_header.test.js.snap | 4 +- .../reaction_header_item.test.js.snap | 5 +- .../__snapshots__/reaction_row.test.js.snap | 5 +- .../__snapshots__/modifier.test.js.snap | 6 +- .../__snapshots__/recent_item.test.js.snap | 12 +- app/screens/search/modifier.test.js | 2 +- app/screens/search/recent_item.test.js | 6 +- app/screens/search/search.js | 6 +- ...cation_settings_email.android.test.js.snap | 10 +- ios/Mattermost.xcodeproj/project.pbxproj | 227 +- ios/Mattermost/AppDelegate.h | 9 - ios/Mattermost/AppDelegate.m | 31 +- ios/Mattermost/main.m | 9 - ios/MattermostTests/MattermostTests.m | 70 - ios/Podfile | 55 +- ios/Podfile.lock | 436 +- package-lock.json | 4159 ++++++++--------- package.json | 40 +- packager/moduleNames.js | 61 +- packager/modulePaths.js | 61 +- ...0.61.5.patch => react-native+0.62.2.patch} | 190 +- ...ch => react-native-navigation+6.4.0.patch} | 12 - ...=> react-native-notifications+2.1.7.patch} | 83 +- scripts/pre-commit.sh | 9 +- .../android/extension_post/extension_post.js | 2 +- 95 files changed, 3749 insertions(+), 3853 deletions(-) create mode 100644 android/app/src/debug/java/com/rn/ReactNativeFlipper.java delete mode 100644 app/components/pasteable_text_input/__snapshots__/custom_text_input.test.js.snap delete mode 100644 app/components/pasteable_text_input/custom_text_input.js delete mode 100644 app/components/pasteable_text_input/custom_text_input.test.js create mode 100644 app/mm-redux/client/websocket_client.ts delete mode 100644 ios/MattermostTests/MattermostTests.m rename patches/{react-native+0.61.5.patch => react-native+0.62.2.patch} (58%) rename patches/{react-native-navigation+6.3.0.patch => react-native-navigation+6.4.0.patch} (76%) rename patches/{react-native-notifications+2.0.6.patch => react-native-notifications+2.1.7.patch} (91%) diff --git a/.eslintrc.json b/.eslintrc.json index fafc6c6b1..9c0bc2547 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -26,6 +26,7 @@ "react/display-name": [2, { "ignoreTranspilerName": false }], "react/jsx-filename-extension": [2, {"extensions": [".js"]}], "no-undefined": 0, + "no-nested-ternary": 0, "@typescript-eslint/camelcase": 0, "@typescript-eslint/no-undefined": 0, "@typescript-eslint/no-non-null-assertion": 0, diff --git a/.flowconfig b/.flowconfig index 4afc766a2..786366c4f 100644 --- a/.flowconfig +++ b/.flowconfig @@ -21,7 +21,7 @@ node_modules/warning/.* [include] [libs] -node_modules/react-native/Libraries/react-native/react-native-interface.js +node_modules/react-native/interface.js node_modules/react-native/flow/ [options] @@ -36,9 +36,8 @@ module.file_ext=.ios.js munge_underscores=true -module.name_mapper='^react-native$' -> '/node_modules/react-native/Libraries/react-native/react-native-implementation' module.name_mapper='^react-native/\(.*\)$' -> '/node_modules/react-native/\1' -module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '/node_modules/react-native/Libraries/Image/RelativeImageStub' +module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '/node_modules/react-native/Libraries/Image/RelativeImageStub' suppress_type=$FlowIssue suppress_type=$FlowFixMe @@ -72,4 +71,4 @@ untyped-import untyped-type-import [version] -^0.105.0 +^0.113.0 diff --git a/.gitattributes b/.gitattributes index d42ff1835..5b8397637 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,4 @@ *.pbxproj -text + +# specific for windows script files +*.bat text eol=crlf diff --git a/android/app/build.gradle b/android/app/build.gradle index 55bffe76c..f9f1802e1 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -15,7 +15,9 @@ import com.android.build.OutputFile * // the name of the generated asset file containing your JS bundle * bundleAssetName: "index.android.bundle", * - * // the entry file for bundle generation + * // 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", * * // whether to bundle JS and assets in debug mode @@ -130,6 +132,7 @@ android { applicationId "com.mattermost.rnbeta" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion + missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60" versionCode 282 versionName "1.30.0" multiDexEnabled = true @@ -194,6 +197,10 @@ android { packagingOptions { // Make sure libjsc.so does not packed in APK exclude "**/libjsc.so" + pickFirst "lib/armeabi-v7a/libc++_shared.so" + pickFirst "lib/arm64-v8a/libc++_shared.so" + pickFirst "lib/x86/libc++_shared.so" + pickFirst "lib/x86_64/libc++_shared.so" } } @@ -223,6 +230,23 @@ configurations.all { } dependencies { + implementation fileTree(dir: "libs", include: ["*.jar"]) + + //noinspection GradleDynamicVersio + implementation "com.facebook.react:react-native:+" // From node_modules + + implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.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' + } + 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") @@ -232,14 +256,12 @@ dependencies { implementation jscFlavor } - implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation "com.facebook.react:react-native:+" // From node_modules - implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'com.google.android.material:material:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - implementation 'com.google.firebase:firebase-messaging:17.3.4' + implementation project(':reactnativenotifications') + implementation 'com.google.firebase:firebase-messaging:17.3.4' // For animated GIF support implementation 'com.facebook.fresco:fresco:2.0.0' diff --git a/android/app/src/debug/java/com/rn/ReactNativeFlipper.java b/android/app/src/debug/java/com/rn/ReactNativeFlipper.java new file mode 100644 index 000000000..f6fb760e5 --- /dev/null +++ b/android/app/src/debug/java/com/rn/ReactNativeFlipper.java @@ -0,0 +1,68 @@ +/** + * 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.rn; + +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 index 75e58dca7..8a6b457f4 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -28,7 +28,7 @@ diff --git a/android/app/src/main/java/com/mattermost/rnbeta/MainApplication.java b/android/app/src/main/java/com/mattermost/rnbeta/MainApplication.java index dc3cbd73d..762834e93 100644 --- a/android/app/src/main/java/com/mattermost/rnbeta/MainApplication.java +++ b/android/app/src/main/java/com/mattermost/rnbeta/MainApplication.java @@ -5,6 +5,7 @@ import android.content.Context; import android.content.RestrictionsManager; import android.os.Bundle; import android.util.Log; +import java.lang.reflect.InvocationTargetException; import java.io.File; import java.util.HashMap; import java.util.List; @@ -24,6 +25,7 @@ import com.wix.reactnativenotifications.core.AppLifecycleFacade; import com.wix.reactnativenotifications.core.JsIOHelper; import com.facebook.react.PackageList; +import com.facebook.react.ReactInstanceManager; import com.facebook.react.ReactPackage; import com.facebook.react.ReactNativeHost; import com.facebook.react.TurboReactPackage; @@ -129,6 +131,7 @@ private final ReactNativeHost mReactNativeHost = Log.i("ReactNative", "Cleaning temp cache " + tempFolder.getAbsolutePath()); SoLoader.init(this, /* native exopackage */ false); + initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); // Uncomment to listen to react markers for build that has telemetry enabled // addReactMarkerListener(); @@ -223,4 +226,35 @@ private final ReactNativeHost mReactNativeHost = } }); } + + /** + * 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.rndiffapp.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/java/com/mattermost/rnbeta/RNPasteableEditTextOnPasteListener.java b/android/app/src/main/java/com/mattermost/rnbeta/RNPasteableEditTextOnPasteListener.java index 0705238d8..b9ef4f9df 100644 --- a/android/app/src/main/java/com/mattermost/rnbeta/RNPasteableEditTextOnPasteListener.java +++ b/android/app/src/main/java/com/mattermost/rnbeta/RNPasteableEditTextOnPasteListener.java @@ -20,6 +20,7 @@ import com.mattermost.share.ShareModule; import java.io.FileNotFoundException; import java.io.File; +import java.nio.file.FileAlreadyExistsException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.regex.Matcher; @@ -138,13 +139,14 @@ public class RNPasteableEditTextOnPasteListener implements RNEditTextOnPasteList String dest = cacheFolder + fileName; File folder = new File(cacheFolder); - try { if (!folder.exists()) { folder.mkdirs(); } Files.move(Paths.get(src), Paths.get(dest)); + } catch (FileAlreadyExistsException fileError) { + // Do nothing and return dest path } catch (Exception err) { return null; } diff --git a/android/app/src/main/java/com/mattermost/rnbeta/RNPasteableTextInputManager.java b/android/app/src/main/java/com/mattermost/rnbeta/RNPasteableTextInputManager.java index 745a71a10..d1c3f6f9e 100644 --- a/android/app/src/main/java/com/mattermost/rnbeta/RNPasteableTextInputManager.java +++ b/android/app/src/main/java/com/mattermost/rnbeta/RNPasteableTextInputManager.java @@ -71,8 +71,12 @@ public class RNPasteableTextInputManager extends ReactTextInputManager { @Nullable @Override public Map getExportedCustomBubblingEventTypeConstants() { - Map map = super.getExportedViewConstants(); - map.put("onPaste", MapBuilder.of("phasedRegistrationNames", MapBuilder.of("bubbled", "onPaste"))); + Map map = super.getExportedCustomBubblingEventTypeConstants(); + map.put( + "onPaste", + MapBuilder.of( + "phasedRegistrationNames", + MapBuilder.of("bubbled", "onPaste"))); return map; } } diff --git a/android/build.gradle b/android/build.gradle index dc0e1741d..9b1f3ad02 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -18,7 +18,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:3.4.2' + classpath 'com.android.tools.build:gradle:3.5.2' classpath 'com.google.gms:google-services:4.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" @@ -61,7 +61,7 @@ allprojects { url("$rootDir/../node_modules/v8-android/dist") } maven { - url "https://jitpack.io" + url "https://www.jitpack.io" } } } diff --git a/android/gradle.properties b/android/gradle.properties index 31ef6e1be..6ea76fa19 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -21,5 +21,13 @@ org.gradle.jvmargs=-Xmx2048M #android.enableAapt2=false #android.useDeprecatedNdk=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 -android.enableJetifier=true \ No newline at end of file + +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true + +# Version of flipper SDK to use with React Native +FLIPPER_VERSION=0.33.1 diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index a0a439e01..30b572c72 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip diff --git a/android/gradlew b/android/gradlew index cccdd3d51..77564ddb2 100755 --- a/android/gradlew +++ b/android/gradlew @@ -1,5 +1,21 @@ #!/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 @@ -28,7 +44,7 @@ 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="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -109,8 +125,8 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# 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"` @@ -169,4 +185,4 @@ if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then cd "$(dirname "$0")" fi -exec "$JAVACMD" "$@" +exec "$JAVACMD" "$@" \ No newline at end of file diff --git a/android/gradlew.bat b/android/gradlew.bat index e95643d6a..f2e901e79 100644 --- a/android/gradlew.bat +++ b/android/gradlew.bat @@ -1,84 +1,76 @@ -@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 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= - -@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 init - -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 init - -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 - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -: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 %CMD_LINE_ARGS% - -: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 +@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 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 init +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 init +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 +:init +@rem Get command-line arguments, handling Windows variants +if not "%OS%" == "Windows_NT" goto win9xME_args +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 +:win9xME_args_slurp +if "x%~1" == "x" goto execute +set CMD_LINE_ARGS=%* +: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 %CMD_LINE_ARGS% +: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 \ No newline at end of file diff --git a/app/components/__snapshots__/fade.test.js.snap b/app/components/__snapshots__/fade.test.js.snap index 41ef885f1..921408897 100644 --- a/app/components/__snapshots__/fade.test.js.snap +++ b/app/components/__snapshots__/fade.test.js.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Fade should render {opacity: 0} 1`] = ` - text - + `; exports[`Fade should render {opacity: 1} 1`] = ` - text - + `; diff --git a/app/components/announcement_banner/__snapshots__/announcement_banner.test.js.snap b/app/components/announcement_banner/__snapshots__/announcement_banner.test.js.snap index fb9a3a48f..48a194810 100644 --- a/app/components/announcement_banner/__snapshots__/announcement_banner.test.js.snap +++ b/app/components/announcement_banner/__snapshots__/announcement_banner.test.js.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`AnnouncementBanner should match snapshot 1`] = ` - - - - + + `; exports[`AnnouncementBanner should match snapshot 2`] = `null`; diff --git a/app/components/announcement_banner/announcement_banner.js b/app/components/announcement_banner/announcement_banner.js index ae4230256..b46bcf422 100644 --- a/app/components/announcement_banner/announcement_banner.js +++ b/app/components/announcement_banner/announcement_banner.js @@ -70,6 +70,7 @@ export default class AnnouncementBanner extends PureComponent { Animated.timing(this.state.bannerHeight, { toValue: value, duration: 350, + useNativeDriver: false, }).start(); }; diff --git a/app/components/channel_loader/__snapshots__/channel_loader.test.js.snap b/app/components/channel_loader/__snapshots__/channel_loader.test.js.snap index 7e0a6114f..ed9565b7e 100644 --- a/app/components/channel_loader/__snapshots__/channel_loader.test.js.snap +++ b/app/components/channel_loader/__snapshots__/channel_loader.test.js.snap @@ -17,7 +17,7 @@ exports[`ChannelLoader should match snapshot 1`] = ` ] } > - - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - + `; diff --git a/app/components/network_indicator/network_indicator.js b/app/components/network_indicator/network_indicator.js index d75160a43..6b62a8c22 100644 --- a/app/components/network_indicator/network_indicator.js +++ b/app/components/network_indicator/network_indicator.js @@ -174,6 +174,7 @@ export default class NetworkIndicator extends PureComponent { this.backgroundColor, { toValue: 1, duration: 100, + useNativeDriver: false, }, ), Animated.timing( @@ -181,6 +182,7 @@ export default class NetworkIndicator extends PureComponent { toValue: (this.getNavBarHeight() - HEIGHT), duration: 300, delay: 500, + useNativeDriver: false, }, ), ]).start(() => { @@ -339,6 +341,7 @@ export default class NetworkIndicator extends PureComponent { this.top, { toValue: this.getNavBarHeight(), duration: 300, + useNativeDriver: false, }, ).start(() => { this.props.actions.setCurrentUserStatusOffline(); diff --git a/app/components/pasteable_text_input/__snapshots__/custom_text_input.test.js.snap b/app/components/pasteable_text_input/__snapshots__/custom_text_input.test.js.snap deleted file mode 100644 index 8a3e61449..000000000 --- a/app/components/pasteable_text_input/__snapshots__/custom_text_input.test.js.snap +++ /dev/null @@ -1,12 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`CustomTextInput should render custom text input 1`] = ` - - My Text - -`; diff --git a/app/components/pasteable_text_input/__snapshots__/index.test.js.snap b/app/components/pasteable_text_input/__snapshots__/index.test.js.snap index be4db3f1b..c07aee41f 100644 --- a/app/components/pasteable_text_input/__snapshots__/index.test.js.snap +++ b/app/components/pasteable_text_input/__snapshots__/index.test.js.snap @@ -3,7 +3,7 @@ exports[`PasteableTextInput should render pasteable text input 1`] = ` diff --git a/app/components/pasteable_text_input/custom_text_input.js b/app/components/pasteable_text_input/custom_text_input.js deleted file mode 100644 index d9f08d956..000000000 --- a/app/components/pasteable_text_input/custom_text_input.js +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. - -/* eslint-disable no-underscore-dangle */ - -import React from 'react'; -import { - TextInput, - Text, - TouchableWithoutFeedback, - UIManager, - requireNativeComponent, -} from 'react-native'; -import invariant from 'invariant'; - -const AndroidTextInput = requireNativeComponent('PasteableTextInputAndroid'); - -// This class is copied from React Native's TextInput -// All credit goes to React Native team -// Source: https://github.com/facebook/react-native/blob/master/Libraries/Components/TextInput/TextInput.js#L1056 -class CustomTextInput extends TextInput { - // Override React Native's TextInput render for Android - _renderAndroid = () => { - const props = Object.assign({}, this.props); - props.style = [this.props.style]; - props.autoCapitalize = UIManager.getViewManagerConfig( - 'AndroidTextInput', - ).Constants.AutoCapitalizationType[props.autoCapitalize || 'sentences']; - let children = this.props.children; - let childCount = 0; - React.Children.forEach(children, () => ++childCount); - invariant( - !(this.props.value && childCount), - 'Cannot specify both value and children.', - ); - if (childCount > 1) { - children = {children}; - } - - if (props.selection && props.selection.end == null) { - props.selection = { - start: props.selection.start, - end: props.selection.start, - }; - } - - const textContainer = ( - - ); - - return ( - - {textContainer} - - ); - }; - - _onPaste = (event) => { - const {nativeEvent} = event; - const {onPaste} = this.props; - return onPaste?.(nativeEvent.error, nativeEvent.data); - } -} - -export default CustomTextInput; diff --git a/app/components/pasteable_text_input/custom_text_input.test.js b/app/components/pasteable_text_input/custom_text_input.test.js deleted file mode 100644 index 4bceaadc3..000000000 --- a/app/components/pasteable_text_input/custom_text_input.test.js +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. -import React from 'react'; -import {shallow} from 'enzyme'; - -import CustomTextInput from './custom_text_input'; - -describe('CustomTextInput', () => { - test('should render custom text input', () => { - const onPaste = jest.fn(); - const text = 'My Text'; - const component = shallow( - {text}, - ); - expect(component).toMatchSnapshot(); - }); -}); diff --git a/app/components/pasteable_text_input/index.js b/app/components/pasteable_text_input/index.js index 0f3fe44d2..a681860a4 100644 --- a/app/components/pasteable_text_input/index.js +++ b/app/components/pasteable_text_input/index.js @@ -3,8 +3,7 @@ import React from 'react'; import PropTypes from 'prop-types'; -import {TextInput, NativeEventEmitter, NativeModules} from 'react-native'; -import CustomTextInput from './custom_text_input'; +import {NativeEventEmitter, NativeModules, Platform, TextInput} from 'react-native'; const {OnPasteEventManager} = NativeModules; const OnPasteEventEmitter = new NativeEventEmitter(OnPasteEventManager); @@ -28,15 +27,27 @@ export class PasteableTextInput extends React.PureComponent { onPaste = (event) => { const {onPaste} = this.props; - return onPaste?.(null, event); + let data = null; + let error = null; + + if (Platform.OS === 'android') { + const {nativeEvent} = event; + data = nativeEvent.data; + error = nativeEvent.error; + } else { + data = event; + } + + return onPaste?.(error, data); } render() { const {forwardRef, ...props} = this.props; return ( - ); diff --git a/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap b/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap index 0ede5d69e..3324d4660 100644 --- a/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap +++ b/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap @@ -97,8 +97,7 @@ exports[`PostTextBox should match, full snapshot 1`] = ` } } > - - - + - + - - @@ -101,13 +99,11 @@ exports[`ChannelItem should match snapshot 1`] = ` - + `; exports[`ChannelItem should match snapshot for current user i.e currentUser (you) 1`] = ` - @@ -215,13 +211,11 @@ exports[`ChannelItem should match snapshot for current user i.e currentUser (you - + `; exports[`ChannelItem should match snapshot for current user i.e currentUser (you) when isSearchResult 1`] = ` - @@ -329,13 +323,11 @@ exports[`ChannelItem should match snapshot for current user i.e currentUser (you - + `; exports[`ChannelItem should match snapshot for deactivated user and is currentChannel 1`] = ` - @@ -443,13 +435,11 @@ exports[`ChannelItem should match snapshot for deactivated user and is currentCh - + `; exports[`ChannelItem should match snapshot for deactivated user and is searchResult 1`] = ` - @@ -547,13 +537,11 @@ exports[`ChannelItem should match snapshot for deactivated user and is searchRes - + `; exports[`ChannelItem should match snapshot for deactivated user and not searchResults or currentChannel 1`] = ` - @@ -651,7 +639,7 @@ exports[`ChannelItem should match snapshot for deactivated user and not searchRe - + `; exports[`ChannelItem should match snapshot for no displayName 1`] = `null`; @@ -659,9 +647,7 @@ exports[`ChannelItem should match snapshot for no displayName 1`] = `null`; exports[`ChannelItem should match snapshot for showUnreadForMsgs 1`] = `null`; exports[`ChannelItem should match snapshot with draft 1`] = ` - @@ -759,13 +745,11 @@ exports[`ChannelItem should match snapshot with draft 1`] = ` - + `; exports[`ChannelItem should match snapshot with mentions and muted 1`] = ` - @@ -896,5 +880,5 @@ exports[`ChannelItem should match snapshot with mentions and muted 1`] = ` /> - + `; diff --git a/app/components/slide_up_panel/__snapshots__/slide_up_panel_indicator.test.js.snap b/app/components/slide_up_panel/__snapshots__/slide_up_panel_indicator.test.js.snap index 6288b754a..e2e49dd9b 100644 --- a/app/components/slide_up_panel/__snapshots__/slide_up_panel_indicator.test.js.snap +++ b/app/components/slide_up_panel/__snapshots__/slide_up_panel_indicator.test.js.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`SlideUpPanelIndicator should match snapshot 1`] = ` - - + `; diff --git a/app/components/widgets/settings/__snapshots__/radio_setting.test.js.snap b/app/components/widgets/settings/__snapshots__/radio_setting.test.js.snap index b9053a11d..45a4e5549 100644 --- a/app/components/widgets/settings/__snapshots__/radio_setting.test.js.snap +++ b/app/components/widgets/settings/__snapshots__/radio_setting.test.js.snap @@ -47,8 +47,7 @@ exports[`components/widgets/settings/RadioSetting should match snapshot when err ] } > - - - + - - + - + ) => { return this.doFetch( `${this.getUserRoute('me')}/patch`, - {method: 'put', body: JSON.stringify(userPatch)} + {method: 'put', body: JSON.stringify(userPatch)}, ); } @@ -377,7 +376,7 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userPatch.id)}/patch`, - {method: 'put', body: JSON.stringify(userPatch)} + {method: 'put', body: JSON.stringify(userPatch)}, ); } @@ -386,7 +385,7 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(user.id)}`, - {method: 'put', body: JSON.stringify(user)} + {method: 'put', body: JSON.stringify(user)}, ); } @@ -395,7 +394,7 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/promote`, - {method: 'post'} + {method: 'post'}, ); } @@ -404,7 +403,7 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/demote`, - {method: 'post'} + {method: 'post'}, ); } @@ -413,7 +412,7 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/roles`, - {method: 'put', body: JSON.stringify({roles})} + {method: 'put', body: JSON.stringify({roles})}, ); }; updateUserMfa = async (userId: string, activate: boolean, code: string) => { @@ -427,7 +426,7 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/mfa`, - {method: 'put', body: JSON.stringify(body)} + {method: 'put', body: JSON.stringify(body)}, ); } @@ -436,7 +435,7 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/password`, - {method: 'put', body: JSON.stringify({current_password: currentPassword, new_password: newPassword})} + {method: 'put', body: JSON.stringify({current_password: currentPassword, new_password: newPassword})}, ); } @@ -445,7 +444,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}/password/reset`, - {method: 'post', body: JSON.stringify({token, new_password: newPassword})} + {method: 'post', body: JSON.stringify({token, new_password: newPassword})}, ); } @@ -454,7 +453,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}/password/reset/send`, - {method: 'post', body: JSON.stringify({email})} + {method: 'post', body: JSON.stringify({email})}, ); } @@ -463,7 +462,7 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/active`, - {method: 'put', body: JSON.stringify({active})} + {method: 'put', body: JSON.stringify({active})}, ); } @@ -485,7 +484,7 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/image`, - request + request, ); }; @@ -494,42 +493,42 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/image`, - {method: 'delete'} + {method: 'delete'}, ); }; verifyUserEmail = async (token: string) => { return this.doFetch( `${this.getUsersRoute()}/email/verify`, - {method: 'post', body: JSON.stringify({token})} + {method: 'post', body: JSON.stringify({token})}, ); } updateMyTermsOfServiceStatus = async (termsOfServiceId: string, accepted: boolean) => { return this.doFetch( `${this.getUserRoute('me')}/terms_of_service`, - {method: 'post', body: JSON.stringify({termsOfServiceId, accepted})} + {method: 'post', body: JSON.stringify({termsOfServiceId, accepted})}, ); } getTermsOfService = async () => { return this.doFetch( `${this.getBaseRoute()}/terms_of_service`, - {method: 'get'} + {method: 'get'}, ); } createTermsOfService = async (text: string) => { return this.doFetch( `${this.getBaseRoute()}/terms_of_service`, - {method: 'post', body: JSON.stringify({text})} + {method: 'post', body: JSON.stringify({text})}, ); } sendVerificationEmail = async (email: string) => { return this.doFetch( `${this.getUsersRoute()}/email/verify/send`, - {method: 'post', body: JSON.stringify({email})} + {method: 'post', body: JSON.stringify({email})}, ); } @@ -553,7 +552,7 @@ export default class Client4 { const {data} = await this.doFetchWithResponse( `${this.getUsersRoute()}/login`, - {method: 'post', body: JSON.stringify(body)} + {method: 'post', body: JSON.stringify(body)}, ); return data; @@ -570,7 +569,7 @@ export default class Client4 { const {data} = await this.doFetchWithResponse( `${this.getUsersRoute()}/login`, - {method: 'post', body: JSON.stringify(body)} + {method: 'post', body: JSON.stringify(body)}, ); return data; @@ -581,7 +580,7 @@ export default class Client4 { const {response} = await this.doFetchWithResponse( `${this.getUsersRoute()}/logout`, - {method: 'post'} + {method: 'post'}, ); if (response.ok) { @@ -598,7 +597,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}${buildQueryString({page, per_page: perPage, ...options})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -607,7 +606,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}/ids${buildQueryString(options)}`, - {method: 'post', body: JSON.stringify(userIds)} + {method: 'post', body: JSON.stringify(userIds)}, ); }; @@ -616,7 +615,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}/usernames`, - {method: 'post', body: JSON.stringify(usernames)} + {method: 'post', body: JSON.stringify(usernames)}, ); }; @@ -625,7 +624,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}${buildQueryString({...options, in_team: teamId, page, per_page: perPage, sort})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -639,7 +638,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}${buildQueryString(queryStringObj)}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -648,7 +647,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}${buildQueryString({...options, without_team: 1, page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -664,7 +663,7 @@ export default class Client4 { } return this.doFetch( `${this.getUsersRoute()}${buildQueryString(queryStringObj)}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -673,7 +672,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}/group_channels`, - {method: 'post', body: JSON.stringify(channelsIds)} + {method: 'post', body: JSON.stringify(channelsIds)}, ); }; @@ -687,35 +686,35 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}${buildQueryString(queryStringObj)}`, - {method: 'get'} + {method: 'get'}, ); }; getMe = async () => { return this.doFetch( `${this.getUserRoute('me')}`, - {method: 'get'} + {method: 'get'}, ); }; getUser = async (userId: string) => { return this.doFetch( `${this.getUserRoute(userId)}`, - {method: 'get'} + {method: 'get'}, ); }; getUserByUsername = async (username: string) => { return this.doFetch( `${this.getUsersRoute()}/username/${username}`, - {method: 'get'} + {method: 'get'}, ); }; getUserByEmail = async (email: string) => { return this.doFetch( `${this.getUsersRoute()}/email/${email}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -746,56 +745,56 @@ export default class Client4 { getSessions = async (userId: string) => { return this.doFetch( `${this.getUserRoute(userId)}/sessions`, - {method: 'get'} + {method: 'get'}, ); }; revokeSession = async (userId: string, sessionId: string) => { return this.doFetch( `${this.getUserRoute(userId)}/sessions/revoke`, - {method: 'post', body: JSON.stringify({session_id: sessionId})} + {method: 'post', body: JSON.stringify({session_id: sessionId})}, ); }; revokeAllSessionsForUser = async (userId: string) => { return this.doFetch( `${this.getUserRoute(userId)}/sessions/revoke/all`, - {method: 'post'} + {method: 'post'}, ); }; revokeSessionsForAllUsers = async () => { return this.doFetch( `${this.getUsersRoute()}/sessions/revoke/all`, - {method: 'post'} + {method: 'post'}, ); }; getUserAudits = async (userId: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getUserRoute(userId)}/audits${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; checkUserMfa = async (loginId: string) => { return this.doFetch( `${this.getUsersRoute()}/mfa`, - {method: 'post', body: JSON.stringify({login_id: loginId})} + {method: 'post', body: JSON.stringify({login_id: loginId})}, ); }; generateMfaSecret = async (userId: string) => { return this.doFetch( `${this.getUserRoute(userId)}/mfa/generate`, - {method: 'post'} + {method: 'post'}, ); }; attachDevice = async (deviceId: string) => { return this.doFetch( `${this.getUsersRoute()}/sessions/device`, - {method: 'put', body: JSON.stringify({device_id: deviceId})} + {method: 'put', body: JSON.stringify({device_id: deviceId})}, ); }; @@ -804,28 +803,28 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}/search`, - {method: 'post', body: JSON.stringify({term, ...options})} + {method: 'post', body: JSON.stringify({term, ...options})}, ); }; getStatusesByIds = async (userIds: string[]) => { return this.doFetch( `${this.getUsersRoute()}/status/ids`, - {method: 'post', body: JSON.stringify(userIds)} + {method: 'post', body: JSON.stringify(userIds)}, ); }; getStatus = async (userId: string) => { return this.doFetch( `${this.getUserRoute(userId)}/status`, - {method: 'get'} + {method: 'get'}, ); }; updateStatus = async (status: UserStatus) => { return this.doFetch( `${this.getUserRoute(status.user_id)}/status`, - {method: 'put', body: JSON.stringify(status)} + {method: 'put', body: JSON.stringify(status)}, ); }; @@ -834,7 +833,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}/login/switch`, - {method: 'post', body: JSON.stringify({current_service: 'email', new_service: service, email, password, mfa_code: mfaCode})} + {method: 'post', body: JSON.stringify({current_service: 'email', new_service: service, email, password, mfa_code: mfaCode})}, ); }; @@ -843,7 +842,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}/login/switch`, - {method: 'post', body: JSON.stringify({current_service: currentService, new_service: 'email', email, new_password: password})} + {method: 'post', body: JSON.stringify({current_service: currentService, new_service: 'email', email, new_password: password})}, ); }; @@ -852,7 +851,7 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}/login/switch`, - {method: 'post', body: JSON.stringify({current_service: 'email', new_service: 'ldap', email, password: emailPassword, ldap_id: ldapId, new_password: ldapPassword, mfa_code: mfaCode})} + {method: 'post', body: JSON.stringify({current_service: 'email', new_service: 'ldap', email, password: emailPassword, ldap_id: ldapId, new_password: ldapPassword, mfa_code: mfaCode})}, ); }; @@ -861,28 +860,28 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}/login/switch`, - {method: 'post', body: JSON.stringify({current_service: 'ldap', new_service: 'email', email, password: ldapPassword, new_password: emailPassword, mfa_code: mfaCode})} + {method: 'post', body: JSON.stringify({current_service: 'ldap', new_service: 'email', email, password: ldapPassword, new_password: emailPassword, mfa_code: mfaCode})}, ); }; getAuthorizedOAuthApps = async (userId: string) => { return this.doFetch( `${this.getUserRoute(userId)}/oauth/apps/authorized`, - {method: 'get'} + {method: 'get'}, ); } authorizeOAuthApp = async (responseType: string, clientId: string, redirectUri: string, state: string, scope: string) => { return this.doFetch( `${this.url}/oauth/authorize`, - {method: 'post', body: JSON.stringify({client_id: clientId, response_type: responseType, redirect_uri: redirectUri, state, scope})} + {method: 'post', body: JSON.stringify({client_id: clientId, response_type: responseType, redirect_uri: redirectUri, state, scope})}, ); } deauthorizeOAuthApp = async (clientId: string) => { return this.doFetch( `${this.url}/oauth/deauthorize`, - {method: 'post', body: JSON.stringify({client_id: clientId})} + {method: 'post', body: JSON.stringify({client_id: clientId})}, ); } @@ -891,28 +890,28 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/tokens`, - {method: 'post', body: JSON.stringify({description})} + {method: 'post', body: JSON.stringify({description})}, ); } getUserAccessToken = async (tokenId: string) => { return this.doFetch( `${this.getUsersRoute()}/tokens/${tokenId}`, - {method: 'get'} + {method: 'get'}, ); } getUserAccessTokensForUser = async (userId: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getUserRoute(userId)}/tokens${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); } getUserAccessTokens = async (page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getUsersRoute()}/tokens${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); } @@ -921,21 +920,21 @@ export default class Client4 { return this.doFetch( `${this.getUsersRoute()}/tokens/revoke`, - {method: 'post', body: JSON.stringify({token_id: tokenId})} + {method: 'post', body: JSON.stringify({token_id: tokenId})}, ); } disableUserAccessToken = async (tokenId: string) => { return this.doFetch( `${this.getUsersRoute()}/tokens/disable`, - {method: 'post', body: JSON.stringify({token_id: tokenId})} + {method: 'post', body: JSON.stringify({token_id: tokenId})}, ); } enableUserAccessToken = async (tokenId: string) => { return this.doFetch( `${this.getUsersRoute()}/tokens/enable`, - {method: 'post', body: JSON.stringify({token_id: tokenId})} + {method: 'post', body: JSON.stringify({token_id: tokenId})}, ); } @@ -946,7 +945,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamsRoute()}`, - {method: 'post', body: JSON.stringify(team)} + {method: 'post', body: JSON.stringify(team)}, ); }; @@ -955,7 +954,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(teamId)}`, - {method: 'delete'} + {method: 'delete'}, ); }; @@ -964,7 +963,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(team.id)}`, - {method: 'put', body: JSON.stringify(team)} + {method: 'put', body: JSON.stringify(team)}, ); }; @@ -973,7 +972,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(team.id)}/patch`, - {method: 'put', body: JSON.stringify(team)} + {method: 'put', body: JSON.stringify(team)}, ); }; @@ -982,7 +981,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(teamId)}/regenerate_invite_id`, - {method: 'post'} + {method: 'post'}, ); }; @@ -993,21 +992,21 @@ export default class Client4 { return this.doFetch( `${this.getTeamSchemeRoute(teamId)}`, - {method: 'put', body: JSON.stringify(patch)} + {method: 'put', body: JSON.stringify(patch)}, ); }; checkIfTeamExists = async (teamName: string) => { return this.doFetch( `${this.getTeamNameRoute(teamName)}/exists`, - {method: 'get'} + {method: 'get'}, ); }; getTeams = async (page = 0, perPage = PER_PAGE_DEFAULT, includeTotalCount = false) => { return this.doFetch( `${this.getTeamsRoute()}${buildQueryString({page, per_page: perPage, include_total_count: includeTotalCount})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1016,14 +1015,14 @@ export default class Client4 { return this.doFetch( `${this.getTeamsRoute()}/search`, - {method: 'post', body: JSON.stringify({term, page, per_page: perPage})} + {method: 'post', body: JSON.stringify({term, page, per_page: perPage})}, ); }; getTeam = async (teamId: string) => { return this.doFetch( this.getTeamRoute(teamId), - {method: 'get'} + {method: 'get'}, ); }; @@ -1032,63 +1031,63 @@ export default class Client4 { return this.doFetch( this.getTeamNameRoute(teamName), - {method: 'get'} + {method: 'get'}, ); }; getMyTeams = async () => { return this.doFetch( `${this.getUserRoute('me')}/teams`, - {method: 'get'} + {method: 'get'}, ); }; getTeamsForUser = async (userId: string) => { return this.doFetch( `${this.getUserRoute(userId)}/teams`, - {method: 'get'} + {method: 'get'}, ); }; getMyTeamMembers = async () => { return this.doFetch( `${this.getUserRoute('me')}/teams/members`, - {method: 'get'} + {method: 'get'}, ); }; getMyTeamUnreads = async () => { return this.doFetch( `${this.getUserRoute('me')}/teams/unread`, - {method: 'get'} + {method: 'get'}, ); }; getTeamMembers = async (teamId: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getTeamMembersRoute(teamId)}${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getTeamMembersForUser = async (userId: string) => { return this.doFetch( `${this.getUserRoute(userId)}/teams/members`, - {method: 'get'} + {method: 'get'}, ); }; getTeamMember = async (teamId: string, userId: string) => { return this.doFetch( `${this.getTeamMemberRoute(teamId, userId)}`, - {method: 'get'} + {method: 'get'}, ); }; getTeamMembersByIds = async (teamId: string, userIds: string[]) => { return this.doFetch( `${this.getTeamMembersRoute(teamId)}/ids`, - {method: 'post', body: JSON.stringify(userIds)} + {method: 'post', body: JSON.stringify(userIds)}, ); }; @@ -1098,7 +1097,7 @@ export default class Client4 { const member = {user_id: userId, team_id: teamId}; return this.doFetch( `${this.getTeamMembersRoute(teamId)}`, - {method: 'post', body: JSON.stringify(member)} + {method: 'post', body: JSON.stringify(member)}, ); }; @@ -1108,7 +1107,7 @@ export default class Client4 { const query = buildQueryString({token, invite_id: inviteId}); return this.doFetch( `${this.getTeamsRoute()}/members/invite${query}`, - {method: 'post'} + {method: 'post'}, ); }; @@ -1119,7 +1118,7 @@ export default class Client4 { userIds.forEach((id) => members.push({team_id: teamId, user_id: id})); return this.doFetch( `${this.getTeamMembersRoute(teamId)}/batch`, - {method: 'post', body: JSON.stringify(members)} + {method: 'post', body: JSON.stringify(members)}, ); }; @@ -1130,7 +1129,7 @@ export default class Client4 { userIds.forEach((id) => members.push({team_id: teamId, user_id: id})); return this.doFetch( `${this.getTeamMembersRoute(teamId)}/batch?graceful=true`, - {method: 'post', body: JSON.stringify(members)} + {method: 'post', body: JSON.stringify(members)}, ); }; @@ -1138,7 +1137,7 @@ export default class Client4 { const query = buildQueryString({invite_id: inviteId}); return this.doFetch( `${this.getTeamsRoute()}/members/invite${query}`, - {method: 'post'} + {method: 'post'}, ); }; @@ -1147,35 +1146,35 @@ export default class Client4 { return this.doFetch( `${this.getTeamMemberRoute(teamId, userId)}`, - {method: 'delete'} + {method: 'delete'}, ); }; getTeamStats = async (teamId: string) => { return this.doFetch( `${this.getTeamRoute(teamId)}/stats`, - {method: 'get'} + {method: 'get'}, ); }; getTotalUsersStats = async () => { return this.doFetch( `${this.getUsersRoute()}/stats`, - {method: 'get'} + {method: 'get'}, ); }; invalidateAllEmailInvites = async () => { return this.doFetch( `${this.getTeamsRoute()}/invites/email`, - {method: 'delete'} + {method: 'delete'}, ); }; getTeamInviteInfo = async (inviteId: string) => { return this.doFetch( `${this.getTeamsRoute()}/invite/${inviteId}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1184,7 +1183,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamMemberRoute(teamId, userId)}/roles`, - {method: 'put', body: JSON.stringify({roles})} + {method: 'put', body: JSON.stringify({roles})}, ); }; @@ -1193,7 +1192,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(teamId)}/invite/email`, - {method: 'post', body: JSON.stringify(emails)} + {method: 'post', body: JSON.stringify(emails)}, ); }; @@ -1202,7 +1201,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(teamId)}/invite-guests/email`, - {method: 'post', body: JSON.stringify({emails, channels: channelIds, message})} + {method: 'post', body: JSON.stringify({emails, channels: channelIds, message})}, ); }; @@ -1211,7 +1210,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(teamId)}/invite/email?graceful=true`, - {method: 'post', body: JSON.stringify(emails)} + {method: 'post', body: JSON.stringify(emails)}, ); }; @@ -1220,7 +1219,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(teamId)}/invite-guests/email?graceful=true`, - {method: 'post', body: JSON.stringify({emails, channels: channelIds, message})} + {method: 'post', body: JSON.stringify({emails, channels: channelIds, message})}, ); }; @@ -1243,7 +1242,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(teamId)}/import`, - request + request, ); }; @@ -1275,7 +1274,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(teamId)}/image`, - request + request, ); }; @@ -1284,7 +1283,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(teamId)}/image`, - {method: 'delete'} + {method: 'delete'}, ); }; @@ -1292,7 +1291,7 @@ export default class Client4 { const body = {scheme_user: isSchemeUser, scheme_admin: isSchemeAdmin}; return this.doFetch( `${this.getTeamRoute(teamId)}/members/${userId}/schemeRoles`, - {method: 'put', body: JSON.stringify(body)} + {method: 'put', body: JSON.stringify(body)}, ); }; @@ -1308,7 +1307,7 @@ export default class Client4 { }; return this.doFetch( `${this.getChannelsRoute()}${buildQueryString(queryData)}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1317,7 +1316,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelsRoute()}`, - {method: 'post', body: JSON.stringify(channel)} + {method: 'post', body: JSON.stringify(channel)}, ); }; @@ -1326,7 +1325,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelsRoute()}/direct`, - {method: 'post', body: JSON.stringify(userIds)} + {method: 'post', body: JSON.stringify(userIds)}, ); }; @@ -1335,7 +1334,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelsRoute()}/group`, - {method: 'post', body: JSON.stringify(userIds)} + {method: 'post', body: JSON.stringify(userIds)}, ); }; @@ -1344,7 +1343,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelRoute(channelId)}`, - {method: 'delete'} + {method: 'delete'}, ); }; @@ -1353,7 +1352,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelRoute(channelId)}/restore`, - {method: 'post'} + {method: 'post'}, ); }; @@ -1362,7 +1361,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelRoute(channel.id)}`, - {method: 'put', body: JSON.stringify(channel)} + {method: 'put', body: JSON.stringify(channel)}, ); }; @@ -1371,7 +1370,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelRoute(channelId)}/convert`, - {method: 'post'} + {method: 'post'}, ); }; @@ -1380,7 +1379,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelRoute(channelId)}/privacy`, - {method: 'put', body: JSON.stringify({privacy})} + {method: 'put', body: JSON.stringify({privacy})}, ); }; @@ -1389,7 +1388,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelRoute(channelId)}/patch`, - {method: 'put', body: JSON.stringify(channelPatch)} + {method: 'put', body: JSON.stringify(channelPatch)}, ); }; @@ -1398,7 +1397,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelMemberRoute(props.channel_id, props.user_id)}/notify_props`, - {method: 'put', body: JSON.stringify(props)} + {method: 'put', body: JSON.stringify(props)}, ); }; @@ -1409,7 +1408,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelSchemeRoute(channelId)}`, - {method: 'put', body: JSON.stringify(patch)} + {method: 'put', body: JSON.stringify(patch)}, ); }; @@ -1418,14 +1417,14 @@ export default class Client4 { return this.doFetch( `${this.getChannelRoute(channelId)}`, - {method: 'get'} + {method: 'get'}, ); }; getChannelByName = async (teamId: string, channelName: string, includeDeleted = false) => { return this.doFetch( `${this.getTeamRoute(teamId)}/channels/name/${channelName}?include_deleted=${includeDeleted}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1434,69 +1433,69 @@ export default class Client4 { return this.doFetch( `${this.getTeamNameRoute(teamName)}/channels/name/${channelName}?include_deleted=${includeDeleted}`, - {method: 'get'} + {method: 'get'}, ); }; getChannels = async (teamId: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getTeamRoute(teamId)}/channels${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getArchivedChannels = async (teamId: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getTeamRoute(teamId)}/channels/deleted${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getMyChannels = async (teamId: string, includeDeleted = false) => { return this.doFetch( `${this.getUserRoute('me')}/teams/${teamId}/channels${buildQueryString({include_deleted: includeDeleted})}`, - {method: 'get'} + {method: 'get'}, ); }; getMyChannelMember = async (channelId: string) => { return this.doFetch( `${this.getChannelMemberRoute(channelId, 'me')}`, - {method: 'get'} + {method: 'get'}, ); }; getMyChannelMembers = async (teamId: string) => { return this.doFetch( `${this.getUserRoute('me')}/teams/${teamId}/channels/members`, - {method: 'get'} + {method: 'get'}, ); }; getChannelMembers = async (channelId: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getChannelMembersRoute(channelId)}${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getChannelTimezones = async (channelId: string) => { return this.doFetch( `${this.getChannelRoute(channelId)}/timezones`, - {method: 'get'} + {method: 'get'}, ); }; getChannelMember = async (channelId: string, userId: string) => { return this.doFetch( `${this.getChannelMemberRoute(channelId, userId)}`, - {method: 'get'} + {method: 'get'}, ); }; getChannelMembersByIds = async (channelId: string, userIds: string[]) => { return this.doFetch( `${this.getChannelMembersRoute(channelId)}/ids`, - {method: 'post', body: JSON.stringify(userIds)} + {method: 'post', body: JSON.stringify(userIds)}, ); }; @@ -1506,7 +1505,7 @@ export default class Client4 { const member = {user_id: userId, channel_id: channelId, post_root_id: postRootId}; return this.doFetch( `${this.getChannelMembersRoute(channelId)}`, - {method: 'post', body: JSON.stringify(member)} + {method: 'post', body: JSON.stringify(member)}, ); }; @@ -1515,35 +1514,35 @@ export default class Client4 { return this.doFetch( `${this.getChannelMemberRoute(channelId, userId)}`, - {method: 'delete'} + {method: 'delete'}, ); }; updateChannelMemberRoles = async (channelId: string, userId: string, roles: string) => { return this.doFetch( `${this.getChannelMemberRoute(channelId, userId)}/roles`, - {method: 'put', body: JSON.stringify({roles})} + {method: 'put', body: JSON.stringify({roles})}, ); }; getChannelStats = async (channelId: string) => { return this.doFetch( `${this.getChannelRoute(channelId)}/stats`, - {method: 'get'} + {method: 'get'}, ); }; getChannelModerations = async (channelId: string) => { return this.doFetch( `${this.getChannelRoute(channelId)}/moderations`, - {method: 'get'} + {method: 'get'}, ); }; patchChannelModerations = async (channelId: string, channelModerationsPatch: Array) => { return this.doFetch( `${this.getChannelRoute(channelId)}/moderations/patch`, - {method: 'put', body: JSON.stringify(channelModerationsPatch)} + {method: 'put', body: JSON.stringify(channelModerationsPatch)}, ); }; @@ -1551,35 +1550,35 @@ export default class Client4 { const data = {channel_id: channelId, prev_channel_id: prevChannelId}; return this.doFetch( `${this.getChannelsRoute()}/members/me/view`, - {method: 'post', body: JSON.stringify(data)} + {method: 'post', body: JSON.stringify(data)}, ); }; autocompleteChannels = async (teamId: string, name: string) => { return this.doFetch( `${this.getTeamRoute(teamId)}/channels/autocomplete${buildQueryString({name})}`, - {method: 'get'} + {method: 'get'}, ); }; autocompleteChannelsForSearch = async (teamId: string, name: string) => { return this.doFetch( `${this.getTeamRoute(teamId)}/channels/search_autocomplete${buildQueryString({name})}`, - {method: 'get'} + {method: 'get'}, ); }; searchChannels = async (teamId: string, term: string) => { return this.doFetch( `${this.getTeamRoute(teamId)}/channels/search`, - {method: 'post', body: JSON.stringify({term})} + {method: 'post', body: JSON.stringify({term})}, ); }; searchArchivedChannels = async (teamId: string, term: string) => { return this.doFetch( `${this.getTeamRoute(teamId)}/channels/search_archived`, - {method: 'post', body: JSON.stringify({term})} + {method: 'post', body: JSON.stringify({term})}, ); }; @@ -1593,14 +1592,14 @@ export default class Client4 { }; return this.doFetch( `${this.getChannelsRoute()}/search`, - {method: 'post', body: JSON.stringify(body)} + {method: 'post', body: JSON.stringify(body)}, ); }; searchGroupChannels = async (term: string) => { return this.doFetch( `${this.getChannelsRoute()}/group/search`, - {method: 'post', body: JSON.stringify({term})} + {method: 'post', body: JSON.stringify({term})}, ); }; @@ -1608,7 +1607,7 @@ export default class Client4 { const body = {scheme_user: isSchemeUser, scheme_admin: isSchemeAdmin}; return this.doFetch( `${this.getChannelRoute(channelId)}/members/${userId}/schemeRoles`, - {method: 'put', body: JSON.stringify(body)} + {method: 'put', body: JSON.stringify(body)}, ); }; @@ -1623,7 +1622,7 @@ export default class Client4 { return this.doFetch( `${this.getPostsRoute()}`, - {method: 'post', body: JSON.stringify(post)} + {method: 'post', body: JSON.stringify(post)}, ); }; @@ -1632,14 +1631,14 @@ export default class Client4 { return this.doFetch( `${this.getPostRoute(post.id)}`, - {method: 'put', body: JSON.stringify(post)} + {method: 'put', body: JSON.stringify(post)}, ); }; getPost = async (postId: string) => { return this.doFetch( `${this.getPostRoute(postId)}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1648,7 +1647,7 @@ export default class Client4 { return this.doFetch( `${this.getPostRoute(postPatch.id)}/patch`, - {method: 'put', body: JSON.stringify(postPatch)} + {method: 'put', body: JSON.stringify(postPatch)}, ); }; @@ -1657,35 +1656,35 @@ export default class Client4 { return this.doFetch( `${this.getPostRoute(postId)}`, - {method: 'delete'} + {method: 'delete'}, ); }; getPostThread = async (postId: string) => { return this.doFetch( `${this.getPostRoute(postId)}/thread`, - {method: 'get'} + {method: 'get'}, ); }; getPosts = async (channelId: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getChannelRoute(channelId)}/posts${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getPostsUnread = async (channelId: string, userId: string, limitAfter = DEFAULT_LIMIT_AFTER, limitBefore = DEFAULT_LIMIT_BEFORE) => { return this.doFetch( `${this.getUserRoute(userId)}/channels/${channelId}/posts/unread${buildQueryString({limit_after: limitAfter, limit_before: limitBefore})}`, - {method: 'get'} + {method: 'get'}, ); }; getPostsSince = async (channelId: string, since: number) => { return this.doFetch( `${this.getChannelRoute(channelId)}/posts${buildQueryString({since})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1694,7 +1693,7 @@ export default class Client4 { return this.doFetch( `${this.getChannelRoute(channelId)}/posts${buildQueryString({before: postId, page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1703,14 +1702,14 @@ export default class Client4 { return this.doFetch( `${this.getChannelRoute(channelId)}/posts${buildQueryString({after: postId, page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getFileInfosForPost = async (postId: string) => { return this.doFetch( `${this.getPostRoute(postId)}/files/info`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1719,7 +1718,7 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/posts/flagged${buildQueryString({channel_id: channelId, team_id: teamId, page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1727,7 +1726,7 @@ export default class Client4 { this.trackEvent('api', 'api_posts_get_pinned', {channel_id: channelId}); return this.doFetch( `${this.getChannelRoute(channelId)}/pinned`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1736,7 +1735,7 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/posts/${postId}/set_unread`, - {method: 'post'} + {method: 'post'}, ); } @@ -1745,7 +1744,7 @@ export default class Client4 { return this.doFetch( `${this.getPostRoute(postId)}/pin`, - {method: 'post'} + {method: 'post'}, ); }; @@ -1754,7 +1753,7 @@ export default class Client4 { return this.doFetch( `${this.getPostRoute(postId)}/unpin`, - {method: 'post'} + {method: 'post'}, ); }; @@ -1763,7 +1762,7 @@ export default class Client4 { return this.doFetch( `${this.getReactionsRoute()}`, - {method: 'post', body: JSON.stringify({user_id: userId, post_id: postId, emoji_name: emojiName})} + {method: 'post', body: JSON.stringify({user_id: userId, post_id: postId, emoji_name: emojiName})}, ); }; @@ -1772,14 +1771,14 @@ export default class Client4 { return this.doFetch( `${this.getUserRoute(userId)}/posts/${postId}/reactions/${emojiName}`, - {method: 'delete'} + {method: 'delete'}, ); }; getReactionsForPost = async (postId: string) => { return this.doFetch( `${this.getPostRoute(postId)}/reactions`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1788,7 +1787,7 @@ export default class Client4 { return this.doFetch( `${this.getTeamRoute(teamId)}/posts/search`, - {method: 'post', body: JSON.stringify(params)} + {method: 'post', body: JSON.stringify(params)}, ); }; @@ -1799,7 +1798,7 @@ export default class Client4 { getOpenGraphMetadata = async (url: string) => { return this.doFetch( `${this.getBaseRoute()}/opengraph`, - {method: 'post', body: JSON.stringify({url})} + {method: 'post', body: JSON.stringify({url})}, ); }; @@ -1822,7 +1821,7 @@ export default class Client4 { } return this.doFetch( `${this.getPostRoute(postId)}/actions/${encodeURIComponent(actionId)}`, - {method: 'post', body: JSON.stringify(msg)} + {method: 'post', body: JSON.stringify(msg)}, ); }; @@ -1870,14 +1869,14 @@ export default class Client4 { return this.doFetch( `${this.getFilesRoute()}`, - request + request, ); }; getFilePublicLink = async (fileId: string) => { return this.doFetch( `${this.getFileRoute(fileId)}/link`, - {method: 'get'} + {method: 'get'}, ); } @@ -1886,21 +1885,21 @@ export default class Client4 { savePreferences = async (userId: string, preferences: PreferenceType[]) => { return this.doFetch( `${this.getPreferencesRoute(userId)}`, - {method: 'put', body: JSON.stringify(preferences)} + {method: 'put', body: JSON.stringify(preferences)}, ); }; getMyPreferences = async () => { return this.doFetch( `${this.getPreferencesRoute('me')}`, - {method: 'get'} + {method: 'get'}, ); }; deletePreferences = async (userId: string, preferences: PreferenceType[]) => { return this.doFetch( `${this.getPreferencesRoute(userId)}/delete`, - {method: 'post', body: JSON.stringify(preferences)} + {method: 'post', body: JSON.stringify(preferences)}, ); }; @@ -1909,7 +1908,7 @@ export default class Client4 { ping = async () => { return this.doFetch( `${this.getBaseRoute()}/system/ping?time=${Date.now()}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1925,28 +1924,28 @@ export default class Client4 { return this.doFetch( url, - {method: 'post', body: JSON.stringify({message, level})} + {method: 'post', body: JSON.stringify({message, level})}, ); }; getClientConfigOld = async () => { return this.doFetch( `${this.getBaseRoute()}/config/client?format=old`, - {method: 'get'} + {method: 'get'}, ); }; getClientLicenseOld = async () => { return this.doFetch( `${this.getBaseRoute()}/license/client?format=old`, - {method: 'get'} + {method: 'get'}, ); }; getTranslations = async (url: string) => { return this.doFetch( url, - {method: 'get'} + {method: 'get'}, ); }; @@ -1957,7 +1956,7 @@ export default class Client4 { webrtcToken = async () => { return this.doFetch( `${this.getBaseRoute()}/webrtc/token`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1968,14 +1967,14 @@ export default class Client4 { return this.doFetch( `${this.getIncomingHooksRoute()}`, - {method: 'post', body: JSON.stringify(hook)} + {method: 'post', body: JSON.stringify(hook)}, ); }; getIncomingWebhook = async (hookId: string) => { return this.doFetch( `${this.getIncomingHookRoute(hookId)}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -1991,7 +1990,7 @@ export default class Client4 { return this.doFetch( `${this.getIncomingHooksRoute()}${buildQueryString(queryParams)}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2000,7 +1999,7 @@ export default class Client4 { return this.doFetch( `${this.getIncomingHookRoute(hookId)}`, - {method: 'delete'} + {method: 'delete'}, ); }; @@ -2009,7 +2008,7 @@ export default class Client4 { return this.doFetch( `${this.getIncomingHookRoute(hook.id)}`, - {method: 'put', body: JSON.stringify(hook)} + {method: 'put', body: JSON.stringify(hook)}, ); }; @@ -2018,14 +2017,14 @@ export default class Client4 { return this.doFetch( `${this.getOutgoingHooksRoute()}`, - {method: 'post', body: JSON.stringify(hook)} + {method: 'post', body: JSON.stringify(hook)}, ); }; getOutgoingWebhook = async (hookId: string) => { return this.doFetch( `${this.getOutgoingHookRoute(hookId)}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2045,7 +2044,7 @@ export default class Client4 { return this.doFetch( `${this.getOutgoingHooksRoute()}${buildQueryString(queryParams)}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2054,7 +2053,7 @@ export default class Client4 { return this.doFetch( `${this.getOutgoingHookRoute(hookId)}`, - {method: 'delete'} + {method: 'delete'}, ); }; @@ -2063,35 +2062,35 @@ export default class Client4 { return this.doFetch( `${this.getOutgoingHookRoute(hook.id)}`, - {method: 'put', body: JSON.stringify(hook)} + {method: 'put', body: JSON.stringify(hook)}, ); }; regenOutgoingHookToken = async (id: string) => { return this.doFetch( `${this.getOutgoingHookRoute(id)}/regen_token`, - {method: 'post'} + {method: 'post'}, ); }; getCommandsList = async (teamId: string) => { return this.doFetch( `${this.getCommandsRoute()}?team_id=${teamId}`, - {method: 'get'} + {method: 'get'}, ); }; getAutocompleteCommandsList = async (teamId: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getTeamRoute(teamId)}/commands/autocomplete${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getCustomTeamCommands = async (teamId: string) => { return this.doFetch( `${this.getCommandsRoute()}?team_id=${teamId}&custom_only=true`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2100,7 +2099,7 @@ export default class Client4 { return this.doFetch( `${this.getCommandsRoute()}/execute`, - {method: 'post', body: JSON.stringify({command, ...commandArgs})} + {method: 'post', body: JSON.stringify({command, ...commandArgs})}, ); }; @@ -2109,7 +2108,7 @@ export default class Client4 { return this.doFetch( `${this.getCommandsRoute()}`, - {method: 'post', body: JSON.stringify(command)} + {method: 'post', body: JSON.stringify(command)}, ); }; @@ -2118,14 +2117,14 @@ export default class Client4 { return this.doFetch( `${this.getCommandsRoute()}/${command.id}`, - {method: 'put', body: JSON.stringify(command)} + {method: 'put', body: JSON.stringify(command)}, ); }; regenCommandToken = async (id: string) => { return this.doFetch( `${this.getCommandsRoute()}/${id}/regen_token`, - {method: 'put'} + {method: 'put'}, ); }; @@ -2134,7 +2133,7 @@ export default class Client4 { return this.doFetch( `${this.getCommandsRoute()}/${id}`, - {method: 'delete'} + {method: 'delete'}, ); }; @@ -2143,35 +2142,35 @@ export default class Client4 { return this.doFetch( `${this.getOAuthAppsRoute()}`, - {method: 'post', body: JSON.stringify(app)} + {method: 'post', body: JSON.stringify(app)}, ); }; editOAuthApp = async (app: OAuthApp) => { return this.doFetch( `${this.getOAuthAppsRoute()}/${app.id}`, - {method: 'put', body: JSON.stringify(app)} + {method: 'put', body: JSON.stringify(app)}, ); }; getOAuthApps = async (page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getOAuthAppsRoute()}${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getOAuthApp = async (appId: string) => { return this.doFetch( `${this.getOAuthAppRoute(appId)}`, - {method: 'get'} + {method: 'get'}, ); }; getOAuthAppInfo = async (appId: string) => { return this.doFetch( `${this.getOAuthAppRoute(appId)}/info`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2180,14 +2179,14 @@ export default class Client4 { return this.doFetch( `${this.getOAuthAppRoute(appId)}`, - {method: 'delete'} + {method: 'delete'}, ); }; regenOAuthAppSecret = async (appId: string) => { return this.doFetch( `${this.getOAuthAppRoute(appId)}/regen_secret`, - {method: 'post'} + {method: 'post'}, ); }; @@ -2220,28 +2219,28 @@ export default class Client4 { return this.doFetch( `${this.getEmojisRoute()}`, - request + request, ); }; getCustomEmoji = async (id: string) => { return this.doFetch( `${this.getEmojisRoute()}/${id}`, - {method: 'get'} + {method: 'get'}, ); }; getCustomEmojiByName = async (name: string) => { return this.doFetch( `${this.getEmojisRoute()}/name/${name}`, - {method: 'get'} + {method: 'get'}, ); }; getCustomEmojis = async (page = 0, perPage = PER_PAGE_DEFAULT, sort = '') => { return this.doFetch( `${this.getEmojisRoute()}${buildQueryString({page, per_page: perPage, sort})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2250,7 +2249,7 @@ export default class Client4 { return this.doFetch( `${this.getEmojiRoute(emojiId)}`, - {method: 'delete'} + {method: 'delete'}, ); }; @@ -2265,14 +2264,14 @@ export default class Client4 { searchCustomEmoji = async (term: string, options = {}) => { return this.doFetch( `${this.getEmojisRoute()}/search`, - {method: 'post', body: JSON.stringify({term, ...options})} + {method: 'post', body: JSON.stringify({term, ...options})}, ); }; autocompleteCustomEmoji = async (name: string) => { return this.doFetch( `${this.getEmojisRoute()}/autocomplete${buildQueryString({name})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2281,7 +2280,7 @@ export default class Client4 { getTimezones = async () => { return this.doFetch( `${this.getTimezonesRoute()}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2290,7 +2289,7 @@ export default class Client4 { getDataRetentionPolicy = () => { return this.doFetch( `${this.getDataRetentionRoute()}/policy`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2299,35 +2298,35 @@ export default class Client4 { getJob = async (id: string) => { return this.doFetch( `${this.getJobsRoute()}/${id}`, - {method: 'get'} + {method: 'get'}, ); }; getJobs = async (page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getJobsRoute()}${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getJobsByType = async (type: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getJobsRoute()}/type/${type}${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; createJob = async (job: Job) => { return this.doFetch( `${this.getJobsRoute()}`, - {method: 'post', body: JSON.stringify(job)} + {method: 'post', body: JSON.stringify(job)}, ); }; cancelJob = async (id: string) => { return this.doFetch( `${this.getJobsRoute()}/${id}/cancel`, - {method: 'post'} + {method: 'post'}, ); }; @@ -2336,98 +2335,98 @@ export default class Client4 { getLogs = async (page = 0, perPage = LOGS_PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getBaseRoute()}/logs${buildQueryString({page, logs_per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getAudits = async (page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getBaseRoute()}/audits${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getConfig = async () => { return this.doFetch( `${this.getBaseRoute()}/config`, - {method: 'get'} + {method: 'get'}, ); }; updateConfig = async (config: Config) => { return this.doFetch( `${this.getBaseRoute()}/config`, - {method: 'put', body: JSON.stringify(config)} + {method: 'put', body: JSON.stringify(config)}, ); }; reloadConfig = async () => { return this.doFetch( `${this.getBaseRoute()}/config/reload`, - {method: 'post'} + {method: 'post'}, ); }; getEnvironmentConfig = async () => { return this.doFetch( `${this.getBaseRoute()}/config/environment`, - {method: 'get'} + {method: 'get'}, ); }; testEmail = async (config: Config) => { return this.doFetch( `${this.getBaseRoute()}/email/test`, - {method: 'post', body: JSON.stringify(config)} + {method: 'post', body: JSON.stringify(config)}, ); }; testSiteURL = async (siteURL: string) => { return this.doFetch( `${this.getBaseRoute()}/site_url/test`, - {method: 'post', body: JSON.stringify({site_url: siteURL})} + {method: 'post', body: JSON.stringify({site_url: siteURL})}, ); }; testS3Connection = async (config: Config) => { return this.doFetch( `${this.getBaseRoute()}/file/s3_test`, - {method: 'post', body: JSON.stringify(config)} + {method: 'post', body: JSON.stringify(config)}, ); }; invalidateCaches = async () => { return this.doFetch( `${this.getBaseRoute()}/caches/invalidate`, - {method: 'post'} + {method: 'post'}, ); }; recycleDatabase = async () => { return this.doFetch( `${this.getBaseRoute()}/database/recycle`, - {method: 'post'} + {method: 'post'}, ); }; createComplianceReport = async (job: Job) => { return this.doFetch( `${this.getBaseRoute()}/compliance/reports`, - {method: 'post', body: JSON.stringify(job)} + {method: 'post', body: JSON.stringify(job)}, ); }; getComplianceReport = async (reportId: string) => { return this.doFetch( `${this.getBaseRoute()}/compliance/reports/${reportId}`, - {method: 'get'} + {method: 'get'}, ); }; getComplianceReports = async (page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getBaseRoute()}/compliance/reports${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2447,35 +2446,35 @@ export default class Client4 { return this.doFetch( `${this.getBrandRoute()}/image`, - request + request, ); }; deleteBrandImage = async () => { return this.doFetch( `${this.getBrandRoute()}/image`, - {method: 'delete'} + {method: 'delete'}, ); }; getClusterStatus = async () => { return this.doFetch( `${this.getBaseRoute()}/cluster/status`, - {method: 'get'} + {method: 'get'}, ); }; testLdap = async () => { return this.doFetch( `${this.getBaseRoute()}/ldap/test`, - {method: 'post'} + {method: 'post'}, ); }; syncLdap = async () => { return this.doFetch( `${this.getBaseRoute()}/ldap/sync`, - {method: 'post'} + {method: 'post'}, ); }; @@ -2483,28 +2482,28 @@ export default class Client4 { const query = {page, per_page: perPage, ...opts}; return this.doFetch( `${this.getBaseRoute()}/ldap/groups${buildQueryString(query)}`, - {method: 'get'} + {method: 'get'}, ); }; linkLdapGroup = async (key: string) => { return this.doFetch( `${this.getBaseRoute()}/ldap/groups/${encodeURI(key)}/link`, - {method: 'post'} + {method: 'post'}, ); }; unlinkLdapGroup = async (key: string) => { return this.doFetch( `${this.getBaseRoute()}/ldap/groups/${encodeURI(key)}/link`, - {method: 'delete'} + {method: 'delete'}, ); }; getSamlCertificateStatus = async () => { return this.doFetch( `${this.getBaseRoute()}/saml/certificate/status`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2517,7 +2516,7 @@ export default class Client4 { { method: 'post', body: formData, - } + }, ); }; @@ -2530,7 +2529,7 @@ export default class Client4 { { method: 'post', body: formData, - } + }, ); }; @@ -2543,42 +2542,42 @@ export default class Client4 { { method: 'post', body: formData, - } + }, ); }; deletePublicSamlCertificate = async () => { return this.doFetch( `${this.getBaseRoute()}/saml/certificate/public`, - {method: 'delete'} + {method: 'delete'}, ); }; deletePrivateSamlCertificate = async () => { return this.doFetch( `${this.getBaseRoute()}/saml/certificate/private`, - {method: 'delete'} + {method: 'delete'}, ); }; deleteIdpSamlCertificate = async () => { return this.doFetch( `${this.getBaseRoute()}/saml/certificate/idp`, - {method: 'delete'} + {method: 'delete'}, ); }; testElasticsearch = async (config: Config) => { return this.doFetch( `${this.getBaseRoute()}/elasticsearch/test`, - {method: 'post', body: JSON.stringify(config)} + {method: 'post', body: JSON.stringify(config)}, ); }; purgeElasticsearchIndexes = async () => { return this.doFetch( `${this.getBaseRoute()}/elasticsearch/purge_indexes`, - {method: 'post'} + {method: 'post'}, ); }; @@ -2601,21 +2600,21 @@ export default class Client4 { return this.doFetch( `${this.getBaseRoute()}/license`, - request + request, ); }; removeLicense = async () => { return this.doFetch( `${this.getBaseRoute()}/license`, - {method: 'delete'} + {method: 'delete'}, ); }; getAnalytics = async (name = 'standard', teamId = '') => { return this.doFetch( `${this.getBaseRoute()}/analytics/old${buildQueryString({name, team_id: teamId})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2624,28 +2623,28 @@ export default class Client4 { getRole = async (roleId: string) => { return this.doFetch( `${this.getRolesRoute()}/${roleId}`, - {method: 'get'} + {method: 'get'}, ); }; getRoleByName = async (roleName: string) => { return this.doFetch( `${this.getRolesRoute()}/name/${roleName}`, - {method: 'get'} + {method: 'get'}, ); }; getRolesByNames = async (rolesNames: string[]) => { return this.doFetch( `${this.getRolesRoute()}/names`, - {method: 'post', body: JSON.stringify(rolesNames)} + {method: 'post', body: JSON.stringify(rolesNames)}, ); }; patchRole = async (roleId: string, rolePatch: Partial) => { return this.doFetch( `${this.getRolesRoute()}/${roleId}/patch`, - {method: 'put', body: JSON.stringify(rolePatch)} + {method: 'put', body: JSON.stringify(rolePatch)}, ); }; @@ -2654,7 +2653,7 @@ export default class Client4 { getSchemes = async (scope = '', page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getSchemesRoute()}${buildQueryString({scope, page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2663,14 +2662,14 @@ export default class Client4 { return this.doFetch( `${this.getSchemesRoute()}`, - {method: 'post', body: JSON.stringify(scheme)} + {method: 'post', body: JSON.stringify(scheme)}, ); }; getScheme = async (schemeId: string) => { return this.doFetch( `${this.getSchemesRoute()}/${schemeId}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2679,7 +2678,7 @@ export default class Client4 { return this.doFetch( `${this.getSchemesRoute()}/${schemeId}`, - {method: 'delete'} + {method: 'delete'}, ); }; @@ -2688,21 +2687,21 @@ export default class Client4 { return this.doFetch( `${this.getSchemesRoute()}/${schemeId}/patch`, - {method: 'put', body: JSON.stringify(schemePatch)} + {method: 'put', body: JSON.stringify(schemePatch)}, ); }; getSchemeTeams = async (schemeId: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getSchemesRoute()}/${schemeId}/teams${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getSchemeChannels = async (schemeId: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getSchemesRoute()}/${schemeId}/channels${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2730,7 +2729,7 @@ export default class Client4 { return this.doFetch( this.getPluginsRoute(), - request + request, ); }; @@ -2741,21 +2740,21 @@ export default class Client4 { return this.doFetch( `${this.getPluginsRoute()}/install_from_url${buildQueryString(queryParams)}`, - {method: 'post'} + {method: 'post'}, ); }; getPlugins = async () => { return this.doFetch( this.getPluginsRoute(), - {method: 'get'} + {method: 'get'}, ); }; getMarketplacePlugins = async (filter: string, localOnly = false) => { return this.doFetch( `${this.getPluginsMarketplaceRoute()}${buildQueryString({filter: filter || '', local_only: localOnly})}`, - {method: 'get'} + {method: 'get'}, ); } @@ -2764,42 +2763,42 @@ export default class Client4 { return this.doFetch( `${this.getPluginsMarketplaceRoute()}`, - {method: 'post', body: JSON.stringify({id, version})} + {method: 'post', body: JSON.stringify({id, version})}, ); } getPluginStatuses = async () => { return this.doFetch( `${this.getPluginsRoute()}/statuses`, - {method: 'get'} + {method: 'get'}, ); }; removePlugin = async (pluginId: string) => { return this.doFetch( this.getPluginRoute(pluginId), - {method: 'delete'} + {method: 'delete'}, ); }; getWebappPlugins = async () => { return this.doFetch( `${this.getPluginsRoute()}/webapp`, - {method: 'get'} + {method: 'get'}, ); }; enablePlugin = async (pluginId: string) => { return this.doFetch( `${this.getPluginRoute(pluginId)}/enable`, - {method: 'post'} + {method: 'post'}, ); }; disablePlugin = async (pluginId: string) => { return this.doFetch( `${this.getPluginRoute(pluginId)}/disable`, - {method: 'post'} + {method: 'post'}, ); }; @@ -2808,35 +2807,35 @@ export default class Client4 { linkGroupSyncable = async (groupID: string, syncableID: string, syncableType: string, patch: SyncablePatch) => { return this.doFetch( `${this.getBaseRoute()}/groups/${groupID}/${syncableType}s/${syncableID}/link`, - {method: 'post', body: JSON.stringify(patch)} + {method: 'post', body: JSON.stringify(patch)}, ); }; unlinkGroupSyncable = async (groupID: string, syncableID: string, syncableType: string) => { return this.doFetch( `${this.getBaseRoute()}/groups/${groupID}/${syncableType}s/${syncableID}/link`, - {method: 'delete'} + {method: 'delete'}, ); }; getGroupSyncables = async (groupID: string, syncableType: string) => { return this.doFetch( `${this.getBaseRoute()}/groups/${groupID}/${syncableType}s`, - {method: 'get'} + {method: 'get'}, ); }; getGroupMembers = async (groupID: string, page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getBaseRoute()}/groups/${groupID}/members${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); }; getGroup = async (groupID: string) => { return this.doFetch( `${this.getBaseRoute()}/groups/${groupID}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2844,7 +2843,7 @@ export default class Client4 { this.trackEvent('api', 'api_groups_get_not_associated_to_team', {team_id: teamID}); return this.doFetch( `${this.getBaseRoute()}/groups${buildQueryString({not_associated_to_team: teamID, page, per_page: perPage, q, include_member_count: true})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2852,7 +2851,7 @@ export default class Client4 { this.trackEvent('api', 'api_groups_get_not_associated_to_channel', {channel_id: channelID}); return this.doFetch( `${this.getBaseRoute()}/groups${buildQueryString({not_associated_to_channel: channelID, page, per_page: perPage, q, include_member_count: true})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2861,7 +2860,7 @@ export default class Client4 { return this.doFetch( `${this.getBaseRoute()}/teams/${teamID}/groups${buildQueryString({page, per_page: perPage, q, include_member_count: true})}`, - {method: 'get'} + {method: 'get'}, ); }; @@ -2870,28 +2869,28 @@ export default class Client4 { return this.doFetch( `${this.getBaseRoute()}/channels/${channelID}/groups${buildQueryString({page, per_page: perPage, q, include_member_count: true})}`, - {method: 'get'} + {method: 'get'}, ); }; getAllGroupsAssociatedToTeam = async (teamID: string) => { return this.doFetch( `${this.getBaseRoute()}/teams/${teamID}/groups?paginate=false`, - {method: 'get'} + {method: 'get'}, ); }; getAllGroupsAssociatedToChannel = async (channelID: string) => { return this.doFetch( `${this.getBaseRoute()}/channels/${channelID}/groups?paginate=false`, - {method: 'get'} + {method: 'get'}, ); }; patchGroupSyncable = async (groupID: string, syncableID: string, syncableType: string, patch: SyncablePatch) => { return this.doFetch( `${this.getBaseRoute()}/groups/${groupID}/${syncableType}s/${syncableID}/patch`, - {method: 'put', body: JSON.stringify(patch)} + {method: 'put', body: JSON.stringify(patch)}, ); }; @@ -2910,63 +2909,63 @@ export default class Client4 { createBot = async (bot: Bot) => { return this.doFetch( `${this.getBotsRoute()}`, - {method: 'post', body: JSON.stringify(bot)} + {method: 'post', body: JSON.stringify(bot)}, ); } patchBot = async (botUserId: string, botPatch: BotPatch) => { return this.doFetch( `${this.getBotRoute(botUserId)}`, - {method: 'put', body: JSON.stringify(botPatch)} + {method: 'put', body: JSON.stringify(botPatch)}, ); } getBot = async (botUserId: string) => { return this.doFetch( `${this.getBotRoute(botUserId)}`, - {method: 'get'} + {method: 'get'}, ); } getBots = async (page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getBotsRoute()}${buildQueryString({page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); } getBotsIncludeDeleted = async (page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getBotsRoute()}${buildQueryString({include_deleted: true, page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); } getBotsOrphaned = async (page = 0, perPage = PER_PAGE_DEFAULT) => { return this.doFetch( `${this.getBotsRoute()}${buildQueryString({only_orphaned: true, page, per_page: perPage})}`, - {method: 'get'} + {method: 'get'}, ); } disableBot = async (botUserId: string) => { return this.doFetch( `${this.getBotRoute(botUserId)}/disable`, - {method: 'post'} + {method: 'post'}, ); } enableBot = async (botUserId: string) => { return this.doFetch( `${this.getBotRoute(botUserId)}/enable`, - {method: 'post'} + {method: 'post'}, ); } assignBot = async (botUserId: string, newOwnerId: string) => { return this.doFetch( `${this.getBotRoute(botUserId)}/assign/${newOwnerId}`, - {method: 'post'} + {method: 'post'}, ); } @@ -2988,7 +2987,7 @@ export default class Client4 { getSamlMetadataFromIdp = async (samlMetadataURL: string) => { return this.doFetch( - `${this.getBaseRoute()}/saml/metadatafromidp`, {method: 'post', body: JSON.stringify({saml_metadata_url: samlMetadataURL})} + `${this.getBaseRoute()}/saml/metadatafromidp`, {method: 'post', body: JSON.stringify({saml_metadata_url: samlMetadataURL})}, ); }; @@ -3004,7 +3003,7 @@ export default class Client4 { return this.doFetch( `${this.getBaseRoute()}/saml/certificate/idp`, - request + request, ); }; @@ -3147,7 +3146,7 @@ function parseAndMergeNestedHeaders(originalHeaders: any) { const nestedHeaderStrings = val.split('\n'); realVal = nestedHeaderStrings.shift() as string; const moreNestedHeaders = new Map( - nestedHeaderStrings.map((h: any) => h.split(/:\s/)) + nestedHeaderStrings.map((h: any) => h.split(/:\s/)), ); nestedHeaders = new Map([...nestedHeaders, ...moreNestedHeaders]); } diff --git a/app/mm-redux/client/websocket_client.ts b/app/mm-redux/client/websocket_client.ts new file mode 100644 index 000000000..13c3c6178 --- /dev/null +++ b/app/mm-redux/client/websocket_client.ts @@ -0,0 +1,254 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. +const MAX_WEBSOCKET_FAILS = 7; +const MIN_WEBSOCKET_RETRY_TIME = 3000; // 3 sec + +const MAX_WEBSOCKET_RETRY_TIME = 300000; // 5 mins + +let Socket: any; + +class WebSocketClient { + conn?: WebSocket; + connectionUrl: null; + token: string|null; + sequence: number; + connectFailCount: number; + eventCallback?: Function; + firstConnectCallback?: Function; + reconnectCallback?: Function; + errorCallback?: Function; + closeCallback?: Function; + connectingCallback?: Function; + stop: boolean; + platform: string; + connectionTimeout: any; + + constructor() { + this.connectionUrl = null; + this.token = null; + this.sequence = 1; + this.connectFailCount = 0; + this.stop = false; + this.platform = ''; + } + + initialize(token: string|null, opts: any) { + const defaults = { + forceConnection: true, + connectionUrl: this.connectionUrl, + webSocketConnector: WebSocket, + }; + + const {connectionUrl, forceConnection, webSocketConnector, platform, ...additionalOptions} = Object.assign({}, defaults, opts); + + if (platform) { + this.platform = platform; + } + + if (forceConnection) { + this.stop = false; + } + + return new Promise((resolve, reject) => { + if (this.conn) { + resolve(); + return; + } + + if (connectionUrl == null) { + console.log('websocket must have connection url'); //eslint-disable-line no-console + reject(new Error('websocket must have connection url')); + return; + } + + if (this.connectFailCount === 0) { + console.log('websocket connecting to ' + connectionUrl); //eslint-disable-line no-console + } + + Socket = webSocketConnector; + if (this.connectingCallback) { + this.connectingCallback(); + } + + const regex = /^(?:https?|wss?):(?:\/\/)?[^/]*/; + const captured = (regex).exec(connectionUrl); + + let origin; + if (captured) { + origin = captured[0]; + + if (platform === 'android') { + // this is done cause for android having the port 80 or 443 will fail the connection + // the websocket will append them + const split = origin.split(':'); + const port = split[2]; + if (port === '80' || port === '443') { + origin = `${split[0]}:${split[1]}`; + } + } + } else { + // If we're unable to set the origin header, the websocket won't connect, but the URL is likely malformed anyway + const errorMessage = 'websocket failed to parse origin from ' + connectionUrl; + console.warn(errorMessage); // eslint-disable-line no-console + reject(new Error(errorMessage)); + return; + } + + this.conn = new Socket(connectionUrl, [], {headers: {origin}, ...(additionalOptions || {})}); + this.connectionUrl = connectionUrl; + this.token = token; + + this.conn!.onopen = () => { + if (token) { + // we check for the platform as a workaround until we fix on the server that further authentications + // are ignored + this.sendMessage('authentication_challenge', {token}); + } + + if (this.connectFailCount > 0) { + console.log('websocket re-established connection'); //eslint-disable-line no-console + if (this.reconnectCallback) { + this.reconnectCallback(); + } + } else if (this.firstConnectCallback) { + this.firstConnectCallback(); + } + + this.connectFailCount = 0; + resolve(); + }; + + this.conn!.onclose = () => { + this.conn = undefined; + this.sequence = 1; + + if (this.connectFailCount === 0) { + console.log('websocket closed'); //eslint-disable-line no-console + } + + this.connectFailCount++; + + if (this.closeCallback) { + this.closeCallback(this.connectFailCount); + } + + let retryTime = MIN_WEBSOCKET_RETRY_TIME; + + // If we've failed a bunch of connections then start backing off + if (this.connectFailCount > MAX_WEBSOCKET_FAILS) { + retryTime = MIN_WEBSOCKET_RETRY_TIME * this.connectFailCount; + if (retryTime > MAX_WEBSOCKET_RETRY_TIME) { + retryTime = MAX_WEBSOCKET_RETRY_TIME; + } + } + + if (this.connectionTimeout) { + clearTimeout(this.connectionTimeout); + } + + this.connectionTimeout = setTimeout( + () => { + if (this.stop) { + clearTimeout(this.connectionTimeout); + return; + } + this.initialize(token, opts); + }, + retryTime, + ); + }; + + this.conn!.onerror = (evt) => { + if (this.connectFailCount <= 1) { + console.log('websocket error'); //eslint-disable-line no-console + console.log(evt); //eslint-disable-line no-console + } + + if (this.errorCallback) { + this.errorCallback(evt); + } + }; + + this.conn!.onmessage = (evt) => { + const msg = JSON.parse(evt.data); + if (msg.seq_reply) { + if (msg.error) { + console.warn(msg); //eslint-disable-line no-console + } + } else if (this.eventCallback) { + this.eventCallback(msg); + } + }; + }); + } + + setConnectingCallback(callback: Function) { + this.connectingCallback = callback; + } + + setEventCallback(callback: Function) { + this.eventCallback = callback; + } + + setFirstConnectCallback(callback: Function) { + this.firstConnectCallback = callback; + } + + setReconnectCallback(callback: Function) { + this.reconnectCallback = callback; + } + + setErrorCallback(callback: Function) { + this.errorCallback = callback; + } + + setCloseCallback(callback: Function) { + this.closeCallback = callback; + } + + close(stop = false) { + this.stop = stop; + this.connectFailCount = 0; + this.sequence = 1; + if (this.conn && this.conn.readyState === Socket.OPEN) { + this.conn.onclose = () => {}; //eslint-disable-line @typescript-eslint/no-empty-function + this.conn.close(); + this.conn = undefined; + console.log('websocket closed'); //eslint-disable-line no-console + } + } + + sendMessage(action: string, data: any) { + const msg = { + action, + seq: this.sequence++, + data, + }; + + if (this.conn && this.conn.readyState === Socket.OPEN) { + this.conn.send(JSON.stringify(msg)); + } else if (!this.conn || this.conn.readyState === Socket.CLOSED) { + this.conn = undefined; + this.initialize(this.token, {platform: this.platform}); + } + } + + userTyping(channelId: string, parentId: string) { + this.sendMessage('user_typing', { + channel_id: channelId, + parent_id: parentId, + }); + } + + getStatuses() { + this.sendMessage('get_statuses', null); + } + + getStatusesByIds(userIds: string[]) { + this.sendMessage('get_statuses_by_ids', { + user_ids: userIds, + }); + } +} + +export default new WebSocketClient(); diff --git a/app/mm-redux/reducers/requests/channels.ts b/app/mm-redux/reducers/requests/channels.ts index e2626c23d..d4ef27a1e 100644 --- a/app/mm-redux/reducers/requests/channels.ts +++ b/app/mm-redux/reducers/requests/channels.ts @@ -14,7 +14,7 @@ function myChannels(state: RequestStatusType = initialRequestState(), action: Ge ChannelTypes.CHANNELS_SUCCESS, ChannelTypes.CHANNELS_FAILURE, state, - action + action, ); } @@ -24,7 +24,7 @@ function createChannel(state: RequestStatusType = initialRequestState(), action: ChannelTypes.CREATE_CHANNEL_SUCCESS, ChannelTypes.CREATE_CHANNEL_FAILURE, state, - action + action, ); } @@ -34,7 +34,7 @@ function updateChannel(state: RequestStatusType = initialRequestState(), action: ChannelTypes.UPDATE_CHANNEL_SUCCESS, ChannelTypes.UPDATE_CHANNEL_FAILURE, state, - action + action, ); } @@ -44,7 +44,7 @@ function getChannels(state: RequestStatusType = initialRequestState(), action: G ChannelTypes.GET_CHANNELS_SUCCESS, ChannelTypes.GET_CHANNELS_FAILURE, state, - action + action, ); } @@ -54,7 +54,7 @@ function getAllChannels(state: RequestStatusType = initialRequestState(), action ChannelTypes.GET_ALL_CHANNELS_SUCCESS, ChannelTypes.GET_ALL_CHANNELS_FAILURE, state, - action + action, ); } diff --git a/app/mm-redux/reducers/requests/files.ts b/app/mm-redux/reducers/requests/files.ts index 15181cf8d..664e76bd4 100644 --- a/app/mm-redux/reducers/requests/files.ts +++ b/app/mm-redux/reducers/requests/files.ts @@ -15,7 +15,7 @@ export function handleUploadFilesRequest( FAILURE: string, CANCEL: string, state: RequestStatusType, - action: GenericAction + action: GenericAction, ): RequestStatusType { switch (action.type) { case REQUEST: @@ -60,7 +60,7 @@ function uploadFiles(state: RequestStatusType = initialRequestState(), action: G FileTypes.UPLOAD_FILES_FAILURE, FileTypes.UPLOAD_FILES_CANCEL, state, - action + action, ); } diff --git a/app/mm-redux/reducers/requests/general.ts b/app/mm-redux/reducers/requests/general.ts index 84674ff28..1d2dde733 100644 --- a/app/mm-redux/reducers/requests/general.ts +++ b/app/mm-redux/reducers/requests/general.ts @@ -18,7 +18,7 @@ function websocket(state: RequestStatusType = initialRequestState(), action: Gen GeneralTypes.WEBSOCKET_SUCCESS, GeneralTypes.WEBSOCKET_FAILURE, state, - action + action, ); } diff --git a/app/mm-redux/reducers/requests/helpers.ts b/app/mm-redux/reducers/requests/helpers.ts index 739e9beed..914ff5933 100644 --- a/app/mm-redux/reducers/requests/helpers.ts +++ b/app/mm-redux/reducers/requests/helpers.ts @@ -15,7 +15,7 @@ export function handleRequest( SUCCESS: string, FAILURE: string, state: RequestStatusType, - action: GenericAction + action: GenericAction, ): RequestStatusType { switch (action.type) { case REQUEST: diff --git a/app/mm-redux/reducers/requests/jobs.ts b/app/mm-redux/reducers/requests/jobs.ts index 82bc88a95..2fc2dec3d 100644 --- a/app/mm-redux/reducers/requests/jobs.ts +++ b/app/mm-redux/reducers/requests/jobs.ts @@ -14,7 +14,7 @@ function createJob(state: RequestStatusType = initialRequestState(), action: Gen JobTypes.CREATE_JOB_SUCCESS, JobTypes.CREATE_JOB_FAILURE, state, - action + action, ); } @@ -24,7 +24,7 @@ function getJob(state: RequestStatusType = initialRequestState(), action: Generi JobTypes.GET_JOB_SUCCESS, JobTypes.GET_JOB_FAILURE, state, - action + action, ); } @@ -34,7 +34,7 @@ function getJobs(state: RequestStatusType = initialRequestState(), action: Gener JobTypes.GET_JOBS_SUCCESS, JobTypes.GET_JOBS_FAILURE, state, - action + action, ); } @@ -44,7 +44,7 @@ function cancelJob(state: RequestStatusType = initialRequestState(), action: Gen JobTypes.CANCEL_JOB_SUCCESS, JobTypes.CANCEL_JOB_FAILURE, state, - action + action, ); } diff --git a/app/mm-redux/reducers/requests/posts.ts b/app/mm-redux/reducers/requests/posts.ts index 80b2bacf9..2dc39bddf 100644 --- a/app/mm-redux/reducers/requests/posts.ts +++ b/app/mm-redux/reducers/requests/posts.ts @@ -16,7 +16,7 @@ function createPost(state: RequestStatusType = initialRequestState(), action: Ge PostTypes.CREATE_POST_SUCCESS, PostTypes.CREATE_POST_FAILURE, state, - action + action, ); } @@ -26,7 +26,7 @@ function editPost(state: RequestStatusType = initialRequestState(), action: Gene PostTypes.EDIT_POST_SUCCESS, PostTypes.EDIT_POST_FAILURE, state, - action + action, ); } @@ -36,7 +36,7 @@ function getPostThread(state: RequestStatusType = initialRequestState(), action: PostTypes.GET_POST_THREAD_SUCCESS, PostTypes.GET_POST_THREAD_FAILURE, state, - action + action, ); } diff --git a/app/mm-redux/reducers/requests/roles.ts b/app/mm-redux/reducers/requests/roles.ts index 0d4a7b7d2..5330040ab 100644 --- a/app/mm-redux/reducers/requests/roles.ts +++ b/app/mm-redux/reducers/requests/roles.ts @@ -14,7 +14,7 @@ function getRolesByNames(state: RequestStatusType = initialRequestState(), actio RoleTypes.ROLES_BY_NAMES_SUCCESS, RoleTypes.ROLES_BY_NAMES_FAILURE, state, - action + action, ); } @@ -24,7 +24,7 @@ function getRoleByName(state: RequestStatusType = initialRequestState(), action: RoleTypes.ROLE_BY_NAME_SUCCESS, RoleTypes.ROLE_BY_NAME_FAILURE, state, - action + action, ); } @@ -34,7 +34,7 @@ function getRole(state: RequestStatusType = initialRequestState(), action: Gener RoleTypes.ROLE_BY_ID_SUCCESS, RoleTypes.ROLE_BY_ID_FAILURE, state, - action + action, ); } @@ -44,7 +44,7 @@ function editRole(state: RequestStatusType = initialRequestState(), action: Gene RoleTypes.EDIT_ROLE_SUCCESS, RoleTypes.EDIT_ROLE_FAILURE, state, - action + action, ); } diff --git a/app/mm-redux/reducers/requests/search.ts b/app/mm-redux/reducers/requests/search.ts index fe586a75d..32e0d4de9 100644 --- a/app/mm-redux/reducers/requests/search.ts +++ b/app/mm-redux/reducers/requests/search.ts @@ -18,7 +18,7 @@ function flaggedPosts(state: RequestStatusType = initialRequestState(), action: SearchTypes.SEARCH_FLAGGED_POSTS_SUCCESS, SearchTypes.SEARCH_FLAGGED_POSTS_FAILURE, state, - action + action, ); } @@ -32,7 +32,7 @@ function pinnedPosts(state: RequestStatusType = initialRequestState(), action: G SearchTypes.SEARCH_PINNED_POSTS_SUCCESS, SearchTypes.SEARCH_PINNED_POSTS_FAILURE, state, - action + action, ); } diff --git a/app/mm-redux/reducers/requests/teams.ts b/app/mm-redux/reducers/requests/teams.ts index 54aa8f74d..964af4165 100644 --- a/app/mm-redux/reducers/requests/teams.ts +++ b/app/mm-redux/reducers/requests/teams.ts @@ -14,7 +14,7 @@ function getMyTeams(state: RequestStatusType = initialRequestState(), action: Ge TeamTypes.MY_TEAMS_SUCCESS, TeamTypes.MY_TEAMS_FAILURE, state, - action + action, ); } @@ -24,7 +24,7 @@ function getTeams(state: RequestStatusType = initialRequestState(), action: Gene TeamTypes.GET_TEAMS_SUCCESS, TeamTypes.GET_TEAMS_FAILURE, state, - action + action, ); } @@ -34,7 +34,7 @@ function joinTeam(state: RequestStatusType = initialRequestState(), action: Gene TeamTypes.JOIN_TEAM_SUCCESS, TeamTypes.JOIN_TEAM_FAILURE, state, - action + action, ); } diff --git a/app/mm-redux/selectors/entities/channel_categories.ts b/app/mm-redux/selectors/entities/channel_categories.ts index 9f5b2552a..87b416d3a 100644 --- a/app/mm-redux/selectors/entities/channel_categories.ts +++ b/app/mm-redux/selectors/entities/channel_categories.ts @@ -37,7 +37,7 @@ export function makeGetCategoriesForTeam(): (state: GlobalState, teamId: string) } return categoryIds.map((id) => categoriesById[id]); - } + }, ); } @@ -51,7 +51,7 @@ export function makeGetUnsortedUnfilteredChannels(): (state: GlobalState, teamId filter((channel) => channel.delete_at === 0). filter((channel) => channel.team_id === teamId || channel.team_id === ''). filter((channel) => myMembers.hasOwnProperty(channel.id)); - } + }, ); } @@ -70,7 +70,7 @@ export function makeFilterChannelsByFavorites(): (state: GlobalState, channels: }); return filtered.length === channels.length ? channels : filtered; - } + }, ); } @@ -93,12 +93,12 @@ export function makeFilterChannelsByType(): (state: GlobalState, channels: Chann }); return filtered.length === channels.length ? channels : filtered; - } + }, ); } function getDefaultAutocloseCutoff() { - return Date.now() - 7 * 24 * 60 * 60 * 1000; + return Date.now() - (7 * 24 * 60 * 60 * 1000); } export function makeFilterAutoclosedDMs(getAutocloseCutoff = getDefaultAutocloseCutoff): (state: GlobalState, channels: Channel[], categoryType: string) => Channel[] { @@ -181,7 +181,7 @@ export function makeFilterAutoclosedDMs(getAutocloseCutoff = getDefaultAutoclose }); return filtered.length === channels.length ? channels : filtered; - } + }, ); } @@ -211,7 +211,7 @@ export function makeFilterManuallyClosedDMs(): (state: GlobalState, channels: Ch // Only return a new array if anything was removed return filtered.length === channels.length ? channels : filtered; - } + }, ); } @@ -223,7 +223,7 @@ export function makeSortChannelsByName(): (state: GlobalState, channels: Channel const sorted = [...channels]; sorted.sort((a, b) => a.display_name.localeCompare(b.display_name, locale, {numeric: true})); return sorted; - } + }, ); } @@ -281,7 +281,7 @@ export function makeSortChannelsByNameWithDMs(): (state: GlobalState, channels: const sorted = [...channels]; sorted.sort((a, b) => getDisplayName(a).localeCompare(getDisplayName(b), locale, {numeric: true})); return sorted; - } + }, ); } diff --git a/app/mm-redux/selectors/entities/channels.ts b/app/mm-redux/selectors/entities/channels.ts index e9270fe14..25e918e8c 100644 --- a/app/mm-redux/selectors/entities/channels.ts +++ b/app/mm-redux/selectors/entities/channels.ts @@ -38,7 +38,7 @@ export function getChannelsInTeam(state: GlobalState): RelationOneToMany Set = createSelector(getChannelsInTeam, (channelsInTeam: RelationOneToMany): Set => { - return channelsInTeam && new Set(channelsInTeam['']) || new Set(); + return channelsInTeam ? new Set(channelsInTeam['']) : new Set(); }); export function getChannelMembersInChannels(state: GlobalState): RelationOneToOne> { return state.entities.channels.membersInChannel; @@ -55,7 +55,7 @@ export const getKnownUsers: (a: GlobalState) => Set = createSelector( } } return knownUsers; - } + }, ); function sortChannelsByRecencyOrAlpha(locale: string, lastPosts: RelationOneToOne, sorting: SortingType, a: Channel, b: Channel) { @@ -200,7 +200,7 @@ export function getChannelByName(state: GlobalState, channelName: string): Chann } export const getChannelSetInCurrentTeam: (a: GlobalState) => Array = createSelector(getCurrentTeamId, getChannelsInTeam, (currentTeamId: string, channelsInTeam: RelationOneToMany): Array => { - return channelsInTeam && channelsInTeam[currentTeamId] || []; + return channelsInTeam ? channelsInTeam[currentTeamId] : []; }); function sortAndInjectChannels(channels: IDMappedObjects, channelSet: Array, locale: string): Array { @@ -228,7 +228,7 @@ export const getChannelsInCurrentTeam: (a: GlobalState) => Array = crea } return sortAndInjectChannels(channels, currentTeamChannelSet, locale); - } + }, ); export const getChannelsNameMapInTeam: (b: GlobalState, a: string) => NameMappedObjects = createSelector(getAllChannels, getChannelsInTeam, (state: GlobalState, teamId: string): string => teamId, (channels: IDMappedObjects, channelsInTeams: RelationOneToMany, teamId: string): NameMappedObjects => { @@ -278,7 +278,7 @@ export const getMyChannels: (a: GlobalState) => Array = createSelector( getMyChannelMemberships, (channels: Array, directChannels: Array, myMembers: RelationOneToOne): Array => { return [...channels, ...directChannels].filter((c) => myMembers.hasOwnProperty(c.id)); - } + }, ); export const getOtherChannels: (b: GlobalState, a?: boolean | null) => Array = createSelector(getChannelsInCurrentTeam, getMyChannelMemberships, (state: GlobalState, archived: boolean | undefined | null = true) => archived, (channels: Array, myMembers: RelationOneToOne, archived?: boolean | null): Array => { @@ -314,7 +314,7 @@ export const getChannelsWithUnreadSection: (a: GlobalState) => { }, teammateNameDisplay: string, usersState: UsersState, - lastPosts: RelationOneToOne + lastPosts: RelationOneToOne, ) => { const allChannels = channels.map((c) => { const channel = {...c, @@ -323,7 +323,7 @@ export const getChannelsWithUnreadSection: (a: GlobalState) => { return channel; }); return buildDisplayableChannelListWithUnreadSection(usersState, allChannels, myMembers, config, myPreferences, teammateNameDisplay, lastPosts); - } + }, ); export const getDefaultChannel: (a: GlobalState) => Channel | undefined | null = createSelector(getAllChannels, getCurrentTeamId, (channels: IDMappedObjects, teamId: string): Channel | undefined | null => { @@ -408,7 +408,7 @@ export const getUnreads: (a: GlobalState) => { messageCount: messageCountForCurrentTeam + otherTeamsUnreadCountForChannels.messageCount, mentionCount: mentionCountForCurrentTeam + otherTeamsUnreadCountForChannels.mentionCount, }; - } + }, ); export const getUnreadsInCurrentTeam: (a: GlobalState) => { @@ -529,7 +529,7 @@ export const getUnreadChannelIds: (b: GlobalState, a?: Channel | null) => Array< const chHasUnread = c.total_msg_count - m.msg_count > 0; const chHasMention = m.mention_count > 0; - if (m.notify_props && m.notify_props.mark_unread !== 'mention' && chHasUnread || chHasMention) { + if ((m.notify_props && m.notify_props.mark_unread !== 'mention' && chHasUnread) || chHasMention) { return true; } } @@ -638,7 +638,7 @@ export const getPublicChannels: (a: GlobalState) => Array = createSelec return teamChannelIds.includes(id) && channel.type === General.OPEN_CHANNEL; }).map((id) => channels[id]); return publicChannels; - } + }, ); export const getPublicChannelIds: (e: GlobalState, d: Channel, c: boolean, b: boolean, a: SortingType) => Array = createIdsSelector( @@ -647,7 +647,7 @@ export const getPublicChannelIds: (e: GlobalState, d: Channel, c: boolean, b: bo getMyChannelMemberships, getLastPostPerChannel, (state: GlobalState, lastUnreadChannel: Channel, unreadsAtTop: boolean, favoritesAtTop: boolean, sorting: SortingType = 'alpha') => sorting, - mapAndSortChannelIds + mapAndSortChannelIds, ); export const getSortedPublicChannelIds: (e: GlobalState, d: Channel | null, c: boolean, b: boolean, a: SortingType) => Array = createIdsSelector( @@ -656,7 +656,7 @@ export const getSortedPublicChannelIds: (e: GlobalState, d: Channel | null, c: b (state: GlobalState, lastUnreadChannel: Channel, unreadsAtTop: boolean, favoritesAtTop: boolean, sorting: SortingType = 'alpha') => getPublicChannelIds(state, lastUnreadChannel, unreadsAtTop, favoritesAtTop, sorting), (state, lastUnreadChannel, unreadsAtTop = true) => unreadsAtTop, (state, lastUnreadChannel, unreadsAtTop, favoritesAtTop = true) => favoritesAtTop, - filterChannels + filterChannels, ); // Private Channels @@ -929,7 +929,7 @@ export const getRedirectChannelNameForTeam = (state: GlobalState, teamId: string return General.DEFAULT_CHANNEL; } - return myFirstChannelForTeam && myFirstChannelForTeam.name || General.DEFAULT_CHANNEL; + return myFirstChannelForTeam ? myFirstChannelForTeam.name : General.DEFAULT_CHANNEL; }; // isManually unread looks into state if the provided channelId is marked as unread by the user. diff --git a/app/mm-redux/selectors/entities/emojis.ts b/app/mm-redux/selectors/entities/emojis.ts index 2fdc1caf6..52bad00dd 100644 --- a/app/mm-redux/selectors/entities/emojis.ts +++ b/app/mm-redux/selectors/entities/emojis.ts @@ -21,7 +21,7 @@ export const getCustomEmojisAsMap: (state: GlobalState) => Map Map = createSelector( @@ -34,14 +34,14 @@ export const getCustomEmojisByName: (state: GlobalState) => Map Array = createIdsSelector( (state) => state.entities.emojis.customEmoji, (emojis: IDMappedObjects): Array => { return Object.keys(emojis).sort( - (a: string, b: string): number => emojis[a].name.localeCompare(emojis[b].name) + (a: string, b: string): number => emojis[a].name.localeCompare(emojis[b].name), ); - } + }, ); diff --git a/app/mm-redux/selectors/entities/files.ts b/app/mm-redux/selectors/entities/files.ts index a5fbeaa57..82535c633 100644 --- a/app/mm-redux/selectors/entities/files.ts +++ b/app/mm-redux/selectors/entities/files.ts @@ -33,6 +33,6 @@ export function makeGetFilesForPost() { const fileInfos = fileIdsForPost.map((id) => allFiles[id]).filter((id) => Boolean(id)); return sortFileInfos(fileInfos, locale); - } + }, ); } diff --git a/app/mm-redux/selectors/entities/general.ts b/app/mm-redux/selectors/entities/general.ts index 0d2a9a1bf..6ca65e0ed 100644 --- a/app/mm-redux/selectors/entities/general.ts +++ b/app/mm-redux/selectors/entities/general.ts @@ -45,7 +45,7 @@ export const canUploadFilesOnMobile: (a: GlobalState) => boolean = createSelecto // Defaults to true if either setting doesn't exist return config.EnableFileAttachments !== 'false' && (license.IsLicensed === 'false' || license.Compliance === 'false' || config.EnableMobileFileUpload !== 'false'); - } + }, ); export const canDownloadFilesOnMobile: (a: GlobalState) => boolean = createSelector( @@ -54,7 +54,7 @@ export const canDownloadFilesOnMobile: (a: GlobalState) => boolean = createSelec (config: Config, license: any): boolean => { // Defaults to true if the setting doesn't exist return license.IsLicensed === 'false' || license.Compliance === 'false' || config.EnableMobileFileDownload !== 'false'; - } + }, ); export const getAutolinkedUrlSchemes: (a: GlobalState) => string[] = createSelector( @@ -68,7 +68,7 @@ export const getAutolinkedUrlSchemes: (a: GlobalState) => string[] = createSelec ...General.DEFAULT_AUTOLINKED_URL_SCHEMES, ...config.CustomUrlSchemes.split(','), ]; - } + }, ); export const getServerVersion = (state: GlobalState): string => { diff --git a/app/mm-redux/selectors/entities/groups.ts b/app/mm-redux/selectors/entities/groups.ts index 8063d87ca..ab525c7a8 100644 --- a/app/mm-redux/selectors/entities/groups.ts +++ b/app/mm-redux/selectors/entities/groups.ts @@ -64,7 +64,7 @@ export const getGroupsNotAssociatedToTeam = reselect.createSelector( (state: GlobalState, teamID: string) => getTeamGroupIDSet(state, teamID), (allGroups, teamGroupIDSet) => { return Object.entries(allGroups).filter(([groupID]) => !teamGroupIDSet.has(groupID)).map((entry) => entry[1]); - } + }, ); export const getGroupsAssociatedToTeam = reselect.createSelector( @@ -72,7 +72,7 @@ export const getGroupsAssociatedToTeam = reselect.createSelector( (state: GlobalState, teamID: string) => getTeamGroupIDSet(state, teamID), (allGroups, teamGroupIDSet) => { return Object.entries(allGroups).filter(([groupID]) => teamGroupIDSet.has(groupID)).map((entry) => entry[1]); - } + }, ); export const getGroupsNotAssociatedToChannel = reselect.createSelector( @@ -80,7 +80,7 @@ export const getGroupsNotAssociatedToChannel = reselect.createSelector( (state: GlobalState, channelID: string) => getChannelGroupIDSet(state, channelID), (allGroups, channelGroupIDSet) => { return Object.entries(allGroups).filter(([groupID]) => !channelGroupIDSet.has(groupID)).map((entry) => entry[1]); - } + }, ); export const getGroupsAssociatedToChannel = reselect.createSelector( @@ -88,5 +88,5 @@ export const getGroupsAssociatedToChannel = reselect.createSelector( (state: GlobalState, channelID: string) => getChannelGroupIDSet(state, channelID), (allGroups, channelGroupIDSet) => { return Object.entries(allGroups).filter(([groupID]) => channelGroupIDSet.has(groupID)).map((entry) => entry[1]); - } + }, ); diff --git a/app/mm-redux/selectors/entities/integrations.ts b/app/mm-redux/selectors/entities/integrations.ts index b6f1beac7..ca1ca2519 100644 --- a/app/mm-redux/selectors/entities/integrations.ts +++ b/app/mm-redux/selectors/entities/integrations.ts @@ -34,7 +34,7 @@ export const getOutgoingHooksInCurrentTeam = reselect.createSelector( getOutgoingHooks, (teamId, hooks) => { return Object.values(hooks).filter((o) => o.team_id === teamId); - } + }, ); export const getAllCommands = reselect.createSelector( @@ -45,7 +45,7 @@ export const getAllCommands = reselect.createSelector( ...commands, ...systemCommands, }; - } + }, ); export const getAutocompleteCommandsList = reselect.createSelector( @@ -55,5 +55,5 @@ export const getAutocompleteCommandsList = reselect.createSelector( return Object.values(commands).filter((command) => { return command && (!command.team_id || command.team_id === currentTeamId) && command.auto_complete; }).sort((a, b) => a.display_name.localeCompare(b.display_name)); - } + }, ); diff --git a/app/mm-redux/selectors/entities/jobs.ts b/app/mm-redux/selectors/entities/jobs.ts index d567b289c..8ee6fb281 100644 --- a/app/mm-redux/selectors/entities/jobs.ts +++ b/app/mm-redux/selectors/entities/jobs.ts @@ -17,6 +17,6 @@ export function makeGetJobsByType(type: JobType): (state: GlobalState) => Array< getJobsByType, (jobsByType) => { return jobsByType[type] || []; - } + }, ); } diff --git a/app/mm-redux/selectors/entities/posts.ts b/app/mm-redux/selectors/entities/posts.ts index 4cc6e322c..39457df03 100644 --- a/app/mm-redux/selectors/entities/posts.ts +++ b/app/mm-redux/selectors/entities/posts.ts @@ -88,7 +88,7 @@ export function makeGetPostIdsForThread(): (b: GlobalState, a: $ID) => Arr thread.sort(comparePosts); return thread.map((post) => post.id); - } + }, ); } @@ -114,7 +114,7 @@ export function makeGetPostsChunkAroundPost(): (c: GlobalState, b: $ID, a: } return postChunk; - } + }, ); } @@ -141,7 +141,7 @@ export function makeGetPostIdsAroundPost(): (d: GlobalState, c: $ID, b: $I const maxPostIndex = postsBeforeCount === -1 ? postIds.length : Math.min(index + postsBeforeCount + 1, postIds.length); // Needs the extra 1 to include the focused post return postIds.slice(minPostIndex, maxPostIndex); - } + }, ); } @@ -265,7 +265,7 @@ export function makeGetPostsInChannel(): (c: GlobalState, b: $ID, a: nu } return posts; - } + }, ); } @@ -306,7 +306,7 @@ export function makeGetPostsAroundPost(): (c: GlobalState, b: $ID, a: $ID< } return posts; - } + }, ); } @@ -360,7 +360,7 @@ export function makeGetCommentCountForPost(): (b: GlobalState, a: { } }); return count; - } + }, ); } @@ -373,7 +373,7 @@ export const getSearchResults: (a: GlobalState) => Array = createSelector( } return postIds.map((id) => posts[id]); - } + }, ); // Returns the matched text from the search results, if the server has provided them. @@ -396,7 +396,7 @@ export function makeGetMessageInHistoryItem(type: 'post'|'comment'): (a: GlobalS return messages[idx]; } return ''; - } + }, ); } @@ -410,7 +410,7 @@ export function makeGetPostsForIds(): (b: GlobalState, a: Array<$ID>) => A } return postIds.map((id) => allPosts[id]); - } + }, ); } @@ -433,7 +433,7 @@ export const getLastPostPerChannel: (a: GlobalState) => RelationOneToOne) => $ID | undefined | null = createSelector(getAllPosts, (state: GlobalState, channelId: string) => getPostIdsInChannel(state, channelId), getMyPreferences, (posts, postIdsInChannel, preferences) => { if (!postIdsInChannel) { @@ -457,7 +457,7 @@ export const getMostRecentPostIdInChannel: (b: GlobalState, a: $ID) => // return the most recent message in the channel return postIdsInChannel[0]; -} +}, ); export const getLatestReplyablePostId: (a: GlobalState) => $ID = createSelector( @@ -473,7 +473,7 @@ export const getLatestReplyablePostId: (a: GlobalState) => $ID = createSel } return latestReplyablePost.id; - } + }, ); export const getCurrentUsersLatestPost: (b: GlobalState, a: $ID) => PostWithFormatData | undefined | null = createSelector(getPostsInCurrentChannel, getCurrentUser, (_: any, rootId: string) => rootId, (posts, currentUser, rootId) => { @@ -483,7 +483,7 @@ export const getCurrentUsersLatestPost: (b: GlobalState, a: $ID) => PostWi const lastPost = posts.find((post) => { // don't edit webhook posts, deleted posts, or system messages - if (post.user_id !== currentUser.id || post.props && post.props.from_webhook || post.state === Posts.POST_DELETED || isSystemMessage(post) || isPostEphemeral(post) || isPostPendingOrFailed(post)) { + if (post.user_id !== currentUser.id || post.props?.from_webhook || post.state === Posts.POST_DELETED || isSystemMessage(post) || isPostEphemeral(post) || isPostPendingOrFailed(post)) { return false; } @@ -638,7 +638,7 @@ export const makeIsPostCommentMention = (): ((b: GlobalState, a: $ID) => b } return isCommentMention; - } + }, ); }; diff --git a/app/mm-redux/selectors/entities/preferences.ts b/app/mm-redux/selectors/entities/preferences.ts index 8b8d570c9..c08301431 100644 --- a/app/mm-redux/selectors/entities/preferences.ts +++ b/app/mm-redux/selectors/entities/preferences.ts @@ -50,7 +50,7 @@ export function makeGetCategory() { } return prefsInCategory; - } + }, ); } @@ -77,14 +77,14 @@ export const getVisibleTeammate = reselect.createSelector( getDirectShowPreferences, (direct) => { return direct.filter((dm) => dm.value === 'true' && dm.name).map((dm) => dm.name); - } + }, ); export const getVisibleGroupIds = reselect.createSelector( getGroupShowPreferences, (groups) => { return groups.filter((dm) => dm.value === 'true' && dm.name).map((dm) => dm.name); - } + }, ); export const getTeammateNameDisplaySetting = reselect.createSelector( @@ -100,7 +100,7 @@ export const getTeammateNameDisplaySetting = reselect.createSelector( return config.TeammateNameDisplay; } return General.TEAMMATE_NAME_DISPLAY.SHOW_USERNAME; - } + }, ); const getThemePreference = reselect.createSelector( @@ -119,7 +119,7 @@ const getThemePreference = reselect.createSelector( } return themePreference; - } + }, ); const getDefaultTheme = reselect.createSelector(getConfig, (config) => { @@ -177,7 +177,7 @@ export const getTheme = createShallowSelector( } return Object.assign({}, defaultTheme, theme); - } + }, ); export function makeGetStyleFromTheme() { @@ -186,7 +186,7 @@ export function makeGetStyleFromTheme() { (state: GlobalState, getStyleFromTheme: Function) => getStyleFromTheme, (theme, getStyleFromTheme) => { return getStyleFromTheme(theme); - } + }, ); } @@ -204,7 +204,7 @@ export const getSidebarPreferences = reselect.createSelector( state, Preferences.CATEGORY_SIDEBAR_SETTINGS, 'show_unread_section', - config.ExperimentalGroupUnreadChannels === General.DEFAULT_ON + config.ExperimentalGroupUnreadChannels === General.DEFAULT_ON, ); }, (state) => { @@ -212,7 +212,7 @@ export const getSidebarPreferences = reselect.createSelector( state, Preferences.CATEGORY_SIDEBAR_SETTINGS, '', - null + null, ); }, (showUnreadSection, sidebarPreference) => { @@ -226,7 +226,7 @@ export const getSidebarPreferences = reselect.createSelector( } return sidebarPrefs; - } + }, ); export const getNewSidebarPreference = reselect.createSelector( @@ -239,7 +239,7 @@ export const getNewSidebarPreference = reselect.createSelector( state, Preferences.CATEGORY_SIDEBAR_SETTINGS, Preferences.CHANNEL_SIDEBAR_ORGANIZATION, - null + null, ); }, (globalSetting, userSetting) => { @@ -253,7 +253,7 @@ export const getNewSidebarPreference = reselect.createSelector( default: return false; } - } + }, ); export function shouldAutocloseDMs(state: GlobalState) { diff --git a/app/mm-redux/selectors/entities/roles.ts b/app/mm-redux/selectors/entities/roles.ts index 2fa1ea367..643b79077 100644 --- a/app/mm-redux/selectors/entities/roles.ts +++ b/app/mm-redux/selectors/entities/roles.ts @@ -25,7 +25,7 @@ export const getMyTeamRoles = reselect.createSelector( } } return roles; - } + }, ); export const getMyChannelRoles = reselect.createSelector( @@ -40,7 +40,7 @@ export const getMyChannelRoles = reselect.createSelector( } } return roles; - } + }, ); export const getMyRoles = reselect.createSelector( @@ -53,7 +53,7 @@ export const getMyRoles = reselect.createSelector( team: teamRoles, channel: channelRoles, }; - } + }, ); export const getRolesById = reselect.createSelector( @@ -64,7 +64,7 @@ export const getRolesById = reselect.createSelector( rolesById[role.id] = role; } return rolesById; - } + }, ); export const getMyCurrentTeamPermissions = reselect.createSelector( @@ -87,7 +87,7 @@ export const getMyCurrentTeamPermissions = reselect.createSelector( permissions.add(permission); } return permissions; - } + }, ); export const getMyCurrentChannelPermissions = reselect.createSelector( @@ -110,7 +110,7 @@ export const getMyCurrentChannelPermissions = reselect.createSelector( permissions.add(permission); } return permissions; - } + }, ); export const getMyTeamPermissions = reselect.createSelector( @@ -133,7 +133,7 @@ export const getMyTeamPermissions = reselect.createSelector( permissions.add(permission); } return permissions; - } + }, ); export const getMyChannelPermissions = reselect.createSelector( @@ -156,7 +156,7 @@ export const getMyChannelPermissions = reselect.createSelector( permissions.add(permission); } return permissions; - } + }, ); export const haveISystemPermission = reselect.createSelector( @@ -164,7 +164,7 @@ export const haveISystemPermission = reselect.createSelector( (state: GlobalState, options: PermissionsOptions) => options.permission, (permissions, permission) => { return permissions.has(permission); - } + }, ); export const haveITeamPermission = reselect.createSelector( @@ -172,7 +172,7 @@ export const haveITeamPermission = reselect.createSelector( (state, options) => options.permission, (permissions, permission) => { return permissions.has(permission); - } + }, ); export const haveIChannelPermission = reselect.createSelector( @@ -180,7 +180,7 @@ export const haveIChannelPermission = reselect.createSelector( (state, options) => options.permission, (permissions, permission) => { return permissions.has(permission); - } + }, ); export const haveICurrentTeamPermission = reselect.createSelector( @@ -188,7 +188,7 @@ export const haveICurrentTeamPermission = reselect.createSelector( (state: GlobalState, options: PermissionsOptions) => options.permission, (permissions, permission) => { return permissions.has(permission); - } + }, ); export const haveICurrentChannelPermission = reselect.createSelector( @@ -196,5 +196,5 @@ export const haveICurrentChannelPermission = reselect.createSelector( (state: GlobalState, options: PermissionsOptions) => options.permission, (permissions, permission) => { return permissions.has(permission); - } + }, ); diff --git a/app/mm-redux/selectors/entities/search.ts b/app/mm-redux/selectors/entities/search.ts index 097050047..b5a8481d2 100644 --- a/app/mm-redux/selectors/entities/search.ts +++ b/app/mm-redux/selectors/entities/search.ts @@ -12,5 +12,5 @@ export const getCurrentSearchForCurrentTeam = reselect.createSelector( getCurrentTeamId, (current, teamId) => { return current[teamId]; - } + }, ); diff --git a/app/mm-redux/selectors/entities/teams.ts b/app/mm-redux/selectors/entities/teams.ts index ad635fa00..7fe7af6bc 100644 --- a/app/mm-redux/selectors/entities/teams.ts +++ b/app/mm-redux/selectors/entities/teams.ts @@ -38,7 +38,7 @@ export const getTeamsList = reselect.createSelector( getTeams, (teams) => { return Object.values(teams); - } + }, ); export const getCurrentTeam = reselect.createSelector( @@ -46,7 +46,7 @@ export const getCurrentTeam = reselect.createSelector( getCurrentTeamId, (teams, currentTeamId) => { return teams[currentTeamId]; - } + }, ); export function getTeam(state: GlobalState, id: string): Team { @@ -59,7 +59,7 @@ export const getCurrentTeamMembership = reselect.createSelector( getTeamMemberships, (currentTeamId: string, teamMemberships: {[x: string]: TeamMembership}): TeamMembership => { return teamMemberships[currentTeamId]; - } + }, ); export const isCurrentUserCurrentTeamAdmin = reselect.createSelector( @@ -70,7 +70,7 @@ export const isCurrentUserCurrentTeamAdmin = reselect.createSelector( return isTeamAdmin(roles); } return false; - } + }, ); export const getCurrentTeamUrl = reselect.createSelector( @@ -84,7 +84,7 @@ export const getCurrentTeamUrl = reselect.createSelector( } return `${rootURL}/${currentTeam.name}`; - } + }, ); export const getCurrentRelativeTeamUrl = reselect.createSelector( @@ -94,7 +94,7 @@ export const getCurrentRelativeTeamUrl = reselect.createSelector( return '/'; } return `/${currentTeam.name}`; - } + }, ); export const getCurrentTeamStats = reselect.createSelector( @@ -102,7 +102,7 @@ export const getCurrentTeamStats = reselect.createSelector( getTeamStats, (currentTeamId, teamStats) => { return teamStats[currentTeamId]; - } + }, ); export const getMyTeams = reselect.createSelector( @@ -110,7 +110,7 @@ export const getMyTeams = reselect.createSelector( getTeamMemberships, (teams, members) => { return Object.values(teams).filter((t) => members[t.id] && t.delete_at === 0); - } + }, ); export const getMyTeamMember = reselect.createSelector( @@ -118,7 +118,7 @@ export const getMyTeamMember = reselect.createSelector( (state: GlobalState, teamId: string) => teamId, (teamMemberships, teamId) => { return teamMemberships[teamId] || {}; - } + }, ); export const getMembersInCurrentTeam = reselect.createSelector( @@ -126,7 +126,7 @@ export const getMembersInCurrentTeam = reselect.createSelector( getMembersInTeams, (currentTeamId, teamMembers) => { return teamMembers[currentTeamId]; - } + }, ); export function getTeamMember(state: GlobalState, teamId: string, userId: string) { @@ -154,7 +154,7 @@ export const getListableTeamIds = createIdsSelector( } return team.delete_at === 0 && canList && !member; }); - } + }, ); export const getListableTeams = reselect.createSelector( @@ -162,7 +162,7 @@ export const getListableTeams = reselect.createSelector( getListableTeamIds, (teams, listableTeamIds) => { return listableTeamIds.map((id) => teams[id]); - } + }, ); export const getSortedListableTeams = reselect.createSelector( @@ -177,7 +177,7 @@ export const getSortedListableTeams = reselect.createSelector( } return Object.values(listableTeams).sort(sortTeamsWithLocale(locale)); - } + }, ); export const getJoinableTeamIds = createIdsSelector( @@ -196,7 +196,7 @@ export const getJoinableTeamIds = createIdsSelector( } return team.delete_at === 0 && canJoin && !member; }); - } + }, ); export const getJoinableTeams = reselect.createSelector( @@ -204,7 +204,7 @@ export const getJoinableTeams = reselect.createSelector( getJoinableTeamIds, (teams, joinableTeamIds) => { return joinableTeamIds.map((id) => teams[id]); - } + }, ); export const getSortedJoinableTeams = reselect.createSelector( @@ -219,7 +219,7 @@ export const getSortedJoinableTeams = reselect.createSelector( } return Object.values(joinableTeams).sort(sortTeamsWithLocale(locale)); - } + }, ); export const getMySortedTeamIds = createIdsSelector( @@ -227,14 +227,14 @@ export const getMySortedTeamIds = createIdsSelector( (state: GlobalState, locale: string) => locale, (teams, locale) => { return teams.sort(sortTeamsWithLocale(locale)).map((t) => t.id); - } + }, ); export const getMyTeamsCount = reselect.createSelector( getMyTeams, (teams) => { return teams.length; - } + }, ); // returns the badge number to show (excluding the current team) @@ -262,7 +262,7 @@ export const getChannelDrawerBadgeCount = reselect.createSelector( } return badgeCount; - } + }, ); // returns the badge for a team @@ -286,6 +286,6 @@ export function makeGetBadgeCountForTeamId() { } return badgeCount; - } + }, ); } diff --git a/app/mm-redux/selectors/entities/users.ts b/app/mm-redux/selectors/entities/users.ts index 86605119b..8d63ac1f5 100644 --- a/app/mm-redux/selectors/entities/users.ts +++ b/app/mm-redux/selectors/entities/users.ts @@ -65,7 +65,7 @@ export const getUsersByUsername: (a: GlobalState) => UsernameMappedObjects): UserProfile { @@ -82,7 +82,7 @@ export const getUsersByEmail: (a: GlobalState) => EmailMappedObjects): UserProfile { @@ -94,7 +94,7 @@ export const isCurrentUserSystemAdmin: (a: GlobalState) => boolean = createSelec (user) => { const roles = user.roles || ''; return isSystemAdmin(roles); - } + }, ); export const getCurrentUserRoles: (a: GlobalState) => UserProfile['roles'] = createSelector(getMyCurrentChannelMembership, (state) => state.entities.teams.myMembers[state.entities.teams.currentTeamId], getCurrentUser, (currentChannelMembership, currentTeamMembership, currentUser) => { @@ -111,7 +111,7 @@ export const getCurrentUserRoles: (a: GlobalState) => UserProfile['roles'] = cre roles += currentUser.roles; } return roles.trim(); -} +}, ); export type UserMentionKey= { @@ -148,7 +148,7 @@ export const getCurrentUserMentionKeys: (a: GlobalState) => Array Array<$ID> = createSelector( @@ -156,7 +156,7 @@ export const getProfileSetInCurrentChannel: (a: GlobalState) => Array<$ID { return channelProfiles[currentChannel]; - } + }, ); export const getProfileSetNotInCurrentChannel: (a: GlobalState) => Array<$ID> = createSelector( @@ -164,7 +164,7 @@ export const getProfileSetNotInCurrentChannel: (a: GlobalState) => Array<$ID { return channelProfiles[currentChannel]; - } + }, ); export const getProfileSetInCurrentTeam: (a: GlobalState) => Array<$ID> = createSelector( @@ -172,7 +172,7 @@ export const getProfileSetInCurrentTeam: (a: GlobalState) => Array<$ID { return teamProfiles[currentTeam]; - } + }, ); export const getProfileSetNotInCurrentTeam: (a: GlobalState) => Array<$ID> = createSelector( @@ -180,7 +180,7 @@ export const getProfileSetNotInCurrentTeam: (a: GlobalState) => Array<$ID { return teamProfiles[currentTeam]; - } + }, ); const PROFILE_SET_ALL = 'all'; @@ -209,7 +209,7 @@ export const getProfiles: (a: GlobalState, b: Filters) => Array = c (state: GlobalState, filters: Filters) => filters, (profiles, filters) => { return sortAndInjectProfiles(filterProfiles(profiles, filters), PROFILE_SET_ALL); - } + }, ); function filterProfiles(profiles: IDMappedObjects, filters?: Filters): IDMappedObjects { @@ -242,7 +242,7 @@ export const getProfilesInCurrentChannel: (a: GlobalState) => Array getProfileSetInCurrentChannel, (profiles, currentChannelProfileSet) => { return sortAndInjectProfiles(profiles, currentChannelProfileSet); - } + }, ); export const getProfilesNotInCurrentChannel: (a: GlobalState) => Array = createSelector( @@ -250,7 +250,7 @@ export const getProfilesNotInCurrentChannel: (a: GlobalState) => Array { return sortAndInjectProfiles(profiles, notInCurrentChannelProfileSet); - } + }, ); export const getProfilesInCurrentTeam: (a: GlobalState) => Array = createSelector( @@ -258,7 +258,7 @@ export const getProfilesInCurrentTeam: (a: GlobalState) => Array = getProfileSetInCurrentTeam, (profiles, currentTeamProfileSet) => { return sortAndInjectProfiles(profiles, currentTeamProfileSet); - } + }, ); export const getProfilesInTeam: (a: GlobalState, b: $ID) => Array = createSelector( @@ -268,7 +268,7 @@ export const getProfilesInTeam: (a: GlobalState, b: $ID) => Array filters, (profiles, usersInTeams, teamId, filters) => { return sortAndInjectProfiles(filterProfiles(profiles, filters), usersInTeams[teamId] || new Set()); - } + }, ); export const getProfilesNotInCurrentTeam: (a: GlobalState) => Array = createSelector( @@ -276,7 +276,7 @@ export const getProfilesNotInCurrentTeam: (a: GlobalState) => Array getProfileSetNotInCurrentTeam, (profiles, notInCurrentTeamProfileSet) => { return sortAndInjectProfiles(profiles, notInCurrentTeamProfileSet); - } + }, ); export const getProfilesWithoutTeam: (a: GlobalState, filters?: Filters) => Array = createSelector( @@ -285,7 +285,7 @@ export const getProfilesWithoutTeam: (a: GlobalState, filters?: Filters) => Arra (state: GlobalState, filters: Filters) => filters, (profiles, withoutTeamProfileSet, filters) => { return sortAndInjectProfiles(filterProfiles(profiles, filters), withoutTeamProfileSet); - } + }, ); export function getStatusForUserId(state: GlobalState, userId: $ID): string { return getUserStatuses(state)[userId]; @@ -385,7 +385,7 @@ export const shouldShowTermsOfService: (a: GlobalState) => boolean = createSelec const reacceptanceTime = parseInt(config.CustomTermsOfServiceReAcceptancePeriod!, 10) * 1000 * 60 * 60 * 24; const timeElapsed = new Date().getTime() - acceptedAt; return Boolean(user && featureEnabled && (config.CustomTermsOfServiceId !== acceptedTermsId || timeElapsed > reacceptanceTime)); - } + }, ); export const getUsersInVisibleDMs: (a: GlobalState) => Array = createSelector( @@ -399,7 +399,7 @@ export const getUsersInVisibleDMs: (a: GlobalState) => Array = crea } }); return dmUsers; - } + }, ); export function makeGetProfilesForReactions(): (a: GlobalState, b: Array) => Array { @@ -414,7 +414,7 @@ export function makeGetProfilesForReactions(): (a: GlobalState, b: Array, c: } return sortAndInjectProfiles(users, userIdsInChannel, skipInactive); - } + }, ); } @@ -450,7 +450,7 @@ export function makeGetProfilesNotInChannel(): (a: GlobalState, b: $ID, } return sortAndInjectProfiles(users, userIdsInChannel, skipInactive); - } + }, ); } @@ -484,7 +484,7 @@ export function makeGetProfilesByIdsAndUsernames(): (a: GlobalState, b: {allUser } return userProfiles; - } + }, ); } @@ -495,6 +495,6 @@ export function makeGetDisplayName(): (a: GlobalState, b: $ID, c: b (state, _, useFallbackUsername = true) => useFallbackUsername, (user, teammateNameDisplaySetting, useFallbackUsername) => { return displayUsername(user, teammateNameDisplaySetting!, useFallbackUsername); - } + }, ); } diff --git a/app/mm-redux/utils/deep_freeze.ts b/app/mm-redux/utils/deep_freeze.ts index 2fc351cb5..1c2593fae 100644 --- a/app/mm-redux/utils/deep_freeze.ts +++ b/app/mm-redux/utils/deep_freeze.ts @@ -58,7 +58,7 @@ function throwOnImmutableMutation(key: string, value: any) { throw Error( 'You attempted to set the key `' + key + '` with the value `' + JSON.stringify(value) + '` on an object that is meant to be immutable ' + - 'and has been frozen.' + 'and has been frozen.', ); } diff --git a/app/mm-redux/utils/theme_utils.ts b/app/mm-redux/utils/theme_utils.ts index 0ebd89526..98115177f 100644 --- a/app/mm-redux/utils/theme_utils.ts +++ b/app/mm-redux/utils/theme_utils.ts @@ -77,22 +77,22 @@ export function blendColors(background: string, foreground: string, opacity: num const red = Math.floor(blendComponent( backgroundComponents.red, foregroundComponents.red, - opacity + opacity, )); const green = Math.floor(blendComponent( backgroundComponents.green, foregroundComponents.green, - opacity + opacity, )); const blue = Math.floor(blendComponent( backgroundComponents.blue, foregroundComponents.blue, - opacity + opacity, )); const alpha = blendComponent( backgroundComponents.alpha, foregroundComponents.alpha, - opacity + opacity, ); return `rgba(${red},${green},${blue},${alpha})`; diff --git a/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap b/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap index 1f0dd3675..215a6d99f 100644 --- a/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap +++ b/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap @@ -1,12 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ChannelDrawerButton should match, full snapshot 1`] = ` - - + `; exports[`ChannelDrawerButton should match, full snapshot 2`] = ` - - + `; diff --git a/app/screens/channel/channel_nav_bar/channel_title/__snapshots__/channel_title.test.js.snap b/app/screens/channel/channel_nav_bar/channel_title/__snapshots__/channel_title.test.js.snap index 6e5502cc5..ef3226fba 100644 --- a/app/screens/channel/channel_nav_bar/channel_title/__snapshots__/channel_title.test.js.snap +++ b/app/screens/channel/channel_nav_bar/channel_title/__snapshots__/channel_title.test.js.snap @@ -1,8 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ChannelTitle should match snapshot 1`] = ` - - + `; exports[`ChannelTitle should match snapshot when is DM and has guests and the teammate is the guest (when can show subtitles) 1`] = ` - - + `; exports[`ChannelTitle should match snapshot when is DM and has guests but the teammate is not the guest (when can show subtitles) 1`] = ` - - + `; exports[`ChannelTitle should match snapshot when isSelfDMChannel is true 1`] = ` - - + `; diff --git a/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap b/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap index b15ad1762..cef153796 100644 --- a/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap +++ b/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap @@ -92,11 +92,8 @@ exports[`channel_info_header should match snapshot 1`] = ` ] } > - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - - + 1/2 - - + - - + - - + + - + `; exports[`ImagePreview should match snapshot and not renderDownloadButton for local files 1`] = `null`; exports[`ImagePreview should match snapshot, renderDownloadButton 1`] = ` - - + `; diff --git a/app/screens/login/login.js b/app/screens/login/login.js index 890918c36..2e3dbd800 100644 --- a/app/screens/login/login.js +++ b/app/screens/login/login.js @@ -55,6 +55,11 @@ export default class Login extends PureComponent { constructor(props) { super(props); + this.loginRef = React.createRef(); + this.passwordRef = React.createRef(); + this.loginId = ''; + this.password = ''; + this.state = { error: null, isLoading: false, @@ -86,15 +91,21 @@ export default class Login extends PureComponent { const {intl} = this.context; const screen = 'MFA'; const title = intl.formatMessage({id: 'mobile.routes.mfa', defaultMessage: 'Multi-factor Authentication'}); - const loginId = this.loginId?._lastNativeText; //eslint-disable-line no-underscore-dangle - const password = this.passwd?._lastNativeText; //eslint-disable-line no-underscore-dangle + const loginId = this.loginId; + const password = this.password; goToScreen(screen, title, {onMfaComplete: this.checkLoginResponse, loginId, password}); }; blur = () => { - this.loginId.blur(); - this.passwd.blur(); + if (this.loginRef.current) { + this.loginRef.current.blur(); + } + + if (this.passwordRef.current) { + this.passwordRef.current.blur(); + } + Keyboard.dismiss(); }; @@ -201,28 +212,29 @@ export default class Login extends PureComponent { return error.message; }; - loginRef = (ref) => { - this.loginId = ref; + handleLoginChange = (text) => { + this.loginId = text; + }; + + handlePasswordChange = (text) => { + this.password = text; }; orientationDidChange = () => { this.scroll.scrollToPosition(0, 0, true); }; - passwordRef = (ref) => { - this.passwd = ref; - }; - passwordFocus = () => { - this.passwd.focus(); + if (this.passwordRef.current) { + this.passwordRef.current.focus(); + } }; preSignIn = preventDoubleTap(() => { this.setState({error: null, isLoading: true}); Keyboard.dismiss(); InteractionManager.runAfterInteractions(async () => { - const loginId = this.loginId?._lastNativeText; //eslint-disable-line no-underscore-dangle - if (!loginId) { + if (!this.loginId) { t('login.noEmail'); t('login.noEmailLdapUsername'); t('login.noEmailUsername'); @@ -262,8 +274,7 @@ export default class Login extends PureComponent { return; } - const password = this.passwd?._lastNativeText; //eslint-disable-line no-underscore-dangle - if (!password) { + if (!this.password) { this.setState({ isLoading: false, error: { @@ -293,18 +304,16 @@ export default class Login extends PureComponent { setEmmUsernameIfAvailable = async () => { const managedConfig = await mattermostManaged.getConfig(); - if (managedConfig?.username && this.loginId) { - this.loginId.setNativeProps({text: 'sample'}); + if (managedConfig?.username && this.loginRef.current) { + this.loginRef.current.setNativeProps({text: managedConfig?.username}); } } signIn = () => { - const loginId = this.loginId?._lastNativeText; //eslint-disable-line no-underscore-dangle - const password = this.passwd?._lastNativeText; //eslint-disable-line no-underscore-dangle const {actions} = this.props; const {isLoading} = this.state; if (isLoading) { - actions.login(loginId.toLowerCase(), password). + actions.login(this.loginId.toLowerCase(), this.password). then(this.checkLoginResponse); } }; @@ -393,31 +402,33 @@ export default class Login extends PureComponent { {proceed} {forgotPassword} diff --git a/app/screens/login/login.test.js b/app/screens/login/login.test.js index 35f11f736..112e52bde 100644 --- a/app/screens/login/login.test.js +++ b/app/screens/login/login.test.js @@ -83,13 +83,21 @@ describe('Login', () => { }; const wrapper = shallowWithIntl(); + const loginId = 'user'; + const password = 'password'; + wrapper.instance().loginId = loginId; + wrapper.instance().password = password; wrapper.instance().checkLoginResponse(mfaError); expect(goToScreen). toHaveBeenCalledWith( 'MFA', 'Multi-factor Authentication', - {onMfaComplete: wrapper.instance().checkLoginResponse}, + { + onMfaComplete: wrapper.instance().checkLoginResponse, + loginId, + password, + }, ); }); diff --git a/app/screens/long_post/__snapshots__/long_post.test.js.snap b/app/screens/long_post/__snapshots__/long_post.test.js.snap index 0e8e8a01e..8224117f1 100644 --- a/app/screens/long_post/__snapshots__/long_post.test.js.snap +++ b/app/screens/long_post/__snapshots__/long_post.test.js.snap @@ -271,8 +271,7 @@ LongPost { } } > - - + { const {currentUserId} = this.props; + if (this.state.selectedIds[id]) { + this.handleRemoveProfile(id); + return; + } + if (id === currentUserId) { const selectedId = {}; selectedId[currentUserId] = true; @@ -471,13 +476,13 @@ export default class MoreDirectMessages extends PureComponent { keyboardAppearance={getKeyboardAppearanceFromTheme(theme)} value={term} /> - + { height: 27, borderRadius: 3, backgroundColor: changeOpacity(theme.centerChannelColor, 0.2), - marginBottom: 2, + marginBottom: 4, marginRight: 10, - marginTop: 10, paddingLeft: 10, }, remove: { diff --git a/app/screens/options_modal/__snapshots__/option_modal_list.test.js.snap b/app/screens/options_modal/__snapshots__/option_modal_list.test.js.snap index 513de2676..a253dfcbb 100644 --- a/app/screens/options_modal/__snapshots__/option_modal_list.test.js.snap +++ b/app/screens/options_modal/__snapshots__/option_modal_list.test.js.snap @@ -28,8 +28,7 @@ exports[`OptionModalList should match snapshot for Android 1`] = ` } } > - - + - - + - - + `; @@ -206,8 +203,7 @@ exports[`OptionModalList should match snapshot for iOS 1`] = ` ] } > - - + - - + - - + `; diff --git a/app/screens/options_modal/options_modal.js b/app/screens/options_modal/options_modal.js index cbb5646f0..891938be2 100644 --- a/app/screens/options_modal/options_modal.js +++ b/app/screens/options_modal/options_modal.js @@ -52,6 +52,7 @@ export default class OptionsModal extends PureComponent { Animated.timing(this.state.top, { toValue: 0, duration: DURATION, + useNativeDriver: false, }).start(); } @@ -68,6 +69,7 @@ export default class OptionsModal extends PureComponent { Animated.timing(this.state.top, { toValue: this.props.deviceHeight, duration: DURATION, + useNativeDriver: false, }).start(() => { dismissModal(); }); diff --git a/app/screens/permalink/__snapshots__/permalink.test.js.snap b/app/screens/permalink/__snapshots__/permalink.test.js.snap index 7f85170da..dbbbd60cc 100644 --- a/app/screens/permalink/__snapshots__/permalink.test.js.snap +++ b/app/screens/permalink/__snapshots__/permalink.test.js.snap @@ -53,8 +53,7 @@ exports[`Permalink should match snapshot 1`] = ` } } > - - + - - + `; diff --git a/app/screens/reaction_list/__snapshots__/reaction_header_item.test.js.snap b/app/screens/reaction_list/__snapshots__/reaction_header_item.test.js.snap index 1630eb7bb..93b453ed7 100644 --- a/app/screens/reaction_list/__snapshots__/reaction_header_item.test.js.snap +++ b/app/screens/reaction_list/__snapshots__/reaction_header_item.test.js.snap @@ -1,8 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ReactionHeaderItem should match snapshot 1`] = ` - - + `; exports[`ReactionHeaderItem should match snapshot, renderContent 1`] = ` diff --git a/app/screens/reaction_list/reaction_row/__snapshots__/reaction_row.test.js.snap b/app/screens/reaction_list/reaction_row/__snapshots__/reaction_row.test.js.snap index f3305f4ad..3f6c3bbe9 100644 --- a/app/screens/reaction_list/reaction_row/__snapshots__/reaction_row.test.js.snap +++ b/app/screens/reaction_list/reaction_row/__snapshots__/reaction_row.test.js.snap @@ -23,8 +23,7 @@ exports[`ReactionRow should match snapshot, renderContent 1`] = ` ] } > - - + @@ -81,5 +79,5 @@ exports[`Search RecentItem should match snapshot and respond to events 1`] = ` - + `; diff --git a/app/screens/search/__snapshots__/recent_item.test.js.snap b/app/screens/search/__snapshots__/recent_item.test.js.snap index ef99dae8f..d5b46b4cb 100644 --- a/app/screens/search/__snapshots__/recent_item.test.js.snap +++ b/app/screens/search/__snapshots__/recent_item.test.js.snap @@ -1,9 +1,8 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Search RecentItem should match snapshot and respond to events 1`] = ` - @@ -33,8 +32,7 @@ exports[`Search RecentItem should match snapshot and respond to events 1`] = ` > test - - + - + `; diff --git a/app/screens/search/modifier.test.js b/app/screens/search/modifier.test.js index 38d2f5983..6e00f57d9 100644 --- a/app/screens/search/modifier.test.js +++ b/app/screens/search/modifier.test.js @@ -27,7 +27,7 @@ describe('Search RecentItem', () => { ); expect(wrapper.getElement()).toMatchSnapshot(); - wrapper.find('TouchableHighlight').first().props().onPress(); + wrapper.find('ForwardRef').first().props().onPress(); expect(baseProps.setModifierValue).toHaveBeenCalledTimes(1); expect(baseProps.setModifierValue).toHaveBeenCalledWith(item.value); }); diff --git a/app/screens/search/recent_item.test.js b/app/screens/search/recent_item.test.js index 240d43f14..36581d1e8 100644 --- a/app/screens/search/recent_item.test.js +++ b/app/screens/search/recent_item.test.js @@ -25,11 +25,11 @@ describe('Search RecentItem', () => { , ); - expect(wrapper.getElement()).toMatchSnapshot(); - wrapper.find('TouchableHighlight').first().props().onPress(); + expect(wrapper).toMatchSnapshot(); + wrapper.find('ForwardRef').first().props().onPress(); expect(baseProps.setRecentValue).toHaveBeenCalledTimes(1); expect(baseProps.setRecentValue).toHaveBeenCalledWith(item); - wrapper.find('TouchableOpacity').first().props().onPress(); + wrapper.find('ForwardRef').at(1).props().onPress(); expect(baseProps.setRecentValue).toHaveBeenCalledTimes(1); expect(baseProps.setRecentValue).toHaveBeenCalledWith(item); }); diff --git a/app/screens/search/search.js b/app/screens/search/search.js index afed4b90e..a95d5cf37 100644 --- a/app/screens/search/search.js +++ b/app/screens/search/search.js @@ -1,6 +1,8 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. +/* eslint-disable no-underscore-dangle */ + import React, {PureComponent} from 'react'; import PropTypes from 'prop-types'; import {intlShape} from 'react-intl'; @@ -141,7 +143,7 @@ export default class Search extends PureComponent { Keyboard.dismiss(); if (this.listRef?._wrapperListRef) { - this.listRef._wrapperListRef.getListRef().scrollToOffset({ //eslint-disable-line no-underscore-dangle + this.listRef._wrapperListRef.getListRef().scrollToOffset({ animated: true, offset, }); @@ -483,7 +485,7 @@ export default class Search extends PureComponent { scrollToTop = () => { if (this.listRef?._wrapperListRef) { - this.listRef._wrapperListRef.getListRef().scrollToOffset({ //eslint-disable-line no-underscore-dangle + this.listRef._wrapperListRef.getListRef().scrollToOffset({ animated: false, offset: 0, }); diff --git a/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap b/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap index aae03f1c7..743b079f4 100644 --- a/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap +++ b/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap @@ -105,8 +105,7 @@ exports[`NotificationSettingsEmailAndroid should match snapshot 2`] = ` - @@ -115,7 +114,7 @@ exports[`NotificationSettingsEmailAndroid should match snapshot 2`] = ` id="mobile.notification_settings.modal_cancel" style={Object {}} /> - + - @@ -134,7 +132,7 @@ exports[`NotificationSettingsEmailAndroid should match snapshot 2`] = ` id="mobile.notification_settings.modal_save" style={Object {}} /> - + diff --git a/ios/Mattermost.xcodeproj/project.pbxproj b/ios/Mattermost.xcodeproj/project.pbxproj index 51012b54c..79a1beae6 100644 --- a/ios/Mattermost.xcodeproj/project.pbxproj +++ b/ios/Mattermost.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 00E356F31AD99517003FC87E /* MattermostTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* MattermostTests.m */; }; 0111A42B7F264BCF8CBDE3ED /* OpenSans-ExtraBoldItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FBBEC29EE2D3418D9AC33BD5 /* OpenSans-ExtraBoldItalic.ttf */; }; 0C0D24F53F254F75869E5951 /* OpenSans-Italic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 41F3AFE83AAF4B74878AB78A /* OpenSans-Italic.ttf */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; @@ -61,7 +60,6 @@ A08D512E7ADC40CCAD055A9E /* OpenSans-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BC977883E2624E05975CA65B /* OpenSans-Regular.ttf */; }; AA9605CFDA8E4E7CB8A041BF /* Roboto-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C5BD64DE829E455A997DCAD5 /* Roboto-Regular.ttf */; }; ABF5F93B1D0A47BAACEAC376 /* Roboto-Light.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 34B20A903038487E8D7DEA1E /* Roboto-Light.ttf */; }; - B9899621C7F80C4B5C51BB8B /* libPods-MattermostTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BB993883BB9CFFBD2BEB9FC /* libPods-MattermostTests.a */; }; C99BB3F4E4564F01A531FBEA /* Roboto-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 09FA716C56874BDDA30FE8C4 /* Roboto-Medium.ttf */; }; D719A67137964F08BE47A5FC /* OpenSans-ExtraBold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 3647DF63D6764CF093375861 /* OpenSans-ExtraBold.ttf */; }; DDE492F7425D451884DAA088 /* Roboto-Black.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6EFF13DD24CE4E26953E598A /* Roboto-Black.ttf */; }; @@ -72,13 +70,6 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 13B07F861A680F5B00A75B9A; - remoteInfo = Mattermost; - }; 7F240A21220D3A2300637665 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; @@ -149,7 +140,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 00E356EE1AD99517003FC87E /* MattermostTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MattermostTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* MattermostTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MattermostTests.m; sourceTree = ""; }; 031EF04FB2D14EEFAACBAA1A /* Roboto-Italic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Roboto-Italic.ttf"; path = "../assets/fonts/Roboto-Italic.ttf"; sourceTree = ""; }; @@ -163,6 +153,7 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Mattermost/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Mattermost/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Mattermost/main.m; sourceTree = ""; }; + 182D203F539AF68F1647EFAF /* Pods-Mattermost-MattermostTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mattermost-MattermostTests.release.xcconfig"; path = "Target Support Files/Pods-Mattermost-MattermostTests/Pods-Mattermost-MattermostTests.release.xcconfig"; sourceTree = ""; }; 25BF2BACE89201DE6E585B7E /* Pods-Mattermost.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mattermost.release.xcconfig"; path = "Target Support Files/Pods-Mattermost/Pods-Mattermost.release.xcconfig"; sourceTree = ""; }; 263D389521BE459684618177 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; 297AAFCCF0BD99FC109DA2BC /* Pods-MattermostTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MattermostTests.release.xcconfig"; path = "Target Support Files/Pods-MattermostTests/Pods-MattermostTests.release.xcconfig"; sourceTree = ""; }; @@ -190,7 +181,6 @@ 536CC6C223E79287002C478C /* RNNotificationEventHandler+HandleReplyAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "RNNotificationEventHandler+HandleReplyAction.h"; path = "Mattermost/RNNotificationEventHandler+HandleReplyAction.h"; sourceTree = ""; }; 563B800AC53A447FA18F47D3 /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Solid.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"; sourceTree = ""; }; 57CB4735B7E57B50D0B50E16 /* Pods-MattermostTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MattermostTests.debug.xcconfig"; path = "Target Support Files/Pods-MattermostTests/Pods-MattermostTests.debug.xcconfig"; sourceTree = ""; }; - 5BB993883BB9CFFBD2BEB9FC /* libPods-MattermostTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MattermostTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 6561AEAC21CC40B8A72ABB93 /* OpenSans-Light.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-Light.ttf"; path = "../assets/fonts/OpenSans-Light.ttf"; sourceTree = ""; }; 6BAF8296411D4657B5A0E8F8 /* libRNReactNativeDocViewer.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNReactNativeDocViewer.a; sourceTree = ""; }; 6EFF13DD24CE4E26953E598A /* Roboto-Black.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Roboto-Black.ttf"; path = "../assets/fonts/Roboto-Black.ttf"; sourceTree = ""; }; @@ -215,6 +205,7 @@ 7F292A701E8AB73400A450A3 /* SplashScreenResource */ = {isa = PBXFileReference; lastKnownFileType = folder; path = SplashScreenResource; sourceTree = ""; }; 7F292AA41E8ABB1100A450A3 /* LaunchScreen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = LaunchScreen.xib; path = SplashScreenResource/LaunchScreen.xib; sourceTree = ""; }; 7F292AA51E8ABB1100A450A3 /* splash.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = splash.png; path = SplashScreenResource/splash.png; sourceTree = ""; }; + 7F325D6DAAF1047EB948EFF7 /* Pods-Mattermost-MattermostTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mattermost-MattermostTests.debug.xcconfig"; path = "Target Support Files/Pods-Mattermost-MattermostTests/Pods-Mattermost-MattermostTests.debug.xcconfig"; sourceTree = ""; }; 7F43D6051F6BF9EB001FC614 /* libPods-Mattermost.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libPods-Mattermost.a"; path = "../../../../../../../Library/Developer/Xcode/DerivedData/Mattermost-czlinsdviifujheezzjvmisotjrm/Build/Products/Debug-iphonesimulator/libPods-Mattermost.a"; sourceTree = ""; }; 7F54ABFAE6CE4A6DB11D1ED7 /* Roboto-BlackItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Roboto-BlackItalic.ttf"; path = "../assets/fonts/Roboto-BlackItalic.ttf"; sourceTree = ""; }; 7F581D32221ED5C60099E66B /* NotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -268,18 +259,11 @@ D2A2E7723B364D62A9C5054D /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; D4B1B363C2414DA19C1AC521 /* OpenSans-Bold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-Bold.ttf"; path = "../assets/fonts/OpenSans-Bold.ttf"; sourceTree = ""; }; EB4F0DF36537B0B21BE962FB /* Pods-Mattermost.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mattermost.debug.xcconfig"; path = "Target Support Files/Pods-Mattermost/Pods-Mattermost.debug.xcconfig"; sourceTree = ""; }; + F41672974C2907F74BB59B16 /* libPods-Mattermost-MattermostTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Mattermost-MattermostTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; FBBEC29EE2D3418D9AC33BD5 /* OpenSans-ExtraBoldItalic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "OpenSans-ExtraBoldItalic.ttf"; path = "../assets/fonts/OpenSans-ExtraBoldItalic.ttf"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 00E356EB1AD99517003FC87E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - B9899621C7F80C4B5C51BB8B /* libPods-MattermostTests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -414,6 +398,8 @@ 25BF2BACE89201DE6E585B7E /* Pods-Mattermost.release.xcconfig */, 57CB4735B7E57B50D0B50E16 /* Pods-MattermostTests.debug.xcconfig */, 297AAFCCF0BD99FC109DA2BC /* Pods-MattermostTests.release.xcconfig */, + 7F325D6DAAF1047EB948EFF7 /* Pods-Mattermost-MattermostTests.debug.xcconfig */, + 182D203F539AF68F1647EFAF /* Pods-Mattermost-MattermostTests.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -448,7 +434,7 @@ 7F43D6051F6BF9EB001FC614 /* libPods-Mattermost.a */, 81061F4CBB31484A94D5A8EE /* libz.tbd */, 8DEEFB3ED6175724A2653247 /* libPods-Mattermost.a */, - 5BB993883BB9CFFBD2BEB9FC /* libPods-MattermostTests.a */, + F41672974C2907F74BB59B16 /* libPods-Mattermost-MattermostTests.a */, ); name = Frameworks; sourceTree = ""; @@ -533,7 +519,6 @@ isa = PBXGroup; children = ( 13B07F961A680F5B00A75B9A /* Mattermost.app */, - 00E356EE1AD99517003FC87E /* MattermostTests.xctest */, 7F240A19220D3A2300637665 /* MattermostShare.appex */, 7F581D32221ED5C60099E66B /* NotificationService.appex */, ); @@ -543,25 +528,6 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 00E356ED1AD99517003FC87E /* MattermostTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "MattermostTests" */; - buildPhases = ( - C540C9BFE580D99F0700EC9D /* [CP] Check Pods Manifest.lock */, - 00E356EA1AD99517003FC87E /* Sources */, - 00E356EB1AD99517003FC87E /* Frameworks */, - 00E356EC1AD99517003FC87E /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 00E356F51AD99517003FC87E /* PBXTargetDependency */, - ); - name = MattermostTests; - productName = MattermostTests; - productReference = 00E356EE1AD99517003FC87E /* MattermostTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; 13B07F861A680F5B00A75B9A /* Mattermost */ = { isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Mattermost" */; @@ -634,10 +600,6 @@ LastUpgradeCheck = 820; ORGANIZATIONNAME = Facebook; TargetAttributes = { - 00E356ED1AD99517003FC87E = { - CreatedOnToolsVersion = 6.2; - TestTargetID = 13B07F861A680F5B00A75B9A; - }; 13B07F861A680F5B00A75B9A = { DevelopmentTeam = UQ8HT4Q2XM; LastSwiftMigration = 1010; @@ -703,7 +665,6 @@ projectRoot = ""; targets = ( 13B07F861A680F5B00A75B9A /* Mattermost */, - 00E356ED1AD99517003FC87E /* MattermostTests */, 7F240A18220D3A2300637665 /* MattermostShare */, 7F581D31221ED5C60099E66B /* NotificationService */, ); @@ -721,13 +682,6 @@ /* End PBXReferenceProxy section */ /* Begin PBXResourcesBuildPhase section */ - 00E356EC1AD99517003FC87E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 13B07F8E1A680F5B00A75B9A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -820,58 +774,6 @@ 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; }; - 1D22DC6FC0A37F7F657B8274 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Mattermost/Pods-Mattermost-resources.sh", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf", - "${PODS_ROOT}/../../node_modules/react-native-youtube/assets/YTPlayerView-iframe-player.html", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - ); - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/YTPlayerView-iframe-player.html", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Mattermost/Pods-Mattermost-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; AE4769B235D14E6C9C64EA78 /* Upload Debug Symbols to Sentry */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -886,28 +788,6 @@ shellPath = /bin/sh; shellScript = "./uploadDebugSymbols.sh\n"; }; - C540C9BFE580D99F0700EC9D /* [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-MattermostTests-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; - }; ED4C644925C525E30315E09E /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -961,14 +841,6 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 00E356EA1AD99517003FC87E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00E356F31AD99517003FC87E /* MattermostTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 13B07F871A680F5B00A75B9A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1015,11 +887,6 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 13B07F861A680F5B00A75B9A /* Mattermost */; - targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; - }; 7F240A22220D3A2300637665 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 7F240A18220D3A2300637665 /* MattermostShare */; @@ -1059,55 +926,6 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 00E356F61AD99517003FC87E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 57CB4735B7E57B50D0B50E16 /* Pods-MattermostTests.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - HEADER_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = MattermostTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.rnbeta; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Mattermost.app/Mattermost"; - }; - name = Debug; - }; - 00E356F71AD99517003FC87E /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 297AAFCCF0BD99FC109DA2BC /* Pods-MattermostTests.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; - COPY_PHASE_STRIP = NO; - HEADER_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = MattermostTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.rnbeta; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Mattermost.app/Mattermost"; - }; - name = Release; - }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = EB4F0DF36537B0B21BE962FB /* Pods-Mattermost.debug.xcconfig */; @@ -1129,6 +947,10 @@ INFOPLIST_FILE = Mattermost/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_CFLAGS = ( + "$(inherited)", + "-DFB_SONARKIT_ENABLED=1", + ); OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -1167,6 +989,10 @@ INFOPLIST_FILE = Mattermost/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_CFLAGS = ( + "$(inherited)", + "-DFB_SONARKIT_ENABLED=1", + ); OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -1213,6 +1039,10 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-DFB_SONARKIT_ENABLED=1", + ); PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.rnbeta.MattermostShare; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -1254,6 +1084,10 @@ IPHONEOS_DEPLOYMENT_TARGET = 10.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; MTL_FAST_MATH = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-DFB_SONARKIT_ENABLED=1", + ); PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.rnbeta.MattermostShare; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -1293,6 +1127,10 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-DFB_SONARKIT_ENABLED=1", + ); PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.rnbeta.NotificationService; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -1332,6 +1170,10 @@ IPHONEOS_DEPLOYMENT_TARGET = 10.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; MTL_FAST_MATH = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-DFB_SONARKIT_ENABLED=1", + ); PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.rnbeta.NotificationService; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -1428,15 +1270,6 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "MattermostTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00E356F61AD99517003FC87E /* Debug */, - 00E356F71AD99517003FC87E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Mattermost" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/ios/Mattermost/AppDelegate.h b/ios/Mattermost/AppDelegate.h index a9654d5e0..1d6d0c66c 100644 --- a/ios/Mattermost/AppDelegate.h +++ b/ios/Mattermost/AppDelegate.h @@ -1,12 +1,3 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - #import @interface AppDelegate : UIResponder diff --git a/ios/Mattermost/AppDelegate.m b/ios/Mattermost/AppDelegate.m index 433d5771a..c12467593 100644 --- a/ios/Mattermost/AppDelegate.m +++ b/ios/Mattermost/AppDelegate.m @@ -1,12 +1,3 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - #import "AppDelegate.h" #import #import @@ -20,6 +11,24 @@ #import #import +#if DEBUG +#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 NSString* const NOTIFICATION_MESSAGE_ACTION = @"message"; @@ -34,6 +43,10 @@ NSString* const NOTIFICATION_UPDATE_BADGE_ACTION = @"update_badge"; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + #if DEBUG + InitializeFlipper(application); + #endif + // Clear keychain on first run in case of reinstallation if (![[NSUserDefaults standardUserDefaults] objectForKey:@"FirstRun"]) { diff --git a/ios/Mattermost/main.m b/ios/Mattermost/main.m index 3d767fcbb..b1df44b95 100644 --- a/ios/Mattermost/main.m +++ b/ios/Mattermost/main.m @@ -1,12 +1,3 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - #import #import "AppDelegate.h" diff --git a/ios/MattermostTests/MattermostTests.m b/ios/MattermostTests/MattermostTests.m deleted file mode 100644 index 32b40bbb4..000000000 --- a/ios/MattermostTests/MattermostTests.m +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import -#import - -#import -#import - -#define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React Native!" - -@interface MattermostTests : XCTestCase - -@end - -@implementation MattermostTests - -- (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 = [[[[UIApplication sharedApplication] delegate] window] rootViewController]; - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; - BOOL foundElement = NO; - - __block NSString *redboxError = nil; - RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - if (level >= RCTLogLevelError) { - redboxError = message; - } - }); - - 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; - }]; - } - - RCTSetLogFunction(RCTDefaultLogFunction); - - 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 index d6209e63f..2e028cb8a 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,7 +1,40 @@ -# Uncomment the next line to define a global platform for your project -# platform :ios, '9.0' +platform :ios, '9.0' require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' +def add_flipper_pods! + version = '~> 0.33.1' + pod 'FlipperKit', version, :configuration => 'Debug' + pod 'FlipperKit/FlipperKitLayoutPlugin', version, :configuration => 'Debug' + pod 'FlipperKit/SKIOSNetworkPlugin', version, :configuration => 'Debug' + pod 'FlipperKit/FlipperKitUserDefaultsPlugin', version, :configuration => 'Debug' + pod 'FlipperKit/FlipperKitReactPlugin', version, :configuration => 'Debug' +end + +# Post Install processing for Flipper +def flipper_post_install(installer) + installer.pods_project.targets.each do |target| + if target.name == 'YogaKit' + target.build_configurations.each do |config| + config.build_settings['SWIFT_VERSION'] = '4.1' + end + end + end + file_name = Dir.glob("*.xcodeproj")[0] + app_project = Xcodeproj::Project.open(file_name) + app_project.native_targets.each do |target| + target.build_configurations.each do |config| + cflags = config.build_settings['OTHER_CFLAGS'] || '$(inherited) ' + unless cflags.include? '-DFB_SONARKIT_ENABLED=1' + puts 'Adding -DFB_SONARKIT_ENABLED=1 in OTHER_CFLAGS...' + cflags << '-DFB_SONARKIT_ENABLED=1' + end + config.build_settings['OTHER_CFLAGS'] = cflags + end + app_project.save + end + installer.pods_project.save +end + target 'Mattermost' do # Pods for Mattermost pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector" @@ -27,9 +60,9 @@ target 'Mattermost' do pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi' pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor' pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector' - pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon" + pod 'ReactCommon/callinvoker', :path => "../node_modules/react-native/ReactCommon" pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon" - pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga' + pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga', :modular_headers => true pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec' pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' @@ -42,10 +75,14 @@ target 'Mattermost' do pod 'XCDYouTubeKit', '2.8.2' pod 'Swime', '3.0.6' - target 'MattermostTests' do - inherit! :search_paths - # Pods for testing - end - use_native_modules! + + # Enables Flipper. + # + # Note that if you have use_frameworks! enabled, Flipper will not work and + # you should disable these next few lines. + add_flipper_pods! + post_install do |installer| + flipper_post_install(installer) + end end diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 968b1f9d4..11af2a89e 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2,15 +2,63 @@ PODS: - boost-for-react-native (1.63.0) - BVLinearGradient (2.5.6): - React + - CocoaAsyncSocket (7.6.4) + - CocoaLibEvent (1.0.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.61.5) - - FBReactNativeSpec (0.61.5): + - FBLazyVector (0.62.2) + - FBReactNativeSpec (0.62.2): - Folly (= 2018.10.22.00) - - RCTRequired (= 0.61.5) - - RCTTypeSafety (= 0.61.5) - - React-Core (= 0.61.5) - - React-jsi (= 0.61.5) - - ReactCommon/turbomodule/core (= 0.61.5) + - RCTRequired (= 0.62.2) + - RCTTypeSafety (= 0.62.2) + - React-Core (= 0.62.2) + - React-jsi (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - Flipper (0.33.1): + - Flipper-Folly (~> 2.1) + - Flipper-RSocket (~> 1.0) + - Flipper-DoubleConversion (1.1.7) + - Flipper-Folly (2.1.1): + - boost-for-react-native + - CocoaLibEvent (~> 1.0) + - Flipper-DoubleConversion + - Flipper-Glog + - OpenSSL-Universal (= 1.0.2.19) + - Flipper-Glog (0.3.6) + - Flipper-PeerTalk (0.0.4) + - Flipper-RSocket (1.0.0): + - Flipper-Folly (~> 2.0) + - FlipperKit (0.33.1): + - FlipperKit/Core (= 0.33.1) + - FlipperKit/Core (0.33.1): + - Flipper (~> 0.33.1) + - FlipperKit/CppBridge + - FlipperKit/FBCxxFollyDynamicConvert + - FlipperKit/FBDefines + - FlipperKit/FKPortForwarding + - FlipperKit/CppBridge (0.33.1): + - Flipper (~> 0.33.1) + - FlipperKit/FBCxxFollyDynamicConvert (0.33.1): + - Flipper-Folly (~> 2.1) + - FlipperKit/FBDefines (0.33.1) + - FlipperKit/FKPortForwarding (0.33.1): + - CocoaAsyncSocket (~> 7.6) + - Flipper-PeerTalk (~> 0.0.4) + - FlipperKit/FlipperKitHighlightOverlay (0.33.1) + - FlipperKit/FlipperKitLayoutPlugin (0.33.1): + - FlipperKit/Core + - FlipperKit/FlipperKitHighlightOverlay + - FlipperKit/FlipperKitLayoutTextSearchable + - YogaKit (~> 1.18) + - FlipperKit/FlipperKitLayoutTextSearchable (0.33.1) + - FlipperKit/FlipperKitNetworkPlugin (0.33.1): + - FlipperKit/Core + - FlipperKit/FlipperKitReactPlugin (0.33.1): + - FlipperKit/Core + - FlipperKit/FlipperKitUserDefaultsPlugin (0.33.1): + - FlipperKit/Core + - FlipperKit/SKIOSNetworkPlugin (0.33.1): + - FlipperKit/Core + - FlipperKit/FlipperKitNetworkPlugin - Folly (2018.10.22.00): - boost-for-react-native - DoubleConversion @@ -33,181 +81,184 @@ PODS: - libwebp/demux - libwebp/webp (1.1.0) - MMKV (1.0.24) + - OpenSSL-Universal (1.0.2.19): + - OpenSSL-Universal/Static (= 1.0.2.19) + - OpenSSL-Universal/Static (1.0.2.19) - Permission-Camera (2.0.10): - RNPermissions - Permission-PhotoLibrary (2.0.10): - RNPermissions - - RCTRequired (0.61.5) - - RCTTypeSafety (0.61.5): - - FBLazyVector (= 0.61.5) + - RCTRequired (0.62.2) + - RCTTypeSafety (0.62.2): + - FBLazyVector (= 0.62.2) - Folly (= 2018.10.22.00) - - RCTRequired (= 0.61.5) - - React-Core (= 0.61.5) + - RCTRequired (= 0.62.2) + - React-Core (= 0.62.2) - RCTYouTube (2.0.0): - React - YoutubePlayer-in-WKWebView (~> 0.3.1) - - React (0.61.5): - - React-Core (= 0.61.5) - - React-Core/DevSupport (= 0.61.5) - - React-Core/RCTWebSocket (= 0.61.5) - - React-RCTActionSheet (= 0.61.5) - - React-RCTAnimation (= 0.61.5) - - React-RCTBlob (= 0.61.5) - - React-RCTImage (= 0.61.5) - - React-RCTLinking (= 0.61.5) - - React-RCTNetwork (= 0.61.5) - - React-RCTSettings (= 0.61.5) - - React-RCTText (= 0.61.5) - - React-RCTVibration (= 0.61.5) - - React-Core (0.61.5): + - React (0.62.2): + - React-Core (= 0.62.2) + - React-Core/DevSupport (= 0.62.2) + - React-Core/RCTWebSocket (= 0.62.2) + - React-RCTActionSheet (= 0.62.2) + - React-RCTAnimation (= 0.62.2) + - React-RCTBlob (= 0.62.2) + - React-RCTImage (= 0.62.2) + - React-RCTLinking (= 0.62.2) + - React-RCTNetwork (= 0.62.2) + - React-RCTSettings (= 0.62.2) + - React-RCTText (= 0.62.2) + - React-RCTVibration (= 0.62.2) + - React-Core (0.62.2): - Folly (= 2018.10.22.00) - glog - - React-Core/Default (= 0.61.5) - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-Core/Default (= 0.62.2) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/CoreModulesHeaders (0.61.5): + - React-Core/CoreModulesHeaders (0.62.2): - Folly (= 2018.10.22.00) - glog - React-Core/Default - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/Default (0.61.5): + - React-Core/Default (0.62.2): - Folly (= 2018.10.22.00) - glog - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/DevSupport (0.61.5): + - React-Core/DevSupport (0.62.2): - Folly (= 2018.10.22.00) - glog - - React-Core/Default (= 0.61.5) - - React-Core/RCTWebSocket (= 0.61.5) - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) - - React-jsinspector (= 0.61.5) + - React-Core/Default (= 0.62.2) + - React-Core/RCTWebSocket (= 0.62.2) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - React-jsinspector (= 0.62.2) - Yoga - - React-Core/RCTActionSheetHeaders (0.61.5): + - React-Core/RCTActionSheetHeaders (0.62.2): - Folly (= 2018.10.22.00) - glog - React-Core/Default - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/RCTAnimationHeaders (0.61.5): + - React-Core/RCTAnimationHeaders (0.62.2): - Folly (= 2018.10.22.00) - glog - React-Core/Default - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/RCTBlobHeaders (0.61.5): + - React-Core/RCTBlobHeaders (0.62.2): - Folly (= 2018.10.22.00) - glog - React-Core/Default - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/RCTImageHeaders (0.61.5): + - React-Core/RCTImageHeaders (0.62.2): - Folly (= 2018.10.22.00) - glog - React-Core/Default - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/RCTLinkingHeaders (0.61.5): + - React-Core/RCTLinkingHeaders (0.62.2): - Folly (= 2018.10.22.00) - glog - React-Core/Default - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/RCTNetworkHeaders (0.61.5): + - React-Core/RCTNetworkHeaders (0.62.2): - Folly (= 2018.10.22.00) - glog - React-Core/Default - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/RCTSettingsHeaders (0.61.5): + - React-Core/RCTSettingsHeaders (0.62.2): - Folly (= 2018.10.22.00) - glog - React-Core/Default - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/RCTTextHeaders (0.61.5): + - React-Core/RCTTextHeaders (0.62.2): - Folly (= 2018.10.22.00) - glog - React-Core/Default - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/RCTVibrationHeaders (0.61.5): + - React-Core/RCTVibrationHeaders (0.62.2): - Folly (= 2018.10.22.00) - glog - React-Core/Default - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-Core/RCTWebSocket (0.61.5): + - React-Core/RCTWebSocket (0.62.2): - Folly (= 2018.10.22.00) - glog - - React-Core/Default (= 0.61.5) - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsiexecutor (= 0.61.5) + - React-Core/Default (= 0.62.2) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) - Yoga - - React-CoreModules (0.61.5): - - FBReactNativeSpec (= 0.61.5) + - React-CoreModules (0.62.2): + - FBReactNativeSpec (= 0.62.2) - Folly (= 2018.10.22.00) - - RCTTypeSafety (= 0.61.5) - - React-Core/CoreModulesHeaders (= 0.61.5) - - React-RCTImage (= 0.61.5) - - ReactCommon/turbomodule/core (= 0.61.5) - - React-cxxreact (0.61.5): + - RCTTypeSafety (= 0.62.2) + - React-Core/CoreModulesHeaders (= 0.62.2) + - React-RCTImage (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-cxxreact (0.62.2): - boost-for-react-native (= 1.63.0) - DoubleConversion - Folly (= 2018.10.22.00) - glog - - React-jsinspector (= 0.61.5) - - React-jsi (0.61.5): + - React-jsinspector (= 0.62.2) + - React-jsi (0.62.2): - boost-for-react-native (= 1.63.0) - DoubleConversion - Folly (= 2018.10.22.00) - glog - - React-jsi/Default (= 0.61.5) - - React-jsi/Default (0.61.5): + - React-jsi/Default (= 0.62.2) + - React-jsi/Default (0.62.2): - boost-for-react-native (= 1.63.0) - DoubleConversion - Folly (= 2018.10.22.00) - glog - - React-jsiexecutor (0.61.5): + - React-jsiexecutor (0.62.2): - DoubleConversion - Folly (= 2018.10.22.00) - glog - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - React-jsinspector (0.61.5) - - react-native-cameraroll (1.4.1): + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsinspector (0.62.2) + - react-native-cameraroll (1.5.2): - React - react-native-cookies (3.2.0): - React - - react-native-document-picker (3.3.0): + - react-native-document-picker (3.3.2): - React - react-native-hw-keyboard-event (0.0.4): - React @@ -218,7 +269,7 @@ PODS: - React - react-native-netinfo (4.4.0): - React - - react-native-notifications (2.0.6): + - react-native-notifications (2.1.7): - React - react-native-passcode-status (1.1.2): - React @@ -231,46 +282,70 @@ PODS: - React - react-native-webview (7.0.1): - React - - React-RCTActionSheet (0.61.5): - - React-Core/RCTActionSheetHeaders (= 0.61.5) - - React-RCTAnimation (0.61.5): - - React-Core/RCTAnimationHeaders (= 0.61.5) - - React-RCTBlob (0.61.5): - - React-Core/RCTBlobHeaders (= 0.61.5) - - React-Core/RCTWebSocket (= 0.61.5) - - React-jsi (= 0.61.5) - - React-RCTNetwork (= 0.61.5) - - React-RCTImage (0.61.5): - - React-Core/RCTImageHeaders (= 0.61.5) - - React-RCTNetwork (= 0.61.5) - - React-RCTLinking (0.61.5): - - React-Core/RCTLinkingHeaders (= 0.61.5) - - React-RCTNetwork (0.61.5): - - React-Core/RCTNetworkHeaders (= 0.61.5) - - React-RCTSettings (0.61.5): - - React-Core/RCTSettingsHeaders (= 0.61.5) - - React-RCTText (0.61.5): - - React-Core/RCTTextHeaders (= 0.61.5) - - React-RCTVibration (0.61.5): - - React-Core/RCTVibrationHeaders (= 0.61.5) - - ReactCommon/jscallinvoker (0.61.5): + - React-RCTActionSheet (0.62.2): + - React-Core/RCTActionSheetHeaders (= 0.62.2) + - React-RCTAnimation (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.2) + - React-Core/RCTAnimationHeaders (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTBlob (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - React-Core/RCTBlobHeaders (= 0.62.2) + - React-Core/RCTWebSocket (= 0.62.2) + - React-jsi (= 0.62.2) + - React-RCTNetwork (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTImage (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.2) + - React-Core/RCTImageHeaders (= 0.62.2) + - React-RCTNetwork (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTLinking (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - React-Core/RCTLinkingHeaders (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTNetwork (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.2) + - React-Core/RCTNetworkHeaders (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTSettings (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.2) + - React-Core/RCTSettingsHeaders (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTText (0.62.2): + - React-Core/RCTTextHeaders (= 0.62.2) + - React-RCTVibration (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - React-Core/RCTVibrationHeaders (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - ReactCommon/callinvoker (0.62.2): - DoubleConversion - Folly (= 2018.10.22.00) - glog - - React-cxxreact (= 0.61.5) - - ReactCommon/turbomodule/core (0.61.5): + - React-cxxreact (= 0.62.2) + - ReactCommon/turbomodule/core (0.62.2): - DoubleConversion - Folly (= 2018.10.22.00) - glog - - React-Core (= 0.61.5) - - React-cxxreact (= 0.61.5) - - React-jsi (= 0.61.5) - - ReactCommon/jscallinvoker (= 0.61.5) + - React-Core (= 0.62.2) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - ReactCommon/callinvoker (= 0.62.2) - ReactNativeExceptionHandler (2.10.8): - React - ReactNativeKeyboardTrackingView (5.6.1): - React - - ReactNativeNavigation (6.3.0): + - ReactNativeNavigation (6.4.0): - React - React-RCTImage - React-RCTText @@ -284,7 +359,7 @@ PODS: - React - SDWebImage (~> 5.0) - SDWebImageWebPCoder (~> 0.4.1) - - RNGestureHandler (1.6.0): + - RNGestureHandler (1.6.1): - React - RNKeychain (4.0.5): - React @@ -294,7 +369,7 @@ PODS: - React - RNReactNativeHapticFeedback (1.9.0): - React - - RNSentry (1.3.3): + - RNSentry (1.3.6): - React - Sentry (~> 4.4.0) - RNSVG (12.0.3): @@ -313,6 +388,8 @@ PODS: - Swime (3.0.6) - XCDYouTubeKit (2.8.2) - Yoga (1.14.0) + - YogaKit (1.18.1): + - Yoga (~> 1.14) - YoutubePlayer-in-WKWebView (0.3.4) DEPENDENCIES: @@ -320,6 +397,11 @@ DEPENDENCIES: - 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/Libraries/FBReactNativeSpec`) + - FlipperKit (~> 0.33.1) + - FlipperKit/FlipperKitLayoutPlugin (~> 0.33.1) + - FlipperKit/FlipperKitReactPlugin (~> 0.33.1) + - FlipperKit/FlipperKitUserDefaultsPlugin (~> 0.33.1) + - FlipperKit/SKIOSNetworkPlugin (~> 0.33.1) - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - jail-monkey (from `../node_modules/jail-monkey`) @@ -358,7 +440,7 @@ DEPENDENCIES: - 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`) - - ReactCommon/jscallinvoker (from `../node_modules/react-native/ReactCommon`) + - ReactCommon/callinvoker (from `../node_modules/react-native/ReactCommon`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - ReactNativeExceptionHandler (from `../node_modules/react-native-exception-handler`) - ReactNativeKeyboardTrackingView (from `../node_modules/react-native-keyboard-tracking-view`) @@ -382,13 +464,24 @@ DEPENDENCIES: SPEC REPOS: https://github.com/cocoapods/specs.git: - boost-for-react-native + - CocoaAsyncSocket + - CocoaLibEvent + - Flipper + - Flipper-DoubleConversion + - Flipper-Folly + - Flipper-Glog + - Flipper-PeerTalk + - Flipper-RSocket + - FlipperKit - libwebp - MMKV + - OpenSSL-Universal - SDWebImage - SDWebImageWebPCoder - Sentry - Swime - XCDYouTubeKit + - YogaKit - YoutubePlayer-in-WKWebView EXTERNAL SOURCES: @@ -510,61 +603,71 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872 + CocoaAsyncSocket: 694058e7c0ed05a9e217d1b3c7ded962f4180845 + CocoaLibEvent: 2fab71b8bd46dd33ddb959f7928ec5909f838e3f DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2 - FBLazyVector: aaeaf388755e4f29cd74acbc9e3b8da6d807c37f - FBReactNativeSpec: 118d0d177724c2d67f08a59136eb29ef5943ec75 + FBLazyVector: 4aab18c93cd9546e4bfed752b4084585eca8b245 + FBReactNativeSpec: 5465d51ccfeecb7faa12f9ae0024f2044ce4044e + Flipper: 6c1f484f9a88d30ab3e272800d53688439e50f69 + Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 + Flipper-Folly: 2de3d03e0acc7064d5e4ed9f730e2f217486f162 + Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6 + Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 + Flipper-RSocket: 1260a31c05c238eabfa9bb8a64e3983049048371 + FlipperKit: 6dc9b8f4ef60d9e5ded7f0264db299c91f18832e Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51 glog: 1f3da668190260b06b429bb211bfbee5cd790c28 jail-monkey: d7c5048b2336f22ee9c9e0efa145f1f917338ea9 libwebp: 946cb3063cea9236285f7e9a8505d806d30e07f3 MMKV: 758b2edee46b08bdd958db4169191afb9a6d4ebd + OpenSSL-Universal: 8b48cc0d10c1b2923617dfe5c178aa9ed2689355 Permission-Camera: 8f0e5decca5f28f70f28a8dc31f012c9bad40ad8 Permission-PhotoLibrary: b209bf23b784c9e1409a57d81c6d11ab1d3079c1 - RCTRequired: b153add4da6e7dbc44aebf93f3cf4fcae392ddf1 - RCTTypeSafety: 9aa1b91d7f9310fc6eadc3cf95126ffe818af320 + RCTRequired: cec6a34b3ac8a9915c37e7e4ad3aa74726ce4035 + RCTTypeSafety: 93006131180074cffa227a1075802c89a49dd4ce RCTYouTube: 5e94bfa005371c41d307f3f93c51b3e8eabfb0c8 - React: b6a59ef847b2b40bb6e0180a97d0ca716969ac78 - React-Core: 688b451f7d616cc1134ac95295b593d1b5158a04 - React-CoreModules: d04f8494c1a328b69ec11db9d1137d667f916dcb - React-cxxreact: d0f7bcafa196ae410e5300736b424455e7fb7ba7 - React-jsi: cb2cd74d7ccf4cffb071a46833613edc79cdf8f7 - React-jsiexecutor: d5525f9ed5f782fdbacb64b9b01a43a9323d2386 - React-jsinspector: fa0ecc501688c3c4c34f28834a76302233e29dc0 - react-native-cameraroll: 035c425c733acd3333e6c673db5ab66a559ca2e0 + React: 29a8b1a02bd764fb7644ef04019270849b9a7ac3 + React-Core: b12bffb3f567fdf99510acb716ef1abd426e0e05 + React-CoreModules: 4a9b87bbe669d6c3173c0132c3328e3b000783d0 + React-cxxreact: e65f9c2ba0ac5be946f53548c1aaaee5873a8103 + React-jsi: b6dc94a6a12ff98e8877287a0b7620d365201161 + React-jsiexecutor: 1540d1c01bb493ae3124ed83351b1b6a155db7da + React-jsinspector: 512e560d0e985d0e8c479a54a4e5c147a9c83493 + react-native-cameraroll: 81c6c271b5b853da398ccecc7ad6a5f765fd3001 react-native-cookies: 854d59c4135c70b92a02ca4930e68e4e2eb58150 - react-native-document-picker: 0573c02d742d4bef38a5d16b5f039754cfa69888 + react-native-document-picker: 6acd41af22988cf349848678fdaa294d4448478e react-native-hw-keyboard-event: b517cefb8d5c659a38049c582de85ff43337dc53 react-native-image-picker: 668e72d0277dc8c12ae90e835507c1eddd2e4f85 react-native-mmkv-storage: 84162ebe353ecf7476d235c47becade29789ae2c react-native-netinfo: 892a5130be97ff8bb69c523739c424a2ffc296d1 - react-native-notifications: d5cb54ef8bf3004dcb56c887650dea08ecbddee7 + react-native-notifications: 24706907104a0f00c35c4bde7e0ca76a50f730e1 react-native-passcode-status: 88c4f6e074328bc278bd127646b6c694ad5a530a react-native-safe-area: e8230b0017d76c00de6b01e2412dcf86b127c6a3 react-native-video: 961749da457e73bf0b5565edfbaffc25abfb8974 react-native-webview: 0d1c2b4e7ffb0543a74fa0512f2f8dc5fb0e49e2 - React-RCTActionSheet: 600b4d10e3aea0913b5a92256d2719c0cdd26d76 - React-RCTAnimation: 791a87558389c80908ed06cc5dfc5e7920dfa360 - React-RCTBlob: d89293cc0236d9cb0933d85e430b0bbe81ad1d72 - React-RCTImage: 6b8e8df449eb7c814c99a92d6b52de6fe39dea4e - React-RCTLinking: 121bb231c7503cf9094f4d8461b96a130fabf4a5 - React-RCTNetwork: fb353640aafcee84ca8b78957297bd395f065c9a - React-RCTSettings: 8db258ea2a5efee381fcf7a6d5044e2f8b68b640 - React-RCTText: 9ccc88273e9a3aacff5094d2175a605efa854dbe - React-RCTVibration: a49a1f42bf8f5acf1c3e297097517c6b3af377ad - ReactCommon: 198c7c8d3591f975e5431bec1b0b3b581aa1c5dd + React-RCTActionSheet: f41ea8a811aac770e0cc6e0ad6b270c644ea8b7c + React-RCTAnimation: 49ab98b1c1ff4445148b72a3d61554138565bad0 + React-RCTBlob: a332773f0ebc413a0ce85942a55b064471587a71 + React-RCTImage: e70be9b9c74fe4e42d0005f42cace7981c994ac3 + React-RCTLinking: c1b9739a88d56ecbec23b7f63650e44672ab2ad2 + React-RCTNetwork: 73138b6f45e5a2768ad93f3d57873c2a18d14b44 + React-RCTSettings: 6e3738a87e21b39a8cb08d627e68c44acf1e325a + React-RCTText: fae545b10cfdb3d247c36c56f61a94cfd6dba41d + React-RCTVibration: 4356114dbcba4ce66991096e51a66e61eda51256 + ReactCommon: ed4e11d27609d571e7eee8b65548efc191116eb3 ReactNativeExceptionHandler: 8025d98049c25f186835a3af732dd7c9974d6dce ReactNativeKeyboardTrackingView: a240a6a0dba852bb107109a7ec7e98b884055977 - ReactNativeNavigation: 4f06df65c965c1e96f29c5cc907f22a186ead8e3 + ReactNativeNavigation: 667586f6924fbd09512e2933fe70497db914b758 rn-fetch-blob: 17961aec08caae68bb8fc0e5b40f93b3acfa6932 RNCAsyncStorage: 00bdf63f7f1e0f11d3323533dba4f222e58bf092 RNDeviceInfo: fd8296de6fca8b743cdc499b896f48e8a9f1faf5 RNFastImage: 35ae972d6727c84ee3f5c6897e07f84d0a3445e9 - RNGestureHandler: dde546180bf24af0b5f737c8ad04b6f3fa51609a + RNGestureHandler: 8f09cd560f8d533eb36da5a6c5a843af9f056b38 RNKeychain: 840f8e6f13be0576202aefcdffd26a4f54bfe7b5 RNPermissions: 8afd37dbc1be65748363c6a90caffd1806567651 RNReactNativeDocViewer: 571c6ac38483531b8fb521d02a6ba54652ed10a7 RNReactNativeHapticFeedback: 2566b468cc8d0e7bb2f84b23adc0f4614594d071 - RNSentry: 86baf0c87120cd5eb491d073989f8cbc1a2174c6 + RNSentry: d892cbdee165cc6159d71e2a7954efdb8a361918 RNSVG: 7e16ddfc6e00d5aa69c9eb83e699bcce5dcb85d4 RNVectorIcons: 0bb4def82230be1333ddaeee9fcba45f0b288ed4 SDWebImage: 7edb9c3ea661e77a66661f7f044de8c1b55d1120 @@ -572,9 +675,10 @@ SPEC CHECKSUMS: Sentry: 14bdd673870e8cf64932b149fad5bbbf39a9b390 Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b XCDYouTubeKit: 79baadb0560673a67c771eba45f83e353fd12c1f - Yoga: f2a7cd4280bfe2cca5a7aed98ba0eb3d1310f18b + Yoga: 3ebccbdd559724312790e7742142d062476b698e + YogaKit: f782866e155069a2cca2517aafea43200b01fd5a YoutubePlayer-in-WKWebView: af2f5929fc78882d94bfdfeea999b661b78d9717 -PODFILE CHECKSUM: 8199a7b8e5d4cc8c741ea6292c067c33ad835da9 +PODFILE CHECKSUM: bc348868369c4079cbe32240a0dfc0f985e21f5d COCOAPODS: 1.7.5 diff --git a/package-lock.json b/package-lock.json index 076df787d..4b2a1e5e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,12 +38,12 @@ } }, "@babel/compat-data": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.6.tgz", - "integrity": "sha512-CurCIKPTkS25Mb8mz267vU95vy+TyUpnctEX2lV33xWNmHAfjruztgiPBbXZRh3xZZy1CYvGx6XfxyTVS+sk7Q==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz", + "integrity": "sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==", "dev": true, "requires": { - "browserslist": "^4.8.5", + "browserslist": "^4.9.1", "invariant": "^2.2.4", "semver": "^5.5.0" }, @@ -57,21 +57,22 @@ } }, "@babel/core": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", - "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", + "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.7", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.7", + "@babel/generator": "^7.9.0", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.0", + "@babel/parser": "^7.9.0", "@babel/template": "^7.8.6", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.7", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", + "json5": "^2.1.2", "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", @@ -87,11 +88,11 @@ } }, "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "requires": { - "@babel/types": "^7.8.7", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -115,6 +116,64 @@ "@babel/types": "^7.8.3" } }, + "@babel/helper-member-expression-to-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-replace-supers": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, "@babel/helper-split-export-declaration": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", @@ -124,19 +183,19 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { "version": "7.8.6", @@ -149,39 +208,44 @@ } }, "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "json5": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", + "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", "requires": { - "ms": "^2.1.1" + "minimist": "^1.2.5" } }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -218,11 +282,11 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -283,13 +347,13 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.6.tgz", - "integrity": "sha512-bPyujWfsHhV/ztUkwGHz/RPV1T1TDEsSZDsN42JPehndA+p1KKTh3npvTadux0ZhCrytx9tvjpWNowKby3tM6A==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", + "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", "requires": { "@babel/helper-annotate-as-pure": "^7.8.3", "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" + "regexpu-core": "^4.7.0" }, "dependencies": { "@babel/helper-annotate-as-pure": { @@ -301,11 +365,11 @@ } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -340,11 +404,11 @@ } }, "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "requires": { - "@babel/types": "^7.8.7", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -377,19 +441,19 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { "version": "7.8.6", @@ -402,38 +466,30 @@ } }, "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } } } }, @@ -774,13 +830,13 @@ } }, "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", + "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", "requires": { "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0" }, "dependencies": { "@babel/code-frame": { @@ -792,11 +848,11 @@ } }, "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "requires": { - "@babel/types": "^7.8.7", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -829,19 +885,19 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { "version": "7.8.6", @@ -854,38 +910,30 @@ } }, "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } } } }, @@ -930,160 +978,11 @@ "@babel/plugin-syntax-async-generators": "^7.8.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", - "dev": true, - "requires": { - "@babel/types": "^7.8.7", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, "@babel/helper-plugin-utils": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", - "dev": true - }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } } } }, @@ -1157,6 +1056,24 @@ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.7.4" } }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", + "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + } + } + }, "@babel/plugin-proposal-object-rest-spread": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", @@ -1185,12 +1102,12 @@ } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", + "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-create-regexp-features-plugin": "^7.8.8", "@babel/helper-plugin-utils": "^7.8.3" }, "dependencies": { @@ -1322,6 +1239,23 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", + "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + } + } + }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz", @@ -1577,12 +1511,12 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz", + "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" }, @@ -1597,12 +1531,12 @@ } }, "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "dev": true, "requires": { - "@babel/types": "^7.8.7", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -1647,9 +1581,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz", - "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.8.3", @@ -1657,7 +1591,7 @@ "@babel/helper-simple-access": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", "@babel/template": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/types": "^7.9.0", "lodash": "^4.17.13" } }, @@ -1708,20 +1642,20 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@babel/template": { @@ -1736,41 +1670,32 @@ } }, "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } } } }, @@ -1786,13 +1711,13 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz", + "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" }, @@ -1807,12 +1732,12 @@ } }, "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "dev": true, "requires": { - "@babel/types": "^7.8.7", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -1866,9 +1791,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz", - "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.8.3", @@ -1876,7 +1801,7 @@ "@babel/helper-simple-access": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", "@babel/template": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/types": "^7.9.0", "lodash": "^4.17.13" } }, @@ -1927,20 +1852,20 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@babel/template": { @@ -1955,51 +1880,42 @@ } }, "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } } } }, "@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", + "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3" }, "dependencies": { @@ -2013,12 +1929,12 @@ } }, "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "dev": true, "requires": { - "@babel/types": "^7.8.7", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -2063,9 +1979,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz", - "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.8.3", @@ -2073,7 +1989,7 @@ "@babel/helper-simple-access": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", "@babel/template": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/types": "^7.9.0", "lodash": "^4.17.13" } }, @@ -2124,20 +2040,20 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@babel/template": { @@ -2152,41 +2068,32 @@ } }, "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } } } }, @@ -2413,10 +2320,37 @@ "@babel/plugin-syntax-jsx": "^7.7.4" } }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz", + "integrity": "sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + } + } + }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz", - "integrity": "sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz", + "integrity": "sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw==", "requires": { "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-syntax-jsx": "^7.8.3" @@ -2463,9 +2397,9 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.8.3.tgz", - "integrity": "sha512-/vqUt5Yh+cgPZXXjmaG9NT8aVfThKk7G4OqkVhrXqwsC5soMn/qTCxs36rZ2QFhpfTJcjw4SNDIZ4RUb8OL4jQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz", + "integrity": "sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==", "requires": { "@babel/helper-module-imports": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", @@ -2487,11 +2421,11 @@ "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -2562,9 +2496,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.8.7.tgz", - "integrity": "sha512-7O0UsPQVNKqpHeHLpfvOG4uXmlw+MOxYvUv6Otc9uH5SYMIxvF6eBdjkWvC3f9G+VXe0RsNExyAQBeTRug/wqQ==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.4.tgz", + "integrity": "sha512-yeWeUkKx2auDbSxRe8MusAG+n4m9BFY/v+lPjmQDgOFX5qnySkUY5oXzkp6FwPdsYqnKay6lorXYdC0n3bZO7w==", "requires": { "@babel/helper-create-class-features-plugin": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", @@ -2580,11 +2514,11 @@ } }, "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "requires": { - "@babel/types": "^7.8.7", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -2662,19 +2596,19 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { "version": "7.8.6", @@ -2687,38 +2621,30 @@ } }, "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } } } }, @@ -2739,12 +2665,12 @@ } }, "@babel/preset-env": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz", - "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz", + "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.8.6", + "@babel/compat-data": "^7.9.0", "@babel/helper-compilation-targets": "^7.8.7", "@babel/helper-module-imports": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", @@ -2752,14 +2678,16 @@ "@babel/plugin-proposal-dynamic-import": "^7.8.3", "@babel/plugin-proposal-json-strings": "^7.8.3", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.9.0", "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.9.0", "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", "@babel/plugin-syntax-async-generators": "^7.8.0", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-json-strings": "^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.8.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", @@ -2768,20 +2696,20 @@ "@babel/plugin-transform-async-to-generator": "^7.8.3", "@babel/plugin-transform-block-scoped-functions": "^7.8.3", "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.6", + "@babel/plugin-transform-classes": "^7.9.0", "@babel/plugin-transform-computed-properties": "^7.8.3", "@babel/plugin-transform-destructuring": "^7.8.3", "@babel/plugin-transform-dotall-regex": "^7.8.3", "@babel/plugin-transform-duplicate-keys": "^7.8.3", "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.6", + "@babel/plugin-transform-for-of": "^7.9.0", "@babel/plugin-transform-function-name": "^7.8.3", "@babel/plugin-transform-literals": "^7.8.3", "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.9.0", + "@babel/plugin-transform-modules-commonjs": "^7.9.0", + "@babel/plugin-transform-modules-systemjs": "^7.9.0", + "@babel/plugin-transform-modules-umd": "^7.9.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", "@babel/plugin-transform-new-target": "^7.8.3", "@babel/plugin-transform-object-super": "^7.8.3", @@ -2795,8 +2723,9 @@ "@babel/plugin-transform-template-literals": "^7.8.3", "@babel/plugin-transform-typeof-symbol": "^7.8.4", "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.7", - "browserslist": "^4.8.5", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.9.0", + "browserslist": "^4.9.1", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", "levenary": "^1.1.1", @@ -2813,12 +2742,12 @@ } }, "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "dev": true, "requires": { - "@babel/types": "^7.8.7", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -2833,17 +2762,6 @@ "@babel/types": "^7.8.3" } }, - "@babel/helper-call-delegate": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz", - "integrity": "sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.7" - } - }, "@babel/helper-define-map": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", @@ -2875,15 +2793,6 @@ "@babel/types": "^7.8.3" } }, - "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, "@babel/helper-member-expression-to-functions": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", @@ -2903,9 +2812,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz", - "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.8.3", @@ -2913,7 +2822,7 @@ "@babel/helper-simple-access": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", "@babel/template": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/types": "^7.9.0", "lodash": "^4.17.13" } }, @@ -2932,19 +2841,6 @@ "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, "@babel/helper-replace-supers": { "version": "7.8.6", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", @@ -2976,33 +2872,21 @@ "@babel/types": "^7.8.3" } }, - "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@babel/plugin-proposal-nullish-coalescing-operator": { @@ -3016,9 +2900,9 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz", + "integrity": "sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3", @@ -3036,9 +2920,9 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", - "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", + "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3", @@ -3090,26 +2974,6 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, "@babel/plugin-transform-block-scoping": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", @@ -3121,9 +2985,9 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz", - "integrity": "sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz", + "integrity": "sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.8.3", @@ -3146,18 +3010,18 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz", + "integrity": "sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-for-of": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz", - "integrity": "sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", + "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3" @@ -3182,57 +3046,28 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz", + "integrity": "sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "@babel/helper-simple-access": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, - "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" - } - }, "@babel/plugin-transform-parameters": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.7.tgz", - "integrity": "sha512-brYWaEPTRimOctz2NDA3jnBbDi7SVN2T4wYuu0aqSzxC3nozFZngGaw29CJ9ZPweB7k+iFmZuoG3IVPIcXmD2g==", + "version": "7.9.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz", + "integrity": "sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.8.7", "@babel/helper-get-function-arity": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, "@babel/plugin-transform-shorthand-properties": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", @@ -3273,42 +3108,33 @@ } }, "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -3317,10 +3143,23 @@ } } }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, "@babel/register": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.8.6.tgz", - "integrity": "sha512-7IDO93fuRsbyml7bAafBQb3RcBGlCpU4hh5wADA2LJEEcYk92WkwFZ0pHyIi2fb5Auoz1714abETdZKCOxN0CQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.9.0.tgz", + "integrity": "sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==", "requires": { "find-cache-dir": "^2.0.0", "lodash": "^4.17.13", @@ -3330,18 +3169,11 @@ } }, "@babel/runtime": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.7.tgz", - "integrity": "sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", "requires": { "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz", - "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==" - } } }, "@babel/runtime-corejs3": { @@ -3549,33 +3381,33 @@ } }, "@jest/core": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.2.1.tgz", - "integrity": "sha512-Pe7CVcysOmm69BgdgAuMjRCp6vmcCJy32PxPtArQDgiizIBQElHhE9P34afGwPgSb3+e3WC6XtEm4de7d9BtfQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.2.3.tgz", + "integrity": "sha512-Ifz3aEkGvZhwijLMmWa7sloZVEMdxpzjFv3CKHv3eRYRShTN8no6DmyvvxaZBjLalOlRalJ7HDgc733J48tSuw==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/reporters": "^25.2.1", - "@jest/test-result": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/reporters": "^25.2.3", + "@jest/test-result": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "ansi-escapes": "^4.2.1", "chalk": "^3.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.3", - "jest-changed-files": "^25.2.1", - "jest-config": "^25.2.1", - "jest-haste-map": "^25.2.1", - "jest-message-util": "^25.2.1", + "jest-changed-files": "^25.2.3", + "jest-config": "^25.2.3", + "jest-haste-map": "^25.2.3", + "jest-message-util": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-resolve": "^25.2.1", - "jest-resolve-dependencies": "^25.2.1", - "jest-runner": "^25.2.1", - "jest-runtime": "^25.2.1", - "jest-snapshot": "^25.2.1", - "jest-util": "^25.2.1", - "jest-validate": "^25.2.1", - "jest-watcher": "^25.2.1", + "jest-resolve": "^25.2.3", + "jest-resolve-dependencies": "^25.2.3", + "jest-runner": "^25.2.3", + "jest-runtime": "^25.2.3", + "jest-snapshot": "^25.2.3", + "jest-util": "^25.2.3", + "jest-validate": "^25.2.3", + "jest-watcher": "^25.2.3", "micromatch": "^4.0.2", "p-each-series": "^2.1.0", "realpath-native": "^2.0.0", @@ -3591,14 +3423,14 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, @@ -3614,34 +3446,34 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -3651,9 +3483,9 @@ } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -3821,18 +3653,18 @@ "dev": true }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -3841,14 +3673,14 @@ } }, "jest-message-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.1.tgz", - "integrity": "sha512-pxwehr9uPEuCI9bPjBiZxpFMN0+3wny5p7/E3hbV9XjsqREhJJAMf0czvHtgNeUBo2iAiAI9yi9ICKHPOKePEw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.3.tgz", + "integrity": "sha512-DcyDmdO5LVIeS0ngRvd7rk701XL60dAakUeQJ1tQRby27fyLYXD+V0nqVaC194W7fIlohjVQOZPHmKXIjn+Byw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "@types/stack-utils": "^1.0.1", "chalk": "^3.0.0", "micromatch": "^4.0.2", @@ -3869,29 +3701,29 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" } }, "jest-validate": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.1.tgz", - "integrity": "sha512-vGtNFPyvylFfTFFfptzqCy5S3cP/N5JJVwm8gsXeZq8jMmvUngfWtuw+Tr5Wjo+dqOle23td8BE0ruGnsONDmw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.3.tgz", + "integrity": "sha512-GObn91jzU0B0Bv4cusAwjP6vnWy78hJUM8MOSz7keRfnac/ZhQWIsUjvk01IfeXNTemCwgR57EtdjQMzFZGREg==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "camelcase": "^5.3.1", "chalk": "^3.0.0", "jest-get-type": "^25.2.1", "leven": "^3.1.0", - "pretty-format": "^25.2.1" + "pretty-format": "^25.2.3" } }, "jest-worker": { @@ -3936,12 +3768,12 @@ "dev": true }, "pretty-format": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.1.tgz", - "integrity": "sha512-YS+e9oGYIbEeAFgqTU8qeZ3DN2Pz0iaD81ox+iUjLIXVJWeB7Ro/2AnfxRnl/yJJ5R674d7E3jLPuh6bwg0+qw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" @@ -4070,16 +3902,16 @@ } }, "@jest/reporters": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.2.1.tgz", - "integrity": "sha512-jAnIECIIFVHiASKLpPBpZ9fIgWolKdMwUuyjSlNVixmtX6G83fyiGaOquaAU1ukAxnlKdCLjvH6BYdY+GGbd5Q==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.2.3.tgz", + "integrity": "sha512-S0Zca5e7tTfGgxGRvBh6hktNdOBzqc6HthPzYHPRFYVW81SyzCqHTaNZydtDIVehb9s6NlyYZpcF/I2vco+lNw==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^25.2.1", - "@jest/test-result": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/test-result": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", @@ -4089,9 +3921,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.0", - "jest-haste-map": "^25.2.1", - "jest-resolve": "^25.2.1", - "jest-util": "^25.2.1", + "jest-haste-map": "^25.2.3", + "jest-resolve": "^25.2.3", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "node-notifier": "^6.0.0", "slash": "^3.0.0", @@ -4108,14 +3940,14 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, @@ -4131,34 +3963,34 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -4168,9 +4000,9 @@ } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -4289,13 +4121,6 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-wsl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", - "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", - "dev": true, - "optional": true - }, "istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", @@ -4318,18 +4143,18 @@ } }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -4350,12 +4175,12 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" @@ -4396,32 +4221,6 @@ "picomatch": "^2.0.5" } }, - "node-notifier": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz", - "integrity": "sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.1.1", - "semver": "^6.3.0", - "shellwords": "^0.1.1", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "optional": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -4537,15 +4336,15 @@ } }, "@jest/test-sequencer": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.2.1.tgz", - "integrity": "sha512-yEhVlBRS7pg3MGBIQQafYfm2NT5trFa/qoxtLftQoZmyzKx3rPy0oJ+d/8QljK4X2RGY/i7mmQDxE6sGR9UqeQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.2.3.tgz", + "integrity": "sha512-trHwV/wCrxWyZyNyNBUQExsaHyBVQxJwH3butpEcR+KBJPfaTUxtpXaxfs38IXXAhH68J4kPZgAaRRfkFTLunA==", "dev": true, "requires": { - "@jest/test-result": "^25.2.1", - "jest-haste-map": "^25.2.1", - "jest-runner": "^25.2.1", - "jest-runtime": "^25.2.1" + "@jest/test-result": "^25.2.3", + "jest-haste-map": "^25.2.3", + "jest-runner": "^25.2.3", + "jest-runtime": "^25.2.3" }, "dependencies": { "@babel/parser": { @@ -4555,14 +4354,14 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, @@ -4578,34 +4377,34 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -4615,9 +4414,9 @@ } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -4758,18 +4557,18 @@ } }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -4790,12 +4589,12 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" @@ -4977,72 +4776,222 @@ "integrity": "sha512-MA1fTp4SB7OOtDmNAwds6jIpiwwty1NIoFboWjEWkoyWW35zIuxlhHxD4joSy21aWEzUVwvv6JJ2hSsP/HTb7A==" }, "@react-native-community/cameraroll": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cameraroll/-/cameraroll-1.4.1.tgz", - "integrity": "sha512-ZwXGPuG72u3sq7DF2uRtvT8jMbGKKfFntd3VQGkD1zL6riMQeyuGJZ/O6YBeppopEq+pMlf/j9xH1cWNjNkYLg==" + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cameraroll/-/cameraroll-1.5.2.tgz", + "integrity": "sha512-xrkrmcI5V8IzWoGQOqycs2YZRmGqASqZMDkjOzFFg6bCy95+OMquPnCmGdaUx1ONO1x6tsQSCv87xM/oL+9m/A==" }, "@react-native-community/cli-debugger-ui": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-3.0.0.tgz", - "integrity": "sha512-m3X+iWLsK/H7/b7PpbNO33eQayR/+M26la4ZbYe1KRke5Umg4PIWsvg21O8Tw4uJcY8LA5hsP+rBi/syBkBf0g==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-4.6.3.tgz", + "integrity": "sha512-5hnzGBP1eXmc1gOuKm9x5uyw9z5QE3C2pSz57eaV6dHjl9LKfeBXd9L+RqeG/uWi7buE4YyJwirvpufLREoyJg==", "requires": { "serve-static": "^1.13.1" } }, "@react-native-community/cli-platform-android": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-3.1.4.tgz", - "integrity": "sha512-ClSdY20F0gzWVLTqCv7vHjnUqOcuq10jd9GgHX6lGSc2GI+Ql3/aQg3tmG4uY3KXNNwAv3U8QCoYgg1WGfwiHA==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-4.6.3.tgz", + "integrity": "sha512-o88nUW2mjwvYSTwW/VTPdMmTi2vHS4T4gYGObb3qgkv/6H0JG1NC0SRo1FCHRpRGo1nQ7d+aB8sfpJeEkQ3Mbw==", "requires": { - "@react-native-community/cli-tools": "^3.0.0", - "chalk": "^2.4.2", + "@react-native-community/cli-tools": "^4.6.3", + "chalk": "^3.0.0", "execa": "^1.0.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.3", "jetifier": "^1.6.2", + "lodash": "^4.17.15", "logkitty": "^0.6.0", "slash": "^3.0.0", "xmldoc": "^1.1.2" }, "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } } } }, "@react-native-community/cli-platform-ios": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-3.2.0.tgz", - "integrity": "sha512-pzEnx68H6+mHBq5jsMrr3UmAmkrLSMlC9BZ4yoUdfUXCQq6/R70zNYvH4hjUw8h2Al7Kgq53UzHUsM0ph8TSWQ==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.6.3.tgz", + "integrity": "sha512-blYP5DBVj3ZefmKvMsMvmOWrw3Fl6bQIvAAMt+J1nqhZKOONpunfKgKi9DmE/Pzxxdmsx/HhtV104OnBdtUPbw==", "requires": { - "@react-native-community/cli-tools": "^3.0.0", - "chalk": "^2.4.2", + "@react-native-community/cli-tools": "^4.6.3", + "chalk": "^3.0.0", + "glob": "^7.1.3", "js-yaml": "^3.13.1", + "lodash": "^4.17.15", + "plist": "^3.0.1", "xcode": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@react-native-community/cli-tools": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-3.0.0.tgz", - "integrity": "sha512-8IhQKZdf3E4CR8T7HhkPGgorot/cLkRDgneJFDSWk/wCYZAuUh4NEAdumQV7N0jLSMWX7xxiWUPi94lOBxVY9g==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-4.6.3.tgz", + "integrity": "sha512-ne/A1JUA86WgS3LpdqCwdpCbzfLJusfTllv+TDafNxEdziGPwTcRmeOk3QD3X0rwSawCJhfcnROzIc4AnfSP3w==", "requires": { - "chalk": "^2.4.2", - "lodash": "^4.17.5", + "chalk": "^3.0.0", + "lodash": "^4.17.15", "mime": "^2.4.1", - "node-fetch": "^2.5.0" + "node-fetch": "^2.6.0" }, "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, "mime": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } } } }, "@react-native-community/cli-types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-3.0.0.tgz", - "integrity": "sha512-ng6Tm537E/M42GjE4TRUxQyL8sRfClcL7bQWblOCoxPZzJ2J3bdALsjeG3vDnVCIfI/R0AeFalN9KjMt0+Z/Zg==" + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-4.6.3.tgz", + "integrity": "sha512-76uXaqPV1m6zGmL+x/KGHfLZiVVbCvkI4KElnd1dVEsDrVVoAsJ0tvBad+GhHh/NtYU1VmtuJ/zcKnjWdVla1A==" }, "@react-native-community/netinfo": { "version": "4.4.0", @@ -5091,13 +5040,13 @@ } }, "@sentry/browser": { - "version": "5.13.2", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-5.13.2.tgz", - "integrity": "sha512-4MeauHs8Rf1c2FF6n84wrvA4LexEL1K/Tg3r+1vigItiqyyyYBx1sPjHGZeKeilgBi+6IEV5O8sy30QIrA/NsQ==", + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-5.15.4.tgz", + "integrity": "sha512-l/auT1HtZM3KxjCGQHYO/K51ygnlcuOrM+7Ga8gUUbU9ZXDYw6jRi0+Af9aqXKmdDw1naNxr7OCSy6NBrLWVZw==", "requires": { - "@sentry/core": "5.13.2", - "@sentry/types": "5.13.2", - "@sentry/utils": "5.13.2", + "@sentry/core": "5.15.4", + "@sentry/types": "5.15.4", + "@sentry/utils": "5.15.4", "tslib": "^1.9.3" } }, @@ -5122,71 +5071,71 @@ } }, "@sentry/core": { - "version": "5.13.2", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.13.2.tgz", - "integrity": "sha512-iB7CQSt9e0EJhSmcNOCjzJ/u7E7qYJ3mI3h44GO83n7VOmxBXKSvtUl9FpKFypbWrsdrDz8HihLgAZZoMLWpPA==", + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.15.4.tgz", + "integrity": "sha512-9KP4NM4SqfV5NixpvAymC7Nvp36Zj4dU2fowmxiq7OIbzTxGXDhwuN/t0Uh8xiqlkpkQqSECZ1OjSFXrBldetQ==", "requires": { - "@sentry/hub": "5.13.2", - "@sentry/minimal": "5.13.2", - "@sentry/types": "5.13.2", - "@sentry/utils": "5.13.2", + "@sentry/hub": "5.15.4", + "@sentry/minimal": "5.15.4", + "@sentry/types": "5.15.4", + "@sentry/utils": "5.15.4", "tslib": "^1.9.3" } }, "@sentry/hub": { - "version": "5.13.2", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.13.2.tgz", - "integrity": "sha512-/U7yq3DTuRz8SRpZVKAaenW9sD2F5wbj12kDVPxPnGspyqhy0wBWKs9j0YJfBiDXMKOwp3HX964O3ygtwjnfAw==", + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.15.4.tgz", + "integrity": "sha512-1XJ1SVqadkbUT4zLS0TVIVl99si7oHizLmghR8LMFl5wOkGEgehHSoOydQkIAX2C7sJmaF5TZ47ORBHgkqclUg==", "requires": { - "@sentry/types": "5.13.2", - "@sentry/utils": "5.13.2", + "@sentry/types": "5.15.4", + "@sentry/utils": "5.15.4", "tslib": "^1.9.3" } }, "@sentry/integrations": { - "version": "5.13.2", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-5.13.2.tgz", - "integrity": "sha512-/sd1hR8uKVE75mShTfZNHlNp8BExvRQH410/opLZi6Eoo5JIk0DXAxGJungncwunjueu6WLaTo53HhIg2w87gg==", + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-5.15.4.tgz", + "integrity": "sha512-GaEVQf4R+WBJvTOGptOHIFSylnH1JAvBQZ7c45jGIDBp+upqzeI67KD+HoM4sSNT2Y2i8DLTJCWibe34knz5Kw==", "requires": { - "@sentry/types": "5.13.2", - "@sentry/utils": "5.13.2", + "@sentry/types": "5.15.4", + "@sentry/utils": "5.15.4", "tslib": "^1.9.3" } }, "@sentry/minimal": { - "version": "5.13.2", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.13.2.tgz", - "integrity": "sha512-VV0eA3HgrnN3mac1XVPpSCLukYsU+QxegbmpnZ8UL8eIQSZ/ZikYxagDNlZbdnmXHUpOEUeag2gxVntSCo5UcA==", + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.15.4.tgz", + "integrity": "sha512-GL4GZ3drS9ge+wmxkHBAMEwulaE7DMvAEfKQPDAjg2p3MfcCMhAYfuY4jJByAC9rg9OwBGGehz7UmhWMFjE0tw==", "requires": { - "@sentry/hub": "5.13.2", - "@sentry/types": "5.13.2", + "@sentry/hub": "5.15.4", + "@sentry/types": "5.15.4", "tslib": "^1.9.3" } }, "@sentry/react-native": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-1.3.3.tgz", - "integrity": "sha512-OGeq1igrYTtgPYnOZEEWFRPyDESiGCkvyShL6YJ7U7kaDq5Fw3hgOHJovo/QhsQC7qVaYjgaMPX3Ht08xbh4IQ==", + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@sentry/react-native/-/react-native-1.3.6.tgz", + "integrity": "sha512-8gtO7jgr6e65tcLyhxRHUiJq7PvHLWJqp18ek7wGnsiuGoBTw4h8Q1M62s6a1e9iE73+S5ar9nBTSCEdeAAzOQ==", "requires": { - "@sentry/browser": "^5.12.1", - "@sentry/core": "^5.12.0", - "@sentry/integrations": "^5.12.0", - "@sentry/types": "^5.12.0", - "@sentry/utils": "^5.12.0", + "@sentry/browser": "^5.15.4", + "@sentry/core": "^5.15.4", + "@sentry/integrations": "^5.15.4", + "@sentry/types": "^5.15.4", + "@sentry/utils": "^5.15.4", "@sentry/wizard": "^1.1.1" } }, "@sentry/types": { - "version": "5.13.2", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.13.2.tgz", - "integrity": "sha512-mgAEQyc77PYBnAjnslSXUz6aKgDlunlg2c2qSK/ivKlEkTgTWWW/dE76++qVdrqM8SupnqQoiXyPDL0wUNdB3g==" + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.15.4.tgz", + "integrity": "sha512-quPHPpeAuwID48HLPmqBiyXE3xEiZLZ5D3CEbU3c3YuvvAg8qmfOOTI6z4Z3Eedi7flvYpnx3n7N3dXIEz30Eg==" }, "@sentry/utils": { - "version": "5.13.2", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.13.2.tgz", - "integrity": "sha512-LwPQl6WRMKEnd16kg35HS3yE+VhBc8vN4+BBIlrgs7X0aoT+AbEd/sQLMisDgxNboCF44Ho3RCKtztiPb9blqg==", + "version": "5.15.4", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.15.4.tgz", + "integrity": "sha512-lO8SLBjrUDGADl0LOkd55R5oL510d/1SaI08/IBHZCxCUwI4TiYo5EPECq8mrj3XGfgCyq9osw33bymRlIDuSQ==", "requires": { - "@sentry/types": "5.13.2", + "@sentry/types": "5.15.4", "tslib": "^1.9.3" } }, @@ -5473,18 +5422,18 @@ "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" }, "@types/react": { - "version": "16.9.23", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.23.tgz", - "integrity": "sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw==", + "version": "16.9.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.27.tgz", + "integrity": "sha512-j+RvQb9w7a2kZFBOgTh+s/elCwtqWUMN6RJNdmz0ntmwpeoMHKnyhUcmYBu7Yw94Rtj9938D+TJSn6WGcq2+OA==", "requires": { "@types/prop-types": "*", "csstype": "^2.2.0" } }, "@types/react-native": { - "version": "0.61.23", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.61.23.tgz", - "integrity": "sha512-upHmySsrVBDBokWWhYIKkKnpvadsHdioSjbBTu4xl7fjN0yb94KR5ngUOBXsyqAYqQzF+hP6qpvobG9M7Jr6hw==", + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.62.0.tgz", + "integrity": "sha512-EOuX8I9XGeVOl9f9wvSGF97dwi8sOhj6fsXUsvyG3H+QW3FlOIeKwSsFyJF8KrdCOQf6idECtDRK6+AHgWKs+w==", "requires": { "@types/react": "*" } @@ -5816,6 +5765,11 @@ "type-of": "2.0.1" } }, + "anser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz", + "integrity": "sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==" + }, "ansi-colors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", @@ -6108,11 +6062,6 @@ } } }, - "art": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/art/-/art-0.10.3.tgz", - "integrity": "sha512-HXwbdofRTiJT6qZX/FnchtldzJjS3vkLJxQilc3Xj+ma2MXjY4UAyQ0ls1XZYVnDvVIBiFZbC6QsvtW86TD6tQ==" - }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -6200,74 +6149,54 @@ } }, "babel-jest": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.1.0.tgz", - "integrity": "sha512-tz0VxUhhOE2y+g8R2oFrO/2VtVjA1lkJeavlhExuRBg3LdNJY9gwQ+Vcvqt9+cqy71MCTJhewvTB7Qtnnr9SWg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.2.3.tgz", + "integrity": "sha512-03JjvEwuDrEz/A45K8oggAv+Vqay0xcOdNTJxYFxiuZvB5vlHKo1iZg9Pi5vQTHhNCKpGLb7L/jvUUafyh9j7g==", "dev": true, "requires": { - "@jest/transform": "^25.1.0", - "@jest/types": "^25.1.0", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/babel__core": "^7.1.0", "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^25.1.0", + "babel-preset-jest": "^25.2.1", "chalk": "^3.0.0", "slash": "^3.0.0" }, "dependencies": { "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", "slash": "^3.0.0", "source-map": "^0.6.1", "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "realpath-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", - "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", - "dev": true - } } }, "@jest/types": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.1.0.tgz", - "integrity": "sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -6402,37 +6331,23 @@ } }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", "walker": "^1.0.7", "which": "^2.0.2" - }, - "dependencies": { - "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - } } }, "jest-regex-util": { @@ -6448,29 +6363,15 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - } } }, "jest-worker": { @@ -6514,6 +6415,12 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "realpath-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "dev": true + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -6605,9 +6512,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.1.0.tgz", - "integrity": "sha512-oIsopO41vW4YFZ9yNYoLQATnnN46lp+MZ6H4VvPKFkcc2/fkl3CfE/NZZSmnEIEsJRmJAgkVEK0R7Zbl50CpTw==", + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.1.tgz", + "integrity": "sha512-HysbCQfJhxLlyxDbKcB2ucGYV0LjqK4h6dBoI3RtFuOxTiTWK6XGZMsHb0tGh8iJdV4hC6Z2GCHzVvDeh9i0lQ==", "dev": true, "requires": { "@types/babel__traverse": "^7.0.6" @@ -6672,14 +6579,14 @@ } }, "babel-preset-jest": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.1.0.tgz", - "integrity": "sha512-eCGn64olaqwUMaugXsTtGAM2I0QTahjEtnRu0ql8Ie+gDWAc1N6wqN0k2NilnyTunM69Pad7gJY7LOtwLimoFQ==", + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.2.1.tgz", + "integrity": "sha512-zXHJBM5iR8oEO4cvdF83AQqqJf3tJrXy3x8nfu2Nlqvn4cneg4Ca8M7cQvC5S9BzDDy1O0tZ9iXru9J6E3ym+A==", "dev": true, "requires": { "@babel/plugin-syntax-bigint": "^7.0.0", "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "babel-plugin-jest-hoist": "^25.1.0" + "babel-plugin-jest-hoist": "^25.2.1" } }, "balanced-match": { @@ -6747,14 +6654,6 @@ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, - "basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "requires": { - "safe-buffer": "5.1.2" - } - }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -6869,14 +6768,15 @@ } }, "browserslist": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.1.tgz", - "integrity": "sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz", + "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001030", - "electron-to-chromium": "^1.3.363", - "node-releases": "^1.1.50" + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.380", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" } }, "bs-logger": { @@ -6995,9 +6895,9 @@ "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" }, "caniuse-lite": { - "version": "1.0.30001033", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001033.tgz", - "integrity": "sha512-8Ibzxee6ibc5q88cM1usPsMpJOG5CTq0s/dKOmlekPbDGKt+UrnOOTPSjQz3kVo6yL7N4SB5xd+FGLHQmbzh6A==", + "version": "1.0.30001038", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz", + "integrity": "sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ==", "dev": true }, "capture-exit": { @@ -7119,9 +7019,9 @@ } }, "cli-spinners": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", - "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz", + "integrity": "sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w==" }, "cli-width": { "version": "2.2.0", @@ -7148,6 +7048,11 @@ } } }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -7553,9 +7458,9 @@ } }, "dayjs": { - "version": "1.8.23", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.23.tgz", - "integrity": "sha512-NmYHMFONftoZbeOhVz6jfiXI4zSiPN6NoVWJgC0aZQfYVwzy/ZpESPHuCcI0B8BUMpSJQ08zenHDbofOLKq8hQ==" + "version": "1.8.24", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.24.tgz", + "integrity": "sha512-bImQZbBv86zcOWOq6fLg7r4aqMx8fScdmykA7cSh+gH1Yh8AM0Dbw0gHYrsOrza6oBBnkK+/OaR+UAa9UsMrDw==" }, "debounce": { "version": "1.2.0", @@ -7718,13 +7623,6 @@ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - } } }, "define-properties": { @@ -7810,11 +7708,6 @@ "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", "dev": true }, - "didyoumean": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz", - "integrity": "sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=" - }, "diff-sequences": { "version": "25.1.0", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.1.0.tgz", @@ -7894,9 +7787,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.372", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.372.tgz", - "integrity": "sha512-77a4jYC52OdisHM+Tne7dgWEvQT1FoNu/jYl279pP88ZtG4ZRIPyhQwAKxj6C2rzsyC1OwsOds9JlZtNncSz6g==", + "version": "1.3.390", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.390.tgz", + "integrity": "sha512-4RvbM5x+002gKI8sltkqWEk5pptn0UnzekUx8RTThAMPDSb8jjpm6SwGiSnEve7f85biyZl8DMXaipaCxDjXag==", "dev": true }, "emoji-regex": { @@ -8669,6 +8562,14 @@ } } }, + "eslint-plugin-relay": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-relay/-/eslint-plugin-relay-1.4.1.tgz", + "integrity": "sha512-yb+p+4AxZTi2gXN7cZRfXMBFlRa5j6TtiVeq3yHXyy+tlgYNpxi/dDrP1+tcUTNP9vdaJovnfGZ5jp6kMiH9eg==", + "requires": { + "graphql": "^14.0.0" + } + }, "eslint-scope": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", @@ -8840,16 +8741,16 @@ } }, "expect": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-25.2.1.tgz", - "integrity": "sha512-mRvuu0xujdgYuS0S2dZ489PGAcXl60blmsLofaq7heqn+ZcUOox+VWQvrCee/x+/0WBpxDs7pBWuFYNO5U+txQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-25.2.3.tgz", + "integrity": "sha512-kil4jFRFAK2ySyCyXPqYrphc3EiiKKFd9BthrkKAyHcqr1B84xFTuj5kO8zL+eHRRjT2jQsOPExO0+1Q/fuUXg==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "ansi-styles": "^4.0.0", "jest-get-type": "^25.2.1", - "jest-matcher-utils": "^25.2.1", - "jest-message-util": "^25.2.1", + "jest-matcher-utils": "^25.2.3", + "jest-message-util": "^25.2.3", "jest-regex-util": "^25.2.1" }, "dependencies": { @@ -8860,14 +8761,14 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, @@ -8883,34 +8784,34 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -8920,9 +8821,9 @@ } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -9069,18 +8970,18 @@ "dev": true }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -9089,14 +8990,14 @@ } }, "jest-message-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.1.tgz", - "integrity": "sha512-pxwehr9uPEuCI9bPjBiZxpFMN0+3wny5p7/E3hbV9XjsqREhJJAMf0czvHtgNeUBo2iAiAI9yi9ICKHPOKePEw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.3.tgz", + "integrity": "sha512-DcyDmdO5LVIeS0ngRvd7rk701XL60dAakUeQJ1tQRby27fyLYXD+V0nqVaC194W7fIlohjVQOZPHmKXIjn+Byw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "@types/stack-utils": "^1.0.1", "chalk": "^3.0.0", "micromatch": "^4.0.2", @@ -9117,12 +9018,12 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" @@ -9756,6 +9657,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -10405,9 +10307,9 @@ "dev": true }, "fuse.js": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", - "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==" + "version": "5.0.10-beta", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-5.0.10-beta.tgz", + "integrity": "sha512-/tZI6BiF4zToF1neZxOIa5YmSw6j5+3yJW/agoYUZBiaxHJk/ANBxafYDS/60Tvo3JQM2u/ceRvOgBmRYkv70A==" }, "gensync": { "version": "1.0.0-beta.1", @@ -10522,10 +10424,20 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" }, + "graphql": { + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.6.0.tgz", + "integrity": "sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg==", + "requires": { + "iterall": "^1.2.2" + } + }, "growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true, + "optional": true }, "har-schema": { "version": "2.0.0", @@ -10615,9 +10527,9 @@ } }, "hermes-engine": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.2.1.tgz", - "integrity": "sha512-eNHUQHuadDMJARpaqvlCZoK/Nitpj6oywq3vQ3wCwEsww5morX34mW5PmKWQTO7aU0ck0hgulxR+EVDlXygGxQ==" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.4.1.tgz", + "integrity": "sha512-Y3JFC8PD7eN3KpnrzrmvMAqp0IwnZrmP/oGOptvaSu33d7Zq/8b/2lHlZZkNvRl7/I1Q0umTX8TByK7zzLfTXA==" }, "hoist-non-react-statics": { "version": "2.5.5", @@ -10636,7 +10548,8 @@ "hosted-git-info": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true }, "html-element-map": { "version": "1.2.0", @@ -11611,29 +11524,34 @@ } }, "istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-Vm9xwCiQ8t2cNNnckyeAV0UdxKpcQUz4nMxsBvIu8n2kmPSiyb5uaF/8LpmKr+yqL/MdOXaX2Nmdo4Qyxium9Q==", "dev": true, "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, + "iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" + }, "jail-monkey": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/jail-monkey/-/jail-monkey-2.3.2.tgz", "integrity": "sha512-2vmj6gE7OkJ6Z+7PXoqFLnftDO+MO1iv/+Sj1ExWWeMCWZj6uDs35GQ3SZOJsfvEzAKsrWKDeLCZIMam1Tykqw==" }, "jest": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-25.1.0.tgz", - "integrity": "sha512-FV6jEruneBhokkt9MQk0WUFoNTwnF76CLXtwNMfsc0um0TlB/LG2yxUd0KqaFjEJ9laQmVWQWS0sG/t2GsuI0w==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-25.2.3.tgz", + "integrity": "sha512-UbUmyGeZt0/sCIj/zsWOY0qFfQsx2qEFIZp0iEj8yVH6qASfR22fJOf12gFuSPsdSufam+llZBB0MdXWCg6EEQ==", "dev": true, "requires": { - "@jest/core": "^25.1.0", + "@jest/core": "^25.2.3", "import-local": "^3.0.2", - "jest-cli": "^25.1.0" + "jest-cli": "^25.2.3" }, "dependencies": { "find-up": { @@ -11707,20 +11625,20 @@ } }, "jest-changed-files": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.2.1.tgz", - "integrity": "sha512-BB4XjM/dJNUAUtchZ2yJq50VK8XXbmgvt1MUD6kzgzoyz9F0+1ZDQ1yNvLl6pfDwKrMBG9GBY1lzaIBO3JByMg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.2.3.tgz", + "integrity": "sha512-EFxy94dvvbqRB36ezIPLKJ4fDIC+jAdNs8i8uTwFpaXd6H3LVc3ova1lNS4ZPWk09OCR2vq5kSdSQgar7zMORg==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "execa": "^3.2.0", "throat": "^5.0.0" }, "dependencies": { "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -11907,24 +11825,24 @@ } }, "jest-cli": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.1.0.tgz", - "integrity": "sha512-p+aOfczzzKdo3AsLJlhs8J5EW6ffVidfSZZxXedJ0mHPBOln1DccqFmGCoO8JWd4xRycfmwy1eoQkMsF8oekPg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.2.3.tgz", + "integrity": "sha512-T7G0TOkFj0wr33ki5xoq3bxkKC+liwJfjV9SmYIKBozwh91W4YjL1o1dgVCUTB1+sKJa/DiAY0p+eXYE6v2RGw==", "dev": true, "requires": { - "@jest/core": "^25.1.0", - "@jest/test-result": "^25.1.0", - "@jest/types": "^25.1.0", + "@jest/core": "^25.2.3", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "exit": "^0.1.2", "import-local": "^3.0.2", "is-ci": "^2.0.0", - "jest-config": "^25.1.0", - "jest-util": "^25.1.0", - "jest-validate": "^25.1.0", + "jest-config": "^25.2.3", + "jest-util": "^25.2.3", + "jest-validate": "^25.2.3", "prompts": "^2.0.1", - "realpath-native": "^1.1.0", - "yargs": "^15.0.0" + "realpath-native": "^2.0.0", + "yargs": "^15.3.1" }, "dependencies": { "@babel/parser": { @@ -11934,14 +11852,14 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, @@ -11957,54 +11875,46 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", "slash": "^3.0.0", "source-map": "^0.6.1", "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "realpath-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", - "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", - "dev": true - } } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -12206,18 +12116,18 @@ "dev": true }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -12238,29 +12148,29 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" } }, "jest-validate": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.1.tgz", - "integrity": "sha512-vGtNFPyvylFfTFFfptzqCy5S3cP/N5JJVwm8gsXeZq8jMmvUngfWtuw+Tr5Wjo+dqOle23td8BE0ruGnsONDmw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.3.tgz", + "integrity": "sha512-GObn91jzU0B0Bv4cusAwjP6vnWy78hJUM8MOSz7keRfnac/ZhQWIsUjvk01IfeXNTemCwgR57EtdjQMzFZGREg==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "camelcase": "^5.3.1", "chalk": "^3.0.0", "jest-get-type": "^25.2.1", "leven": "^3.1.0", - "pretty-format": "^25.2.1" + "pretty-format": "^25.2.3" } }, "jest-worker": { @@ -12338,17 +12248,23 @@ } }, "pretty-format": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.1.tgz", - "integrity": "sha512-YS+e9oGYIbEeAFgqTU8qeZ3DN2Pz0iaD81ox+iUjLIXVJWeB7Ro/2AnfxRnl/yJJ5R674d7E3jLPuh6bwg0+qw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" } }, + "realpath-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -12489,9 +12405,9 @@ } }, "yargs-parser": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.1.tgz", - "integrity": "sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", + "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -12501,28 +12417,28 @@ } }, "jest-config": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.2.1.tgz", - "integrity": "sha512-Kh6a3stGSCtVwucvD9wSMaEQBmU0CfqVjHvf0X0iLfCrZfsezvV+sGgRWQAidaTIvo51yAaL217xOwEETMqh6w==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.2.3.tgz", + "integrity": "sha512-UpTNxN8DgmLLCXFizGuvwIw+ZAPB0T3jbKaFEkzJdGqhSsQrVrk1lxhZNamaVIpWirM2ptYmqwUzvoobGCEkiQ==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^25.2.1", - "@jest/types": "^25.2.1", - "babel-jest": "^25.2.1", + "@jest/test-sequencer": "^25.2.3", + "@jest/types": "^25.2.3", + "babel-jest": "^25.2.3", "chalk": "^3.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", - "jest-environment-jsdom": "^25.2.1", - "jest-environment-node": "^25.2.1", + "jest-environment-jsdom": "^25.2.3", + "jest-environment-node": "^25.2.3", "jest-get-type": "^25.2.1", - "jest-jasmine2": "^25.2.1", + "jest-jasmine2": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-resolve": "^25.2.1", - "jest-util": "^25.2.1", - "jest-validate": "^25.2.1", + "jest-resolve": "^25.2.3", + "jest-util": "^25.2.3", + "jest-validate": "^25.2.3", "micromatch": "^4.0.2", - "pretty-format": "^25.2.1", + "pretty-format": "^25.2.3", "realpath-native": "^2.0.0" }, "dependencies": { @@ -12533,38 +12449,38 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, "@jest/environment": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.1.tgz", - "integrity": "sha512-aeA3UlUmpblmv2CHBcNA7LvcXlcCtRpXaKKFVooRy9/Jk8B4IZAZMfrML/d+1cG5FpF17s4JVdu1kx0mbnaqTQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.3.tgz", + "integrity": "sha512-zRypAMQnNo8rD0rCbI9+5xf+Lu+uvunKZNBcIWjb3lTATSomKbgYO+GYewGDYn7pf+30XCNBc6SH1rnBUN1ioA==", "dev": true, "requires": { - "@jest/fake-timers": "^25.2.1", - "@jest/types": "^25.2.1", - "jest-mock": "^25.2.1" + "@jest/fake-timers": "^25.2.3", + "@jest/types": "^25.2.3", + "jest-mock": "^25.2.3" } }, "@jest/fake-timers": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.1.tgz", - "integrity": "sha512-H1OC8AktrGTD10NHBauICkRCv7VOOrsgI8xokifAsxJMYhqoKBtJZbk2YpbrtnmdTUnk+qoxPUk+Mufwnl44iQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.3.tgz", + "integrity": "sha512-B6Qxm86fl613MV8egfvh1mRTMu23hMNdOUjzPhKl/4Nm5cceHz6nwLn0nP0sJXI/ue1vu71aLbtkgVBCgc2hYA==", "dev": true, "requires": { - "@jest/types": "^25.2.1", - "jest-message-util": "^25.2.1", - "jest-mock": "^25.2.1", - "jest-util": "^25.2.1", + "@jest/types": "^25.2.3", + "jest-message-util": "^25.2.3", + "jest-mock": "^25.2.3", + "jest-util": "^25.2.3", "lolex": "^5.0.0" } }, @@ -12580,34 +12496,34 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -12617,9 +12533,9 @@ } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -12663,21 +12579,6 @@ "picomatch": "^2.0.4" } }, - "babel-jest": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.2.1.tgz", - "integrity": "sha512-OiBpQGYtV4rWMuFneIaEsqJB0VdoOBw4SqwO4hA2EhDY/O8RylQ20JwALkxv8iv+CYnyrZZfF+DELPgrdrkRIw==", - "dev": true, - "requires": { - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", - "@types/babel__core": "^7.1.0", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^25.2.1", - "chalk": "^3.0.0", - "slash": "^3.0.0" - } - }, "babel-plugin-istanbul": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", @@ -12691,26 +12592,6 @@ "test-exclude": "^6.0.0" } }, - "babel-plugin-jest-hoist": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.1.tgz", - "integrity": "sha512-HysbCQfJhxLlyxDbKcB2ucGYV0LjqK4h6dBoI3RtFuOxTiTWK6XGZMsHb0tGh8iJdV4hC6Z2GCHzVvDeh9i0lQ==", - "dev": true, - "requires": { - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-jest": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.2.1.tgz", - "integrity": "sha512-zXHJBM5iR8oEO4cvdF83AQqqJf3tJrXy3x8nfu2Nlqvn4cneg4Ca8M7cQvC5S9BzDDy1O0tZ9iXru9J6E3ym+A==", - "dev": true, - "requires": { - "@babel/plugin-syntax-bigint": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "babel-plugin-jest-hoist": "^25.2.1" - } - }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -12830,16 +12711,16 @@ } }, "jest-environment-jsdom": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.2.1.tgz", - "integrity": "sha512-bUhhhXtgrOgLhsFQFXgao8CQPYAEwtaVvhsF6O0A7Ie2uPONtAKCwuxyOM9WJaz9ag2ci5Pg7i2V2PRfGLl95w==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.2.3.tgz", + "integrity": "sha512-TLg7nizxIYJafz6tOBAVSmO5Ekswf6Cf3Soseov+mgonXfdYi1I0OZlHlZMJb2fGyXem2ndYFCLrMkwcWPKAnQ==", "dev": true, "requires": { - "@jest/environment": "^25.2.1", - "@jest/fake-timers": "^25.2.1", - "@jest/types": "^25.2.1", - "jest-mock": "^25.2.1", - "jest-util": "^25.2.1", + "@jest/environment": "^25.2.3", + "@jest/fake-timers": "^25.2.3", + "@jest/types": "^25.2.3", + "jest-mock": "^25.2.3", + "jest-util": "^25.2.3", "jsdom": "^15.2.1" } }, @@ -12850,18 +12731,18 @@ "dev": true }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -12870,14 +12751,14 @@ } }, "jest-message-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.1.tgz", - "integrity": "sha512-pxwehr9uPEuCI9bPjBiZxpFMN0+3wny5p7/E3hbV9XjsqREhJJAMf0czvHtgNeUBo2iAiAI9yi9ICKHPOKePEw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.3.tgz", + "integrity": "sha512-DcyDmdO5LVIeS0ngRvd7rk701XL60dAakUeQJ1tQRby27fyLYXD+V0nqVaC194W7fIlohjVQOZPHmKXIjn+Byw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "@types/stack-utils": "^1.0.1", "chalk": "^3.0.0", "micromatch": "^4.0.2", @@ -12886,12 +12767,12 @@ } }, "jest-mock": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.1.tgz", - "integrity": "sha512-ZXcmqpCTG1MEm2AP2q9XiJzdbQ655Pnssj+xQMP1thrW2ptEFrd4vSkxTpxk6rnluLPRKagaHmzUpWNxShMvqQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.3.tgz", + "integrity": "sha512-xlf+pyY0j47zoCs8zGGOGfWyxxLximE8YFOfEK8s4FruR8DtM/UjNj61um+iDuMAFEBDe1bhCXkqiKoCmWjJzg==", "dev": true, "requires": { - "@jest/types": "^25.2.1" + "@jest/types": "^25.2.3" } }, "jest-regex-util": { @@ -12907,29 +12788,29 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" } }, "jest-validate": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.1.tgz", - "integrity": "sha512-vGtNFPyvylFfTFFfptzqCy5S3cP/N5JJVwm8gsXeZq8jMmvUngfWtuw+Tr5Wjo+dqOle23td8BE0ruGnsONDmw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.3.tgz", + "integrity": "sha512-GObn91jzU0B0Bv4cusAwjP6vnWy78hJUM8MOSz7keRfnac/ZhQWIsUjvk01IfeXNTemCwgR57EtdjQMzFZGREg==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "camelcase": "^5.3.1", "chalk": "^3.0.0", "jest-get-type": "^25.2.1", "leven": "^3.1.0", - "pretty-format": "^25.2.1" + "pretty-format": "^25.2.3" } }, "jest-worker": { @@ -13014,12 +12895,12 @@ "dev": true }, "pretty-format": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.1.tgz", - "integrity": "sha512-YS+e9oGYIbEeAFgqTU8qeZ3DN2Pz0iaD81ox+iUjLIXVJWeB7Ro/2AnfxRnl/yJJ5R674d7E3jLPuh6bwg0+qw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" @@ -13233,9 +13114,9 @@ } }, "jest-docblock": { - "version": "25.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.2.0.tgz", - "integrity": "sha512-M7ZDbghaxFd2unWkyDFGLZDjPpIbDtEbICXSzwGrUBccFwVG/1dhLLAYX3D+98bFksaJuM0iMZGuIQUzKgnkQw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.2.3.tgz", + "integrity": "sha512-d3/tmjLLrH5fpRGmIm3oFa3vOaD/IjPxtXVOrfujpfJ9y1tCDB1x/tvunmdOVAyF03/xeMwburl6ITbiQT1mVA==", "dev": true, "requires": { "detect-newline": "^3.0.0" @@ -13250,22 +13131,22 @@ } }, "jest-each": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.2.1.tgz", - "integrity": "sha512-2vWAaf11IJsSwkEzGph3un4OMSG4v/3hpM2UqJdeU3peGUgUSn75TlXZGQnT0smbnAr4eE+URW1OpE8U9wl0TA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.2.3.tgz", + "integrity": "sha512-RTlmCjsBDK2c9T5oO4MqccA3/5Y8BUtiEy7OOQik1iyCgdnNdHbI0pNEpyapZPBG0nlvZ4mIu7aY6zNUvLraAQ==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "jest-get-type": "^25.2.1", - "jest-util": "^25.2.1", - "pretty-format": "^25.2.1" + "jest-util": "^25.2.3", + "pretty-format": "^25.2.3" }, "dependencies": { "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -13337,12 +13218,12 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" @@ -13358,12 +13239,12 @@ } }, "pretty-format": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.1.tgz", - "integrity": "sha512-YS+e9oGYIbEeAFgqTU8qeZ3DN2Pz0iaD81ox+iUjLIXVJWeB7Ro/2AnfxRnl/yJJ5R674d7E3jLPuh6bwg0+qw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" @@ -13410,16 +13291,17 @@ } }, "jest-environment-node": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.2.1.tgz", - "integrity": "sha512-HiAAwx4HrkaV9YAyuI56dmPDuTDckJyPpO0BwCu7+Ht2fmlMDhX13HZyyuIGTAIjUrjJiM3paB8tht+0mXtiIA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.2.3.tgz", + "integrity": "sha512-Tu/wlGXfoLtBR4Ym+isz58z3TJkMYX4VnFTkrsxaTGYAxNLN7ArCwL51Ki0WrMd89v+pbCLDj/hDjrb4a2sOrw==", "dev": true, "requires": { - "@jest/environment": "^25.2.1", - "@jest/fake-timers": "^25.2.1", - "@jest/types": "^25.2.1", - "jest-mock": "^25.2.1", - "jest-util": "^25.2.1" + "@jest/environment": "^25.2.3", + "@jest/fake-timers": "^25.2.3", + "@jest/types": "^25.2.3", + "jest-mock": "^25.2.3", + "jest-util": "^25.2.3", + "semver": "^6.3.0" }, "dependencies": { "@babel/parser": { @@ -13429,38 +13311,38 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, "@jest/environment": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.1.tgz", - "integrity": "sha512-aeA3UlUmpblmv2CHBcNA7LvcXlcCtRpXaKKFVooRy9/Jk8B4IZAZMfrML/d+1cG5FpF17s4JVdu1kx0mbnaqTQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.3.tgz", + "integrity": "sha512-zRypAMQnNo8rD0rCbI9+5xf+Lu+uvunKZNBcIWjb3lTATSomKbgYO+GYewGDYn7pf+30XCNBc6SH1rnBUN1ioA==", "dev": true, "requires": { - "@jest/fake-timers": "^25.2.1", - "@jest/types": "^25.2.1", - "jest-mock": "^25.2.1" + "@jest/fake-timers": "^25.2.3", + "@jest/types": "^25.2.3", + "jest-mock": "^25.2.3" } }, "@jest/fake-timers": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.1.tgz", - "integrity": "sha512-H1OC8AktrGTD10NHBauICkRCv7VOOrsgI8xokifAsxJMYhqoKBtJZbk2YpbrtnmdTUnk+qoxPUk+Mufwnl44iQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.3.tgz", + "integrity": "sha512-B6Qxm86fl613MV8egfvh1mRTMu23hMNdOUjzPhKl/4Nm5cceHz6nwLn0nP0sJXI/ue1vu71aLbtkgVBCgc2hYA==", "dev": true, "requires": { - "@jest/types": "^25.2.1", - "jest-message-util": "^25.2.1", - "jest-mock": "^25.2.1", - "jest-util": "^25.2.1", + "@jest/types": "^25.2.3", + "jest-message-util": "^25.2.3", + "jest-mock": "^25.2.3", + "jest-util": "^25.2.3", "lolex": "^5.0.0" } }, @@ -13476,34 +13358,34 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -13513,9 +13395,9 @@ } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -13656,18 +13538,18 @@ } }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -13676,14 +13558,14 @@ } }, "jest-message-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.1.tgz", - "integrity": "sha512-pxwehr9uPEuCI9bPjBiZxpFMN0+3wny5p7/E3hbV9XjsqREhJJAMf0czvHtgNeUBo2iAiAI9yi9ICKHPOKePEw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.3.tgz", + "integrity": "sha512-DcyDmdO5LVIeS0ngRvd7rk701XL60dAakUeQJ1tQRby27fyLYXD+V0nqVaC194W7fIlohjVQOZPHmKXIjn+Byw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "@types/stack-utils": "^1.0.1", "chalk": "^3.0.0", "micromatch": "^4.0.2", @@ -13692,12 +13574,12 @@ } }, "jest-mock": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.1.tgz", - "integrity": "sha512-ZXcmqpCTG1MEm2AP2q9XiJzdbQ655Pnssj+xQMP1thrW2ptEFrd4vSkxTpxk6rnluLPRKagaHmzUpWNxShMvqQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.3.tgz", + "integrity": "sha512-xlf+pyY0j47zoCs8zGGOGfWyxxLximE8YFOfEK8s4FruR8DtM/UjNj61um+iDuMAFEBDe1bhCXkqiKoCmWjJzg==", "dev": true, "requires": { - "@jest/types": "^25.2.1" + "@jest/types": "^25.2.3" } }, "jest-regex-util": { @@ -13713,12 +13595,12 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" @@ -13877,27 +13759,27 @@ } }, "jest-jasmine2": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.2.1.tgz", - "integrity": "sha512-He8HdO9jx1LdEaof2vjnvKeJeRPYnn+zXz32X8Z/iOUgAgmP7iZActUkiCCiTazSZlaGlY1iK+LOrqnpGQ0+UA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.2.3.tgz", + "integrity": "sha512-x9PEGPFdnkSwJj1UG4QxG9JxFdyP8fuJ/UfKXd/eSpK8w9x7MP3VaQDuPQF0UQhCT0YeOITEPkQyqS+ptt0suA==", "dev": true, "requires": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^25.2.1", + "@jest/environment": "^25.2.3", "@jest/source-map": "^25.2.1", - "@jest/test-result": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "co": "^4.6.0", - "expect": "^25.2.1", + "expect": "^25.2.3", "is-generator-fn": "^2.0.0", - "jest-each": "^25.2.1", - "jest-matcher-utils": "^25.2.1", - "jest-message-util": "^25.2.1", - "jest-runtime": "^25.2.1", - "jest-snapshot": "^25.2.1", - "jest-util": "^25.2.1", - "pretty-format": "^25.2.1", + "jest-each": "^25.2.3", + "jest-matcher-utils": "^25.2.3", + "jest-message-util": "^25.2.3", + "jest-runtime": "^25.2.3", + "jest-snapshot": "^25.2.3", + "jest-util": "^25.2.3", + "pretty-format": "^25.2.3", "throat": "^5.0.0" }, "dependencies": { @@ -13908,38 +13790,38 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, "@jest/environment": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.1.tgz", - "integrity": "sha512-aeA3UlUmpblmv2CHBcNA7LvcXlcCtRpXaKKFVooRy9/Jk8B4IZAZMfrML/d+1cG5FpF17s4JVdu1kx0mbnaqTQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.3.tgz", + "integrity": "sha512-zRypAMQnNo8rD0rCbI9+5xf+Lu+uvunKZNBcIWjb3lTATSomKbgYO+GYewGDYn7pf+30XCNBc6SH1rnBUN1ioA==", "dev": true, "requires": { - "@jest/fake-timers": "^25.2.1", - "@jest/types": "^25.2.1", - "jest-mock": "^25.2.1" + "@jest/fake-timers": "^25.2.3", + "@jest/types": "^25.2.3", + "jest-mock": "^25.2.3" } }, "@jest/fake-timers": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.1.tgz", - "integrity": "sha512-H1OC8AktrGTD10NHBauICkRCv7VOOrsgI8xokifAsxJMYhqoKBtJZbk2YpbrtnmdTUnk+qoxPUk+Mufwnl44iQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.3.tgz", + "integrity": "sha512-B6Qxm86fl613MV8egfvh1mRTMu23hMNdOUjzPhKl/4Nm5cceHz6nwLn0nP0sJXI/ue1vu71aLbtkgVBCgc2hYA==", "dev": true, "requires": { - "@jest/types": "^25.2.1", - "jest-message-util": "^25.2.1", - "jest-mock": "^25.2.1", - "jest-util": "^25.2.1", + "@jest/types": "^25.2.3", + "jest-message-util": "^25.2.3", + "jest-mock": "^25.2.3", + "jest-util": "^25.2.3", "lolex": "^5.0.0" } }, @@ -13955,34 +13837,34 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -13992,9 +13874,9 @@ } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -14141,18 +14023,18 @@ } }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -14161,14 +14043,14 @@ } }, "jest-message-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.1.tgz", - "integrity": "sha512-pxwehr9uPEuCI9bPjBiZxpFMN0+3wny5p7/E3hbV9XjsqREhJJAMf0czvHtgNeUBo2iAiAI9yi9ICKHPOKePEw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.3.tgz", + "integrity": "sha512-DcyDmdO5LVIeS0ngRvd7rk701XL60dAakUeQJ1tQRby27fyLYXD+V0nqVaC194W7fIlohjVQOZPHmKXIjn+Byw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "@types/stack-utils": "^1.0.1", "chalk": "^3.0.0", "micromatch": "^4.0.2", @@ -14177,12 +14059,12 @@ } }, "jest-mock": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.1.tgz", - "integrity": "sha512-ZXcmqpCTG1MEm2AP2q9XiJzdbQ655Pnssj+xQMP1thrW2ptEFrd4vSkxTpxk6rnluLPRKagaHmzUpWNxShMvqQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.3.tgz", + "integrity": "sha512-xlf+pyY0j47zoCs8zGGOGfWyxxLximE8YFOfEK8s4FruR8DtM/UjNj61um+iDuMAFEBDe1bhCXkqiKoCmWjJzg==", "dev": true, "requires": { - "@jest/types": "^25.2.1" + "@jest/types": "^25.2.3" } }, "jest-regex-util": { @@ -14198,12 +14080,12 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" @@ -14251,12 +14133,12 @@ "dev": true }, "pretty-format": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.1.tgz", - "integrity": "sha512-YS+e9oGYIbEeAFgqTU8qeZ3DN2Pz0iaD81ox+iUjLIXVJWeB7Ro/2AnfxRnl/yJJ5R674d7E3jLPuh6bwg0+qw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" @@ -14345,19 +14227,19 @@ } }, "jest-leak-detector": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.2.1.tgz", - "integrity": "sha512-bsxjjFksjLWNqC8aLsN0KO2KQ3tiqPqmFpYt+0y4RLHc1dqaThQL68jra5y1f/yhX3dNC8ugksDvqnGxwxjo4w==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.2.3.tgz", + "integrity": "sha512-yblCMPE7NJKl7778Cf/73yyFWAas5St0iiEBwq7RDyaz6Xd4WPFnPz2j7yDb/Qce71A1IbDoLADlcwD8zT74Aw==", "dev": true, "requires": { "jest-get-type": "^25.2.1", - "pretty-format": "^25.2.1" + "pretty-format": "^25.2.3" }, "dependencies": { "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -14429,12 +14311,12 @@ "dev": true }, "pretty-format": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.1.tgz", - "integrity": "sha512-YS+e9oGYIbEeAFgqTU8qeZ3DN2Pz0iaD81ox+iUjLIXVJWeB7Ro/2AnfxRnl/yJJ5R674d7E3jLPuh6bwg0+qw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" @@ -14452,21 +14334,21 @@ } }, "jest-matcher-utils": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.2.1.tgz", - "integrity": "sha512-uuoYY8W6eeVxHUEOvrKIVVTl9X6RP+ohQn2Ta2W8OOLMN6oA8pZUKQEPGxLsSqB3RKfpTueurMLrxDTEZGllsA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.2.3.tgz", + "integrity": "sha512-ZmiXiwQRVM9MoKjGMP5YsGGk2Th5ncyRxfXKz5AKsmU8m43kgNZirckVzaP61MlSa9LKmXbevdYqVp1ZKAw2Rw==", "dev": true, "requires": { "chalk": "^3.0.0", - "jest-diff": "^25.2.1", + "jest-diff": "^25.2.3", "jest-get-type": "^25.2.1", - "pretty-format": "^25.2.1" + "pretty-format": "^25.2.3" }, "dependencies": { "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -14538,15 +14420,15 @@ "dev": true }, "jest-diff": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.2.1.tgz", - "integrity": "sha512-e/TU8VLBBGQQS9tXA5B5LeT806jh7CHUeHbBfrU9UvA2zTbOTRz71UD6fAP1HAhzUEyCVLU2ZP5e8X16A9b0Fg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.2.3.tgz", + "integrity": "sha512-VtZ6LAQtaQpFsmEzps15dQc5ELbJxy4L2DOSo2Ev411TUEtnJPkAMD7JneVypeMJQ1y3hgxN9Ao13n15FAnavg==", "dev": true, "requires": { "chalk": "^3.0.0", "diff-sequences": "^25.2.1", "jest-get-type": "^25.2.1", - "pretty-format": "^25.2.1" + "pretty-format": "^25.2.3" } }, "jest-get-type": { @@ -14556,12 +14438,12 @@ "dev": true }, "pretty-format": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.1.tgz", - "integrity": "sha512-YS+e9oGYIbEeAFgqTU8qeZ3DN2Pz0iaD81ox+iUjLIXVJWeB7Ro/2AnfxRnl/yJJ5R674d7E3jLPuh6bwg0+qw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" @@ -14614,12 +14496,12 @@ "dev": true }, "jest-resolve": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.2.1.tgz", - "integrity": "sha512-5rVc6khEckNH62adcR+jlYd34/jBO/U22VHf+elmyO6UBHNWXSbfy63+spJRN4GQ/0dbu6Hi6ZVdR58bmNG2Eg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.2.3.tgz", + "integrity": "sha512-1vZMsvM/DBH258PnpUNSXIgtzpYz+vCVCj9+fcy4akZl4oKbD+9hZSlfe9RIDpU0Fc28ozHQrmwX3EqFRRIHGg==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "browser-resolve": "^1.11.3", "chalk": "^3.0.0", "jest-pnp-resolver": "^1.2.1", @@ -14628,9 +14510,9 @@ }, "dependencies": { "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -14716,20 +14598,20 @@ } }, "jest-resolve-dependencies": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.2.1.tgz", - "integrity": "sha512-fnct/NyrBpBAVUIMa0M876ubufHP/2Rrc038+gCpVT1s7kazV7ZPFlmGfInahCIthbMr644uzt6pnSvmQgTPGg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.2.3.tgz", + "integrity": "sha512-mcWlvjXLlNzgdE9EQxHuaeWICNxozanim87EfyvPwTY0ryWusFZbgF6F8u3E0syJ4FFSooEm0lQ6fgYcnPGAFw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-snapshot": "^25.2.1" + "jest-snapshot": "^25.2.3" }, "dependencies": { "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -14806,27 +14688,27 @@ } }, "jest-runner": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.2.1.tgz", - "integrity": "sha512-eONqmMQ2vvKh9BsmJmPmv22DqezFSnwX97rj0L5LvPxQNXTz+rpx7nWiKA7xlvOykLFcspw6worK3+AzhwHWhQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.2.3.tgz", + "integrity": "sha512-E+u2Zm2TmtTOFEbKs5jllLiV2fwiX77cYc08RdyYZNe/s06wQT3P47aV6a8Rv61L7E2Is7OmozLd0KI/DITRpg==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/environment": "^25.2.1", - "@jest/test-result": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/environment": "^25.2.3", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.3", - "jest-config": "^25.2.1", - "jest-docblock": "^25.2.0", - "jest-haste-map": "^25.2.1", - "jest-jasmine2": "^25.2.1", - "jest-leak-detector": "^25.2.1", - "jest-message-util": "^25.2.1", - "jest-resolve": "^25.2.1", - "jest-runtime": "^25.2.1", - "jest-util": "^25.2.1", + "jest-config": "^25.2.3", + "jest-docblock": "^25.2.3", + "jest-haste-map": "^25.2.3", + "jest-jasmine2": "^25.2.3", + "jest-leak-detector": "^25.2.3", + "jest-message-util": "^25.2.3", + "jest-resolve": "^25.2.3", + "jest-runtime": "^25.2.3", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "source-map-support": "^0.5.6", "throat": "^5.0.0" @@ -14839,38 +14721,38 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, "@jest/environment": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.1.tgz", - "integrity": "sha512-aeA3UlUmpblmv2CHBcNA7LvcXlcCtRpXaKKFVooRy9/Jk8B4IZAZMfrML/d+1cG5FpF17s4JVdu1kx0mbnaqTQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.3.tgz", + "integrity": "sha512-zRypAMQnNo8rD0rCbI9+5xf+Lu+uvunKZNBcIWjb3lTATSomKbgYO+GYewGDYn7pf+30XCNBc6SH1rnBUN1ioA==", "dev": true, "requires": { - "@jest/fake-timers": "^25.2.1", - "@jest/types": "^25.2.1", - "jest-mock": "^25.2.1" + "@jest/fake-timers": "^25.2.3", + "@jest/types": "^25.2.3", + "jest-mock": "^25.2.3" } }, "@jest/fake-timers": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.1.tgz", - "integrity": "sha512-H1OC8AktrGTD10NHBauICkRCv7VOOrsgI8xokifAsxJMYhqoKBtJZbk2YpbrtnmdTUnk+qoxPUk+Mufwnl44iQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.3.tgz", + "integrity": "sha512-B6Qxm86fl613MV8egfvh1mRTMu23hMNdOUjzPhKl/4Nm5cceHz6nwLn0nP0sJXI/ue1vu71aLbtkgVBCgc2hYA==", "dev": true, "requires": { - "@jest/types": "^25.2.1", - "jest-message-util": "^25.2.1", - "jest-mock": "^25.2.1", - "jest-util": "^25.2.1", + "@jest/types": "^25.2.3", + "jest-message-util": "^25.2.3", + "jest-mock": "^25.2.3", + "jest-util": "^25.2.3", "lolex": "^5.0.0" } }, @@ -14886,34 +14768,34 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -14923,9 +14805,9 @@ } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -15066,18 +14948,18 @@ } }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -15086,14 +14968,14 @@ } }, "jest-message-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.1.tgz", - "integrity": "sha512-pxwehr9uPEuCI9bPjBiZxpFMN0+3wny5p7/E3hbV9XjsqREhJJAMf0czvHtgNeUBo2iAiAI9yi9ICKHPOKePEw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.3.tgz", + "integrity": "sha512-DcyDmdO5LVIeS0ngRvd7rk701XL60dAakUeQJ1tQRby27fyLYXD+V0nqVaC194W7fIlohjVQOZPHmKXIjn+Byw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "@types/stack-utils": "^1.0.1", "chalk": "^3.0.0", "micromatch": "^4.0.2", @@ -15102,12 +14984,12 @@ } }, "jest-mock": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.1.tgz", - "integrity": "sha512-ZXcmqpCTG1MEm2AP2q9XiJzdbQ655Pnssj+xQMP1thrW2ptEFrd4vSkxTpxk6rnluLPRKagaHmzUpWNxShMvqQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.3.tgz", + "integrity": "sha512-xlf+pyY0j47zoCs8zGGOGfWyxxLximE8YFOfEK8s4FruR8DtM/UjNj61um+iDuMAFEBDe1bhCXkqiKoCmWjJzg==", "dev": true, "requires": { - "@jest/types": "^25.2.1" + "@jest/types": "^25.2.3" } }, "jest-regex-util": { @@ -15123,12 +15005,12 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" @@ -15258,32 +15140,32 @@ } }, "jest-runtime": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.2.1.tgz", - "integrity": "sha512-eHEnMrOVeGe8mGDoTZWqCdbsM3RwxsMKVMAj1RTZ4LtRyWqQHKec3RiJiJST5LVj3Mw72clr0U21yoE4p5Mq3w==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.2.3.tgz", + "integrity": "sha512-PZRFeUVF08N24v2G73SDF0b0VpLG7cRNOJ3ggj5TnArBVHkkrWzM3z7txB9OupWu7OO8bH/jFogk6sSjnHLFXQ==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/environment": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/environment": "^25.2.3", "@jest/source-map": "^25.2.1", - "@jest/test-result": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/test-result": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/yargs": "^15.0.0", "chalk": "^3.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.3", - "jest-config": "^25.2.1", - "jest-haste-map": "^25.2.1", - "jest-message-util": "^25.2.1", - "jest-mock": "^25.2.1", + "jest-config": "^25.2.3", + "jest-haste-map": "^25.2.3", + "jest-message-util": "^25.2.3", + "jest-mock": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-resolve": "^25.2.1", - "jest-snapshot": "^25.2.1", - "jest-util": "^25.2.1", - "jest-validate": "^25.2.1", + "jest-resolve": "^25.2.3", + "jest-snapshot": "^25.2.3", + "jest-util": "^25.2.3", + "jest-validate": "^25.2.3", "realpath-native": "^2.0.0", "slash": "^3.0.0", "strip-bom": "^4.0.0", @@ -15297,38 +15179,38 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, "@jest/environment": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.1.tgz", - "integrity": "sha512-aeA3UlUmpblmv2CHBcNA7LvcXlcCtRpXaKKFVooRy9/Jk8B4IZAZMfrML/d+1cG5FpF17s4JVdu1kx0mbnaqTQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.3.tgz", + "integrity": "sha512-zRypAMQnNo8rD0rCbI9+5xf+Lu+uvunKZNBcIWjb3lTATSomKbgYO+GYewGDYn7pf+30XCNBc6SH1rnBUN1ioA==", "dev": true, "requires": { - "@jest/fake-timers": "^25.2.1", - "@jest/types": "^25.2.1", - "jest-mock": "^25.2.1" + "@jest/fake-timers": "^25.2.3", + "@jest/types": "^25.2.3", + "jest-mock": "^25.2.3" } }, "@jest/fake-timers": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.1.tgz", - "integrity": "sha512-H1OC8AktrGTD10NHBauICkRCv7VOOrsgI8xokifAsxJMYhqoKBtJZbk2YpbrtnmdTUnk+qoxPUk+Mufwnl44iQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.3.tgz", + "integrity": "sha512-B6Qxm86fl613MV8egfvh1mRTMu23hMNdOUjzPhKl/4Nm5cceHz6nwLn0nP0sJXI/ue1vu71aLbtkgVBCgc2hYA==", "dev": true, "requires": { - "@jest/types": "^25.2.1", - "jest-message-util": "^25.2.1", - "jest-mock": "^25.2.1", - "jest-util": "^25.2.1", + "@jest/types": "^25.2.3", + "jest-message-util": "^25.2.3", + "jest-mock": "^25.2.3", + "jest-util": "^25.2.3", "lolex": "^5.0.0" } }, @@ -15344,34 +15226,34 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -15381,9 +15263,9 @@ } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -15575,18 +15457,18 @@ "dev": true }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -15595,14 +15477,14 @@ } }, "jest-message-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.1.tgz", - "integrity": "sha512-pxwehr9uPEuCI9bPjBiZxpFMN0+3wny5p7/E3hbV9XjsqREhJJAMf0czvHtgNeUBo2iAiAI9yi9ICKHPOKePEw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.3.tgz", + "integrity": "sha512-DcyDmdO5LVIeS0ngRvd7rk701XL60dAakUeQJ1tQRby27fyLYXD+V0nqVaC194W7fIlohjVQOZPHmKXIjn+Byw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "@types/stack-utils": "^1.0.1", "chalk": "^3.0.0", "micromatch": "^4.0.2", @@ -15611,12 +15493,12 @@ } }, "jest-mock": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.1.tgz", - "integrity": "sha512-ZXcmqpCTG1MEm2AP2q9XiJzdbQ655Pnssj+xQMP1thrW2ptEFrd4vSkxTpxk6rnluLPRKagaHmzUpWNxShMvqQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.3.tgz", + "integrity": "sha512-xlf+pyY0j47zoCs8zGGOGfWyxxLximE8YFOfEK8s4FruR8DtM/UjNj61um+iDuMAFEBDe1bhCXkqiKoCmWjJzg==", "dev": true, "requires": { - "@jest/types": "^25.2.1" + "@jest/types": "^25.2.3" } }, "jest-regex-util": { @@ -15632,29 +15514,29 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" } }, "jest-validate": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.1.tgz", - "integrity": "sha512-vGtNFPyvylFfTFFfptzqCy5S3cP/N5JJVwm8gsXeZq8jMmvUngfWtuw+Tr5Wjo+dqOle23td8BE0ruGnsONDmw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.3.tgz", + "integrity": "sha512-GObn91jzU0B0Bv4cusAwjP6vnWy78hJUM8MOSz7keRfnac/ZhQWIsUjvk01IfeXNTemCwgR57EtdjQMzFZGREg==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "camelcase": "^5.3.1", "chalk": "^3.0.0", "jest-get-type": "^25.2.1", "leven": "^3.1.0", - "pretty-format": "^25.2.1" + "pretty-format": "^25.2.3" } }, "jest-worker": { @@ -15723,12 +15605,12 @@ "dev": true }, "pretty-format": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.1.tgz", - "integrity": "sha512-YS+e9oGYIbEeAFgqTU8qeZ3DN2Pz0iaD81ox+iUjLIXVJWeB7Ro/2AnfxRnl/yJJ5R674d7E3jLPuh6bwg0+qw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" @@ -15871,9 +15753,9 @@ } }, "yargs-parser": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.1.tgz", - "integrity": "sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", + "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -15888,24 +15770,24 @@ "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" }, "jest-snapshot": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.2.1.tgz", - "integrity": "sha512-5Wd8SEJVTXqQvzkQpuYqQt1QTlRj2XVUV/iaEzO+AeSVg6g5pQWu0z2iLdSBlVeWRrX0MyZn6dhxYGwEq4wW0w==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.2.3.tgz", + "integrity": "sha512-HlFVbE6vOZ541mtkwjuAe0rfx9EWhB+QXXneLNOP/s3LlHxGQtX7WFXY5OiH4CkAnCc6BpzLNYS9nfINNRb4Zg==", "dev": true, "requires": { "@babel/types": "^7.0.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "@types/prettier": "^1.19.0", "chalk": "^3.0.0", - "expect": "^25.2.1", - "jest-diff": "^25.2.1", + "expect": "^25.2.3", + "jest-diff": "^25.2.3", "jest-get-type": "^25.2.1", - "jest-matcher-utils": "^25.2.1", - "jest-message-util": "^25.2.1", - "jest-resolve": "^25.2.1", + "jest-matcher-utils": "^25.2.3", + "jest-message-util": "^25.2.3", + "jest-resolve": "^25.2.3", "make-dir": "^3.0.0", "natural-compare": "^1.4.0", - "pretty-format": "^25.2.1", + "pretty-format": "^25.2.3", "semver": "^6.3.0" }, "dependencies": { @@ -15916,14 +15798,14 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, @@ -15939,34 +15821,34 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -15976,9 +15858,9 @@ } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -16131,15 +16013,15 @@ } }, "jest-diff": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.2.1.tgz", - "integrity": "sha512-e/TU8VLBBGQQS9tXA5B5LeT806jh7CHUeHbBfrU9UvA2zTbOTRz71UD6fAP1HAhzUEyCVLU2ZP5e8X16A9b0Fg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.2.3.tgz", + "integrity": "sha512-VtZ6LAQtaQpFsmEzps15dQc5ELbJxy4L2DOSo2Ev411TUEtnJPkAMD7JneVypeMJQ1y3hgxN9Ao13n15FAnavg==", "dev": true, "requires": { "chalk": "^3.0.0", "diff-sequences": "^25.2.1", "jest-get-type": "^25.2.1", - "pretty-format": "^25.2.1" + "pretty-format": "^25.2.3" } }, "jest-get-type": { @@ -16149,18 +16031,18 @@ "dev": true }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -16169,14 +16051,14 @@ } }, "jest-message-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.1.tgz", - "integrity": "sha512-pxwehr9uPEuCI9bPjBiZxpFMN0+3wny5p7/E3hbV9XjsqREhJJAMf0czvHtgNeUBo2iAiAI9yi9ICKHPOKePEw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.3.tgz", + "integrity": "sha512-DcyDmdO5LVIeS0ngRvd7rk701XL60dAakUeQJ1tQRby27fyLYXD+V0nqVaC194W7fIlohjVQOZPHmKXIjn+Byw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "@types/stack-utils": "^1.0.1", "chalk": "^3.0.0", "micromatch": "^4.0.2", @@ -16197,12 +16079,12 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" @@ -16250,12 +16132,12 @@ "dev": true }, "pretty-format": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.1.tgz", - "integrity": "sha512-YS+e9oGYIbEeAFgqTU8qeZ3DN2Pz0iaD81ox+iUjLIXVJWeB7Ro/2AnfxRnl/yJJ5R674d7E3jLPuh6bwg0+qw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" @@ -16389,16 +16271,16 @@ } }, "jest-watcher": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.2.1.tgz", - "integrity": "sha512-m35rftCYE2EEh01+IIpQMpdB9VXBAjITZvgP4drd/LI3JEJIdd0Pkf/qJZ3oiMQJdqmuwYcTqE+BL40MxVv83Q==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.2.3.tgz", + "integrity": "sha512-F6ERbdvJk8nbaRon9lLQVl4kp+vToCCHmy+uWW5QQ8/8/g2jkrZKJQnlQINrYQp0ewg31Bztkhs4nxsZMx6wDg==", "dev": true, "requires": { - "@jest/test-result": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/test-result": "^25.2.3", + "@jest/types": "^25.2.3", "ansi-escapes": "^4.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "string-length": "^3.1.0" }, "dependencies": { @@ -16409,14 +16291,14 @@ "dev": true }, "@jest/console": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.1.tgz", - "integrity": "sha512-v3tkMr5AeVm6R23wnZdC5dzXdHPFa6j2uiTC15iHISYkGIilE9O1qmAYKELHPXZifDbz9c8WwzsqoN8K8uG4jg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", "dev": true, "requires": { "@jest/source-map": "^25.2.1", "chalk": "^3.0.0", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "slash": "^3.0.0" } }, @@ -16432,34 +16314,34 @@ } }, "@jest/test-result": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.1.tgz", - "integrity": "sha512-E0tlWh2iOELRLbbPEngs3Dsx88vGBQOs6O3w46YeXfMHlwwqzWrlvoeUq6kRlHRm1O8H+EBr60Wtrwh20C+zWQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.3.tgz", + "integrity": "sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w==", "dev": true, "requires": { - "@jest/console": "^25.2.1", - "@jest/transform": "^25.2.1", - "@jest/types": "^25.2.1", + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.3", + "@jest/types": "^25.2.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/transform": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.1.tgz", - "integrity": "sha512-puoD5EfqPeZ5m0dV9l8+PMdOVdRjeWcaEjGkH+eG45l0nPJ2vRcxu8J6CRl/6nQ5ZTHgg7LuM9C6FauNpdRpUA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.3.tgz", + "integrity": "sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "babel-plugin-istanbul": "^6.0.0", "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.3", - "jest-haste-map": "^25.2.1", + "jest-haste-map": "^25.2.3", "jest-regex-util": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "micromatch": "^4.0.2", "pirates": "^4.0.1", "realpath-native": "^2.0.0", @@ -16469,9 +16351,9 @@ } }, "@jest/types": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.1.tgz", - "integrity": "sha512-WuGFGJ3Rrycg+5ZwQTWKjr21M9psANPAWYD28K42hSeUzhv1H591VXIoq0tjs00mydhNOgVOkKSpzRS3CrOYFw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -16621,18 +16503,18 @@ } }, "jest-haste-map": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.1.tgz", - "integrity": "sha512-svz3KbQmv9qeomR0LlRjQfoi7lQbZQkC39m7uHFKhqyEuX4F6DH6HayNPSEbTCZDx6d9/ljxfAcxlPpgQvrpvQ==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.3", "jest-serializer": "^25.2.1", - "jest-util": "^25.2.1", + "jest-util": "^25.2.3", "jest-worker": "^25.2.1", "micromatch": "^4.0.2", "sane": "^4.0.3", @@ -16653,12 +16535,12 @@ "dev": true }, "jest-util": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.1.tgz", - "integrity": "sha512-oFVMSY/7flrSgEE/B+RApaBZOdLURXRnXCf4COV5td9uRidxudyjA64I1xk2h9Pf3jloSArm96e2FKAbFs0DYg==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/types": "^25.2.1", + "@jest/types": "^25.2.3", "chalk": "^3.0.0", "is-ci": "^2.0.0", "make-dir": "^3.0.0" @@ -16950,6 +16832,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, "requires": { "minimist": "^1.2.0" }, @@ -16957,7 +16840,8 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true } } }, @@ -17073,32 +16957,6 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, "loader-utils": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", @@ -17414,12 +17272,13 @@ } }, "metro": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.56.4.tgz", - "integrity": "sha512-Kt3OQJQtQdts0JrKnyGdLpKHDjqYBgIfzvYrvfhmFCkKuZ8aqRlVnvpfjQ4/OBm0Fmm9NyyxbNRD9VIbj7WjnA==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.58.0.tgz", + "integrity": "sha512-yi/REXX+/s4r7RjzXht+E+qE6nzvFIrEXO5Q61h+70Q7RODMU8EnlpXx04JYk7DevHuMhFaX+NWhCtRINzR4zA==", "requires": { + "@babel/code-frame": "^7.0.0", "@babel/core": "^7.0.0", - "@babel/generator": "^7.0.0", + "@babel/generator": "^7.5.0", "@babel/parser": "^7.0.0", "@babel/plugin-external-helpers": "^7.0.0", "@babel/template": "^7.0.0", @@ -17427,9 +17286,10 @@ "@babel/types": "^7.0.0", "absolute-path": "^0.0.0", "async": "^2.4.0", - "babel-preset-fbjs": "^3.1.2", + "babel-preset-fbjs": "^3.3.0", "buffer-crc32": "^0.2.13", "chalk": "^2.4.1", + "ci-info": "^2.0.0", "concat-stream": "^1.6.0", "connect": "^3.6.5", "debug": "^2.2.0", @@ -17445,76 +17305,60 @@ "json-stable-stringify": "^1.0.1", "lodash.throttle": "^4.1.1", "merge-stream": "^1.0.1", - "metro-babel-register": "^0.56.4", - "metro-babel-transformer": "^0.56.4", - "metro-cache": "^0.56.4", - "metro-config": "^0.56.4", - "metro-core": "^0.56.4", - "metro-inspector-proxy": "^0.56.4", - "metro-minify-uglify": "^0.56.4", - "metro-react-native-babel-preset": "^0.56.4", - "metro-resolver": "^0.56.4", - "metro-source-map": "^0.56.4", - "metro-symbolicate": "^0.56.4", + "metro-babel-register": "0.58.0", + "metro-babel-transformer": "0.58.0", + "metro-cache": "0.58.0", + "metro-config": "0.58.0", + "metro-core": "0.58.0", + "metro-inspector-proxy": "0.58.0", + "metro-minify-uglify": "0.58.0", + "metro-react-native-babel-preset": "0.58.0", + "metro-resolver": "0.58.0", + "metro-source-map": "0.58.0", + "metro-symbolicate": "0.58.0", "mime-types": "2.1.11", "mkdirp": "^0.5.1", "node-fetch": "^2.2.0", - "nullthrows": "^1.1.0", + "nullthrows": "^1.1.1", "resolve": "^1.5.0", "rimraf": "^2.5.4", "serialize-error": "^2.1.0", "source-map": "^0.5.6", + "strip-ansi": "^4.0.0", "temp": "0.8.3", "throat": "^4.1.0", "wordwrap": "^1.0.0", "write-file-atomic": "^1.2.0", "ws": "^1.1.5", "xpipe": "^1.0.5", - "yargs": "^9.0.0" + "yargs": "^14.2.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "ansi-regex": "^4.1.0" } } } }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -17523,19 +17367,10 @@ "ms": "2.0.0" } }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.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" - } + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "fs-extra": { "version": "1.0.0", @@ -17547,23 +17382,10 @@ "klaw": "^1.0.0" } }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "jsonfile": { "version": "2.4.0", @@ -17573,26 +17395,10 @@ "graceful-fs": "^4.1.6" } }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, "metro-react-native-babel-preset": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.4.tgz", - "integrity": "sha512-CzbBDM9Rh6w8s1fq+ZqihAh7DDqUAcfo9pPww25+N/eJ7UK436Q7JdfxwdIPpBwLFn6o6MyYn+uwL9OEWBJarA==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.58.0.tgz", + "integrity": "sha512-MRriNW+fF6jxABsgPphocUY6mIhmCm8idcrQZ58fT3Iti2vCdtkaK32TyCGUNUptzhUe2/cbE57j4aC+eaodAA==", "requires": { "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", @@ -17625,7 +17431,7 @@ "@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.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" @@ -17649,27 +17455,72 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "serialize-error": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=" }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "ansi-regex": "^2.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "ws": { @@ -17681,45 +17532,39 @@ "ultron": "1.0.x" } }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", + "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" } }, "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", + "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, "metro-babel-register": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.56.4.tgz", - "integrity": "sha512-Phm6hMluOWYqfykftjJ1jsTpWvbgb49AC/1taxEctxUdRCZlFgZwBleJZAhQYxJD5J+ikFkEbHDzePEXb29KVA==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.58.0.tgz", + "integrity": "sha512-P5+G3ufhSYL6cA3a7xkbSJzzFBvtivj/PhWvGXFXnuFssDlMAX1CTktff+0gpka5Cd6B6QLt0UAMWulUAAE4Eg==", "requires": { "@babel/core": "^7.0.0", "@babel/plugin-proposal-class-properties": "^7.0.0", @@ -17743,101 +17588,69 @@ } }, "metro-babel-transformer": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.56.4.tgz", - "integrity": "sha512-IOi4ILgZvaX7GCGHBJp79paNVOq5QxhhbyqAdEJgDP8bHfl/OVHoVKSypfrsMSKSiBrqxhIjyc4XjkXsQtkx5g==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.58.0.tgz", + "integrity": "sha512-yBX3BkRhw2TCNPhe+pmLSgsAEA3huMvnX08UwjFqSXXI1aiqzRQobn92uKd1U5MM1Vx8EtXVomlJb95ZHNAv6A==", "requires": { "@babel/core": "^7.0.0", - "metro-source-map": "^0.56.4" + "metro-source-map": "0.58.0" } }, "metro-cache": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.56.4.tgz", - "integrity": "sha512-d1hiUSKwtRsuMxUhHVJ3tjK2BbpUlJGvTyMWohK8Wxx+0GbnWRWWFcI4vlCzlZfoK0VtZK2MJEl5t7Du1mIniQ==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.58.0.tgz", + "integrity": "sha512-jjW9zCTKxhgKcVkyQ6LHyna9Zdf4TK/45vvT1fPyyTk1RY82ZYjU1qs+84ycKEd08Ka4YcK9xcUew9SIDJYI8Q==", "requires": { "jest-serializer": "^24.4.0", - "metro-core": "^0.56.4", + "metro-core": "0.58.0", "mkdirp": "^0.5.1", "rimraf": "^2.5.4" } }, "metro-config": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.56.4.tgz", - "integrity": "sha512-O85QDHwWdMn/8ERe13y4a6vbZL0AHyO8atTvL+9BCulLEO+FQBi1iJjr3+ViLa8cf0m5dRftDsa7P47m5euk4A==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.58.0.tgz", + "integrity": "sha512-4vgBliXwL56vjUlYplvGMVSNrJJpkHuLcD+O20trV3FvPxKg4ZsvuOcNSxqDSMU26FCtIEJ15ojcuCbRL7KY0w==", "requires": { "cosmiconfig": "^5.0.5", "jest-validate": "^24.7.0", - "metro": "^0.56.4", - "metro-cache": "^0.56.4", - "metro-core": "^0.56.4", + "metro": "0.58.0", + "metro-cache": "0.58.0", + "metro-core": "0.58.0", "pretty-format": "^24.7.0" } }, "metro-core": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.56.4.tgz", - "integrity": "sha512-hMzkBdgPt5Zm9nr/1KtIT+A6H7TNiLVCEGG5OiAXj8gTRsA2yy7wAdQpwy0xbE+zi88t/pLOzXpd3ClG/YxyWg==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.58.0.tgz", + "integrity": "sha512-RzXUjGFmCLOyzUqcKDvr91AldGtIOxnzNZrWUIiG8uC3kerVLo0mQp4YH3+XVm6fMNiLMg6iER7HLqD+MbpUjQ==", "requires": { "jest-haste-map": "^24.7.1", "lodash.throttle": "^4.1.1", - "metro-resolver": "^0.56.4", + "metro-resolver": "0.58.0", "wordwrap": "^1.0.0" } }, "metro-inspector-proxy": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.56.4.tgz", - "integrity": "sha512-E1S3MO25mWKmcLn1UQuCDiS0hf9P2Fwq8sEAX5lBLoZbehepNH+4xJ3xXSY51JX4dozBrE8GGoKL4ll3II40LA==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.58.0.tgz", + "integrity": "sha512-oFqTyNTJdCdvcw1Ha6SKE7ITbSaoTbO4xpYownIoJR+WZ0ZfxbWpp225JkHuBJm9UcBAnG9c0CME924m3uBbaw==", "requires": { "connect": "^3.6.5", "debug": "^2.2.0", "rxjs": "^5.4.3", "ws": "^1.1.5", - "yargs": "^9.0.0" + "yargs": "^14.2.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, "debug": { @@ -17848,68 +17661,25 @@ "ms": "2.0.0" } }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.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" - } + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "^1.0.0" - } + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "rxjs": { "version": "5.5.12", @@ -17919,12 +17689,14 @@ "symbol-observable": "1.0.1" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "ansi-regex": "^2.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "symbol-observable": { @@ -17932,6 +17704,16 @@ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, "ws": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", @@ -17941,53 +17723,47 @@ "ultron": "1.0.x" } }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", + "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" } }, "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", + "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, "metro-minify-uglify": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.56.4.tgz", - "integrity": "sha512-BHgj7+BKEK2pHvWHUR730bIrsZwl8DPtr49x9L0j2grPZ5/UROWXzEr8VZgIss7fl64t845uu1HXNNyuSj2EhA==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.58.0.tgz", + "integrity": "sha512-vRHsA7bCi7eCn3LXLm20EfY2NoWDyYOnmWaq/N8LB0OxL2L5DXRqMYAQK+prWGJ5S1yvVnDuuNVP+peQ9851TA==", "requires": { "uglify-es": "^3.1.9" } }, "metro-react-native-babel-preset": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.58.0.tgz", - "integrity": "sha512-MRriNW+fF6jxABsgPphocUY6mIhmCm8idcrQZ58fT3Iti2vCdtkaK32TyCGUNUptzhUe2/cbE57j4aC+eaodAA==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.59.0.tgz", + "integrity": "sha512-BoO6ncPfceIDReIH8pQ5tQptcGo5yRWQXJGVXfANbiKLq4tfgdZB1C1e2rMUJ6iypmeJU9dzl+EhPmIFKtgREg==", "dev": true, "requires": { "@babel/plugin-proposal-class-properties": "^7.0.0", @@ -17999,6 +17775,8 @@ "@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-block-scoping": "^7.0.0", "@babel/plugin-transform-classes": "^7.0.0", @@ -18014,6 +17792,7 @@ "@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", @@ -18028,21 +17807,21 @@ } }, "metro-react-native-babel-transformer": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.56.4.tgz", - "integrity": "sha512-ng74eutuy1nyGI9+TDzzVAVfEmNPDlapV4msTQMKPi4EFqo/fBn7Ct33ME9l5E51pQBBnxt/UwcpTvd13b29kQ==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.58.0.tgz", + "integrity": "sha512-3A73+cRq1eUPQ8g+hPNGgMUMCGmtQjwqHfoG1DwinAoJ/kr4WOXWWbGZo0xHJNBe/zdHGl0uHcDCp2knPglTdQ==", "requires": { "@babel/core": "^7.0.0", - "babel-preset-fbjs": "^3.1.2", - "metro-babel-transformer": "^0.56.4", - "metro-react-native-babel-preset": "^0.56.4", - "metro-source-map": "^0.56.4" + "babel-preset-fbjs": "^3.3.0", + "metro-babel-transformer": "0.58.0", + "metro-react-native-babel-preset": "0.58.0", + "metro-source-map": "0.58.0" }, "dependencies": { "metro-react-native-babel-preset": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.4.tgz", - "integrity": "sha512-CzbBDM9Rh6w8s1fq+ZqihAh7DDqUAcfo9pPww25+N/eJ7UK436Q7JdfxwdIPpBwLFn6o6MyYn+uwL9OEWBJarA==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.58.0.tgz", + "integrity": "sha512-MRriNW+fF6jxABsgPphocUY6mIhmCm8idcrQZ58fT3Iti2vCdtkaK32TyCGUNUptzhUe2/cbE57j4aC+eaodAA==", "requires": { "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", @@ -18075,7 +17854,7 @@ "@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.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" @@ -18084,34 +17863,34 @@ } }, "metro-resolver": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.56.4.tgz", - "integrity": "sha512-Ug4ulVfpkKZ1Wu7mdYj9XLGuOqZTuWCqEhyx3siKTc/2eBwKZQXmiNo5d/IxWNvmwL/87Abeb724I6CMzMfjiQ==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.58.0.tgz", + "integrity": "sha512-XFbAKvCHN2iWqKeiRARzEXn69eTDdJVJC7lu16S4dPQJ+Dy82dZBr5Es12iN+NmbJuFgrAuIHbpWrdnA9tOf6Q==", "requires": { "absolute-path": "^0.0.0" } }, "metro-source-map": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.56.4.tgz", - "integrity": "sha512-f1P9/rpFmG3Z0Jatiw2zvLItx1TwR7mXTSDj4qLDCWeVMB3kEXAr3R0ucumTW8c6HfpJljeRBWzYFXF33fd81g==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.58.0.tgz", + "integrity": "sha512-yvN1YPmejmgiiS7T1aKBiiUTHPw2Vcm3r2TZ+DY92z/9PR4alysIywrCs/fTHs8rbDcKM5VfPCKGLpkBrbKeOw==", "requires": { "@babel/traverse": "^7.0.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "^0.56.4", - "ob1": "^0.56.4", + "metro-symbolicate": "0.58.0", + "ob1": "0.58.0", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "metro-symbolicate": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.56.4.tgz", - "integrity": "sha512-8mCNNn6zV5FFKCIcRgI7736Xl+owgvYuy8qanPxZN36f7utiWRYeB+PirEBPcglBk4qQvoy2lT6oPULNXZQbbQ==", + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.58.0.tgz", + "integrity": "sha512-uIVxUQC1E26qOMj13dKROhwAa2FmZk5eR0NcBqej/aXmQhpr8LjJg2sondkoLKUp827Tf/Fm9+pS4icb5XiqCw==", "requires": { "invariant": "^2.2.4", - "metro-source-map": "^0.56.4", + "metro-source-map": "0.58.0", "source-map": "^0.5.6", "through2": "^2.0.1", "vlq": "^1.0.0" @@ -18265,38 +18044,6 @@ "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==", "dev": true }, - "morgan": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", - "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", - "requires": { - "basic-auth": "~2.0.1", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-finished": "~2.3.0", - "on-headers": "~1.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -18405,21 +18152,32 @@ "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" }, "node-notifier": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", - "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz", + "integrity": "sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==", + "dev": true, + "optional": true, "requires": { "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", + "is-wsl": "^2.1.1", + "semver": "^6.3.0", "shellwords": "^0.1.1", - "which": "^1.3.0" + "which": "^1.3.1" }, "dependencies": { + "is-wsl": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", + "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", + "dev": true, + "optional": true + }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "optional": true } } }, @@ -18433,9 +18191,9 @@ } }, "node-releases": { - "version": "1.1.51", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.51.tgz", - "integrity": "sha512-1eQEs6HFYY1kMXQPOLzCf7HdjReErmvn85tZESMczdCNVWP3Y7URYLBAyYynuI7yef1zj4HN5q+oB2x67QU0lw==", + "version": "1.1.52", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz", + "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==", "dev": true, "requires": { "semver": "^6.3.0" @@ -18449,10 +18207,16 @@ } } }, + "node-stream-zip": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.9.1.tgz", + "integrity": "sha512-7/Xs9gkuYF0WBimz5OrSc6UVKLDTxvBG2yLGtEK8PSx94d86o/6iQLvIe/140ATz35JDqHKWIxh3GcA3u5hB0w==" + }, "normalize-package-data": { "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==", + "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -18463,7 +18227,8 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, @@ -18856,9 +18621,9 @@ "dev": true }, "ob1": { - "version": "0.56.4", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.56.4.tgz", - "integrity": "sha512-URgFof9z2wotiYFsqlydXtQfGV81gvBI2ODy64xfd3vPo+AYom5PVDX4t4zn23t/O+S2IxqApSQM8uJAybmz7w==" + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.58.0.tgz", + "integrity": "sha512-uZP44cbowAfHafP1k4skpWItk5iHCoRevMfrnUvYCfyNNPPJd3rfDCyj0exklWi2gDXvjlj2ObsfiqP/bs/J7Q==" }, "object-assign": { "version": "4.1.1", @@ -19385,21 +19150,6 @@ } } }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -19407,9 +19157,9 @@ "dev": true }, "picomatch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", - "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pify": { @@ -19727,29 +19477,12 @@ } }, "react-devtools-core": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.6.3.tgz", - "integrity": "sha512-+P+eFy/yo8Z/UH9J0DqHZuUM5+RI2wl249TNvMx3J2jpUomLQa4Zxl56GEotGfw3PIP1eI+hVf1s53FlUONStQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.6.0.tgz", + "integrity": "sha512-sjR3KC5VvGV7X6vzR3OTutPT5VeBcSKwoIXUwihpl1Nb4dkmweEbzCTPx2PYMVAqc+NZ5tPGhqBzXV+iGg5CNA==", "requires": { "shell-quote": "^1.6.1", - "ws": "^3.3.1" - }, - "dependencies": { - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - } + "ws": "^7" } }, "react-dom": { @@ -19765,9 +19498,9 @@ }, "dependencies": { "scheduler": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.0.tgz", - "integrity": "sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -19808,101 +19541,90 @@ } }, "react-native": { - "version": "0.61.5", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.61.5.tgz", - "integrity": "sha512-MXqE3NoGO0T3dUKIKkIppijBhRRMpfN6ANbhMXHDuyfA+fSilRWgCwYgR/YNCC7ntECoJYikKaNTUBB0DeQy6Q==", + "version": "0.62.2", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.62.2.tgz", + "integrity": "sha512-gADZZ3jcm2WFTjh8CCBCbl5wRSbdxqZGd+8UpNwLQFgrkp/uHorwAhLNqcd4+fHmADgPBltNL0uR1Vhv47zcOw==", "requires": { "@babel/runtime": "^7.0.0", - "@react-native-community/cli": "^3.0.0", - "@react-native-community/cli-platform-android": "^3.0.0", - "@react-native-community/cli-platform-ios": "^3.0.0", + "@react-native-community/cli": "^4.5.1", + "@react-native-community/cli-platform-android": "^4.5.1", + "@react-native-community/cli-platform-ios": "^4.5.0", "abort-controller": "^3.0.0", - "art": "^0.10.0", + "anser": "^1.4.9", "base64-js": "^1.1.2", "connect": "^3.6.5", "create-react-class": "^15.6.3", "escape-string-regexp": "^1.0.5", + "eslint-plugin-relay": "1.4.1", "event-target-shim": "^5.0.1", "fbjs": "^1.0.0", "fbjs-scripts": "^1.1.0", - "hermes-engine": "^0.2.1", + "hermes-engine": "~0.4.0", "invariant": "^2.2.4", "jsc-android": "^245459.0.0", - "metro-babel-register": "^0.56.0", - "metro-react-native-babel-transformer": "^0.56.0", - "metro-source-map": "^0.56.0", - "nullthrows": "^1.1.0", + "metro-babel-register": "0.58.0", + "metro-react-native-babel-transformer": "0.58.0", + "metro-source-map": "0.58.0", + "nullthrows": "^1.1.1", "pretty-format": "^24.7.0", "promise": "^7.1.1", "prop-types": "^15.7.2", - "react-devtools-core": "^3.6.3", + "react-devtools-core": "^4.0.6", "react-refresh": "^0.4.0", "regenerator-runtime": "^0.13.2", - "scheduler": "0.15.0", + "scheduler": "0.17.0", "stacktrace-parser": "^0.1.3", + "use-subscription": "^1.0.0", "whatwg-fetch": "^3.0.0" }, "dependencies": { "@jest/types": { - "version": "25.2.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", - "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.3.0.tgz", + "integrity": "sha512-UkaDNewdqXAmCDbN2GlUM6amDKS78eCqiw/UmF5nE0mmLTd6moJkiZJML/X52Ke3LH7Swhw883IRXq8o9nWjVw==", "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^1.1.1", "@types/yargs": "^15.0.0", "chalk": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "@react-native-community/cli": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-3.2.1.tgz", - "integrity": "sha512-bZ/bfZ+9r1gQSxp6t7+00DcpC6vmbVYSvzUCFM/yo5k8bhsDdcy8aocscIaXXVGG+v9Edri/Q7hH9ks7L18/Rg==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-4.6.3.tgz", + "integrity": "sha512-MqOvUyKfspzA/uUSQELouYDkS4hbqaCWG/Nc13/k+vwQnXjq2sJlVKZCrctV4IY33oKMr/S0LwyZiiiwhQ8GMg==", "requires": { "@hapi/joi": "^15.0.3", - "@react-native-community/cli-debugger-ui": "^3.0.0", - "@react-native-community/cli-tools": "^3.0.0", - "@react-native-community/cli-types": "^3.0.0", - "chalk": "^2.4.2", + "@react-native-community/cli-debugger-ui": "^4.6.3", + "@react-native-community/cli-tools": "^4.6.3", + "@react-native-community/cli-types": "^4.6.3", + "chalk": "^3.0.0", "command-exists": "^1.2.8", "commander": "^2.19.0", "compression": "^1.7.1", "connect": "^3.6.5", "cosmiconfig": "^5.1.0", "deepmerge": "^3.2.0", - "didyoumean": "^1.2.1", "envinfo": "^7.1.0", "errorhandler": "^1.5.0", "execa": "^1.0.0", "find-up": "^4.1.0", - "fs-extra": "^7.0.1", - "glob": "^7.1.1", + "fs-extra": "^8.1.0", + "glob": "^7.1.3", "graceful-fs": "^4.1.3", "inquirer": "^3.0.6", - "lodash": "^4.17.5", - "metro": "^0.56.0", - "metro-config": "^0.56.0", - "metro-core": "^0.56.0", - "metro-react-native-babel-transformer": "^0.56.0", + "leven": "^3.1.0", + "lodash": "^4.17.15", + "metro": "^0.58.0", + "metro-config": "^0.58.0", + "metro-core": "^0.58.0", + "metro-react-native-babel-transformer": "^0.58.0", "minimist": "^1.2.0", "mkdirp": "^0.5.1", - "morgan": "^1.9.0", - "node-notifier": "^5.2.1", + "node-stream-zip": "^1.9.1", "open": "^6.2.0", "ora": "^3.4.0", - "plist": "^3.0.0", - "pretty-format": "^25.1.0", + "pretty-format": "^25.2.0", "semver": "^6.3.0", "serve-static": "^1.13.1", "shell-quote": "1.6.1", @@ -19918,11 +19640,11 @@ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "pretty-format": { - "version": "25.2.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", - "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.3.0.tgz", + "integrity": "sha512-wToHwF8bkQknIcFkBqNfKu4+UZqnrLn/Vr+wwKQwwvPzkBfDDKp/qIabFqdgtoi5PEnM8LFByVsOrHoa3SpTVA==", "requires": { - "@jest/types": "^25.2.3", + "@jest/types": "^25.3.0", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" @@ -19947,6 +19669,15 @@ "color-convert": "^2.0.1" } }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "chardet": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", @@ -19989,6 +19720,16 @@ "path-exists": "^4.0.0" } }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -20015,6 +19756,42 @@ "through": "^2.3.6" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -20022,6 +19799,14 @@ "requires": { "ansi-regex": "^3.0.0" } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -20141,9 +19926,9 @@ "from": "github:mattermost/react-native-doc-viewer#c913e54ec8e4a60753bc7dd39256fa4be8229d19" }, "react-native-document-picker": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-3.3.0.tgz", - "integrity": "sha512-h/O8USFx1TWQT7Sx5Qj1OVpADabHawckVPDrEiGUf6qCJF2h5kKZs3ZuxZe7wHSZX4LgQE0agZqagQUK+HLIVQ==" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-3.3.2.tgz", + "integrity": "sha512-l/f7xtUG0EhW0lbACJZkAm4MSS0kuw62/wrJNAAdF+NmC7g7FN3FlhtiyFjhbt5qL7xgTrZOyxA/9+WuAmMkXA==" }, "react-native-elements": { "version": "1.2.7", @@ -20186,9 +19971,9 @@ "integrity": "sha512-DoAWGLeQ2hbllummrpXH9B38OgM0TFmNYCF34F90/hdHZirqUtYHzF4QDdb/NV7ebSijHmM3mpkzct8PXtcYyg==" }, "react-native-gesture-handler": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.6.0.tgz", - "integrity": "sha512-KulGCWKTxa6xBpPP4LWEPmmLqBqOe2jbtdlILOVF/dR4EgImiaBVrKdOHeRMyMzJOYAWxs5uDZsyA8hgSsm+lw==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.6.1.tgz", + "integrity": "sha512-gQgIKhDiYf754yzhhliagLuLupvGb6ZyBdzYzr7aus3Fyi87TLOw63ers+r4kGw0h26oAWTAdHd34JnF4NeL6Q==", "requires": { "@egjs/hammerjs": "^2.0.17", "hoist-non-react-statics": "^2.3.1", @@ -20260,9 +20045,9 @@ "integrity": "sha512-QBMQzz7wpS2DGjOn5kIppqiD26p+jOJaJ0Am4DG2PImcUGe9iub5mkamz02mlqjyhq+8EhUes533uLK98APtmw==" }, "react-native-navigation": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/react-native-navigation/-/react-native-navigation-6.3.0.tgz", - "integrity": "sha512-gpMANJEheFGaCHbicH18bueQp9xRsLTgUVcte9f1nR3XRttHyn0wwVVjKYlbE7KNHwuCfEZd1bdFZGMQFrSMvA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/react-native-navigation/-/react-native-navigation-6.4.0.tgz", + "integrity": "sha512-VOtmr5FDVWo0YzR+yV3M0BPe0YhJdIYiUBPrHzhKyV5vASb0hbMA32H8wsbX5NYgGjr4vhXcpPYdpXIAa9A9eA==", "requires": { "hoist-non-react-statics": "3.x.x", "lodash": "4.17.x", @@ -20287,9 +20072,9 @@ } }, "react-native-notifications": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/react-native-notifications/-/react-native-notifications-2.0.6.tgz", - "integrity": "sha512-NFx5ADlqfQYTFkKWvd/GxM8rxKf1lSWJZJY0jbydAOZAuhnKFR/CsH7Mpx6T+9pY5Z3rvu7UzBtVn9LTBx0jYg==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/react-native-notifications/-/react-native-notifications-2.1.7.tgz", + "integrity": "sha512-m9jfpobP1BpqG2w6pN2kKzKJt2bqrLIRS3QAuH0MU0dpRwib/4ehaAUKOiFj+xVCtuKHALpceb97FHuA0i4dkw==", "requires": { "core-js": "^1.0.0", "uuid": "^2.0.3" @@ -20410,9 +20195,9 @@ } }, "react-native-v8": { - "version": "0.61.5-patch.3", - "resolved": "https://registry.npmjs.org/react-native-v8/-/react-native-v8-0.61.5-patch.3.tgz", - "integrity": "sha512-1cCc/zRK9uZ6Z/++aLPBMf5h78B74+qMdyKlJRDG9uREtd6BiAPvtqkW2QN37SYAe4IjH23BfO85rnpBGrnfgA==", + "version": "0.62.2-patch.1", + "resolved": "https://registry.npmjs.org/react-native-v8/-/react-native-v8-0.62.2-patch.1.tgz", + "integrity": "sha512-y8mDz1Ep7NsmEW7olUJJEB4SqNMl2NZwzYJPNGhRnWJ4dWRQW0s+txqqzASZk8zwDeWhvSXHRb6YuMxHcaSvtQ==", "requires": { "v8-android": "~8.80.1" } @@ -20583,9 +20368,9 @@ }, "dependencies": { "scheduler": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.0.tgz", - "integrity": "sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -20607,65 +20392,6 @@ "camelcase": "5.0.0" } }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - } - } - }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -20779,9 +20505,9 @@ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" }, "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", "requires": { "regenerate": "^1.4.0" } @@ -20792,9 +20518,9 @@ "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" }, "regenerator-transform": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.2.tgz", - "integrity": "sha512-V4+lGplCM/ikqi5/mkkpJ06e9Bujq1NFmNLvsCs56zg3ZbzrnUzAtizZ24TXxtRX/W2jcdScwQCnbL0CICTFkQ==", + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", + "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", "requires": { "@babel/runtime": "^7.8.4", "private": "^0.1.8" @@ -20876,16 +20602,16 @@ "dev": true }, "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "unicode-match-property-value-ecmascript": "^1.2.0" } }, "regjsgen": { @@ -20894,9 +20620,9 @@ "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==" }, "regjsparser": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.3.tgz", - "integrity": "sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", "requires": { "jsesc": "~0.5.0" }, @@ -21249,9 +20975,9 @@ } }, "scheduler": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz", - "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.17.0.tgz", + "integrity": "sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -21408,7 +21134,9 @@ "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "optional": true }, "side-channel": { "version": "1.0.2", @@ -21771,6 +21499,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -21779,12 +21508,14 @@ "spdx-exceptions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -21793,7 +21524,8 @@ "spdx-license-ids": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true }, "split-on-first": { "version": "1.1.0", @@ -22107,7 +21839,8 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true }, "strip-eof": { "version": "1.0.0", @@ -22601,14 +22334,14 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" }, "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" }, "union-value": { "version": "1.0.1", @@ -22711,6 +22444,14 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, + "use-subscription": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.4.1.tgz", + "integrity": "sha512-7+IIwDG/4JICrWHL/Q/ZPK5yozEnvRm6vHImu0LKwQlmWGKeiF7mbAenLlK/cTNXrTtXHU/SFASQHzB6+oSJMQ==", + "requires": { + "object-assign": "^4.1.1" + } + }, "util": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/util/-/util-0.12.2.tgz", @@ -22760,9 +22501,9 @@ "dev": true }, "v8-to-istanbul": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.2.tgz", - "integrity": "sha512-G9R+Hpw0ITAmPSr47lSlc5A1uekSYzXxTMlFxso2xoffwo4jQnzbv1p9yXIinO8UMZKfAFewaCHwWvnH4Jb4Ug==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz", + "integrity": "sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -22782,6 +22523,7 @@ "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==", + "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -23126,7 +22868,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/ws/-/ws-7.1.0.tgz", "integrity": "sha512-Swie2C4fs7CkwlHu1glMePLYJJsWjzhl1vm3ZaLplD0h7OMkZyZ6kLTB/OagiU923bZrPFXuDTeEqaEN4NWG4g==", - "dev": true, "requires": { "async-limiter": "^1.0.0" } diff --git a/package.json b/package.json index 2cb3cd563..a5012b813 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,11 @@ "license": "Apache 2.0", "private": true, "dependencies": { - "@babel/runtime": "7.8.7", + "@babel/runtime": "7.9.2", "@react-native-community/async-storage": "1.8.1", - "@react-native-community/cameraroll": "1.4.1", + "@react-native-community/cameraroll": "1.5.2", "@react-native-community/netinfo": "4.4.0", - "@sentry/react-native": "1.3.3", + "@sentry/react-native": "1.3.6", "analytics-react-native": "1.2.0", "commonmark": "github:mattermost/commonmark.js#f6ab98dede6ce4b4e7adea140ac77249bfb2d6ce", "commonmark-react-renderer": "github:mattermost/commonmark-react-renderer#3a2ac19cab725ad28b170fdc1d397dddedcf87eb", @@ -20,7 +20,7 @@ "deepmerge": "4.2.2", "emoji-regex": "8.0.0", "form-data": "3.0.0", - "fuse.js": "3.6.1", + "fuse.js": "5.0.10-beta", "intl": "1.2.5", "jail-monkey": "2.3.2", "mime-db": "1.43.0", @@ -28,7 +28,7 @@ "prop-types": "15.7.2", "react": "16.13.0", "react-intl": "2.8.0", - "react-native": "0.61.5", + "react-native": "0.62.2", "react-native-android-open-settings": "1.3.0", "react-native-animatable": "1.3.3", "react-native-button": "2.4.0", @@ -37,11 +37,11 @@ "react-native-cookies": "github:mattermost/react-native-cookies#b35bafc388ae09c83bd875e887daf6a0755e0b40", "react-native-device-info": "github:mattermost/react-native-device-info#f7175f10822d8f66b9806206e3313eaf2f4aabc6", "react-native-doc-viewer": "github:mattermost/react-native-doc-viewer#c913e54ec8e4a60753bc7dd39256fa4be8229d19", - "react-native-document-picker": "3.3.0", + "react-native-document-picker": "3.3.2", "react-native-elements": "1.2.7", "react-native-exception-handler": "2.10.8", "react-native-fast-image": "8.1.5", - "react-native-gesture-handler": "1.6.0", + "react-native-gesture-handler": "1.6.1", "react-native-haptic-feedback": "1.9.0", "react-native-hw-keyboard-event": "0.0.4", "react-native-image-gallery": "github:mattermost/react-native-image-gallery#c1a9f7118e90cc87d47620bc0584c9cac4b0cf38", @@ -52,8 +52,8 @@ "react-native-linear-gradient": "2.5.6", "react-native-local-auth": "1.6.0", "react-native-mmkv-storage": "0.2.2", - "react-native-navigation": "6.3.0", - "react-native-notifications": "2.0.6", + "react-native-navigation": "6.4.0", + "react-native-notifications": "2.1.7", "react-native-passcode-status": "1.1.2", "react-native-permissions": "2.0.10", "react-native-safe-area": "0.5.1", @@ -61,7 +61,7 @@ "react-native-slider": "0.11.0", "react-native-status-bar-size": "0.3.3", "react-native-svg": "12.0.3", - "react-native-v8": "0.61.5-patch.3", + "react-native-v8": "0.62.2-patch.1", "react-native-vector-icons": "6.6.0", "react-native-video": "5.0.2", "react-native-webview": "github:mattermost/react-native-webview#b5e22940a613869d3999feac9451ee65352f4fbe", @@ -87,23 +87,23 @@ }, "devDependencies": { "@babel/cli": "7.8.4", - "@babel/core": "7.8.7", - "@babel/plugin-transform-runtime": "7.8.3", - "@babel/preset-env": "7.8.7", - "@babel/register": "7.8.6", + "@babel/core": "7.9.0", + "@babel/plugin-transform-runtime": "7.9.0", + "@babel/preset-env": "7.9.0", + "@babel/register": "7.9.0", "@testing-library/react-native": "5.0.3", "@types/enzyme": "3.10.5", "@types/enzyme-adapter-react-16": "1.0.6", "@types/jest": "25.1.4", "@types/moment-timezone": "0.5.13", - "@types/react": "16.9.23", - "@types/react-native": "0.61.23", + "@types/react": "16.9.27", + "@types/react-native": "0.62.0", "@types/react-test-renderer": "16.9.2", "@types/shallow-equals": "1.0.0", "@typescript-eslint/eslint-plugin": "2.25.0", "@typescript-eslint/parser": "2.25.0", "babel-eslint": "10.1.0", - "babel-jest": "25.1.0", + "babel-jest": "25.2.3", "babel-plugin-module-resolver": "4.0.0", "babel-plugin-transform-remove-console": "6.9.4", "deep-freeze": "0.0.1", @@ -118,12 +118,12 @@ "harmony-reflect": "1.6.1", "isomorphic-fetch": "2.2.1", "husky": "4.2.3", - "jest": "25.1.0", - "jest-cli": "25.1.0", + "jest": "25.2.3", + "jest-cli": "25.2.3", "jest-enzyme": "7.1.2", "jetifier": "1.6.5", "jsdom-global": "3.0.2", - "metro-react-native-babel-preset": "0.58.0", + "metro-react-native-babel-preset": "0.59.0", "mmjstool": "github:mattermost/mattermost-utilities#086f4ffdca4e31a0be22f6bcdfa093ed83fb29e", "mock-async-storage": "2.2.0", "mock-socket": "9.0.3", diff --git a/packager/moduleNames.js b/packager/moduleNames.js index 277d28d06..325ab147e 100644 --- a/packager/moduleNames.js +++ b/packager/moduleNames.js @@ -19,6 +19,7 @@ module.exports = [ 'app/constants/list.js', 'app/constants/navigation.js', 'app/constants/post_textbox.js', + 'app/constants/types.js', 'app/constants/view.js', 'app/constants/websocket.ts', 'app/i18n/index.js', @@ -196,6 +197,7 @@ module.exports = [ 'dist/assets/config.json', 'dist/assets/i18n/en.json', 'index.js', + 'node_modules/@babel/runtime/helpers/arrayLikeToArray.js', 'node_modules/@babel/runtime/helpers/arrayWithHoles.js', 'node_modules/@babel/runtime/helpers/arrayWithoutHoles.js', 'node_modules/@babel/runtime/helpers/assertThisInitialized.js', @@ -210,6 +212,7 @@ module.exports = [ 'node_modules/@babel/runtime/helpers/interopRequireDefault.js', 'node_modules/@babel/runtime/helpers/interopRequireWildcard.js', 'node_modules/@babel/runtime/helpers/isNativeFunction.js', + 'node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js', 'node_modules/@babel/runtime/helpers/iterableToArray.js', 'node_modules/@babel/runtime/helpers/iterableToArrayLimit.js', 'node_modules/@babel/runtime/helpers/nonIterableRest.js', @@ -222,6 +225,7 @@ module.exports = [ 'node_modules/@babel/runtime/helpers/superPropBase.js', 'node_modules/@babel/runtime/helpers/toConsumableArray.js', 'node_modules/@babel/runtime/helpers/typeof.js', + 'node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js', 'node_modules/@babel/runtime/helpers/wrapNativeSuper.js', 'node_modules/@babel/runtime/regenerator/index.js', 'node_modules/@react-native-community/async-storage/lib/AsyncStorage.js', @@ -236,17 +240,18 @@ module.exports = [ 'node_modules/@react-native-community/netinfo/src/internal/state.ts', 'node_modules/@react-native-community/netinfo/src/internal/types.ts', 'node_modules/@react-native-community/netinfo/src/internal/utils.ts', + 'node_modules/anser/lib/index.js', 'node_modules/base-64/base64.js', 'node_modules/base64-js/index.js', 'node_modules/buffer/index.js', 'node_modules/clone/clone.js', + 'node_modules/color-convert/conversions.js', + 'node_modules/color-convert/index.js', + 'node_modules/color-convert/route.js', + 'node_modules/color-name/index.js', + 'node_modules/color-string/index.js', + 'node_modules/color/index.js', 'node_modules/component-emitter/index.js', - 'node_modules/create-react-class/factory.js', - 'node_modules/create-react-class/index.js', - 'node_modules/create-react-class/node_modules/fbjs/lib/emptyFunction.js', - 'node_modules/create-react-class/node_modules/fbjs/lib/emptyObject.js', - 'node_modules/create-react-class/node_modules/fbjs/lib/invariant.js', - 'node_modules/create-react-class/node_modules/fbjs/lib/warning.js', 'node_modules/deepmerge/dist/cjs.js', 'node_modules/event-target-shim/dist/event-target-shim.js', 'node_modules/eventemitter3/index.js', @@ -360,9 +365,12 @@ module.exports = [ 'node_modules/lodash/_baseMatchesProperty.js', 'node_modules/lodash/_baseMerge.js', 'node_modules/lodash/_baseMergeDeep.js', + 'node_modules/lodash/_basePick.js', + 'node_modules/lodash/_basePickBy.js', 'node_modules/lodash/_baseProperty.js', 'node_modules/lodash/_basePropertyDeep.js', 'node_modules/lodash/_baseRest.js', + 'node_modules/lodash/_baseSet.js', 'node_modules/lodash/_baseSetToString.js', 'node_modules/lodash/_baseSlice.js', 'node_modules/lodash/_baseTimes.js', @@ -388,10 +396,12 @@ module.exports = [ 'node_modules/lodash/_createBaseEach.js', 'node_modules/lodash/_createBaseFor.js', 'node_modules/lodash/_createSet.js', + 'node_modules/lodash/_customOmitClone.js', 'node_modules/lodash/_defineProperty.js', 'node_modules/lodash/_equalArrays.js', 'node_modules/lodash/_equalByTag.js', 'node_modules/lodash/_equalObjects.js', + 'node_modules/lodash/_flatRest.js', 'node_modules/lodash/_freeGlobal.js', 'node_modules/lodash/_getAllKeys.js', 'node_modules/lodash/_getAllKeysIn.js', @@ -464,6 +474,7 @@ module.exports = [ 'node_modules/lodash/difference.js', 'node_modules/lodash/endsWith.js', 'node_modules/lodash/eq.js', + 'node_modules/lodash/flatten.js', 'node_modules/lodash/forEach.js', 'node_modules/lodash/get.js', 'node_modules/lodash/hasIn.js', @@ -494,9 +505,12 @@ module.exports = [ 'node_modules/lodash/memoize.js', 'node_modules/lodash/merge.js', 'node_modules/lodash/noop.js', + 'node_modules/lodash/omit.js', + 'node_modules/lodash/pick.js', 'node_modules/lodash/property.js', 'node_modules/lodash/stubArray.js', 'node_modules/lodash/stubFalse.js', + 'node_modules/lodash/times.js', 'node_modules/lodash/toFinite.js', 'node_modules/lodash/toInteger.js', 'node_modules/lodash/toNumber.js', @@ -506,8 +520,6 @@ module.exports = [ 'node_modules/lodash/uniqueId.js', 'node_modules/lodash/unset.js', 'node_modules/metro/src/lib/bundle-modules/HMRClient.js', - 'node_modules/metro/src/lib/bundle-modules/WebSocketHMRClient.js', - 'node_modules/metro/src/lib/bundle-modules/injectUpdate.js', 'node_modules/moment-timezone/data/packed/latest.json', 'node_modules/moment-timezone/index.js', 'node_modules/moment-timezone/moment-timezone.js', @@ -628,7 +640,6 @@ module.exports = [ 'node_modules/react-native/Libraries/Blob/NativeBlobModule.js', 'node_modules/react-native/Libraries/BugReporting/BugReporting.js', 'node_modules/react-native/Libraries/BugReporting/NativeBugReporting.js', - 'node_modules/react-native/Libraries/Color/normalizeColor.js', 'node_modules/react-native/Libraries/Components/AppleTV/NativeTVNavigationEventEmitter.js', 'node_modules/react-native/Libraries/Components/AppleTV/TVEventHandler.js', 'node_modules/react-native/Libraries/Components/Keyboard/Keyboard.js', @@ -638,20 +649,29 @@ module.exports = [ 'node_modules/react-native/Libraries/Components/RefreshControl/RefreshControl.js', 'node_modules/react-native/Libraries/Components/SafeAreaView/SafeAreaView.js', 'node_modules/react-native/Libraries/Components/ScrollResponder.js', + 'node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js', + 'node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js', + 'node_modules/react-native/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js', 'node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js', + 'node_modules/react-native/Libraries/Components/ScrollView/ScrollViewCommands.js', + 'node_modules/react-native/Libraries/Components/ScrollView/ScrollViewNativeComponent.js', 'node_modules/react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader.js', + 'node_modules/react-native/Libraries/Components/ScrollView/ScrollViewViewConfig.js', 'node_modules/react-native/Libraries/Components/ScrollView/processDecelerationRate.js', + 'node_modules/react-native/Libraries/Components/Sound/NativeSoundManager.js', + 'node_modules/react-native/Libraries/Components/Sound/SoundManager.js', + 'node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js', + 'node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js', + 'node_modules/react-native/Libraries/Components/StatusBar/StatusBar.js', 'node_modules/react-native/Libraries/Components/TextInput/TextInputState.js', 'node_modules/react-native/Libraries/Components/Touchable/BoundingDimensions.js', 'node_modules/react-native/Libraries/Components/Touchable/PooledClass.js', 'node_modules/react-native/Libraries/Components/Touchable/Position.js', 'node_modules/react-native/Libraries/Components/Touchable/Touchable.js', 'node_modules/react-native/Libraries/Components/Touchable/TouchableHighlight.js', - 'node_modules/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.android.js', + 'node_modules/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js', 'node_modules/react-native/Libraries/Components/Touchable/TouchableOpacity.js', 'node_modules/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js', - 'node_modules/react-native/Libraries/Components/Touchable/ensurePositiveDelayProps.js', - 'node_modules/react-native/Libraries/Components/View/PlatformViewPropTypes.android.js', 'node_modules/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js', 'node_modules/react-native/Libraries/Components/View/ReactNativeViewAttributes.js', 'node_modules/react-native/Libraries/Components/View/ReactNativeViewViewConfig.js', @@ -673,7 +693,6 @@ module.exports = [ 'node_modules/react-native/Libraries/Core/setUpErrorHandling.js', 'node_modules/react-native/Libraries/Core/setUpGlobals.js', 'node_modules/react-native/Libraries/Core/setUpNavigator.js', - 'node_modules/react-native/Libraries/Core/setUpReactRefresh.js', 'node_modules/react-native/Libraries/Core/setUpRegeneratorRuntime.js', 'node_modules/react-native/Libraries/Core/setUpSegmentFetcher.js', 'node_modules/react-native/Libraries/Core/setUpSystrace.js', @@ -695,11 +714,13 @@ module.exports = [ 'node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js', 'node_modules/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js', 'node_modules/react-native/Libraries/EventEmitter/RCTEventEmitter.js', + 'node_modules/react-native/Libraries/EventEmitter/RCTNativeAppEventEmitter.js', 'node_modules/react-native/Libraries/Image/AssetRegistry.js', 'node_modules/react-native/Libraries/Image/AssetSourceResolver.js', 'node_modules/react-native/Libraries/Image/Image.android.js', 'node_modules/react-native/Libraries/Image/ImageBackground.js', 'node_modules/react-native/Libraries/Image/ImageViewNativeComponent.js', + 'node_modules/react-native/Libraries/Image/NativeImageLoaderAndroid.js', 'node_modules/react-native/Libraries/Image/TextInlineImageNativeComponent.js', 'node_modules/react-native/Libraries/Image/assetPathUtils.js', 'node_modules/react-native/Libraries/Image/resolveAssetSource.js', @@ -721,7 +742,6 @@ module.exports = [ 'node_modules/react-native/Libraries/Lists/VirtualizedList.js', 'node_modules/react-native/Libraries/NativeModules/specs/NativeDevSettings.js', 'node_modules/react-native/Libraries/NativeModules/specs/NativeDeviceEventManager.js', - 'node_modules/react-native/Libraries/NativeModules/specs/NativeRedBox.js', 'node_modules/react-native/Libraries/NativeModules/specs/NativeSourceCode.js', 'node_modules/react-native/Libraries/Network/FormData.js', 'node_modules/react-native/Libraries/Network/NativeNetworkingAndroid.js', @@ -729,6 +749,9 @@ module.exports = [ 'node_modules/react-native/Libraries/Network/XMLHttpRequest.js', 'node_modules/react-native/Libraries/Network/convertRequestBody.js', 'node_modules/react-native/Libraries/Performance/Systrace.js', + 'node_modules/react-native/Libraries/Pressability/HoverState.js', + 'node_modules/react-native/Libraries/Pressability/Pressability.js', + 'node_modules/react-native/Libraries/Pressability/PressabilityDebug.js', 'node_modules/react-native/Libraries/Promise.js', 'node_modules/react-native/Libraries/ReactNative/AppContainer.js', 'node_modules/react-native/Libraries/ReactNative/AppRegistry.js', @@ -738,7 +761,6 @@ module.exports = [ 'node_modules/react-native/Libraries/ReactNative/NativeI18nManager.js', 'node_modules/react-native/Libraries/ReactNative/NativeUIManager.js', 'node_modules/react-native/Libraries/ReactNative/PaperUIManager.js', - 'node_modules/react-native/Libraries/ReactNative/ReactFabricIndicator.js', 'node_modules/react-native/Libraries/ReactNative/RootTagContext.js', 'node_modules/react-native/Libraries/ReactNative/UIManager.js', 'node_modules/react-native/Libraries/ReactNative/UIManagerProperties.js', @@ -755,6 +777,7 @@ module.exports = [ 'node_modules/react-native/Libraries/StyleSheet/StyleSheet.js', 'node_modules/react-native/Libraries/StyleSheet/StyleSheetValidation.js', 'node_modules/react-native/Libraries/StyleSheet/flattenStyle.js', + 'node_modules/react-native/Libraries/StyleSheet/normalizeColor.js', 'node_modules/react-native/Libraries/StyleSheet/processColor.js', 'node_modules/react-native/Libraries/StyleSheet/processColorArray.js', 'node_modules/react-native/Libraries/StyleSheet/processTransform.js', @@ -777,6 +800,7 @@ module.exports = [ 'node_modules/react-native/Libraries/Utilities/RCTLog.js', 'node_modules/react-native/Libraries/Utilities/SceneTracker.js', 'node_modules/react-native/Libraries/Utilities/binaryToBase64.js', + 'node_modules/react-native/Libraries/Utilities/codegenNativeCommands.js', 'node_modules/react-native/Libraries/Utilities/codegenNativeComponent.js', 'node_modules/react-native/Libraries/Utilities/createPerformanceLogger.js', 'node_modules/react-native/Libraries/Utilities/defineLazyObjectProperty.js', @@ -790,21 +814,19 @@ module.exports = [ 'node_modules/react-native/Libraries/Utilities/infoLog.js', 'node_modules/react-native/Libraries/Utilities/logError.js', 'node_modules/react-native/Libraries/Utilities/registerGeneratedViewConfig.js', + 'node_modules/react-native/Libraries/Utilities/setAndForwardRef.js', 'node_modules/react-native/Libraries/Utilities/stringifySafe.js', 'node_modules/react-native/Libraries/Utilities/verifyComponentAttributeEquivalence.js', 'node_modules/react-native/Libraries/Utilities/warnOnce.js', 'node_modules/react-native/Libraries/WebSocket/NativeWebSocketModule.js', 'node_modules/react-native/Libraries/WebSocket/WebSocket.js', 'node_modules/react-native/Libraries/WebSocket/WebSocketEvent.js', - 'node_modules/react-native/Libraries/react-native/react-native-implementation.js', 'node_modules/react-native/Libraries/vendor/core/ErrorUtils.js', - 'node_modules/react-native/Libraries/vendor/core/merge.js', - 'node_modules/react-native/Libraries/vendor/core/mergeHelpers.js', - 'node_modules/react-native/Libraries/vendor/core/mergeInto.js', 'node_modules/react-native/Libraries/vendor/emitter/EmitterSubscription.js', 'node_modules/react-native/Libraries/vendor/emitter/EventEmitter.js', 'node_modules/react-native/Libraries/vendor/emitter/EventSubscription.js', 'node_modules/react-native/Libraries/vendor/emitter/EventSubscriptionVendor.js', + 'node_modules/react-native/index.js', 'node_modules/react-redux/lib/components/Context.js', 'node_modules/react-redux/lib/components/Provider.js', 'node_modules/react-redux/lib/components/connectAdvanced.js', @@ -911,6 +933,7 @@ module.exports = [ 'node_modules/semver/ranges/valid.js', 'node_modules/serialize-error/index.js', 'node_modules/shallow-equals/index.js', + 'node_modules/simple-swizzle/index.js', 'node_modules/stacktrace-parser/dist/stack-trace-parser.cjs.js', 'node_modules/symbol-observable/lib/index.js', 'node_modules/symbol-observable/lib/ponyfill.js', diff --git a/packager/modulePaths.js b/packager/modulePaths.js index 554863609..7500e46ac 100644 --- a/packager/modulePaths.js +++ b/packager/modulePaths.js @@ -18,6 +18,7 @@ module.exports = [ './node_modules/app/constants/list.js', './node_modules/app/constants/navigation.js', './node_modules/app/constants/post_textbox.js', + './node_modules/app/constants/types.js', './node_modules/app/constants/view.js', './node_modules/app/constants/websocket.ts', './node_modules/app/i18n/index.js', @@ -193,6 +194,7 @@ module.exports = [ './node_modules/app/utils/time_tracker.js', './node_modules/app/utils/timezone.js', './node_modules/index.js', + './node_modules/node_modules/@babel/runtime/helpers/arrayLikeToArray.js', './node_modules/node_modules/@babel/runtime/helpers/arrayWithHoles.js', './node_modules/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js', './node_modules/node_modules/@babel/runtime/helpers/assertThisInitialized.js', @@ -207,6 +209,7 @@ module.exports = [ './node_modules/node_modules/@babel/runtime/helpers/interopRequireDefault.js', './node_modules/node_modules/@babel/runtime/helpers/interopRequireWildcard.js', './node_modules/node_modules/@babel/runtime/helpers/isNativeFunction.js', + './node_modules/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js', './node_modules/node_modules/@babel/runtime/helpers/iterableToArray.js', './node_modules/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js', './node_modules/node_modules/@babel/runtime/helpers/nonIterableRest.js', @@ -219,6 +222,7 @@ module.exports = [ './node_modules/node_modules/@babel/runtime/helpers/superPropBase.js', './node_modules/node_modules/@babel/runtime/helpers/toConsumableArray.js', './node_modules/node_modules/@babel/runtime/helpers/typeof.js', + './node_modules/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js', './node_modules/node_modules/@babel/runtime/helpers/wrapNativeSuper.js', './node_modules/node_modules/@babel/runtime/regenerator/index.js', './node_modules/node_modules/@react-native-community/async-storage/lib/AsyncStorage.js', @@ -237,13 +241,13 @@ module.exports = [ './node_modules/node_modules/base64-js/index.js', './node_modules/node_modules/buffer/index.js', './node_modules/node_modules/clone/clone.js', + './node_modules/node_modules/color-convert/conversions.js', + './node_modules/node_modules/color-convert/index.js', + './node_modules/node_modules/color-convert/route.js', + './node_modules/node_modules/color-name/index.js', + './node_modules/node_modules/color-string/index.js', + './node_modules/node_modules/color/index.js', './node_modules/node_modules/component-emitter/index.js', - './node_modules/node_modules/create-react-class/factory.js', - './node_modules/node_modules/create-react-class/index.js', - './node_modules/node_modules/create-react-class/node_modules/fbjs/lib/emptyFunction.js', - './node_modules/node_modules/create-react-class/node_modules/fbjs/lib/emptyObject.js', - './node_modules/node_modules/create-react-class/node_modules/fbjs/lib/invariant.js', - './node_modules/node_modules/create-react-class/node_modules/fbjs/lib/warning.js', './node_modules/node_modules/deepmerge/dist/cjs.js', './node_modules/node_modules/event-target-shim/dist/event-target-shim.js', './node_modules/node_modules/eventemitter3/index.js', @@ -357,9 +361,12 @@ module.exports = [ './node_modules/node_modules/lodash/_baseMatchesProperty.js', './node_modules/node_modules/lodash/_baseMerge.js', './node_modules/node_modules/lodash/_baseMergeDeep.js', + './node_modules/node_modules/lodash/_basePick.js', + './node_modules/node_modules/lodash/_basePickBy.js', './node_modules/node_modules/lodash/_baseProperty.js', './node_modules/node_modules/lodash/_basePropertyDeep.js', './node_modules/node_modules/lodash/_baseRest.js', + './node_modules/node_modules/lodash/_baseSet.js', './node_modules/node_modules/lodash/_baseSetToString.js', './node_modules/node_modules/lodash/_baseSlice.js', './node_modules/node_modules/lodash/_baseTimes.js', @@ -385,10 +392,12 @@ module.exports = [ './node_modules/node_modules/lodash/_createBaseEach.js', './node_modules/node_modules/lodash/_createBaseFor.js', './node_modules/node_modules/lodash/_createSet.js', + './node_modules/node_modules/lodash/_customOmitClone.js', './node_modules/node_modules/lodash/_defineProperty.js', './node_modules/node_modules/lodash/_equalArrays.js', './node_modules/node_modules/lodash/_equalByTag.js', './node_modules/node_modules/lodash/_equalObjects.js', + './node_modules/node_modules/lodash/_flatRest.js', './node_modules/node_modules/lodash/_freeGlobal.js', './node_modules/node_modules/lodash/_getAllKeys.js', './node_modules/node_modules/lodash/_getAllKeysIn.js', @@ -461,6 +470,7 @@ module.exports = [ './node_modules/node_modules/lodash/difference.js', './node_modules/node_modules/lodash/endsWith.js', './node_modules/node_modules/lodash/eq.js', + './node_modules/node_modules/lodash/flatten.js', './node_modules/node_modules/lodash/forEach.js', './node_modules/node_modules/lodash/get.js', './node_modules/node_modules/lodash/hasIn.js', @@ -491,9 +501,12 @@ module.exports = [ './node_modules/node_modules/lodash/memoize.js', './node_modules/node_modules/lodash/merge.js', './node_modules/node_modules/lodash/noop.js', + './node_modules/node_modules/lodash/omit.js', + './node_modules/node_modules/lodash/pick.js', './node_modules/node_modules/lodash/property.js', './node_modules/node_modules/lodash/stubArray.js', './node_modules/node_modules/lodash/stubFalse.js', + './node_modules/node_modules/lodash/times.js', './node_modules/node_modules/lodash/toFinite.js', './node_modules/node_modules/lodash/toInteger.js', './node_modules/node_modules/lodash/toNumber.js', @@ -503,8 +516,6 @@ module.exports = [ './node_modules/node_modules/lodash/uniqueId.js', './node_modules/node_modules/lodash/unset.js', './node_modules/node_modules/metro/src/lib/bundle-modules/HMRClient.js', - './node_modules/node_modules/metro/src/lib/bundle-modules/WebSocketHMRClient.js', - './node_modules/node_modules/metro/src/lib/bundle-modules/injectUpdate.js', './node_modules/node_modules/moment-timezone/index.js', './node_modules/node_modules/moment-timezone/moment-timezone.js', './node_modules/node_modules/moment/moment.js', @@ -624,7 +635,6 @@ module.exports = [ './node_modules/node_modules/react-native/Libraries/Blob/NativeBlobModule.js', './node_modules/node_modules/react-native/Libraries/BugReporting/BugReporting.js', './node_modules/node_modules/react-native/Libraries/BugReporting/NativeBugReporting.js', - './node_modules/node_modules/react-native/Libraries/Color/normalizeColor.js', './node_modules/node_modules/react-native/Libraries/Components/AppleTV/NativeTVNavigationEventEmitter.js', './node_modules/node_modules/react-native/Libraries/Components/AppleTV/TVEventHandler.js', './node_modules/node_modules/react-native/Libraries/Components/Keyboard/Keyboard.js', @@ -634,20 +644,29 @@ module.exports = [ './node_modules/node_modules/react-native/Libraries/Components/RefreshControl/RefreshControl.js', './node_modules/node_modules/react-native/Libraries/Components/SafeAreaView/SafeAreaView.js', './node_modules/node_modules/react-native/Libraries/Components/ScrollResponder.js', + './node_modules/node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js', + './node_modules/node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js', + './node_modules/node_modules/react-native/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js', './node_modules/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js', + './node_modules/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewCommands.js', + './node_modules/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewNativeComponent.js', './node_modules/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader.js', + './node_modules/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewViewConfig.js', './node_modules/node_modules/react-native/Libraries/Components/ScrollView/processDecelerationRate.js', + './node_modules/node_modules/react-native/Libraries/Components/Sound/NativeSoundManager.js', + './node_modules/node_modules/react-native/Libraries/Components/Sound/SoundManager.js', + './node_modules/node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js', + './node_modules/node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js', + './node_modules/node_modules/react-native/Libraries/Components/StatusBar/StatusBar.js', './node_modules/node_modules/react-native/Libraries/Components/TextInput/TextInputState.js', './node_modules/node_modules/react-native/Libraries/Components/Touchable/BoundingDimensions.js', './node_modules/node_modules/react-native/Libraries/Components/Touchable/PooledClass.js', './node_modules/node_modules/react-native/Libraries/Components/Touchable/Position.js', './node_modules/node_modules/react-native/Libraries/Components/Touchable/Touchable.js', './node_modules/node_modules/react-native/Libraries/Components/Touchable/TouchableHighlight.js', - './node_modules/node_modules/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.android.js', + './node_modules/node_modules/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js', './node_modules/node_modules/react-native/Libraries/Components/Touchable/TouchableOpacity.js', './node_modules/node_modules/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js', - './node_modules/node_modules/react-native/Libraries/Components/Touchable/ensurePositiveDelayProps.js', - './node_modules/node_modules/react-native/Libraries/Components/View/PlatformViewPropTypes.android.js', './node_modules/node_modules/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js', './node_modules/node_modules/react-native/Libraries/Components/View/ReactNativeViewAttributes.js', './node_modules/node_modules/react-native/Libraries/Components/View/ReactNativeViewViewConfig.js', @@ -669,7 +688,6 @@ module.exports = [ './node_modules/node_modules/react-native/Libraries/Core/setUpErrorHandling.js', './node_modules/node_modules/react-native/Libraries/Core/setUpGlobals.js', './node_modules/node_modules/react-native/Libraries/Core/setUpNavigator.js', - './node_modules/node_modules/react-native/Libraries/Core/setUpReactRefresh.js', './node_modules/node_modules/react-native/Libraries/Core/setUpRegeneratorRuntime.js', './node_modules/node_modules/react-native/Libraries/Core/setUpSegmentFetcher.js', './node_modules/node_modules/react-native/Libraries/Core/setUpSystrace.js', @@ -691,10 +709,13 @@ module.exports = [ './node_modules/node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js', './node_modules/node_modules/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js', './node_modules/node_modules/react-native/Libraries/EventEmitter/RCTEventEmitter.js', + './node_modules/node_modules/react-native/Libraries/EventEmitter/RCTNativeAppEventEmitter.js', './node_modules/node_modules/react-native/Libraries/Image/AssetRegistry.js', './node_modules/node_modules/react-native/Libraries/Image/AssetSourceResolver.js', './node_modules/node_modules/react-native/Libraries/Image/Image.android.js', + './node_modules/node_modules/react-native/Libraries/Image/ImageBackground.js', './node_modules/node_modules/react-native/Libraries/Image/ImageViewNativeComponent.js', + './node_modules/node_modules/react-native/Libraries/Image/NativeImageLoaderAndroid.js', './node_modules/node_modules/react-native/Libraries/Image/TextInlineImageNativeComponent.js', './node_modules/node_modules/react-native/Libraries/Image/assetPathUtils.js', './node_modules/node_modules/react-native/Libraries/Image/resolveAssetSource.js', @@ -716,7 +737,6 @@ module.exports = [ './node_modules/node_modules/react-native/Libraries/Lists/VirtualizedList.js', './node_modules/node_modules/react-native/Libraries/NativeModules/specs/NativeDevSettings.js', './node_modules/node_modules/react-native/Libraries/NativeModules/specs/NativeDeviceEventManager.js', - './node_modules/node_modules/react-native/Libraries/NativeModules/specs/NativeRedBox.js', './node_modules/node_modules/react-native/Libraries/NativeModules/specs/NativeSourceCode.js', './node_modules/node_modules/react-native/Libraries/Network/FormData.js', './node_modules/node_modules/react-native/Libraries/Network/NativeNetworkingAndroid.js', @@ -724,6 +744,9 @@ module.exports = [ './node_modules/node_modules/react-native/Libraries/Network/XMLHttpRequest.js', './node_modules/node_modules/react-native/Libraries/Network/convertRequestBody.js', './node_modules/node_modules/react-native/Libraries/Performance/Systrace.js', + './node_modules/node_modules/react-native/Libraries/Pressability/HoverState.js', + './node_modules/node_modules/react-native/Libraries/Pressability/Pressability.js', + './node_modules/node_modules/react-native/Libraries/Pressability/PressabilityDebug.js', './node_modules/node_modules/react-native/Libraries/Promise.js', './node_modules/node_modules/react-native/Libraries/ReactNative/AppContainer.js', './node_modules/node_modules/react-native/Libraries/ReactNative/AppRegistry.js', @@ -733,7 +756,6 @@ module.exports = [ './node_modules/node_modules/react-native/Libraries/ReactNative/NativeI18nManager.js', './node_modules/node_modules/react-native/Libraries/ReactNative/NativeUIManager.js', './node_modules/node_modules/react-native/Libraries/ReactNative/PaperUIManager.js', - './node_modules/node_modules/react-native/Libraries/ReactNative/ReactFabricIndicator.js', './node_modules/node_modules/react-native/Libraries/ReactNative/RootTagContext.js', './node_modules/node_modules/react-native/Libraries/ReactNative/UIManager.js', './node_modules/node_modules/react-native/Libraries/ReactNative/UIManagerProperties.js', @@ -749,6 +771,7 @@ module.exports = [ './node_modules/node_modules/react-native/Libraries/StyleSheet/StyleSheet.js', './node_modules/node_modules/react-native/Libraries/StyleSheet/StyleSheetValidation.js', './node_modules/node_modules/react-native/Libraries/StyleSheet/flattenStyle.js', + './node_modules/node_modules/react-native/Libraries/StyleSheet/normalizeColor.js', './node_modules/node_modules/react-native/Libraries/StyleSheet/processColor.js', './node_modules/node_modules/react-native/Libraries/StyleSheet/processColorArray.js', './node_modules/node_modules/react-native/Libraries/StyleSheet/processTransform.js', @@ -771,6 +794,7 @@ module.exports = [ './node_modules/node_modules/react-native/Libraries/Utilities/RCTLog.js', './node_modules/node_modules/react-native/Libraries/Utilities/SceneTracker.js', './node_modules/node_modules/react-native/Libraries/Utilities/binaryToBase64.js', + './node_modules/node_modules/react-native/Libraries/Utilities/codegenNativeCommands.js', './node_modules/node_modules/react-native/Libraries/Utilities/codegenNativeComponent.js', './node_modules/node_modules/react-native/Libraries/Utilities/createPerformanceLogger.js', './node_modules/node_modules/react-native/Libraries/Utilities/defineLazyObjectProperty.js', @@ -784,21 +808,19 @@ module.exports = [ './node_modules/node_modules/react-native/Libraries/Utilities/infoLog.js', './node_modules/node_modules/react-native/Libraries/Utilities/logError.js', './node_modules/node_modules/react-native/Libraries/Utilities/registerGeneratedViewConfig.js', + './node_modules/node_modules/react-native/Libraries/Utilities/setAndForwardRef.js', './node_modules/node_modules/react-native/Libraries/Utilities/stringifySafe.js', './node_modules/node_modules/react-native/Libraries/Utilities/verifyComponentAttributeEquivalence.js', './node_modules/node_modules/react-native/Libraries/Utilities/warnOnce.js', './node_modules/node_modules/react-native/Libraries/WebSocket/NativeWebSocketModule.js', './node_modules/node_modules/react-native/Libraries/WebSocket/WebSocket.js', './node_modules/node_modules/react-native/Libraries/WebSocket/WebSocketEvent.js', - './node_modules/node_modules/react-native/Libraries/react-native/react-native-implementation.js', './node_modules/node_modules/react-native/Libraries/vendor/core/ErrorUtils.js', - './node_modules/node_modules/react-native/Libraries/vendor/core/merge.js', - './node_modules/node_modules/react-native/Libraries/vendor/core/mergeHelpers.js', - './node_modules/node_modules/react-native/Libraries/vendor/core/mergeInto.js', './node_modules/node_modules/react-native/Libraries/vendor/emitter/EmitterSubscription.js', './node_modules/node_modules/react-native/Libraries/vendor/emitter/EventEmitter.js', './node_modules/node_modules/react-native/Libraries/vendor/emitter/EventSubscription.js', './node_modules/node_modules/react-native/Libraries/vendor/emitter/EventSubscriptionVendor.js', + './node_modules/node_modules/react-native/index.js', './node_modules/node_modules/react-redux/lib/components/Context.js', './node_modules/node_modules/react-redux/lib/components/Provider.js', './node_modules/node_modules/react-redux/lib/components/connectAdvanced.js', @@ -905,6 +927,7 @@ module.exports = [ './node_modules/node_modules/semver/ranges/valid.js', './node_modules/node_modules/serialize-error/index.js', './node_modules/node_modules/shallow-equals/index.js', + './node_modules/node_modules/simple-swizzle/index.js', './node_modules/node_modules/stacktrace-parser/dist/stack-trace-parser.cjs.js', './node_modules/node_modules/symbol-observable/lib/index.js', './node_modules/node_modules/symbol-observable/lib/ponyfill.js', diff --git a/patches/react-native+0.61.5.patch b/patches/react-native+0.62.2.patch similarity index 58% rename from patches/react-native+0.61.5.patch rename to patches/react-native+0.62.2.patch index 85575f56f..25f8ec7a7 100644 --- a/patches/react-native+0.61.5.patch +++ b/patches/react-native+0.62.2.patch @@ -1,16 +1,50 @@ +diff --git a/node_modules/react-native/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js b/node_modules/react-native/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +index c14b13e..8ea534f 100644 +--- a/node_modules/react-native/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js ++++ b/node_modules/react-native/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +@@ -564,7 +564,7 @@ export const Commands: NativeCommands = codegenNativeCommands({ + }); + + const AndroidTextInputNativeComponent: HostComponent = requireNativeComponent( +- 'AndroidTextInput', ++ 'PasteableTextInputAndroid', + ); + + export default AndroidTextInputNativeComponent; +diff --git a/node_modules/react-native/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h b/node_modules/react-native/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +index bb1c8d2..a0ea89f 100644 +--- a/node_modules/react-native/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h ++++ b/node_modules/react-native/Libraries/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +@@ -2809,6 +2809,7 @@ namespace JS { + namespace NativeWebSocketModule { + struct SpecConnectOptions { + id _Nullable headers() const; ++ NSString *certificate() const; + + SpecConnectOptions(NSDictionary *const v) : _v(v) {} + private: +@@ -3870,3 +3871,8 @@ inline id _Nullable JS::NativeWebSocketModule::SpecConnectOptions::hea + id const p = _v[@"headers"]; + return p; + } ++inline NSString *JS::NativeWebSocketModule::SpecConnectOptions::certificate() const ++{ ++ id const p = _v[@"certificate"]; ++ return p; ++} diff --git a/node_modules/react-native/Libraries/Lists/VirtualizedList.js b/node_modules/react-native/Libraries/Lists/VirtualizedList.js -index 7dffc17..548e7bb 100644 +index 5ef712c..d6f9082 100644 --- a/node_modules/react-native/Libraries/Lists/VirtualizedList.js +++ b/node_modules/react-native/Libraries/Lists/VirtualizedList.js -@@ -8,6 +8,7 @@ - * @format - */ - 'use strict'; +@@ -20,6 +20,7 @@ const ScrollView = require('../Components/ScrollView/ScrollView'); + const StyleSheet = require('../StyleSheet/StyleSheet'); + const View = require('../Components/View/View'); + const ViewabilityHelper = require('./ViewabilityHelper'); +const Platform = require('../Utilities/Platform'); - const Batchinator = require('../Interaction/Batchinator'); - const FillRateHelper = require('./FillRateHelper'); -@@ -1965,7 +1966,7 @@ class VirtualizedCellWrapper extends React.Component<{ + const flattenStyle = require('../StyleSheet/flattenStyle'); + const infoLog = require('../Utilities/infoLog'); +@@ -2100,7 +2101,7 @@ class VirtualizedCellWrapper extends React.Component<{ const styles = StyleSheet.create({ verticallyInverted: { @@ -20,7 +54,7 @@ index 7dffc17..548e7bb 100644 horizontallyInverted: { transform: [{scaleX: -1}], diff --git a/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.h b/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.h -index 1b17cff..9efa98e 100644 +index 1b17cff..70a59b6 100644 --- a/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.h +++ b/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.h @@ -54,13 +54,14 @@ extern NSString *const RCTSRHTTPResponseErrorKey; @@ -39,20 +73,21 @@ index 1b17cff..9efa98e 100644 - (instancetype)initWithURLRequest:(NSURLRequest *)request; // Some helper constructors. -@@ -88,6 +89,8 @@ extern NSString *const RCTSRHTTPResponseErrorKey; +@@ -88,6 +89,9 @@ extern NSString *const RCTSRHTTPResponseErrorKey; // Send Data (can be nil) in a ping message. - (void)sendPing:(NSData *)data; +// Get the certificate identity from the keyChain by name +- (SecIdentityRef) GetIdentityByName:(NSString *)name; ++ @end #pragma mark - RCTSRWebSocketDelegate diff --git a/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.m b/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.m -index a134d2e..e1d9988 100644 +index b967c14..e24e926 100644 --- a/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.m +++ b/node_modules/react-native/Libraries/WebSocket/RCTSRWebSocket.m -@@ -231,7 +231,7 @@ @implementation RCTSRWebSocket +@@ -228,7 +228,7 @@ @implementation RCTSRWebSocket RCTSRIOConsumerPool *_consumerPool; } @@ -61,7 +96,7 @@ index a134d2e..e1d9988 100644 { RCTAssertParam(request); -@@ -241,6 +241,10 @@ - (instancetype)initWithURLRequest:(NSURLRequest *)request protocols:(NSArray *)protoc + - (instancetype)initWithURL:(NSURL *)URL +@@ -274,7 +278,7 @@ - (instancetype)initWithURL:(NSURL *)URL protocols:(NSArray *)protoc NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:components.URL]; [request setAllHTTPHeaderFields:[NSHTTPCookie requestHeaderFieldsWithCookies:cookies]]; } @@ -89,8 +124,8 @@ index a134d2e..e1d9988 100644 + return [self initWithURLRequest:request protocols:protocols certificate:self.certificate]; } - - (void)_RCTSR_commonInit; -@@ -347,6 +351,36 @@ - (void)setReadyState:(RCTSRReadyState)aReadyState; + - (void)_RCTSR_commonInit +@@ -344,6 +348,37 @@ - (void)setReadyState:(RCTSRReadyState)aReadyState #endif @@ -124,49 +159,37 @@ index a134d2e..e1d9988 100644 + return nil; +} + - - (void)open; ++ + - (void)open { assert(_url); -@@ -518,6 +552,24 @@ - (void)_initializeStreams; +@@ -515,6 +550,24 @@ - (void)_initializeStreams RCTLogInfo(@"SocketRocket: In debug mode. Allowing connection to any root cert"); #endif + if (_certificate) { -+ SecIdentityRef identity = [self GetIdentityByName:_certificate]; -+ if (identity != nil) { -+ SecCertificateRef certificate = NULL; -+ OSStatus status = SecIdentityCopyCertificate(identity, &certificate); -+ if (!status) { -+ NSArray *myCerts = [[NSArray alloc] initWithObjects:(__bridge id)identity, (__bridge id)certificate, nil]; ++ SecIdentityRef identity = [self GetIdentityByName:_certificate]; ++ if (identity != nil) { ++ SecCertificateRef certificate = NULL; ++ OSStatus status = SecIdentityCopyCertificate(identity, &certificate); ++ if (!status) { ++ NSArray *myCerts = [[NSArray alloc] initWithObjects:(__bridge id)identity, (__bridge id)certificate, nil]; + -+ [SSLOptions setObject:[NSNumber numberWithBool:NO] forKey:(NSString *)kCFStreamSSLValidatesCertificateChain]; -+ [SSLOptions setObject:[NSString stringWithFormat:@"%@:%d", host, port] forKey:(NSString *)kCFStreamSSLPeerName]; -+ [SSLOptions setObject:(NSString *)kCFStreamSocketSecurityLevelNegotiatedSSL forKey:(NSString*)kCFStreamSSLLevel]; -+ [SSLOptions setObject:(NSString *)kCFStreamSocketSecurityLevelNegotiatedSSL forKey:(NSString*)kCFStreamPropertySocketSecurityLevel]; -+ [SSLOptions setObject:myCerts forKey:(NSString *)kCFStreamSSLCertificates]; -+ [SSLOptions setObject:[NSNumber numberWithBool:NO] forKey:(NSString *)kCFStreamSSLIsServer]; -+ } ++ [SSLOptions setObject:[NSNumber numberWithBool:NO] forKey:(NSString *)kCFStreamSSLValidatesCertificateChain]; ++ [SSLOptions setObject:[NSString stringWithFormat:@"%@:%d", host, port] forKey:(NSString *)kCFStreamSSLPeerName]; ++ [SSLOptions setObject:(NSString *)kCFStreamSocketSecurityLevelNegotiatedSSL forKey:(NSString*)kCFStreamSSLLevel]; ++ [SSLOptions setObject:(NSString *)kCFStreamSocketSecurityLevelNegotiatedSSL forKey:(NSString*)kCFStreamPropertySocketSecurityLevel]; ++ [SSLOptions setObject:myCerts forKey:(NSString *)kCFStreamSSLCertificates]; ++ [SSLOptions setObject:[NSNumber numberWithBool:NO] forKey:(NSString *)kCFStreamSSLIsServer]; + } ++ } + } + [_outputStream setProperty:SSLOptions forKey:(__bridge id)kCFStreamPropertySSLSettings]; } -diff --git a/node_modules/react-native/Libraries/WebSocket/RCTWebSocketModule.m b/node_modules/react-native/Libraries/WebSocket/RCTWebSocketModule.m -index d9387c4..93481be 100644 ---- a/node_modules/react-native/Libraries/WebSocket/RCTWebSocketModule.m -+++ b/node_modules/react-native/Libraries/WebSocket/RCTWebSocketModule.m -@@ -81,7 +81,7 @@ - (void)invalidate - [request addValue:[RCTConvert NSString:value] forHTTPHeaderField:key]; - }]; - -- RCTSRWebSocket *webSocket = [[RCTSRWebSocket alloc] initWithURLRequest:request protocols:protocols]; -+ RCTSRWebSocket *webSocket = [[RCTSRWebSocket alloc] initWithURLRequest:request protocols:protocols certificate:options[@"certificate"]]; - [webSocket setDelegateDispatchQueue:_methodQueue]; - webSocket.delegate = self; - webSocket.reactTag = socketID; diff --git a/node_modules/react-native/Libraries/WebSocket/WebSocket.js b/node_modules/react-native/Libraries/WebSocket/WebSocket.js -index 35f0757..a0205fc 100644 +index a1679bd..9445e3e 100644 --- a/node_modules/react-native/Libraries/WebSocket/WebSocket.js +++ b/node_modules/react-native/Libraries/WebSocket/WebSocket.js @@ -92,7 +92,7 @@ class WebSocket extends (EventTarget(...WEBSOCKET_EVENTS): any) { @@ -187,63 +210,24 @@ index 35f0757..a0205fc 100644 } get binaryType(): ?BinaryType { -diff --git a/node_modules/react-native/React/Views/ScrollView/RCTScrollView.h b/node_modules/react-native/React/Views/ScrollView/RCTScrollView.h -index 55b5e3a..04f45a2 100644 ---- a/node_modules/react-native/React/Views/ScrollView/RCTScrollView.h -+++ b/node_modules/react-native/React/Views/ScrollView/RCTScrollView.h -@@ -51,6 +51,7 @@ - @property (nonatomic, assign) BOOL snapToStart; - @property (nonatomic, assign) BOOL snapToEnd; - @property (nonatomic, copy) NSString *snapToAlignment; -+@property (nonatomic, assign) BOOL inverted; - - // NOTE: currently these event props are only declared so we can export the - // event names to JS - we don't call the blocks directly because scroll events -diff --git a/node_modules/react-native/React/Views/ScrollView/RCTScrollView.m b/node_modules/react-native/React/Views/ScrollView/RCTScrollView.m -index b028f02..93812f8 100644 ---- a/node_modules/react-native/React/Views/ScrollView/RCTScrollView.m -+++ b/node_modules/react-native/React/Views/ScrollView/RCTScrollView.m -@@ -953,6 +953,10 @@ - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView - return NO; - } +diff --git a/node_modules/react-native/React/CoreModules/RCTWebSocketModule.mm b/node_modules/react-native/React/CoreModules/RCTWebSocketModule.mm +index 06734d3..6d1d5ed 100644 +--- a/node_modules/react-native/React/CoreModules/RCTWebSocketModule.mm ++++ b/node_modules/react-native/React/CoreModules/RCTWebSocketModule.mm +@@ -88,7 +88,7 @@ - (void)invalidate + }]; } -+ if(self.inverted) { -+ [self scrollToEnd:YES]; -+ return NO; -+ } - return YES; - } -diff --git a/node_modules/react-native/React/Views/ScrollView/RCTScrollViewManager.m b/node_modules/react-native/React/Views/ScrollView/RCTScrollViewManager.m -index bed6d84..2721fb0 100644 ---- a/node_modules/react-native/React/Views/ScrollView/RCTScrollViewManager.m -+++ b/node_modules/react-native/React/Views/ScrollView/RCTScrollViewManager.m -@@ -97,6 +97,7 @@ - (UIView *)view - RCT_EXPORT_VIEW_PROPERTY(onScrollEndDrag, RCTDirectEventBlock) - RCT_EXPORT_VIEW_PROPERTY(onMomentumScrollBegin, RCTDirectEventBlock) - RCT_EXPORT_VIEW_PROPERTY(onMomentumScrollEnd, RCTDirectEventBlock) -+RCT_EXPORT_VIEW_PROPERTY(inverted, BOOL) - RCT_EXPORT_VIEW_PROPERTY(DEPRECATED_sendUpdatedChildFrames, BOOL) - #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000 /* __IPHONE_11_0 */ - RCT_EXPORT_VIEW_PROPERTY(contentInsetAdjustmentBehavior, UIScrollViewContentInsetAdjustmentBehavior) -diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java -index ef2ae93..2795802 100644 ---- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java -+++ b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java -@@ -92,7 +92,7 @@ public class AndroidInfoModule extends ReactContextBaseJavaModule implements Tur - - private Boolean isRunningScreenshotTest() { - try { -- Class.forName("android.support.test.rule.ActivityTestRule"); -+ Class.forName("androidx.test.rule.ActivityTestRule"); - return true; - } catch (ClassNotFoundException ignored) { - return false; +- RCTSRWebSocket *webSocket = [[RCTSRWebSocket alloc] initWithURLRequest:request protocols:protocols]; ++ RCTSRWebSocket *webSocket = [[RCTSRWebSocket alloc] initWithURLRequest:request protocols:protocols certificate:options.certificate()]; + [webSocket setDelegateDispatchQueue:[self methodQueue]]; + webSocket.delegate = self; + webSocket.reactTag = @(socketID); diff --git a/node_modules/react-native/react.gradle b/node_modules/react-native/react.gradle -index 14f0746..054f652 100644 +index d886a9b..8febb59 100644 --- a/node_modules/react-native/react.gradle +++ b/node_modules/react-native/react.gradle -@@ -116,7 +116,7 @@ afterEvaluate { +@@ -143,7 +143,7 @@ afterEvaluate { // Set up dev mode def devEnabled = !(config."devDisabledIn${targetName}" @@ -252,7 +236,7 @@ index 14f0746..054f652 100644 def extraArgs = extraPackagerArgs; -@@ -141,7 +141,7 @@ afterEvaluate { +@@ -163,7 +163,7 @@ afterEvaluate { def hermesFlags; def hbcTempFile = file("${jsBundleFile}.hbc") exec { @@ -261,7 +245,7 @@ index 14f0746..054f652 100644 // Can't use ?: since that will also substitute valid empty lists hermesFlags = config.hermesFlagsRelease if (hermesFlags == null) hermesFlags = ["-O", "-output-source-map"] -@@ -180,7 +180,7 @@ afterEvaluate { +@@ -207,7 +207,7 @@ afterEvaluate { ? config."bundleIn${targetName}" : config."bundleIn${variant.buildType.name.capitalize()}" != null ? config."bundleIn${variant.buildType.name.capitalize()}" @@ -270,7 +254,7 @@ index 14f0746..054f652 100644 } // Expose a minimal interface on the application variant and the task itself: -@@ -272,7 +272,7 @@ afterEvaluate { +@@ -299,7 +299,7 @@ afterEvaluate { // This should really be done by packaging all Hermes releated libs into // two separate HermesDebug and HermesRelease AARs, but until then we'll // kludge it by deleting the .so files out of the /transforms/ directory. diff --git a/patches/react-native-navigation+6.3.0.patch b/patches/react-native-navigation+6.4.0.patch similarity index 76% rename from patches/react-native-navigation+6.3.0.patch rename to patches/react-native-navigation+6.4.0.patch index e33fe81d2..45d54ff1c 100644 --- a/patches/react-native-navigation+6.3.0.patch +++ b/patches/react-native-navigation+6.4.0.patch @@ -29,18 +29,6 @@ index 260ed81..52b53d8 100644 } }); } -diff --git a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/modal/ModalStack.java b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/modal/ModalStack.java -index f60119e..4c46e8c 100644 ---- a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/modal/ModalStack.java -+++ b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/modal/ModalStack.java -@@ -84,6 +84,7 @@ public class ModalStack { - - public void dismissAllModals(ViewController root, Options mergeOptions, CommandListener listener) { - if (modals.isEmpty()) { -+ listener.onSuccess(""); - return; - } - String topModalId = peek().getId(); diff --git a/node_modules/react-native-navigation/lib/ios/RNNCommandsHandler.m b/node_modules/react-native-navigation/lib/ios/RNNCommandsHandler.m index ae8be52..8a8dec5 100644 --- a/node_modules/react-native-navigation/lib/ios/RNNCommandsHandler.m diff --git a/patches/react-native-notifications+2.0.6.patch b/patches/react-native-notifications+2.1.7.patch similarity index 91% rename from patches/react-native-notifications+2.0.6.patch rename to patches/react-native-notifications+2.1.7.patch index 5cb2d26d9..d3b21d0f7 100644 --- a/patches/react-native-notifications+2.0.6.patch +++ b/patches/react-native-notifications+2.1.7.patch @@ -1,23 +1,20 @@ diff --git a/node_modules/react-native-notifications/android/app/src/main/AndroidManifest.xml b/node_modules/react-native-notifications/android/app/src/main/AndroidManifest.xml -index ffef75f..feabe20 100644 +index 7053040..2a97b04 100644 --- a/node_modules/react-native-notifications/android/app/src/main/AndroidManifest.xml +++ b/node_modules/react-native-notifications/android/app/src/main/AndroidManifest.xml -@@ -31,7 +31,10 @@ +@@ -29,6 +29,7 @@ -+ -+ - diff --git a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java -index 8fb5f01..d3a1e7a 100644 +index 7b47aed..200cca8 100644 --- a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java +++ b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/RNNotificationsModule.java -@@ -103,12 +103,26 @@ public class RNNotificationsModule extends ReactContextBaseJavaModule implements +@@ -99,12 +99,26 @@ public class RNNotificationsModule extends ReactContextBaseJavaModule implements pushNotification.onPostRequest(notificationId); } @@ -42,9 +39,9 @@ index 8fb5f01..d3a1e7a 100644 + } + @ReactMethod - public void isRegisteredForRemoteNotifications(Promise promise) { - boolean hasPermission = NotificationManagerCompat.from(getReactApplicationContext()).areNotificationsEnabled(); -@@ -119,6 +133,6 @@ public class RNNotificationsModule extends ReactContextBaseJavaModule implements + public void cancelDeliveredNotification(String tag, int notificationId) { + IPushNotificationsDrawer notificationsDrawer = PushNotificationsDrawer.get(getReactApplicationContext().getApplicationContext()); +@@ -126,6 +140,6 @@ public class RNNotificationsModule extends ReactContextBaseJavaModule implements final Context appContext = getReactApplicationContext().getApplicationContext(); final Intent tokenFetchIntent = new Intent(appContext, FcmInstanceIdRefreshHandlerService.class); tokenFetchIntent.putExtra(extraFlag, true); @@ -175,7 +172,7 @@ index 0d70024..47b962e 100644 PushNotificationProps asProps(); } diff --git a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java -index 5e4e3d2..ec37f87 100644 +index 524ff07..a9f28e0 100644 --- a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java +++ b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java @@ -1,5 +1,6 @@ @@ -185,7 +182,7 @@ index 5e4e3d2..ec37f87 100644 import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; -@@ -20,18 +21,20 @@ import com.wix.reactnativenotifications.core.InitialNotificationHolder; +@@ -20,7 +21,9 @@ import com.wix.reactnativenotifications.core.InitialNotificationHolder; import com.wix.reactnativenotifications.core.JsIOHelper; import com.wix.reactnativenotifications.core.NotificationIntentAdapter; import com.wix.reactnativenotifications.core.ProxyService; @@ -195,15 +192,12 @@ index 5e4e3d2..ec37f87 100644 import static com.wix.reactnativenotifications.Defs.NOTIFICATION_OPENED_EVENT_NAME; import static com.wix.reactnativenotifications.Defs.NOTIFICATION_RECEIVED_EVENT_NAME; import static com.wix.reactnativenotifications.Defs.NOTIFICATION_RECEIVED_FOREGROUND_EVENT_NAME; - - public class PushNotification implements IPushNotification { - -+ protected PushNotificationProps mNotificationProps; - final protected Context mContext; +@@ -31,7 +34,7 @@ public class PushNotification implements IPushNotification { final protected AppLifecycleFacade mAppLifecycleFacade; final protected AppLaunchHelper mAppLaunchHelper; final protected JsIOHelper mJsIOHelper; - final protected PushNotificationProps mNotificationProps; ++ protected PushNotificationProps mNotificationProps; final protected AppVisibilityListener mAppVisibilityListener = new AppVisibilityListener() { @Override public void onAppVisible() { @@ -249,7 +243,7 @@ index 5e4e3d2..ec37f87 100644 @Override public PushNotificationProps asProps() { return mNotificationProps.copy(); -@@ -140,11 +178,12 @@ public class PushNotification implements IPushNotification { +@@ -140,7 +178,9 @@ public class PushNotification implements IPushNotification { } protected Notification buildNotification(PendingIntent intent) { @@ -260,13 +254,9 @@ index 5e4e3d2..ec37f87 100644 } protected Notification.Builder getNotificationBuilder(PendingIntent intent) { -- - String CHANNEL_ID = "channel_01"; - String CHANNEL_NAME = "Channel Name"; - diff --git a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotificationPublisher.java b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotificationPublisher.java new file mode 100644 -index 0000000..5b64593 +index 0000000..58ff887 --- /dev/null +++ b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotificationPublisher.java @@ -0,0 +1,27 @@ @@ -297,19 +287,18 @@ index 0000000..5b64593 + pushNotification.onPostScheduledRequest(notificationId); + } +} -\ No newline at end of file diff --git a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/IPushNotificationsDrawer.java b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/IPushNotificationsDrawer.java -index 3be3dc1..7027958 100644 +index e22cd62..48aa1cd 100644 --- a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/IPushNotificationsDrawer.java +++ b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/IPushNotificationsDrawer.java -@@ -9,4 +9,5 @@ public interface IPushNotificationsDrawer { - - void onNotificationOpened(); +@@ -11,4 +11,5 @@ public interface IPushNotificationsDrawer { void onNotificationClearRequest(int id); + void onNotificationClearRequest(String tag, int id); + void onAllNotificationsClearRequest(); + void onCancelAllLocalNotifications(); } diff --git a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/PushNotificationsDrawer.java b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/PushNotificationsDrawer.java -index 7b320e1..d95535b 100644 +index dea6958..2c0f1c7 100644 --- a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/PushNotificationsDrawer.java +++ b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notificationdrawer/PushNotificationsDrawer.java @@ -2,10 +2,16 @@ package com.wix.reactnativenotifications.core.notificationdrawer; @@ -329,8 +318,8 @@ index 7b320e1..d95535b 100644 public class PushNotificationsDrawer implements IPushNotificationsDrawer { -@@ -60,8 +66,41 @@ public class PushNotificationsDrawer implements IPushNotificationsDrawer { - notificationManager.cancel(id); +@@ -72,8 +78,41 @@ public class PushNotificationsDrawer implements IPushNotificationsDrawer { + notificationManager.cancelAll(); } + @Override @@ -371,12 +360,12 @@ index 7b320e1..d95535b 100644 + notificationManager.cancel(Integer.parseInt(notificationId)); + } } -diff --git a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/gcm/FcmInstanceIdRefreshHandlerService.java b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/gcm/FcmInstanceIdRefreshHandlerService.java -index 8270ad6..3674814 100644 ---- a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/gcm/FcmInstanceIdRefreshHandlerService.java -+++ b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/gcm/FcmInstanceIdRefreshHandlerService.java -@@ -1,19 +1,23 @@ - package com.wix.reactnativenotifications.gcm; +diff --git a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/fcm/FcmInstanceIdRefreshHandlerService.java b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/fcm/FcmInstanceIdRefreshHandlerService.java +index dd2cc9a..f1ef15a 100644 +--- a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/fcm/FcmInstanceIdRefreshHandlerService.java ++++ b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/fcm/FcmInstanceIdRefreshHandlerService.java +@@ -1,19 +1,22 @@ + package com.wix.reactnativenotifications.fcm; -import android.app.IntentService; +import android.support.annotation.NonNull; @@ -397,18 +386,17 @@ index 8270ad6..3674814 100644 + enqueueWork(context, FcmInstanceIdRefreshHandlerService.class, JOB_ID, work); } -+ @Override - protected void onHandleIntent(Intent intent) { + protected void onHandleWork(@NonNull Intent intent) { - IFcmToken gcmToken = FcmToken.get(this); - if (gcmToken == null) { + IFcmToken fcmToken = FcmToken.get(this); + if (fcmToken == null) { return; diff --git a/node_modules/react-native-notifications/lib/src/index.android.js b/node_modules/react-native-notifications/lib/src/index.android.js -index 51376bf..a5d9540 100644 +index ac2fe5c..18bee18 100644 --- a/node_modules/react-native-notifications/lib/src/index.android.js +++ b/node_modules/react-native-notifications/lib/src/index.android.js -@@ -67,9 +67,22 @@ export class NotificationsAndroid { +@@ -67,10 +67,23 @@ export class NotificationsAndroid { return id; } @@ -424,10 +412,11 @@ index 51376bf..a5d9540 100644 static cancelLocalNotification(id) { RNNotifications.cancelLocalNotification(id); } -+ + + static cancelAllLocalNotifications() { + RNNotifications.cancelAllLocalNotifications(); + } - } - - export class PendingNotifications { ++ + static cancelDeliveredNotification(tag, id) { + RNNotifications.cancelDeliveredNotification(tag, id); + } diff --git a/scripts/pre-commit.sh b/scripts/pre-commit.sh index bd4aa7013..e5987d720 100644 --- a/scripts/pre-commit.sh +++ b/scripts/pre-commit.sh @@ -10,7 +10,7 @@ if [ -n "$jsfiles" ]; then echo "Checking lint for:" for js in $jsfiles; do echo "$js" - e=$(node_modules/.bin/eslint --quiet $js) + e=$(node_modules/.bin/eslint --quiet --fix $js) if [[ -n "$e" ]]; then echo "$e" echo "ERROR: Check eslint hints." @@ -18,7 +18,12 @@ if [ -n "$jsfiles" ]; then fi done echo "Checking TypeScript" - npm run tsc + tsce=$(npm run tsc) + if [[-n "$tsce"]]; then + echo "$tsce" + echo "ERROR: Check TSC hints." + exit 1 # reject + fi fi exit 0 diff --git a/share_extension/android/extension_post/extension_post.js b/share_extension/android/extension_post/extension_post.js index 9252bb904..9caf85230 100644 --- a/share_extension/android/extension_post/extension_post.js +++ b/share_extension/android/extension_post/extension_post.js @@ -620,7 +620,7 @@ export default class ExtensionPost extends PureComponent { return this.renderErrorMessage(error); } - if (!teamId) { + if (!teamId && this.token) { const teamRequired = formatMessage({ id: 'mobile.extension.team_required', defaultMessage: 'You must belong to a team before you can share files.',