diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e75f1ca69b..e56c4fb7798 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,23 @@ +10.20.0-alpha.2 Release notes (2021-??-??) +============================================================= +NOTE: DO NOT USE THIS RELEASE IN PRODUCTION! +NOTE: This is an early (alpha) release with Hermes/JSI support: We expect crashes and bugs. + +### Enhancements +* None. + +### Fixed +* Hot reloading on Android no longer crash the app. + +### Compatibility +* MongoDB Realm Cloud. +* Realm Studio v11.0.0. +* APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series. +* File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms). + +### Internal +* Restructured C++ namespaces and files to reflect that we support JSI, not just Hermes. + 10.20.0-alpha.1 Release notes (2021-9-22) ============================================================= NOTE: DO NOT USE THIS RELEASE IN PRODUCTION! diff --git a/Dockerfile b/Dockerfile index 11e84aa105d..cda427e5f9f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,6 +29,6 @@ ENV LD_LIBRARY_PATH /opt/rh/httpd24/root/usr/lib64:/opt/rh/python27/root/usr/lib # Ensure a new enough version of CMake is available. RUN cd /opt \ - && curl -O -J https://cmake.org/files/v3.15/cmake-3.15.2-Linux-x86_64.tar.gz \ - && tar zxf cmake-3.15.2-Linux-x86_64.tar.gz -ENV PATH "/opt/cmake-3.15.2-Linux-x86_64/bin:$PATH" \ No newline at end of file + && curl -O -J https://cmake.org/files/v3.21/cmake-3.21.3-linux-x86_64.tar.gz \ + && tar zxf cmake-3.21.3-linux-x86_64.tar.gz +ENV PATH "/opt/cmake-3.21.3-linux-x86_64/bin/:$PATH" \ No newline at end of file diff --git a/Dockerfile.android b/Dockerfile.android index 27efd67de5c..1d95fe439bb 100644 --- a/Dockerfile.android +++ b/Dockerfile.android @@ -58,7 +58,7 @@ RUN echo 'Installing Android SDK' && \ "platform-tools" \ "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \ "platforms;android-26" \ - "cmake;3.10.2.4988404"\ + "cmake;3.18.1"\ "system-images;android-29;default;x86" && \ \ echo 'Installing Android NDK' && \ @@ -75,8 +75,8 @@ RUN mkdir -p $NVM_DIR \ && chmod a+rwX -R $NVM_DIR # Ensure a new enough version of CMake is available. -RUN mkdir -p /home/jenkins/cmake && \ - cd /home/jenkins/cmake && \ - curl -O -J https://cmake.org/files/v3.17/cmake-3.17.5-Linux-x86_64.tar.gz &&\ - tar zxf cmake-3.17.5-Linux-x86_64.tar.gz -ENV PATH "/home/jenkins/cmake/cmake-3.17.5-Linux-x86_64/bin:$PATH" \ No newline at end of file +RUN mkdir -p /home/jenkins/cmake \ + && cd /home/jenkins/cmake \ + && curl -O -J https://cmake.org/files/v3.21/cmake-3.21.3-linux-x86_64.tar.gz \ + && tar zxf cmake-3.21.3-linux-x86_64.tar.gz +ENV PATH "/home/jenkins/cmake/cmake-3.21.3-linux-x86_64/bin/:$PATH" diff --git a/Jenkinsfile b/Jenkinsfile index a34ae2d2112..fda51259617 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -256,6 +256,7 @@ def buildWindows(nodeVersion, arch) { def buildiOS() { return buildMacOS { + sh 'npm ci' sh './scripts/build-iOS.sh -c Release' dir('react-native/ios') { // Uncomment this when testing build changes if you want to be able to download pre-built artifacts from Jenkins. diff --git a/RealmJS.podspec b/RealmJS.podspec index 03cbb3e2cf2..96f9f15f70b 100644 --- a/RealmJS.podspec +++ b/RealmJS.podspec @@ -58,7 +58,7 @@ Pod::Spec.new do |s| 'HEADER_SEARCH_PATHS' => [ '"$(PODS_TARGET_SRCROOT)/react-native/ios/RealmReact/"', '"$(PODS_TARGET_SRCROOT)/src/"', - '"$(PODS_TARGET_SRCROOT)/src/hermes/"', + '"$(PODS_TARGET_SRCROOT)/src/jsi/"', '"$(PODS_ROOT)/Headers/Public/React-Core/"' #"'#{app_path}/ios/Pods/Headers/Public/React-Core'" # Use this line instead of 👆 while linting ].join(' ') diff --git a/integration-tests/environments/react-native/ios/RealmReactNativeTests.xcodeproj/project.pbxproj b/integration-tests/environments/react-native/ios/RealmReactNativeTests.xcodeproj/project.pbxproj index 317d444a7d1..6156e1e02e4 100644 --- a/integration-tests/environments/react-native/ios/RealmReactNativeTests.xcodeproj/project.pbxproj +++ b/integration-tests/environments/react-native/ios/RealmReactNativeTests.xcodeproj/project.pbxproj @@ -12,8 +12,9 @@ 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 3B8FAB7E5A5B93DA46B76C0E /* libPods-RealmReactNativeTests-RealmReactNativeTestsTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 89CF544B997845C9F64DE611 /* libPods-RealmReactNativeTests-RealmReactNativeTestsTests.a */; }; + 680A7E1CDDE42AF42D31E178 /* libPods-RealmReactNativeTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 94940631F74C922FA25416F2 /* libPods-RealmReactNativeTests.a */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; - F7BEFC8033C76CBEC124044B /* libPods-RealmReactNativeTests-RealmReactNativeTestsTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AA2A032A4CADCC321F5F8C8B /* libPods-RealmReactNativeTests-RealmReactNativeTestsTests.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -107,6 +108,18 @@ name = Frameworks; sourceTree = ""; }; + 593EEEBE2C9A1FF5FB7C532F /* Pods */ = { + isa = PBXGroup; + children = ( + AD65688DEA7C8A86B7E48D75 /* Pods-RealmReactNativeTests.debug.xcconfig */, + DC1D2F0AC1905A586449CDBA /* Pods-RealmReactNativeTests.release.xcconfig */, + FCB75108123041D5F45607F2 /* Pods-RealmReactNativeTests-RealmReactNativeTestsTests.debug.xcconfig */, + 2600807299414367FDAC3C3E /* Pods-RealmReactNativeTests-RealmReactNativeTestsTests.release.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( diff --git a/react-native/android/src/main/java/io/realm/react/RealmReactModule.java b/react-native/android/src/main/java/io/realm/react/RealmReactModule.java index 547c0a90298..02e4283cebd 100644 --- a/react-native/android/src/main/java/io/realm/react/RealmReactModule.java +++ b/react-native/android/src/main/java/io/realm/react/RealmReactModule.java @@ -69,12 +69,21 @@ public RealmReactModule(ReactApplicationContext reactContext) { setDefaultRealmFileDirectory(fileDir, assetManager); // Get the javascript runtime and install our native module with it + + // TODO: Update this to use reactContext.getRuntimeExecutor() instead (since this is calling a deprecated method underneath) + // Using the RuntimeExecutor however, requires that we link our native module against fbjni. + JavaScriptContextHolder jsContext = reactContext.getJavaScriptContextHolder(); synchronized(jsContext) { install(jsContext.get()); } } + @Override + public void invalidate() { + invalidateCaches(); + } + @Override public String getName() { return NAME; @@ -89,4 +98,6 @@ public Map getConstants() { private native void setDefaultRealmFileDirectory(String fileDir, AssetManager assets); private native void install(long runtimePointer); + + private native void invalidateCaches(); } diff --git a/react-native/ios/RealmReact/RealmReact.mm b/react-native/ios/RealmReact/RealmReact.mm index 198c09801b1..17a589fb6ad 100644 --- a/react-native/ios/RealmReact/RealmReact.mm +++ b/react-native/ios/RealmReact/RealmReact.mm @@ -19,7 +19,7 @@ #import "RealmReact.h" #import "RealmAnalytics.h" -#import +#import #import #import @@ -94,7 +94,7 @@ - (void)removeListenerForEvent:(NSString *)eventName handler:(RealmReactEventHan } - (void)invalidate { - realm_hermes_invalidate_caches(); + realm_jsi_invalidate_caches(); } - (void)dealloc { @@ -130,7 +130,7 @@ - (void)setBridge:(RCTBridge *)bridge { auto& rt = *static_cast(bridge.runtime); auto exports = jsi::Object(rt); - realm_hermes_init(rt, exports); + realm_jsi_init(rt, exports); } queue:RCTJSThread]; } } diff --git a/scripts/build-ios.sh b/scripts/build-ios.sh index ef639b08719..07526bc6f97 100755 --- a/scripts/build-ios.sh +++ b/scripts/build-ios.sh @@ -56,6 +56,7 @@ fi DESTINATIONS=() LIBRARIES=() BUILD_LIB_CMDS=() + for platform in "${PLATFORMS[@]}"; do case "$platform" in ios) @@ -107,7 +108,7 @@ done rm -rf _include mkdir -p _include/realm-js-ios -cp "$PROJECT_ROOT"/src/hermes/hermes_init.h _include/realm-js-ios/ +cp "$PROJECT_ROOT"/src/jsi/jsi_init.h _include/realm-js-ios/ rm -rf ../realm-js-ios.xcframework xcodebuild -create-xcframework \ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 582fa4761d1..7035e6263f9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -7,9 +7,9 @@ target_include_directories(realm-js-shared PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) if(DEFINED CMAKE_JS_VERSION) add_subdirectory(node) elseif(ANDROID) - add_subdirectory(hermes) + add_subdirectory(jsi) add_subdirectory(android) elseif(CMAKE_SYSTEM_NAME STREQUAL iOS) - add_subdirectory(hermes) + add_subdirectory(jsi) add_subdirectory(ios) endif() diff --git a/src/android/io_realm_react_RealmReactModule.cpp b/src/android/io_realm_react_RealmReactModule.cpp index 9ef19b9875a..2dce4d5dee3 100644 --- a/src/android/io_realm_react_RealmReactModule.cpp +++ b/src/android/io_realm_react_RealmReactModule.cpp @@ -25,6 +25,7 @@ #include "jni_utils.hpp" #include "platform.hpp" #include +#include #include "io_realm_react_RealmReactModule.h" @@ -100,6 +101,12 @@ JNIEXPORT void JNICALL Java_io_realm_react_RealmReactModule_install( "Building an exports object"); auto exports = jsi::Object(*runtime); __android_log_print(ANDROID_LOG_VERBOSE, "JSRealm", "Initializing ..."); - realm_hermes_init(*runtime, exports); + realm_jsi_init(*runtime, exports); } } + +JNIEXPORT void JNICALL +Java_io_realm_react_RealmReactModule_invalidateCaches(JNIEnv *, jclass) { + __android_log_print(ANDROID_LOG_VERBOSE, "JSRealm", "invalidateCaches"); + realm_jsi_invalidate_caches(); +} diff --git a/src/android/io_realm_react_RealmReactModule.h b/src/android/io_realm_react_RealmReactModule.h index e172fdb567e..d2f9d0fc36c 100644 --- a/src/android/io_realm_react_RealmReactModule.h +++ b/src/android/io_realm_react_RealmReactModule.h @@ -23,6 +23,14 @@ JNIEXPORT void JNICALL Java_io_realm_react_RealmReactModule_setDefaultRealmFileD JNIEXPORT void JNICALL Java_io_realm_react_RealmReactModule_install (JNIEnv *, jclass, jlong); +/* + * Class: io_realm_react_RealmReactModule + * Method: invalidateCaches + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_io_realm_react_RealmReactModule_invalidateCaches + (JNIEnv *, jclass); + #ifdef __cplusplus } #endif diff --git a/src/hermes/CMakeLists.txt b/src/jsi/CMakeLists.txt similarity index 93% rename from src/hermes/CMakeLists.txt rename to src/jsi/CMakeLists.txt index 35df2f21596..12294d5f784 100644 --- a/src/hermes/CMakeLists.txt +++ b/src/jsi/CMakeLists.txt @@ -2,7 +2,7 @@ set(REACT_NATIVE_ROOT_DIR "${PACKAGE_ROOT_DIR}/node_modules/react-native") set(JSI_HEADER_DIR "${REACT_NATIVE_ROOT_DIR}/ReactCommon/jsi") add_library(realm-js-hermes OBJECT - hermes_init.cpp + jsi_init.cpp ) target_include_directories(realm-js-hermes PRIVATE ${JSI_HEADER_DIR}) diff --git a/src/hermes/hermes_class.hpp b/src/jsi/jsi_class.hpp similarity index 51% rename from src/hermes/hermes_class.hpp rename to src/jsi/jsi_class.hpp index 50b26bd4a17..55d0cc9e18e 100644 --- a/src/hermes/hermes_class.hpp +++ b/src/jsi/jsi_class.hpp @@ -17,11 +17,10 @@ //////////////////////////////////////////////////////////////////////////// #pragma once - -#include "hermes_object.hpp" -#include "hermes_return_value.hpp" -#include "hermes_string.hpp" -#include "hermes_types.hpp" +#include "jsi_object.hpp" +#include "jsi_return_value.hpp" +#include "jsi_string.hpp" +#include "jsi_types.hpp" #include "js_class.hpp" #include "js_util.hpp" @@ -39,12 +38,14 @@ namespace realm::js { template struct RealmObjectClass; template class RealmClass; -template <> struct Arguments { +namespace fbjsi = facebook::jsi; + +template <> struct Arguments { const std::vector valStorage; const JsiEnv ctx; const size_t count; const JsiVal *const value; - Arguments(JsiEnv env, size_t argc, const jsi::Value *argv) + Arguments(JsiEnv env, size_t argc, const fbjsi::Value *argv) : valStorage([&] { std::vector out; out.reserve(argc); @@ -89,10 +90,10 @@ template <> struct Arguments { } }; -namespace hermes { +namespace realmjsi { // realm::js::realmjsi -inline std::optional -ObjectGetOwnPropertyDescriptor(JsiEnv env, const jsi::Object &target, +inline std::optional +ObjectGetOwnPropertyDescriptor(JsiEnv env, const fbjsi::Object &target, const std::string &name) { auto obj = js::globalType(env, "Object"); auto res = obj.getPropertyAsFunction(env, "getOwnPropertyDescriptor") @@ -102,22 +103,22 @@ ObjectGetOwnPropertyDescriptor(JsiEnv env, const jsi::Object &target, return std::move(res).getObject(env); } -inline void ObjectSetPrototypeOf(JsiEnv env, const jsi::Value &target, - const jsi::Value &proto) { +inline void ObjectSetPrototypeOf(JsiEnv env, const fbjsi::Value &target, + const fbjsi::Value &proto) { auto obj = js::globalType(env, "Object"); obj.getPropertyAsFunction(env, "setPrototypeOf") .callWithThis(env, obj, target, proto); } -inline void defineProperty(JsiEnv env, const jsi::Object &target, - StringData name, const jsi::Object &descriptor) { +inline void defineProperty(JsiEnv env, const fbjsi::Object &target, + StringData name, const fbjsi::Object &descriptor) { auto objClass = js::globalType(env, "Object"); objClass.getPropertyAsFunction(env, "defineProperty") .callWithThis(env, objClass, target, str(env, name), descriptor); }; -inline void copyProperty(JsiEnv env, const jsi::Object &from, - const jsi::Object &to, const std::string &name) { +inline void copyProperty(JsiEnv env, const fbjsi::Object &from, + const fbjsi::Object &to, const std::string &name) { auto prop = ObjectGetOwnPropertyDescriptor(env, from, name); REALM_ASSERT_RELEASE(prop); defineProperty(env, to, "name", *prop); @@ -125,25 +126,18 @@ inline void copyProperty(JsiEnv env, const jsi::Object &from, inline constexpr const char g_internal_field[] = "__Realm_internal"; -#if 0 -inline jsi::Symbol ExternalSymbol; -jsi::Symbol ext = jsi::Symbol::New(env, "_external"); -ExternalSymbol = hermes::Protected(env, ext); -ExternalSymbol.SuppressDestruct(); -#endif - template -using ClassDefinition = js::ClassDefinition; +using ClassDefinition = js::ClassDefinition; -using ConstructorType = js::ConstructorType; -using ArgumentsMethodType = js::ArgumentsMethodType; -using ReturnValue = js::ReturnValue; -using Arguments = js::Arguments; -using PropertyType = js::PropertyType; -using IndexPropertyType = js::IndexPropertyType; -using StringPropertyType = js::StringPropertyType; +using ConstructorType = js::ConstructorType; +using ArgumentsMethodType = js::ArgumentsMethodType; +using ReturnValue = js::ReturnValue; +using Arguments = js::Arguments; +using PropertyType = js::PropertyType; +using IndexPropertyType = js::IndexPropertyType; +using StringPropertyType = js::StringPropertyType; -template class Wrapper : public jsi::HostObject { +template class Wrapper : public fbjsi::HostObject { public: template >> @@ -161,11 +155,13 @@ inline T &unwrap(const std::shared_ptr> &wrapper) { return unwrap(*wrapper); } -template inline T &unwrap(JsiEnv env, const jsi::Object &wrapper) { +template +inline T &unwrap(JsiEnv env, const fbjsi::Object &wrapper) { return unwrap(wrapper.getHostObject>(env)); } -template inline T &unwrap(JsiEnv env, const jsi::Value &wrapper) { +template +inline T &unwrap(JsiEnv env, const fbjsi::Value &wrapper) { return unwrap(env, wrapper.asObject(env)); } @@ -183,14 +179,14 @@ inline T *unwrapUnique(JsiEnv env, const U &arg) { } template JsiObj wrap(JsiEnv env, T arg) { - return env(jsi::Object::createFromHostObject( + return env(fbjsi::Object::createFromHostObject( env, std::make_shared>(std::move(arg)))); } template >> JsiObj wrap(JsiEnv env, Args &&...args) { - return env(jsi::Object::createFromHostObject( + return env(fbjsi::Object::createFromHostObject( env, std::make_shared>(std::forward(args)...))); } @@ -212,31 +208,31 @@ template class ObjectWrap { auto nativeFunc = !bool(s_type.constructor) - ? jsi::Value() - : jsi::Function::createFromHostFunction( + ? fbjsi::Value() + : fbjsi::Function::createFromHostFunction( env, propName(env, s_type.name), /* XXX paramCount */ 0, - [](jsi::Runtime &rt, const jsi::Value &, - const jsi::Value *args, size_t count) -> jsi::Value { + [](fbjsi::Runtime &rt, const fbjsi::Value &, + const fbjsi::Value *args, size_t count) -> fbjsi::Value { REALM_ASSERT_RELEASE(count >= 1); auto env = JsiEnv(rt); auto &s_type = get_class(); auto arguments = Arguments{env, count - 1, args + 1}; s_type.constructor(env, env(args[0]).asObject(), arguments); - return jsi::Value(); + return fbjsi::Value(); }); s_ctor = env(globalType(env, "Function") .call(env, "nativeFunc", util::format(R"( return function %1(...args) { - //"use strict"; - if (!nativeFunc && false) // XXX only disable for Realm.Object + // "use strict"; + if (!nativeFunc && false) // XXX only disable check for Realm.Object throw TypeError("%1() cannot be constructed directly from javascript"); if (!new.target && false) { // XXX find another way to detect this correctly throw TypeError("%1() must be called as a constructor"); } if (nativeFunc) - nativeFunc(this, ...args); + nativeFunc(this, ...args); if ('_proxyWrapper' in %1) return %1._proxyWrapper(this); @@ -248,7 +244,7 @@ template class ObjectWrap { .asObject(env) .asFunction(env)); - js::Context::register_invalidator([] { + js::Context::register_invalidator([] { // Ensure the static constructor is destructed when the runtime goes away. // This is to avoid the reassignment of s_ctor throwing because the // runtime has disappeared. @@ -256,7 +252,7 @@ template class ObjectWrap { }); for (auto &&[name, prop] : s_type.static_properties) { - auto desc = jsi::Object(env); + auto desc = fbjsi::Object(env); if (prop.getter) { desc.setProperty(env, "get", funcVal(env, "get_" + name, 0, prop.getter)); @@ -269,7 +265,7 @@ template class ObjectWrap { } for (auto &&[name, method] : s_type.static_methods) { - auto desc = jsi::Object(env); + auto desc = fbjsi::Object(env); desc.setProperty(env, "value", funcVal(env, name, /* XXX paramCount */ 0, method)); defineProperty(env, *s_ctor, name, desc); @@ -290,40 +286,55 @@ template class ObjectWrap { defineProperty(env, proto, name, desc); } + for (auto &&[name, prop] : s_type.properties) { + auto desc = fbjsi::Object(env); + if (prop.getter) { + desc.setProperty(env, "get", + funcVal(env, "get_" + name, 0, prop.getter)); + } + if (prop.setter) { + desc.setProperty(env, "set", + funcVal(env, "set_" + name, 1, prop.setter)); + } + defineProperty(env, proto, name, desc); + } + for (auto &&[name, method] : s_type.methods) { - auto desc = jsi::Object(env); + auto desc = fbjsi::Object(env); desc.setProperty(env, "value", funcVal(env, name, /* XXX paramCount */ 0, method)); defineProperty(env, proto, name, desc); } - if constexpr (!std::is_void_v) { - REALM_ASSERT_RELEASE(ObjectWrap::s_ctor); - JsiFunc parentCtor = *ObjectWrap::s_ctor; - - auto parentProto = parentCtor->getProperty(env, "prototype"); - if (parentProto.isUndefined()) { - throw std::runtime_error("undefined 'prototype' on parent constructor"); - } - - ObjectSetPrototypeOf(env, jsi::Value(env, proto), - jsi::Value(std::move(parentProto))); - ObjectSetPrototypeOf(env, jsi::Value(env, s_ctor->get()), - jsi::Value(std::move(parentCtor.get()))); + auto parentProto = parentCtor->getProperty(env, "prototype"); + if (parentProto.isUndefined()) { + throw std::runtime_error("undefined 'prototype' on parent constructor"); } - if (s_type.index_accessor) { - // Code below assumes getter is present, and it doesn't make sense to have - // setter without one. - REALM_ASSERT_RELEASE(s_type.index_accessor.getter); + ObjectSetPrototypeOf(env, jsi::Value(env, proto), + jsi::Value(std::move(parentProto))); + ObjectSetPrototypeOf(env, jsi::Value(env, s_ctor->get()), + jsi::Value(std::move(parentCtor.get()))); + } - // XXX Do we want to trap things like ownKeys() and - // getOwnPropertyDescriptors() to support for...in? - auto [getter, setter] = s_type.index_accessor; - auto desc = jsi::Object(env); - desc.setProperty(env, "value", - globalType(env, "Function") - .call(env, "getter", "setter", R"( + ObjectSetPrototypeOf(env, fbjsi::Value(env, proto), + fbjsi::Value(std::move(parentProto))); + ObjectSetPrototypeOf(env, fbjsi::Value(env, s_ctor->get()), + fbjsi::Value(std::move(parentCtor.get()))); +} + +if (s_type.index_accessor) { + // Code below assumes getter is present, and it doesn't make sense to have + // setter without one. + REALM_ASSERT_RELEASE(s_type.index_accessor.getter); + + // XXX Do we want to trap things like ownKeys() and + // getOwnPropertyDescriptors() to support for...in? + auto [getter, setter] = s_type.index_accessor; + auto desc = fbjsi::Object(env); + desc.setProperty(env, "value", + globalType(env, "Function") + .call(env, "getter", "setter", R"( const integerPattern = /^\d+$/; function getIndex(prop) { if (typeof prop === "string" && integerPattern.test(prop)) { @@ -373,88 +384,162 @@ template class ObjectWrap { } return (obj) => new Proxy(obj, handler); )") - .asObject(env) - .asFunction(env) - .call(env, funcVal(env, "getter", 0, getter), - funcVal(env, "setter", 1, setter)) - .asObject(env) - .asFunction(env)); - defineProperty(env, *s_ctor, "_proxyWrapper", desc); - } + .asObject(env) + .asFunction(env) + .call(env, funcVal(env, "getter", 0, getter), + funcVal(env, "setter", 1, setter)) + .asObject(env) + .asFunction(env)); + defineProperty(env, *s_ctor, "_proxyWrapper", desc); +} + +return env((*s_ctor)->getFunction(env)); +} - return env((*s_ctor)->getFunction(env)); +static JsiObj create_instance(JsiEnv env, Internal *ptr = nullptr) { + auto proto = (*s_ctor)->getPropertyAsObject(env, "prototype"); + auto objClass = js::globalType(env, "Object"); + auto obj = env(objClass.getPropertyAsFunction(env, "create") + .callWithThis(env, objClass, proto)) + .asObject(); + set_internal(env, obj, ptr); + + auto wrapper = (*s_ctor)->getProperty(env, "_proxyWrapper"); + if (!wrapper.isUndefined()) { + obj = env(wrapper.asObject(env).asFunction(env).call(env, + std::move(obj.get()))) + .asObject(); } - static JsiObj create_instance(JsiEnv env, Internal *ptr = nullptr) { - auto proto = (*s_ctor)->getPropertyAsObject(env, "prototype"); - auto objClass = js::globalType(env, "Object"); - auto obj = env(objClass.getPropertyAsFunction(env, "create") - .callWithThis(env, objClass, proto)) - .asObject(); - set_internal(env, obj, ptr); - - auto wrapper = (*s_ctor)->getProperty(env, "_proxyWrapper"); - if (!wrapper.isUndefined()) { - obj = env(wrapper.asObject(env).asFunction(env).call( - env, std::move(obj.get()))) - .asObject(); - } + return obj; +} - return obj; - } +static JsiObj create_instance_by_schema(JsiEnv env, JsiFunc &constructor, + const realm::ObjectSchema &schema, + Internal *internal = nullptr) { + return create_instance_by_schema(env, &constructor, schema, internal); +} +static JsiObj create_instance_by_schema(JsiEnv env, + const realm::ObjectSchema &schema, + Internal *internal = nullptr) { + return create_instance_by_schema(env, nullptr, schema, internal); +} + +static void on_context_destroy(JsiEnv, std::string realmPath) { + get_schemaObjectTypes().erase(realmPath); +} - static JsiObj create_instance_by_schema(JsiEnv env, JsiFunc &constructor, - const realm::ObjectSchema &schema, - Internal *internal = nullptr) { - return create_instance_by_schema(env, &constructor, schema, internal); +static bool is_instance(JsiEnv env, JsiObj object) { + return object->instanceOf(env, *s_ctor); +} + +static Internal *get_internal(JsiEnv env, const JsiObj &object) { + auto internal = object->getProperty(env, g_internal_field); + if (internal.isUndefined()) { + if constexpr (std::is_same_v< + T, RealmObjectClass>) // XXX comment why + return nullptr; + throw jsi::JSError(env, "no internal field"); } - static JsiObj create_instance_by_schema(JsiEnv env, - const realm::ObjectSchema &schema, - Internal *internal = nullptr) { - return create_instance_by_schema(env, nullptr, schema, internal); + if (!JsiObj(object)->instanceOf(env, *s_ctor)) { + throw jsi::JSError(env, "calling method on wrong type of object"); } + return unwrapUnique(env, std::move(internal)); +} +static void set_internal(JsiEnv env, const JsiObj &object, Internal *data) { + auto desc = jsi::Object(env); + desc.setProperty(env, "value", wrapUnique(env, data)); + desc.setProperty(env, "configurable", true); + defineProperty(env, object, g_internal_field, desc); +} - static void on_context_destroy(JsiEnv, std::string realmPath) { - get_schemaObjectTypes().erase(realmPath); - } +private: +static jsi::Value funcVal(JsiEnv env, const std::string &name, size_t args, + jsi::HostFunctionType &&func) { + if (!func) + return jsi::Value(); + return jsi::Value(jsi::Function::createFromHostFunction( + env, propName(env, name), uint32_t(args), std::move(func))); +}; + +static void defineSchemaProperties(JsiEnv env, + const jsi::Object &constructorPrototype, + const realm::ObjectSchema &schema, + bool redefine) { + // Do the same thing for all computed and persisted properties + auto loopBody = [&](const Property &property) { + const auto &name = + property.public_name.empty() ? property.name : property.public_name; + // TODO should this use hasOwnProperty? + if (!redefine && constructorPrototype.hasProperty(env, str(env, name))) { + return; + } + + auto desc = jsi::Object(env); + desc.setProperty(env, "enumerable", true); + + desc.setProperty( + env, "get", + funcVal(env, "get_" + name, 0, + [name = String(name)](jsi::Runtime &rt, + const jsi::Value &thisVal, + const jsi::Value *args, size_t count) { + if (count != 0) + throw jsi::JSError(rt, "getters take no arguments"); + return get_class().string_accessor.getter(rt, thisVal, name); + })); + desc.setProperty( + env, "set", + funcVal(env, "set_" + name, 1, + [name = String(name)](jsi::Runtime &rt, + const jsi::Value &thisVal, + const jsi::Value *args, size_t count) { + if (count != 1) + throw jsi::JSError(rt, "setters take exactly 1 argument"); + return get_class().string_accessor.setter(rt, thisVal, name, + args[0]); + })); + + defineProperty(env, constructorPrototype, name, desc); + }; - static bool is_instance(JsiEnv env, JsiObj object) { - return object->instanceOf(env, *s_ctor); + for (auto &&property : schema.persisted_properties) { + loopBody(property); } static Internal *get_internal(JsiEnv env, const JsiObj &object) { auto internal = object->getProperty(env, g_internal_field); if (internal.isUndefined()) { - if constexpr (std::is_same_v< - T, RealmObjectClass>) // XXX comment why + if constexpr (std::is_same_v>) // XXX + // comment + // why return nullptr; - throw jsi::JSError(env, "no internal field"); + throw fbjsi::JSError(env, "no internal field"); } if (!JsiObj(object)->instanceOf(env, *s_ctor)) { - throw jsi::JSError(env, "calling method on wrong type of object"); + throw fbjsi::JSError(env, "calling method on wrong type of object"); } return unwrapUnique(env, std::move(internal)); } static void set_internal(JsiEnv env, const JsiObj &object, Internal *data) { - auto desc = jsi::Object(env); + auto desc = fbjsi::Object(env); desc.setProperty(env, "value", wrapUnique(env, data)); desc.setProperty(env, "configurable", true); defineProperty(env, object, g_internal_field, desc); } private: - static jsi::Value funcVal(JsiEnv env, const std::string &name, size_t args, - jsi::HostFunctionType &&func) { + static fbjsi::Value funcVal(JsiEnv env, const std::string &name, size_t args, + fbjsi::HostFunctionType &&func) { if (!func) - return jsi::Value(); - return jsi::Value(jsi::Function::createFromHostFunction( + return fbjsi::Value(); + return fbjsi::Value(fbjsi::Function::createFromHostFunction( env, propName(env, name), uint32_t(args), std::move(func))); }; - static void defineSchemaProperties(JsiEnv env, - const jsi::Object &constructorPrototype, - const realm::ObjectSchema &schema, - bool redefine) { + static void defineSchemaProperties( + JsiEnv env, const fbjsi::Object &constructorPrototype, + const realm::ObjectSchema &schema, bool redefine) { // Do the same thing for all computed and persisted properties auto loopBody = [&](const Property &property) { const auto &name = @@ -464,27 +549,29 @@ template class ObjectWrap { return; } - auto desc = jsi::Object(env); + auto desc = fbjsi::Object(env); desc.setProperty(env, "enumerable", true); desc.setProperty( env, "get", - funcVal( - env, "get_" + name, 0, - [name = String(name)](jsi::Runtime &rt, const jsi::Value &thisVal, - const jsi::Value *args, size_t count) { - if (count != 0) - throw jsi::JSError(rt, "getters take no arguments"); - return get_class().string_accessor.getter(rt, thisVal, name); - })); + funcVal(env, "get_" + name, 0, + [name = String(name)]( + fbjsi::Runtime &rt, const fbjsi::Value &thisVal, + const fbjsi::Value *args, size_t count) { + if (count != 0) + throw fbjsi::JSError(rt, "getters take no arguments"); + return get_class().string_accessor.getter(rt, thisVal, + name); + })); desc.setProperty( env, "set", funcVal(env, "set_" + name, 1, - [name = String(name)](jsi::Runtime &rt, - const jsi::Value &thisVal, - const jsi::Value *args, size_t count) { + [name = String(name)]( + fbjsi::Runtime &rt, const fbjsi::Value &thisVal, + const fbjsi::Value *args, size_t count) { if (count != 1) - throw jsi::JSError(rt, "setters take exactly 1 argument"); + throw fbjsi::JSError(rt, + "setters take exactly 1 argument"); return get_class().string_accessor.setter(rt, thisVal, name, args[0]); })); @@ -500,22 +587,22 @@ template class ObjectWrap { } } - static JsiObj create_instance_by_schema(JsiEnv env, JsiFunc *maybeConstructor, - const realm::ObjectSchema &schema, - Internal *internal = nullptr) { + static JsiObj create_instance_by_schema( + JsiEnv env, JsiFunc * maybeConstructor, const realm::ObjectSchema &schema, + Internal *internal = nullptr) { auto &s_schemaObjectTypes = get_schemaObjectTypes(); auto &s_class = get_class(); bool isRealmObjectClass = - std::is_same_v>; + std::is_same_v>; if (!isRealmObjectClass) { - throw jsi::JSError(env, "Creating instances by schema is supported for " - "RealmObjectClass only"); + throw fbjsi::JSError(env, "Creating instances by schema is supported for " + "RealmObjectClass only"); } if (!internal) { - throw jsi::JSError(env, "RealmObjectClass requires an internal realm " - "object when creating instances by schema"); + throw fbjsi::JSError(env, "RealmObjectClass requires an internal realm " + "object when creating instances by schema"); } REALM_ASSERT_RELEASE( @@ -574,161 +661,153 @@ template class ObjectWrap { if (schemaExists) { // check if constructors have changed for the same schema object and // name - if (!jsi::Function::strictEquals(env, schemaObjects.at(schemaName), - constructor)) { + if (!fbjsi::Function::strictEquals(env, schemaObjects.at(schemaName), + constructor)) { schemaExists = false; schemaObjects.erase(schemaName); } } - - if (!schemaExists) { - schemaObjects.emplace(schemaName, JsiFunc(constructor).get()); - auto constructorPrototype = - constructor->getPropertyAsObject(env, "prototype"); - - // get all properties from the schema - defineSchemaProperties(env, env(constructorPrototype), schema, false); - - // Skip if the user defined constructor inherited the RealmObjectClass. - // All RealmObjectClass members are available already. - if (!constructorPrototype.instanceOf(env, - realmObjectClassConstructor)) { - // setup all RealmObjectClass methods to the prototype of the - // object - auto realmObjectClassProto = - realmObjectClassConstructor->getPropertyAsObject(env, - "prototype"); - for (auto &[name, method] : s_class.methods) { - // don't redefine if exists - // TODO should this use hasOwnProperty? - if (!constructorPrototype.hasProperty(env, propName(env, name))) { - copyProperty(env, realmObjectClassProto, constructorPrototype, - name); - } - } - - for (auto &[name, property] : s_class.properties) { - // TODO should this use hasOwnProperty? - if (!constructorPrototype.hasProperty(env, propName(env, name))) { - copyProperty(env, realmObjectClassProto, constructorPrototype, - name); - } - } - } - } } - const auto &schemaObjectCtor = schemaObjects.at(schemaName); - auto instanceVal = schemaObjectCtor.callAsConstructor(env); - if (!instanceVal.isObject()) { - throw jsi::JSError( - env, "Realm object constructor must not return another value"); - } - auto instance = env(std::move(instanceVal).getObject(env)); - if (!instance->instanceOf(env, schemaObjectCtor)) { - throw jsi::JSError( - env, "Realm object constructor must not return another value"); + for (auto &[name, property] : s_class.properties) { + // TODO should this use hasOwnProperty? + if (!constructorPrototype.hasProperty(env, propName(env, name))) { + copyProperty(env, realmObjectClassProto, constructorPrototype, name); + } } - - set_internal(env, instance, internal); - return instance; } - static auto &get_class() { - // TODO this is silly. These should be static properties. - static T s_class; - return s_class; + const auto &schemaObjectCtor = schemaObjects.at(schemaName); + auto instanceVal = schemaObjectCtor.callAsConstructor(env); + if (!instanceVal.isObject()) { + throw fbjsi::JSError( + env, "Realm object constructor must not return another value"); } - - inline static auto &get_schemaObjectTypes() { - // XXX this being static prevents using multiple runtimes. - static std::unordered_map> - s_schemaObjectTypes; - return s_schemaObjectTypes; + auto instance = env(std::move(instanceVal).getObject(env)); + if (!instance->instanceOf(env, schemaObjectCtor)) { + throw fbjsi::JSError( + env, "Realm object constructor must not return another value"); } -}; -} // namespace hermes + set_internal(env, instance, internal); + return instance; +} + +const auto &schemaObjectCtor = schemaObjects.at(schemaName); +auto instanceVal = schemaObjectCtor.callAsConstructor(env); +if (!instanceVal.isObject()) { + throw jsi::JSError(env, + "Realm object constructor must not return another value"); +} + +inline static auto &get_schemaObjectTypes() { + // XXX this being static prevents using multiple runtimes. + static std::unordered_map> + s_schemaObjectTypes; + return s_schemaObjectTypes; +} + +set_internal(env, instance, internal); +return instance; +} + +static auto &get_class() { + // TODO this is silly. These should be static properties. + static T s_class; + return s_class; +} + +inline static auto &get_schemaObjectTypes() { + // XXX this being static prevents using multiple runtimes. + static std::unordered_map> + s_schemaObjectTypes; + return s_schemaObjectTypes; +} +} +; + +} // namespace realm::js::realmjsi template -class ObjectWrap - : public hermes::ObjectWrap {}; +class ObjectWrap + : public realm::js::realmjsi::ObjectWrap {}; -template -jsi::Value wrap(jsi::Runtime &rt, const jsi::Value &thisVal, - const jsi::Value *args, size_t count) { +template +fbjsi::Value wrap(fbjsi::Runtime &rt, const fbjsi::Value &thisVal, + const fbjsi::Value *args, size_t count) { auto env = JsiEnv(rt); - auto result = hermes::ReturnValue(env); - auto arguments = hermes::Arguments{env, count, args}; + auto result = realmjsi::ReturnValue(env); + auto arguments = realmjsi::Arguments{env, count, args}; F(env, env(thisVal).asObject(), arguments, result); return std::move(result).ToValue(); } -template -jsi::Value wrap(jsi::Runtime &rt, const jsi::Value &thisVal, - const jsi::Value *args, size_t count) { +template +fbjsi::Value wrap(fbjsi::Runtime &rt, const fbjsi::Value &thisVal, + const fbjsi::Value *args, size_t count) { auto env = JsiEnv(rt); - auto result = hermes::ReturnValue(env); - auto arguments = hermes::Arguments{env, count, args}; + auto result = realmjsi::ReturnValue(env); + auto arguments = realmjsi::Arguments{env, count, args}; arguments.validate_count(0); F(env, env(thisVal).asObject(), result); return std::move(result).ToValue(); } -template -jsi::Value wrap(jsi::Runtime &rt, const jsi::Value &thisVal, - const jsi::Value *args, size_t count) { +template +fbjsi::Value wrap(fbjsi::Runtime &rt, const fbjsi::Value &thisVal, + const fbjsi::Value *args, size_t count) { auto env = JsiEnv(rt); - auto arguments = hermes::Arguments{env, count, args}; + auto arguments = realmjsi::Arguments{env, count, args}; arguments.validate_count(1); F(env, env(thisVal).asObject(), JsiVal(env, args[0])); - return jsi::Value(); + return fbjsi::Value(); } -template -jsi::Value wrap(jsi::Runtime &rt, const jsi::Value &, const jsi::Value *args, - size_t count) { +template +fbjsi::Value wrap(fbjsi::Runtime &rt, const fbjsi::Value &, + const fbjsi::Value *args, size_t count) { REALM_ASSERT_RELEASE(count == 2); auto env = JsiEnv(rt); - auto out = hermes::ReturnValue(env); + auto out = realmjsi::ReturnValue(env); F(env, env(args[0]).asObject(), uint32_t(args[1].asNumber()), out); return std::move(out).ToValue(); } -template -jsi::Value wrap(jsi::Runtime &rt, const jsi::Value &, const jsi::Value *args, - size_t count) { +template +fbjsi::Value wrap(fbjsi::Runtime &rt, const fbjsi::Value &, + const fbjsi::Value *args, size_t count) { REALM_ASSERT_RELEASE(count == 3); auto env = JsiEnv(rt); - return jsi::Value(F(env, env(args[0]).asObject(), - uint32_t(args[1].asNumber()), env(args[2]))); + return fbjsi::Value(F(env, env(args[0]).asObject(), + uint32_t(args[1].asNumber()), env(args[2]))); } -template -jsi::Value wrap(jsi::Runtime &rt, const jsi::Value &thisVal, - const hermes::String &str) { +template +fbjsi::Value wrap(fbjsi::Runtime &rt, const fbjsi::Value &thisVal, + const realmjsi::String &str) { auto env = JsiEnv(rt); - auto result = hermes::ReturnValue(env); + auto result = realmjsi::ReturnValue(env); F(env, env(thisVal).asObject(), str, result); return std::move(result).ToValue(); } -template -jsi::Value wrap(jsi::Runtime &rt, const jsi::Value &thisVal, - const hermes::String &str, const jsi::Value &value) { +template +fbjsi::Value wrap(fbjsi::Runtime &rt, const fbjsi::Value &thisVal, + const realmjsi::String &str, const fbjsi::Value &value) { auto env = JsiEnv(rt); F(env, env(thisVal).asObject(), str, env(value)); - return jsi::Value(); + return fbjsi::Value(); } -template -jsi::Value wrap(jsi::Runtime &rt, const jsi::Value &thisVal, - const jsi::Value *args, size_t count) { +template +fbjsi::Value wrap(fbjsi::Runtime &rt, const fbjsi::Value &thisVal, + const fbjsi::Value *args, size_t count) { // This is only used in the JSC impl. REALM_UNREACHABLE(); } diff --git a/src/hermes/hermes_function.hpp b/src/jsi/jsi_function.hpp similarity index 56% rename from src/hermes/hermes_function.hpp rename to src/jsi/jsi_function.hpp index b99c57be27a..2a3b5aa24e5 100644 --- a/src/hermes/hermes_function.hpp +++ b/src/jsi/jsi_function.hpp @@ -18,43 +18,44 @@ #pragma once -#include "hermes_types.hpp" +#include "jsi_types.hpp" namespace realm { namespace js { template <> -inline JsiVal hermes::Function::call(JsiEnv env, const JsiFunc &function, - size_t argc, const JsiVal arguments[]) { +inline JsiVal realmjsi::Function::call(JsiEnv env, const JsiFunc &function, + size_t argc, const JsiVal arguments[]) { return env(function->call(env, env.args(arguments, argc), argc)); } template <> -inline JsiVal hermes::Function::call(JsiEnv env, const JsiFunc &function, - const JsiObj &this_object, size_t argc, - const JsiVal arguments[]) { +inline JsiVal realmjsi::Function::call(JsiEnv env, const JsiFunc &function, + const JsiObj &this_object, size_t argc, + const JsiVal arguments[]) { return env(function->callWithThis(env, this_object, env.args(arguments, argc), argc)); } template <> -inline JsiVal hermes::Function::callback(JsiEnv env, const JsiFunc &function, - size_t argc, - const JsiVal arguments[]) { +inline JsiVal realmjsi::Function::callback(JsiEnv env, const JsiFunc &function, + size_t argc, + const JsiVal arguments[]) { return env(function->call(env, env.args(arguments, argc), argc)); } template <> -inline JsiVal hermes::Function::callback(JsiEnv env, const JsiFunc &function, - const JsiObj &this_object, size_t argc, - const JsiVal arguments[]) { +inline JsiVal realmjsi::Function::callback(JsiEnv env, const JsiFunc &function, + const JsiObj &this_object, + size_t argc, + const JsiVal arguments[]) { return env(function->callWithThis(env, this_object, env.args(arguments, argc), argc)); } template <> -inline JsiObj hermes::Function::construct(JsiEnv env, const JsiFunc &function, - size_t argc, - const JsiVal arguments[]) { +inline JsiObj realmjsi::Function::construct(JsiEnv env, const JsiFunc &function, + size_t argc, + const JsiVal arguments[]) { return env(function->callAsConstructor(env, env.args(arguments, argc), argc) .asObject(env)); } diff --git a/src/hermes/hermes_init.cpp b/src/jsi/jsi_init.cpp similarity index 78% rename from src/hermes/hermes_init.cpp rename to src/jsi/jsi_init.cpp index cfadffa223b..431fb73bc8c 100644 --- a/src/hermes/hermes_init.cpp +++ b/src/jsi/jsi_init.cpp @@ -16,7 +16,7 @@ // //////////////////////////////////////////////////////////////////////////// -#include "hermes_init.hpp" +#include "jsi_init.hpp" #if !REALM_ENABLE_SYNC #pragma comment(lib, "ws2_32.lib") @@ -28,15 +28,18 @@ #include #include -namespace realm::js::hermes { -extern "C" void realm_hermes_init(jsi::Runtime &rt, jsi::Object &exports) { +namespace realmjsi = realm::js::realmjsi; +namespace fbjsi = facebook::jsi; + +namespace realm::js::jsi { +extern "C" void realm_jsi_init(fbjsi::Runtime &rt, fbjsi::Object &exports) { auto env = JsiEnv(rt); - jsi::Function realm_constructor = - js::RealmClass::create_constructor(env); + fbjsi::Function realm_constructor = + js::RealmClass::create_constructor(env); auto name = realm_constructor.getProperty(env, "name").asString(env); exports.setProperty(env, std::move(name), std::move(realm_constructor)); } -extern "C" void realm_hermes_invalidate_caches() { +extern "C" void realm_jsi_invalidate_caches() { // Close all cached Realms realm::_impl::RealmCoordinator::clear_all_caches(); // Clear the Object Store App cache, to prevent instances from using a context @@ -44,7 +47,8 @@ extern "C" void realm_hermes_invalidate_caches() { realm::app::App::clear_cached_apps(); // Ensure all registered invalidators get notified that the runtime is going // away. - realm::js::Context::invalidate(); + realm::js::Context::invalidate(); +} } } // namespace realm::js::hermes diff --git a/src/hermes/hermes_init.h b/src/jsi/jsi_init.h similarity index 89% rename from src/hermes/hermes_init.h rename to src/jsi/jsi_init.h index 759e56b4d73..117937f6e5a 100644 --- a/src/hermes/hermes_init.h +++ b/src/jsi/jsi_init.h @@ -25,8 +25,8 @@ extern "C" { #endif namespace jsi = facebook::jsi; -void realm_hermes_init(jsi::Runtime& rt, jsi::Object& exports); -void realm_hermes_invalidate_caches(); +void realm_jsi_init(jsi::Runtime& rt, jsi::Object& exports); +void realm_jsi_invalidate_caches(); #ifdef __cplusplus } diff --git a/src/hermes/hermes_init.hpp b/src/jsi/jsi_init.hpp similarity index 80% rename from src/hermes/hermes_init.hpp rename to src/jsi/jsi_init.hpp index 244197d4ed8..ccc1b659735 100644 --- a/src/hermes/hermes_init.hpp +++ b/src/jsi/jsi_init.hpp @@ -18,13 +18,13 @@ #pragma once -#include "hermes_class.hpp" -#include "hermes_function.hpp" -#include "hermes_object.hpp" -#include "hermes_protected.hpp" -#include "hermes_return_value.hpp" -#include "hermes_string.hpp" -#include "hermes_value.hpp" +#include "jsi_class.hpp" +#include "jsi_function.hpp" +#include "jsi_object.hpp" +#include "jsi_protected.hpp" +#include "jsi_return_value.hpp" +#include "jsi_string.hpp" +#include "jsi_value.hpp" // FIXME: js_object_accessor.hpp includes js_list.hpp which includes // js_object_accessor.hpp. diff --git a/src/hermes/hermes_object.hpp b/src/jsi/jsi_object.hpp similarity index 52% rename from src/hermes/hermes_object.hpp rename to src/jsi/jsi_object.hpp index a8d66f8ef16..8c087850861 100644 --- a/src/hermes/hermes_object.hpp +++ b/src/jsi/jsi_object.hpp @@ -18,12 +18,19 @@ #pragma once -#include "hermes_string.hpp" -#include "hermes_types.hpp" +#include "jsi_string.hpp" +#include "jsi_types.hpp" namespace realm { namespace js { +namespace realmjsi { +// forward-declare JSI ObjectWrap from jsi_class.hpp +template class ObjectWrap; +} + +namespace fbjsi = facebook::jsi; + #if 0 inline napi_property_attributes operator|(napi_property_attributes a, PropertyAttributes b) { int flag = napi_default; @@ -46,32 +53,32 @@ inline napi_property_attributes operator|(napi_property_attributes a, PropertyAt #endif template <> -inline JsiVal hermes::Object::get_property(JsiEnv env, const JsiObj &object, - StringData key) { +inline JsiVal realmjsi::Object::get_property(JsiEnv env, const JsiObj &object, + StringData key) { return env(object->getProperty(env, propName(env, key))); } template <> -inline JsiVal hermes::Object::get_property(JsiEnv env, const JsiObj &object, - const hermes::String &key) { +inline JsiVal realmjsi::Object::get_property(JsiEnv env, const JsiObj &object, + const realmjsi::String &key) { return env(object->getProperty(env, propName(env, key))); } template <> -inline JsiVal hermes::Object::get_property(JsiEnv env, const JsiObj &object, - uint32_t index) { +inline JsiVal realmjsi::Object::get_property(JsiEnv env, const JsiObj &object, + uint32_t index) { if (object->isArray(env)) return env(object->asArray(env).getValueAtIndex(env, index)); - return hermes::Object::get_property(env, object, std::to_string(index)); + return realmjsi::Object::get_property(env, object, std::to_string(index)); } template <> -inline void hermes::Object::set_property(JsiEnv env, JsiObj &object, - const hermes::String &key, - const JsiVal &value, - PropertyAttributes attributes) { +inline void realmjsi::Object::set_property(JsiEnv env, JsiObj &object, + const realmjsi::String &key, + const JsiVal &value, + PropertyAttributes attributes) { if (attributes) { - auto desc = jsi::Object(env); + auto desc = fbjsi::Object(env); desc.setProperty(env, "configurable", !(attributes & DontDelete)); desc.setProperty(env, "enumerable", !(attributes & DontEnum)); desc.setProperty(env, "writable", !(attributes & ReadOnly)); @@ -86,60 +93,74 @@ inline void hermes::Object::set_property(JsiEnv env, JsiObj &object, } template <> -inline void hermes::Object::set_property(JsiEnv env, JsiObj &object, - uint32_t index, const JsiVal &value) { +inline void realmjsi::Object::set_property(JsiEnv env, JsiObj &object, + uint32_t index, + const JsiVal &value) { if (object->isArray(env)) return object->asArray(env).setValueAtIndex(env, index, value); - return hermes::Object::set_property(env, object, std::to_string(index), - value); + return realmjsi::Object::set_property(env, object, std::to_string(index), + value); } template <> -inline std::vector -hermes::Object::get_property_names(JsiEnv env, const JsiObj &object) { +inline std::vector +realmjsi::Object::get_property_names(JsiEnv env, const JsiObj &object) { auto namesArray = object->getPropertyNames(env); size_t count = namesArray.length(env); - std::vector names; + std::vector names; names.reserve(count); - for (size_t i = 0; i < count; i++) { - names.push_back(namesArray.getValueAtIndex(env, i).asString(env).utf8(env)); - } + auto objClass = env->global().getPropertyAsObject(env, "Object"); + objClass.getPropertyAsFunction(env, "defineProperty") + .callWithThis(env, objClass, object, str(env, key), std::move(desc)); +} +else { + object->setProperty(env, propName(env, key), value); +} +} - return names; +template <> +inline void hermes::Object::set_property(JsiEnv env, JsiObj &object, + uint32_t index, const JsiVal &value) { + if (object->isArray(env)) + return object->asArray(env).setValueAtIndex(env, index, value); + return hermes::Object::set_property(env, object, std::to_string(index), + value); } template <> -inline JsiVal hermes::Object::get_prototype(JsiEnv env, const JsiObj &object) { +inline JsiVal realmjsi::Object::get_prototype(JsiEnv env, + const JsiObj &object) { auto objClass = env->global().getPropertyAsObject(env, "Object"); return env(objClass.getPropertyAsFunction(env, "getPrototypeOf") .callWithThis(env, objClass, object)); } template <> -inline void hermes::Object::set_prototype(JsiEnv env, const JsiObj &object, - const JsiVal &prototype) { +inline void realmjsi::Object::set_prototype(JsiEnv env, const JsiObj &object, + const JsiVal &prototype) { auto objClass = env->global().getPropertyAsObject(env, "Object"); objClass.getPropertyAsFunction(env, "setPrototypeOf") .callWithThis(env, objClass, object, prototype); } -template <> inline JsiObj hermes::Object::create_empty(JsiEnv env) { +template <> inline JsiObj realmjsi::Object::create_empty(JsiEnv env) { return JsiObj(env); } template <> -inline JsiObj hermes::Object::create_array(JsiEnv env, uint32_t length, - const JsiVal values[]) { - jsi::Array array = jsi::Array(env, length); +inline JsiObj realmjsi::Object::create_array(JsiEnv env, uint32_t length, + const JsiVal values[]) { + fbjsi::Array array = fbjsi::Array(env, length); for (uint32_t i = 0; i < length; i++) { array.setValueAtIndex(env, i, values[i]); } return env(std::move(array)); } -template <> inline JsiObj hermes::Object::create_date(JsiEnv env, double time) { +template <> +inline JsiObj realmjsi::Object::create_date(JsiEnv env, double time) { return env(env->global() .getPropertyAsFunction(env, "Date") .callAsConstructor(env, time) @@ -149,70 +170,72 @@ template <> inline JsiObj hermes::Object::create_date(JsiEnv env, double time) { template <> template inline JsiObj -hermes::Object::create_instance(JsiEnv env, - typename ClassType::Internal *internal) { - return hermes::ObjectWrap::create_instance(env, internal); +realmjsi::Object::create_instance(JsiEnv env, + typename ClassType::Internal *internal) { + return realmjsi::ObjectWrap::create_instance(env, internal); } template <> template -inline JsiObj hermes::Object::create_instance_by_schema( +inline JsiObj realmjsi::Object::create_instance_by_schema( JsiEnv env, JsiFunc &constructor, const realm::ObjectSchema &schema, typename ClassType::Internal *internal) { - return hermes::ObjectWrap::create_instance_by_schema( + return realmjsi::ObjectWrap::create_instance_by_schema( env, constructor, schema, internal); } template <> template -inline JsiObj hermes::Object::create_instance_by_schema( +inline JsiObj realmjsi::Object::create_instance_by_schema( JsiEnv env, const realm::ObjectSchema &schema, typename ClassType::Internal *internal) { - return hermes::ObjectWrap::create_instance_by_schema(env, schema, - internal); + return realmjsi::ObjectWrap::create_instance_by_schema(env, schema, + internal); } template inline void on_context_destroy(JsiEnv env, std::string realmPath) { - hermes::ObjectWrap::on_context_destroy(env, realmPath); + realmjsi::ObjectWrap::on_context_destroy(env, realmPath); } template <> template -inline bool hermes::Object::is_instance(JsiEnv env, const JsiObj &object) { - return hermes::ObjectWrap::is_instance(env, object); +inline bool realmjsi::Object::is_instance(JsiEnv env, const JsiObj &object) { + return realmjsi::ObjectWrap::is_instance(env, object); } template <> template inline typename ClassType::Internal * -hermes::Object::get_internal(JsiEnv env, const JsiObj &object) { - return hermes::ObjectWrap::get_internal(env, object); +realmjsi::Object::get_internal(JsiEnv env, const JsiObj &object) { + return realmjsi::ObjectWrap::get_internal(env, object); } template <> template inline void -hermes::Object::set_internal(JsiEnv env, const JsiObj &object, - typename ClassType::Internal *internal) { - return hermes::ObjectWrap::set_internal(env, object, internal); +realmjsi::Object::set_internal(JsiEnv env, const JsiObj &object, + typename ClassType::Internal *internal) { + return realmjsi::ObjectWrap::set_internal(env, object, internal); } template <> -inline void hermes::Object::set_global(JsiEnv env, const hermes::String &key, - const JsiVal &value) { +inline void realmjsi::Object::set_global(JsiEnv env, + const realmjsi::String &key, + const JsiVal &value) { auto global = env.global(); Object::set_property(env, global, key, value); } template <> -inline JsiVal hermes::Object::get_global(JsiEnv env, - const hermes::String &key) { +inline JsiVal realmjsi::Object::get_global(JsiEnv env, + const realmjsi::String &key) { return Object::get_property(env, env.global(), key); } template <> -inline JsiVal hermes::Exception::value(JsiEnv env, const std::string &message) { +inline JsiVal realmjsi::Exception::value(JsiEnv env, + const std::string &message) { return str(env, message); } diff --git a/src/hermes/hermes_protected.hpp b/src/jsi/jsi_protected.hpp similarity index 98% rename from src/hermes/hermes_protected.hpp rename to src/jsi/jsi_protected.hpp index 889ece6d48e..9edda538607 100644 --- a/src/hermes/hermes_protected.hpp +++ b/src/jsi/jsi_protected.hpp @@ -18,7 +18,7 @@ #pragma once -#include "hermes_types.hpp" +#include "jsi_types.hpp" namespace realm { namespace js { diff --git a/src/hermes/hermes_return_value.hpp b/src/jsi/jsi_return_value.hpp similarity index 52% rename from src/hermes/hermes_return_value.hpp rename to src/jsi/jsi_return_value.hpp index 87a873678cd..5b1c0c87d6e 100644 --- a/src/hermes/hermes_return_value.hpp +++ b/src/jsi/jsi_return_value.hpp @@ -18,71 +18,55 @@ #pragma once -#include "hermes_string.hpp" -#include "hermes_types.hpp" +#include "jsi_string.hpp" +#include "jsi_types.hpp" namespace realm { namespace js { -template <> class ReturnValue { +namespace fbjsi = facebook::jsi; + +template <> class ReturnValue { JsiEnv m_env; - jsi::Value m_value; // defaults to undefined + fbjsi::Value m_value; // defaults to undefined public: ReturnValue(JsiEnv env) : m_env(env) {} - ReturnValue(JsiEnv env, jsi::Value &&value) + ReturnValue(JsiEnv env, fbjsi::Value &&value) : m_env(env), m_value(std::move(value)) {} - ReturnValue(JsiEnv env, const jsi::Value &value) + ReturnValue(JsiEnv env, const fbjsi::Value &value) : m_env(env), m_value(env, value) {} - jsi::Value ToValue() && { return std::move(m_value); } + fbjsi::Value ToValue() && { return std::move(m_value); } void set(JsiVal value) { m_value = std::move(value.get()); } - void set(const jsi::Value &value) { m_value = jsi::Value(m_env, value); } - void set(jsi::Value &&value) { m_value = std::move(value); } - void set(const std::string &string) { - m_value = jsi::Value(m_env, str(m_env, string)); - } + void set(const std::string &string) { m_value = str(m_env, string).get(); } void set(const char *c_str) { if (!c_str) { set_null(); + } else { + m_value = str(m_env, c_str).get(); } - - void set(JsiVal value) { m_value = std::move(value.get()); } - - void set(const std::string &string) { m_value = str(m_env, string).get(); } - - void set(const char *c_str) { - if (!c_str) { - set_null(); - } else { - m_value = str(m_env, c_str).get(); - } - } - - void set(bool boolean) { m_value = jsi::Value(boolean); } - - void set(double number) { m_value = jsi::Value(number); } } - void set(bool boolean) { m_value = jsi::Value(boolean); } + void set(bool boolean) { m_value = fbjsi::Value(boolean); } - void set(double number) { m_value = jsi::Value(number); } + void set(double number) { m_value = fbjsi::Value(number); } void set(int32_t number) { set(double(number)); } void set(uint32_t number) { set(double(number)); } void set(realm::Mixed mixed) { - m_value = jsi::Value( - m_env, TypeMixed::get_instance().wrap(m_env, mixed)); + m_value = + js::Value::from_mixed(m_env, nullptr, mixed).get(); } - void set_null() { m_value = jsi::Value::null(); } + void set_null() { m_value = fbjsi::Value::null(); } - void set_undefined() { m_value = jsi::Value::undefined(); } + void set_undefined() { m_value = fbjsi::Value::undefined(); } template void set(util::Optional value) { if (value) { diff --git a/src/hermes/hermes_string.hpp b/src/jsi/jsi_string.hpp similarity index 80% rename from src/hermes/hermes_string.hpp rename to src/jsi/jsi_string.hpp index 73af99de155..65298aa6cec 100644 --- a/src/hermes/hermes_string.hpp +++ b/src/jsi/jsi_string.hpp @@ -18,13 +18,15 @@ #pragma once -#include "hermes_types.hpp" +#include "jsi_types.hpp" namespace realm { namespace js { -template <> class String { - using StringType = String; +namespace fbjsi = facebook::jsi; + +template <> class String { + using StringType = String; std::string m_str; @@ -47,18 +49,18 @@ template <> class String { operator std::string() && { return std::move(m_str); } operator std::string() const & { return m_str; } - jsi::String ToString(jsi::Runtime *env) { - return jsi::String::createFromUtf8(*env, m_str); + fbjsi::String ToString(fbjsi::Runtime *env) { + return fbjsi::String::createFromUtf8(*env, m_str); } }; -inline jsi::PropNameID propName(JsiEnv env, StringData name) { - return jsi::PropNameID::forUtf8( +inline fbjsi::PropNameID propName(JsiEnv env, StringData name) { + return fbjsi::PropNameID::forUtf8( env, reinterpret_cast(name.data()), name.size()); } inline JsiString str(JsiEnv env, StringData name) { - return env(jsi::String::createFromUtf8( + return env(fbjsi::String::createFromUtf8( env, reinterpret_cast(name.data()), name.size())); } diff --git a/src/hermes/hermes_types.hpp b/src/jsi/jsi_types.hpp similarity index 59% rename from src/hermes/hermes_types.hpp rename to src/jsi/jsi_types.hpp index fcdad9f6e8f..71c09870b0d 100644 --- a/src/hermes/hermes_types.hpp +++ b/src/jsi/jsi_types.hpp @@ -31,7 +31,7 @@ namespace realm { -namespace jsi = facebook::jsi; +namespace fbjsi = facebook::jsi; namespace js { class JsiVal; @@ -41,22 +41,20 @@ class JsiFunc; class JsiEnv { public: - /*implicit*/ JsiEnv(jsi::Runtime &rt) : m_rt(&rt) {} - /*implicit*/ operator jsi::Runtime &() const { return *m_rt; } + /*implicit*/ JsiEnv(fbjsi::Runtime &rt) : m_rt(&rt) {} + /*implicit*/ operator fbjsi::Runtime &() const { return *m_rt; } - jsi::Runtime *operator->() const { return m_rt; } - jsi::Runtime &get() const { return *m_rt; } + fbjsi::Runtime *operator->() const { return m_rt; } + fbjsi::Runtime &get() const { return *m_rt; } - inline JsiFunc globalType(const char *name); - - JsiVal operator()(const jsi::Value &) const; - JsiVal operator()(jsi::Value &&) const; - JsiObj operator()(const jsi::Object &) const; - JsiObj operator()(jsi::Object &&) const; - JsiString operator()(const jsi::String &) const; - JsiString operator()(jsi::String &&) const; - JsiFunc operator()(const jsi::Function &) const; - JsiFunc operator()(jsi::Function &&) const; + JsiVal operator()(const fbjsi::Value &) const; + JsiVal operator()(fbjsi::Value &&) const; + JsiObj operator()(const fbjsi::Object &) const; + JsiObj operator()(fbjsi::Object &&) const; + JsiString operator()(const fbjsi::String &) const; + JsiString operator()(fbjsi::String &&) const; + JsiFunc operator()(const fbjsi::Function &) const; + JsiFunc operator()(fbjsi::Function &&) const; JsiVal null() const; JsiVal undefined() const; @@ -65,8 +63,8 @@ class JsiEnv { /** Warning, this can only appear directly as an argument to callFoo(), not * assigned to a variable! */ - const jsi::Value *args(const JsiVal *argv, size_t argc, - std::vector &&buf = {}) const; + const fbjsi::Value *args(const JsiVal *argv, size_t argc, + std::vector &&buf = {}) const; friend bool operator==(const JsiEnv &a, const JsiEnv &b) { return a.m_rt == b.m_rt; @@ -76,7 +74,7 @@ class JsiEnv { JsiObj obj(std::pair... pairs); private: - jsi::Runtime *m_rt; + fbjsi::Runtime *m_rt; }; template class JsiWrap { @@ -112,34 +110,34 @@ template class JsiWrap { T m_val; }; -class JsiString : public JsiWrap { +class JsiString : public JsiWrap { public: using JsiWrap::JsiWrap; - JsiString(JsiEnv env, const jsi::String &val) - : JsiWrap(env, jsi::Value(env, val).getString(env)) {} + JsiString(JsiEnv env, const fbjsi::String &val) + : JsiWrap(env, fbjsi::Value(env, val).getString(env)) {} }; -class JsiFunc : public JsiWrap { +class JsiFunc : public JsiWrap { public: using JsiWrap::JsiWrap; - JsiFunc(JsiEnv env, const jsi::Function &val) - : JsiWrap(env, jsi::Value(env, val).getObject(env).getFunction(env)) {} + JsiFunc(JsiEnv env, const fbjsi::Function &val) + : JsiWrap(env, fbjsi::Value(env, val).getObject(env).getFunction(env)) {} }; -class JsiObj : public JsiWrap { +class JsiObj : public JsiWrap { public: using JsiWrap::JsiWrap; - JsiObj(JsiEnv env, const jsi::Object &val) - : JsiWrap(env, jsi::Value(env, val).getObject(env)) {} + JsiObj(JsiEnv env, const fbjsi::Object &val) + : JsiWrap(env, fbjsi::Value(env, val).getObject(env)) {} /*implicit*/ JsiObj(JsiFunc f) : JsiWrap(f.env(), std::move(f).get()) {} - explicit JsiObj(JsiEnv env) : JsiWrap(env, jsi::Object(env)) {} + explicit JsiObj(JsiEnv env) : JsiWrap(env, fbjsi::Object(env)) {} }; -class JsiVal : public JsiWrap { +class JsiVal : public JsiWrap { public: using JsiWrap::JsiWrap; - JsiVal(JsiEnv env, const jsi::Value &val) - : JsiWrap(env, jsi::Value(env, val)) {} + JsiVal(JsiEnv env, const fbjsi::Value &val) + : JsiWrap(env, fbjsi::Value(env, val)) {} /*implicit*/ JsiVal(JsiString val) : JsiWrap(val.env(), std::move(val).get()) {} /*implicit*/ JsiVal(JsiFunc val) : JsiWrap(val.env(), std::move(val).get()) {} @@ -149,42 +147,40 @@ class JsiVal : public JsiWrap { JsiObj asObject() && { return {env(), std::move(get()).asObject(env())}; } }; -inline JsiVal JsiEnv::operator()(const jsi::Value &val) const { +inline JsiVal JsiEnv::operator()(const fbjsi::Value &val) const { return {*this, val}; } -inline JsiVal JsiEnv::operator()(jsi::Value &&val) const { +inline JsiVal JsiEnv::operator()(fbjsi::Value &&val) const { return {*this, std::move(val)}; } -inline JsiObj JsiEnv::operator()(const jsi::Object &val) const { +inline JsiObj JsiEnv::operator()(const fbjsi::Object &val) const { return {*this, val}; } -inline JsiObj JsiEnv::operator()(jsi::Object &&val) const { +inline JsiObj JsiEnv::operator()(fbjsi::Object &&val) const { return {*this, std::move(val)}; } -inline JsiString JsiEnv::operator()(const jsi::String &val) const { +inline JsiString JsiEnv::operator()(const fbjsi::String &val) const { return {*this, val}; } -inline JsiString JsiEnv::operator()(jsi::String &&val) const { +inline JsiString JsiEnv::operator()(fbjsi::String &&val) const { return {*this, std::move(val)}; } -inline JsiFunc JsiEnv::operator()(const jsi::Function &val) const { +inline JsiFunc JsiEnv::operator()(const fbjsi::Function &val) const { return {*this, val}; } -inline JsiFunc JsiEnv::operator()(jsi::Function &&val) const { +inline JsiFunc JsiEnv::operator()(fbjsi::Function &&val) const { return {*this, std::move(val)}; } -inline JsiFunc JsiEnv::globalType(const char *name) { - return (*this)(get().global().getPropertyAsFunction(*this, name)); -} +inline JsiVal JsiEnv::null() const { return {*this, fbjsi::Value::null()}; } inline JsiVal JsiEnv::null() const { return {*this, jsi::Value::null()}; } inline JsiVal JsiEnv::undefined() const { - return {*this, jsi::Value::undefined()}; + return {*this, fbjsi::Value::undefined()}; } inline JsiObj JsiEnv::global() const { return {*this, m_rt->global()}; } -inline const jsi::Value *JsiEnv::args(const JsiVal *argv, size_t argc, - std::vector &&buf) const { +inline const fbjsi::Value *JsiEnv::args(const JsiVal *argv, size_t argc, + std::vector &&buf) const { // Special case for 0 or 1 arguments to avoid any copies and allocations. if (argc == 0) return nullptr; @@ -201,12 +197,12 @@ inline const jsi::Value *JsiEnv::args(const JsiVal *argv, size_t argc, template JsiObj JsiEnv::obj(std::pair... pairs) { - auto obj = jsi::Object(*this); + auto obj = fbjsi::Object(*this); (..., obj.setProperty(*this, pairs.first, std::move(pairs.second))); return (*this)(std::move(obj)); } -namespace hermes { +namespace realmjsi { struct Types { using Context = JsiEnv; using GlobalContext = JsiEnv; @@ -215,10 +211,10 @@ struct Types { using String = JsiString; using Function = JsiFunc; - using JsiFunctionCallback = jsi::Value (*)(jsi::Runtime &rt, - const jsi::Value &thisVal, - const jsi::Value *args, - size_t count); + using JsiFunctionCallback = fbjsi::Value (*)(fbjsi::Runtime &rt, + const fbjsi::Value &thisVal, + const fbjsi::Value *args, + size_t count); using JsiIndexGetterCallback = JsiFunctionCallback; using JsiIndexSetterCallback = JsiFunctionCallback; @@ -228,16 +224,6 @@ struct Types { using JsiStringPropertyGetterCallback = JsiFunctionCallback; using JsiStringPropertySetterCallback = JsiFunctionCallback; using JsiStringPropertyEnumeratorCallback = JsiFunctionCallback; -#if 0 - using JsiIndexGetterCallback = jsi::Value(*)(const jsi::CallbackInfo& info, const jsi::Object& instance, uint32_t index); - using JsiIndexSetterCallback = jsi::Value(*)(const jsi::CallbackInfo& info, const jsi::Object& instance, uint32_t index, const jsi::Value& value); - using JsiPropertyGetterCallback = jsi::Value(*)(const jsi::CallbackInfo& info); - using JsiPropertySetterCallback = void(*)(const jsi::CallbackInfo& info, const jsi::Value& value); - - using JsiStringPropertyGetterCallback = jsi::Value(*)(const jsi::CallbackInfo& info, const jsi::Object& instance, const jsi::String& property); - using JsiStringPropertySetterCallback = jsi::Value(*)(const jsi::CallbackInfo& info, const jsi::Object& instance, const jsi::String& property, const jsi::Value& value); - using JsiStringPropertyEnumeratorCallback = jsi::Value(*)(const jsi::CallbackInfo& info, const jsi::Object& instance); -#endif using ConstructorCallback = JsiFunctionCallback; using FunctionCallback = JsiFunctionCallback; @@ -246,14 +232,13 @@ struct Types { using IndexPropertyGetterCallback = JsiIndexGetterCallback; using IndexPropertySetterCallback = JsiIndexSetterCallback; - using StringPropertyGetterCallback = jsi::Value (*)( - jsi::Runtime &, const jsi::Value &, const js::String &); - using StringPropertySetterCallback = jsi::Value (*)(jsi::Runtime &, - const jsi::Value &, - const js::String &, - const jsi::Value &); + using StringPropertyGetterCallback = fbjsi::Value (*)( + fbjsi::Runtime &, const fbjsi::Value &, const js::String &); + using StringPropertySetterCallback = + fbjsi::Value (*)(fbjsi::Runtime &, const fbjsi::Value &, + const js::String &, const fbjsi::Value &); using StringPropertyEnumeratorCallback = JsiStringPropertyEnumeratorCallback; -}; +}; // struct Types template class ObjectWrap; @@ -265,15 +250,15 @@ using Object = js::Object; using Exception = js::Exception; using ReturnValue = js::ReturnValue; -} // namespace hermes +} // namespace realmjsi template <> -inline hermes::Types::Context -hermes::Context::get_global_context(hermes::Types::Context env) { +inline realmjsi::Types::Context +realmjsi::Context::get_global_context(realmjsi::Types::Context env) { return env; } -inline jsi::Function globalType(jsi::Runtime &env, const char *name) { +inline fbjsi::Function globalType(fbjsi::Runtime &env, const char *name) { return env.global().getPropertyAsFunction(env, name); } diff --git a/src/hermes/hermes_value.hpp b/src/jsi/jsi_value.hpp similarity index 64% rename from src/hermes/hermes_value.hpp rename to src/jsi/jsi_value.hpp index b97966c4313..72c294719c3 100644 --- a/src/hermes/hermes_value.hpp +++ b/src/jsi/jsi_value.hpp @@ -18,15 +18,17 @@ #pragma once -#include "hermes_string.hpp" -#include "hermes_types.hpp" +#include "jsi_string.hpp" +#include "jsi_types.hpp" //#include "node_buffer.hpp" namespace realm { namespace js { +namespace fbjsi = facebook::jsi; + template <> -inline const char *hermes::Value::typeof(JsiEnv env, const JsiVal &value) { +inline const char *realmjsi::Value::typeof(JsiEnv env, const JsiVal &value) { if (value->isNull()) { return "null"; } @@ -49,18 +51,18 @@ inline const char *hermes::Value::typeof(JsiEnv env, const JsiVal &value) { } template <> -inline bool hermes::Value::is_array(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_array(JsiEnv env, const JsiVal &value) { return value->isObject() && value->getObject(env).isArray(env); } template <> -inline bool hermes::Value::is_array_buffer(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_array_buffer(JsiEnv env, const JsiVal &value) { return value->isObject() && value->getObject(env).isArrayBuffer(env); } template <> -inline bool hermes::Value::is_array_buffer_view(JsiEnv env, - const JsiVal &value) { +inline bool realmjsi::Value::is_array_buffer_view(JsiEnv env, + const JsiVal &value) { return globalType(env, "ArrayBuffer") .getPropertyAsFunction(env, "isView") .call(env, value) @@ -68,41 +70,41 @@ inline bool hermes::Value::is_array_buffer_view(JsiEnv env, } template <> -inline bool hermes::Value::is_date(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_date(JsiEnv env, const JsiVal &value) { return value->isObject() && value->getObject(env).instanceOf( env, env->global().getPropertyAsFunction(env, "Date")); } template <> -inline bool hermes::Value::is_boolean(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_boolean(JsiEnv env, const JsiVal &value) { return value->isBool(); } template <> -inline bool hermes::Value::is_constructor(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_constructor(JsiEnv env, const JsiVal &value) { return value->isObject() && value->getObject(env).isFunction(env); } template <> -inline bool hermes::Value::is_error(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_error(JsiEnv env, const JsiVal &value) { return value->isObject() && value->getObject(env).instanceOf( env, env->global().getPropertyAsFunction(env, "Error")); } template <> -inline bool hermes::Value::is_function(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_function(JsiEnv env, const JsiVal &value) { return value->isObject() && value->getObject(env).isFunction(env); } template <> -inline bool hermes::Value::is_null(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_null(JsiEnv env, const JsiVal &value) { return value->isNull(); } template <> -inline bool hermes::Value::is_number(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_number(JsiEnv env, const JsiVal &value) { return value->isNumber(); } @@ -116,75 +118,77 @@ inline bool is_bson_type(JsiEnv env, const JsiVal &value, std::string type) { return false; } - return jsi::Value::strictEquals(env, bsonType, JsiVal(str(env, type))); + return fbjsi::Value::strictEquals(env, bsonType, JsiVal(str(env, type))); } template <> -inline bool hermes::Value::is_decimal128(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_decimal128(JsiEnv env, const JsiVal &value) { return is_bson_type(env, value, "Decimal128"); } template <> -inline bool hermes::Value::is_object_id(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_object_id(JsiEnv env, const JsiVal &value) { return is_bson_type(env, value, "ObjectID"); } template <> -inline bool hermes::Value::is_object(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_object(JsiEnv env, const JsiVal &value) { return value->isObject(); } template <> -inline bool hermes::Value::is_string(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_string(JsiEnv env, const JsiVal &value) { return value->isString(); } template <> -inline bool hermes::Value::is_undefined(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_undefined(JsiEnv env, const JsiVal &value) { return value->isUndefined(); } template <> -inline bool hermes::Value::is_binary(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_binary(JsiEnv env, const JsiVal &value) { return Value::is_array_buffer(env, value) || Value::is_array_buffer_view(env, value); } -template <> inline bool hermes::Value::is_valid(const JsiVal &value) { +template <> inline bool realmjsi::Value::is_valid(const JsiVal &value) { return true; // XXX } template <> -inline bool hermes::Value::is_uuid(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::is_uuid(JsiEnv env, const JsiVal &value) { return is_bson_type(env, value, "UUID"); } template <> -inline JsiVal hermes::Value::from_boolean(JsiEnv env, bool boolean) { +inline JsiVal realmjsi::Value::from_boolean(JsiEnv env, bool boolean) { return JsiVal(env, boolean); } -template <> inline JsiVal hermes::Value::from_null(JsiEnv env) { +template <> inline JsiVal realmjsi::Value::from_null(JsiEnv env) { return env.null(); } template <> -inline JsiVal hermes::Value::from_number(JsiEnv env, double number) { +inline JsiVal realmjsi::Value::from_number(JsiEnv env, double number) { return JsiVal(env, number); } template <> -inline JsiVal hermes::Value::from_nonnull_string(JsiEnv env, - const hermes::String &string) { +inline JsiVal +realmjsi::Value::from_nonnull_string(JsiEnv env, + const realmjsi::String &string) { return str(env, StringData(string)); } template <> -inline JsiVal hermes::Value::from_nonnull_binary(JsiEnv env, BinaryData data) { - jsi::ArrayBuffer buffer = globalType(env, "ArrayBuffer") - .callAsConstructor(env, double(data.size())) - .getObject(env) - .getArrayBuffer(env); +inline JsiVal realmjsi::Value::from_nonnull_binary(JsiEnv env, + BinaryData data) { + fbjsi::ArrayBuffer buffer = globalType(env, "ArrayBuffer") + .callAsConstructor(env, double(data.size())) + .getObject(env) + .getArrayBuffer(env); if (data.size()) { memcpy(buffer.data(env), data.data(), data.size()); @@ -193,30 +197,30 @@ inline JsiVal hermes::Value::from_nonnull_binary(JsiEnv env, BinaryData data) { return env(std::move(buffer)); } -template <> inline JsiVal hermes::Value::from_undefined(JsiEnv env) { +template <> inline JsiVal realmjsi::Value::from_undefined(JsiEnv env) { return env.undefined(); } template <> -inline JsiVal hermes::Value::from_uuid(JsiEnv env, const UUID &uuid) { +inline JsiVal realmjsi::Value::from_uuid(JsiEnv env, const UUID &uuid) { return env(globalType(env, "Realm") .getPropertyAsFunction(env, "_UUID") .callAsConstructor(env, str(env, uuid.to_string()))); } template <> -inline bool hermes::Value::to_boolean(JsiEnv env, const JsiVal &value) { +inline bool realmjsi::Value::to_boolean(JsiEnv env, const JsiVal &value) { return value->getBool(); // XXX should do conversion. } template <> -inline hermes::String hermes::Value::to_string(JsiEnv env, - const JsiVal &value) { +inline realmjsi::String realmjsi::Value::to_string(JsiEnv env, + const JsiVal &value) { return value->toString(env).utf8(env); } template <> -inline double hermes::Value::to_number(JsiEnv env, const JsiVal &value) { +inline double realmjsi::Value::to_number(JsiEnv env, const JsiVal &value) { double number = std::nan(""); if (value->isNumber()) { number = value->asNumber(); @@ -229,7 +233,7 @@ inline double hermes::Value::to_number(JsiEnv env, const JsiVal &value) { // exception. } } else if (is_date(env, value)) { - jsi::Object date = value->getObject(env); + fbjsi::Object date = value->getObject(env); number = date.getPropertyAsFunction(env, "getTime") .callWithThis(env, date) .getNumber(); @@ -244,8 +248,8 @@ inline double hermes::Value::to_number(JsiEnv env, const JsiVal &value) { } template <> -inline OwnedBinaryData hermes::Value::to_binary(JsiEnv env, - const JsiVal &value) { +inline OwnedBinaryData realmjsi::Value::to_binary(JsiEnv env, + const JsiVal &value) { auto obj = value->asObject(env); if (obj.isArrayBuffer(env)) { auto buf = std::move(obj).getArrayBuffer(env); @@ -269,27 +273,28 @@ inline OwnedBinaryData hermes::Value::to_binary(JsiEnv env, } template <> -inline JsiObj hermes::Value::to_object(JsiEnv env, const JsiVal &value) { +inline JsiObj realmjsi::Value::to_object(JsiEnv env, const JsiVal &value) { return env(value->asObject(env)); // XXX convert? } template <> -inline JsiObj hermes::Value::to_array(JsiEnv env, const JsiVal &value) { +inline JsiObj realmjsi::Value::to_array(JsiEnv env, const JsiVal &value) { return to_object(env, value); } template <> -inline JsiFunc hermes::Value::to_function(JsiEnv env, const JsiVal &value) { +inline JsiFunc realmjsi::Value::to_function(JsiEnv env, const JsiVal &value) { return env(value->asObject(env).asFunction(env)); } template <> -inline JsiFunc hermes::Value::to_constructor(JsiEnv env, const JsiVal &value) { +inline JsiFunc realmjsi::Value::to_constructor(JsiEnv env, + const JsiVal &value) { return to_function(env, value); } template <> -inline JsiObj hermes::Value::to_date(JsiEnv env, const JsiVal &value) { +inline JsiObj realmjsi::Value::to_date(JsiEnv env, const JsiVal &value) { if (value->isString()) { return env( globalType(env, "Date").callAsConstructor(env, value).asObject(env)); @@ -299,10 +304,10 @@ inline JsiObj hermes::Value::to_date(JsiEnv env, const JsiVal &value) { } template <> -inline JsiVal hermes::Value::from_decimal128(JsiEnv env, - const Decimal128 &number) { +inline JsiVal realmjsi::Value::from_decimal128(JsiEnv env, + const Decimal128 &number) { if (number.is_null()) { - return env(jsi::Value::null()); + return env(fbjsi::Value::null()); } return env(globalType(env, "Realm") @@ -312,21 +317,21 @@ inline JsiVal hermes::Value::from_decimal128(JsiEnv env, } template <> -inline Decimal128 hermes::Value::to_decimal128(JsiEnv env, - const JsiVal &value) { +inline Decimal128 realmjsi::Value::to_decimal128(JsiEnv env, + const JsiVal &value) { return Decimal128(value->toString(env).utf8(env)); } template <> -inline JsiVal hermes::Value::from_object_id(JsiEnv env, - const ObjectId &objectId) { +inline JsiVal realmjsi::Value::from_object_id(JsiEnv env, + const ObjectId &objectId) { return env(globalType(env, "Realm") .getPropertyAsFunction(env, "_ObjectId") .callAsConstructor(env, str(env, objectId.to_string()))); } template <> -inline ObjectId hermes::Value::to_object_id(JsiEnv env, const JsiVal &value) { +inline ObjectId realmjsi::Value::to_object_id(JsiEnv env, const JsiVal &value) { auto objectId = value->asObject(env); return ObjectId(objectId.getPropertyAsFunction(env, "toHexString") .callWithThis(env, objectId) @@ -336,7 +341,7 @@ inline ObjectId hermes::Value::to_object_id(JsiEnv env, const JsiVal &value) { } template <> -inline UUID hermes::Value::to_uuid(JsiEnv env, const JsiVal &value) { +inline UUID realmjsi::Value::to_uuid(JsiEnv env, const JsiVal &value) { auto uuid = value->asObject(env); return UUID(uuid.getPropertyAsFunction(env, "toHexString") .callWithThis(env, uuid) diff --git a/tests/ReactTestApp/.flowconfig b/tests/ReactTestApp/.flowconfig index 315f2747bad..4320b7070ea 100644 --- a/tests/ReactTestApp/.flowconfig +++ b/tests/ReactTestApp/.flowconfig @@ -23,11 +23,10 @@ node_modules/react-native/flow/ [options] emoji=true -esproposal.optional_chaining=enable -esproposal.nullish_coalescing=enable - exact_by_default=true +format.bracket_spacing=false + module.file_ext=.js module.file_ext=.json module.file_ext=.ios.js @@ -63,4 +62,4 @@ untyped-import untyped-type-import [version] -^0.137.0 +^0.158.0 diff --git a/tests/ReactTestApp/.gitignore b/tests/ReactTestApp/.gitignore index ad572e632bc..cc53454ef4e 100644 --- a/tests/ReactTestApp/.gitignore +++ b/tests/ReactTestApp/.gitignore @@ -28,6 +28,7 @@ build/ .gradle local.properties *.iml +*.hprof # node.js # diff --git a/tests/ReactTestApp/android/app/build.gradle b/tests/ReactTestApp/android/app/build.gradle index 9dc20d4898b..b1030b2dd6e 100644 --- a/tests/ReactTestApp/android/app/build.gradle +++ b/tests/ReactTestApp/android/app/build.gradle @@ -193,8 +193,7 @@ dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) //noinspection GradleDynamicVersion - // implementation "com.facebook.react:react-native:+" // From node_modules - implementation project(':ReactAndroid') + implementation "com.facebook.react:react-native:+" // From node_modules // We need to add realm manually, because it is not in the package.json implementation project(":realm") diff --git a/tests/ReactTestApp/android/build.gradle b/tests/ReactTestApp/android/build.gradle index 9305562f08f..650989507d2 100644 --- a/tests/ReactTestApp/android/build.gradle +++ b/tests/ReactTestApp/android/build.gradle @@ -14,7 +14,6 @@ buildscript { } dependencies { classpath("com.android.tools.build:gradle:4.2.2") - classpath('de.undercouch:gradle-download-task:4.0.0') // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } @@ -36,12 +35,4 @@ allprojects { google() maven { url 'https://www.jitpack.io' } } - - configurations.all { - resolutionStrategy { - dependencySubstitution { - substitute module("com.facebook.react:react-native:+") with project(":ReactAndroid") - } - } - } } diff --git a/tests/ReactTestApp/android/settings.gradle b/tests/ReactTestApp/android/settings.gradle index 7fa67862044..fd5bd546e4a 100644 --- a/tests/ReactTestApp/android/settings.gradle +++ b/tests/ReactTestApp/android/settings.gradle @@ -13,14 +13,4 @@ apply from: file("../node_modules/@react-native-community/cli-platform-android/n include ':realm' project(':realm').projectDir = new File(settingsDir, '../../../react-native/android') -include ':ReactAndroid' -project(':ReactAndroid').projectDir = new File( - rootProject.projectDir, '../node_modules/react-native/ReactAndroid') - -// Includes codegen and its plugin into Gradle project. Required by `:ReactAndroid` project configuration. -include ':packages:react-native-codegen:android' -project(':packages:react-native-codegen:android').projectDir = new File(rootProject.projectDir, - '../node_modules/react-native/packages/react-native-codegen/android') -includeBuild('../node_modules/react-native/packages/react-native-codegen/android') - include ':app' diff --git a/tests/ReactTestApp/ios/Podfile b/tests/ReactTestApp/ios/Podfile index 686aa93cd2f..5e85d8e1e50 100644 --- a/tests/ReactTestApp/ios/Podfile +++ b/tests/ReactTestApp/ios/Podfile @@ -1,7 +1,7 @@ require_relative '../node_modules/react-native/scripts/react_native_pods' require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' -platform :ios, '10.0' +platform :ios, '11.0' target 'ReactTestApp' do config = use_native_modules! @@ -30,6 +30,7 @@ target 'ReactTestApp' do post_install do |installer| react_native_post_install(installer) + __apply_Xcode_12_5_M1_post_install_workaround(installer) installer.pods_project.targets.each do |target| # Fix bundle targets' 'Signing Certificate' to 'Sign to Run Locally' if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle" diff --git a/tests/ReactTestApp/ios/ReactTestApp.xcodeproj/project.pbxproj b/tests/ReactTestApp/ios/ReactTestApp.xcodeproj/project.pbxproj index 0b274d3897b..549ca63205a 100644 --- a/tests/ReactTestApp/ios/ReactTestApp.xcodeproj/project.pbxproj +++ b/tests/ReactTestApp/ios/ReactTestApp.xcodeproj/project.pbxproj @@ -8,16 +8,16 @@ /* Begin PBXBuildFile section */ 00E356F31AD99517003FC87E /* ReactTestAppTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* ReactTestAppTests.m */; }; - 04FBCABDC0ABD36F3FC68C78 /* libPods-ReactTestApp-ReactTestAppTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 877CA5D7AB5DD5E4D1E4C52B /* libPods-ReactTestApp-ReactTestAppTests.a */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 69138E1EC42C577828670151 /* libPods-ReactTestApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AD91F60BCB29E51D1BC086DB /* libPods-ReactTestApp.a */; }; + 382BBAB2026965BB86789BF4 /* libPods-ReactTestApp-ReactTestAppTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CA27C2B524CAF602565D5B5 /* libPods-ReactTestApp-ReactTestAppTests.a */; }; 7151BD222685CE3600F1B75D /* RealmTestEventEmitter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7151BD212685CE3600F1B75D /* RealmTestEventEmitter.m */; }; 7151BD232685D04200F1B75D /* RealmTestEventEmitter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7151BD212685CE3600F1B75D /* RealmTestEventEmitter.m */; }; 7151BE9A268C959A00F1B75D /* realm-bundle.realm in Resources */ = {isa = PBXBuildFile; fileRef = 7151BE96268C959A00F1B75D /* realm-bundle.realm */; }; 71E4D3902684ABDE0077A8CA /* RealmJSTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 71E4D38D2684ABDE0077A8CA /* RealmJSTests.mm */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; + C887B4CD8881DECAADB8676D /* libPods-ReactTestApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F08B0CB90190A6A5D1472C7F /* libPods-ReactTestApp.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -40,8 +40,9 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ReactTestApp/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ReactTestApp/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ReactTestApp/main.m; sourceTree = ""; }; - 3825D936865AF110136BE73D /* Pods-ReactTestApp-ReactTestAppTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactTestApp-ReactTestAppTests.debug.xcconfig"; path = "Target Support Files/Pods-ReactTestApp-ReactTestAppTests/Pods-ReactTestApp-ReactTestAppTests.debug.xcconfig"; sourceTree = ""; }; - 6D763AAEED7DA9046D599D2F /* Pods-ReactTestApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactTestApp.release.xcconfig"; path = "Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp.release.xcconfig"; sourceTree = ""; }; + 3C3CF40AE81F1BDA9F536567 /* Pods-ReactTestApp-ReactTestAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactTestApp-ReactTestAppTests.release.xcconfig"; path = "Target Support Files/Pods-ReactTestApp-ReactTestAppTests/Pods-ReactTestApp-ReactTestAppTests.release.xcconfig"; sourceTree = ""; }; + 49E38FF33E8353192CCDBE57 /* Pods-ReactTestApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactTestApp.release.xcconfig"; path = "Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp.release.xcconfig"; sourceTree = ""; }; + 5182A0A4C2C5999620174D88 /* Pods-ReactTestApp-ReactTestAppTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactTestApp-ReactTestAppTests.debug.xcconfig"; path = "Target Support Files/Pods-ReactTestApp-ReactTestAppTests/Pods-ReactTestApp-ReactTestAppTests.debug.xcconfig"; sourceTree = ""; }; 71254FD62694DB3400E30FE7 /* ReactTestApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = ReactTestApp.entitlements; path = ReactTestApp/ReactTestApp.entitlements; sourceTree = ""; }; 71254FDD269843D900E30FE7 /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; name = src; path = ../../../src; sourceTree = ""; }; 7151BD202685CE0D00F1B75D /* RealmTestEventEmitter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RealmTestEventEmitter.h; sourceTree = ""; }; @@ -49,12 +50,11 @@ 7151BE96268C959A00F1B75D /* realm-bundle.realm */ = {isa = PBXFileReference; lastKnownFileType = file; path = "realm-bundle.realm"; sourceTree = ""; }; 71E4D38C2684ABDE0077A8CA /* RealmJSTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealmJSTests.h; sourceTree = ""; }; 71E4D38D2684ABDE0077A8CA /* RealmJSTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RealmJSTests.mm; sourceTree = ""; }; + 7CA27C2B524CAF602565D5B5 /* libPods-ReactTestApp-ReactTestAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactTestApp-ReactTestAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = ReactTestApp/LaunchScreen.storyboard; sourceTree = ""; }; - 877CA5D7AB5DD5E4D1E4C52B /* libPods-ReactTestApp-ReactTestAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactTestApp-ReactTestAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - AD91F60BCB29E51D1BC086DB /* libPods-ReactTestApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactTestApp.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - C2CF9B817B3D98212F25D10A /* Pods-ReactTestApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactTestApp.debug.xcconfig"; path = "Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp.debug.xcconfig"; sourceTree = ""; }; + D2E26DD8723CA27ABC9D15BD /* Pods-ReactTestApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactTestApp.debug.xcconfig"; path = "Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp.debug.xcconfig"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - FC1C06DBC0B934EEC8D588F4 /* Pods-ReactTestApp-ReactTestAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactTestApp-ReactTestAppTests.release.xcconfig"; path = "Target Support Files/Pods-ReactTestApp-ReactTestAppTests/Pods-ReactTestApp-ReactTestAppTests.release.xcconfig"; sourceTree = ""; }; + F08B0CB90190A6A5D1472C7F /* libPods-ReactTestApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactTestApp.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -62,7 +62,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 04FBCABDC0ABD36F3FC68C78 /* libPods-ReactTestApp-ReactTestAppTests.a in Frameworks */, + 382BBAB2026965BB86789BF4 /* libPods-ReactTestApp-ReactTestAppTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -70,7 +70,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 69138E1EC42C577828670151 /* libPods-ReactTestApp.a in Frameworks */, + C887B4CD8881DECAADB8676D /* libPods-ReactTestApp.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -116,23 +116,12 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - AD91F60BCB29E51D1BC086DB /* libPods-ReactTestApp.a */, - 877CA5D7AB5DD5E4D1E4C52B /* libPods-ReactTestApp-ReactTestAppTests.a */, + F08B0CB90190A6A5D1472C7F /* libPods-ReactTestApp.a */, + 7CA27C2B524CAF602565D5B5 /* libPods-ReactTestApp-ReactTestAppTests.a */, ); name = Frameworks; sourceTree = ""; }; - 3DBCEBAA8678B5E1AA547E0A /* Pods */ = { - isa = PBXGroup; - children = ( - C2CF9B817B3D98212F25D10A /* Pods-ReactTestApp.debug.xcconfig */, - 6D763AAEED7DA9046D599D2F /* Pods-ReactTestApp.release.xcconfig */, - 3825D936865AF110136BE73D /* Pods-ReactTestApp-ReactTestAppTests.debug.xcconfig */, - FC1C06DBC0B934EEC8D588F4 /* Pods-ReactTestApp-ReactTestAppTests.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 7151BE95268C959A00F1B75D /* data */ = { isa = PBXGroup; children = ( @@ -159,7 +148,7 @@ 00E356EF1AD99517003FC87E /* ReactTestAppTests */, 83CBBA001A601CBA00E9B192 /* Products */, 2D16E6871FA4F8E400B85C8A /* Frameworks */, - 3DBCEBAA8678B5E1AA547E0A /* Pods */, + D66AA13909597E186D4712AB /* Pods */, ); indentWidth = 2; sourceTree = ""; @@ -175,6 +164,18 @@ name = Products; sourceTree = ""; }; + D66AA13909597E186D4712AB /* Pods */ = { + isa = PBXGroup; + children = ( + D2E26DD8723CA27ABC9D15BD /* Pods-ReactTestApp.debug.xcconfig */, + 49E38FF33E8353192CCDBE57 /* Pods-ReactTestApp.release.xcconfig */, + 5182A0A4C2C5999620174D88 /* Pods-ReactTestApp-ReactTestAppTests.debug.xcconfig */, + 3C3CF40AE81F1BDA9F536567 /* Pods-ReactTestApp-ReactTestAppTests.release.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -182,11 +183,12 @@ isa = PBXNativeTarget; buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "ReactTestAppTests" */; buildPhases = ( - 27348567E0E05DFCC3E289A8 /* [CP] Check Pods Manifest.lock */, + 8E41D571F3DB966B209B315B /* [CP] Check Pods Manifest.lock */, 00E356EA1AD99517003FC87E /* Sources */, 00E356EB1AD99517003FC87E /* Frameworks */, 00E356EC1AD99517003FC87E /* Resources */, - EF25FAF79E5599491DAB02AF /* [CP] Copy Pods Resources */, + 69BA58D14816F1A4FB16B8E0 /* [CP] Embed Pods Frameworks */, + 71F0535264570F68F735298F /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -202,13 +204,14 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactTestApp" */; buildPhases = ( - 045599480AC98B9079672959 /* [CP] Check Pods Manifest.lock */, + 1B1B2D5E971DF5C19D948AAC /* [CP] Check Pods Manifest.lock */, FD10A7F022414F080027D42C /* Start Packager */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 38801E7424E68F29F6495366 /* [CP] Copy Pods Resources */, + 46A08488E40FB4CF2452D78E /* [CP] Embed Pods Frameworks */, + FA59CEA3BD6F24C57F3EE3BC /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -288,9 +291,9 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -e\nexport PLATFORM_NAME=ios\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; + shellScript = "set -e\n\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; }; - 045599480AC98B9079672959 /* [CP] Check Pods Manifest.lock */ = { + 1B1B2D5E971DF5C19D948AAC /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -312,46 +315,41 @@ 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; }; - 27348567E0E05DFCC3E289A8 /* [CP] Check Pods Manifest.lock */ = { + 46A08488E40FB4CF2452D78E /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ReactTestApp-ReactTestAppTests-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); 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"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 38801E7424E68F29F6495366 /* [CP] Copy Pods Resources */ = { + 69BA58D14816F1A4FB16B8E0 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp-resources-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ReactTestApp-ReactTestAppTests/Pods-ReactTestApp-ReactTestAppTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp-resources-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ReactTestApp-ReactTestAppTests/Pods-ReactTestApp-ReactTestAppTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactTestApp-ReactTestAppTests/Pods-ReactTestApp-ReactTestAppTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - EF25FAF79E5599491DAB02AF /* [CP] Copy Pods Resources */ = { + 71F0535264570F68F735298F /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -368,6 +366,45 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactTestApp-ReactTestAppTests/Pods-ReactTestApp-ReactTestAppTests-resources.sh\"\n"; showEnvVarsInLog = 0; }; + 8E41D571F3DB966B209B315B /* [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-ReactTestApp-ReactTestAppTests-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; + }; + FA59CEA3BD6F24C57F3EE3BC /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactTestApp/Pods-ReactTestApp-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; FD10A7F022414F080027D42C /* Start Packager */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -423,7 +460,7 @@ /* Begin XCBuildConfiguration section */ 00E356F61AD99517003FC87E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3825D936865AF110136BE73D /* Pods-ReactTestApp-ReactTestAppTests.debug.xcconfig */; + baseConfigurationReference = 5182A0A4C2C5999620174D88 /* Pods-ReactTestApp-ReactTestAppTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -450,7 +487,7 @@ }; 00E356F71AD99517003FC87E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FC1C06DBC0B934EEC8D588F4 /* Pods-ReactTestApp-ReactTestAppTests.release.xcconfig */; + baseConfigurationReference = 3C3CF40AE81F1BDA9F536567 /* Pods-ReactTestApp-ReactTestAppTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; COPY_PHASE_STRIP = NO; @@ -474,7 +511,7 @@ }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C2CF9B817B3D98212F25D10A /* Pods-ReactTestApp.debug.xcconfig */; + baseConfigurationReference = D2E26DD8723CA27ABC9D15BD /* Pods-ReactTestApp.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -491,7 +528,7 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = io.realm.ReactTests; + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = ReactTestApp; SUPPORTS_MACCATALYST = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -503,7 +540,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6D763AAEED7DA9046D599D2F /* Pods-ReactTestApp.release.xcconfig */; + baseConfigurationReference = 49E38FF33E8353192CCDBE57 /* Pods-ReactTestApp.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -519,7 +556,7 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = io.realm.ReactTests; + PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = ReactTestApp; SUPPORTS_MACCATALYST = YES; SWIFT_VERSION = 5.0; @@ -566,7 +603,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 "; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; EXPANDED_CODE_SIGN_IDENTITY = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; @@ -583,10 +620,17 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../react-native/ios"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; - LIBRARY_SEARCH_PATHS = "\"$(inherited)\""; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -600,7 +644,7 @@ CC = "$(SRCROOT)/../../../scripts/ccache-clang.sh"; CXX = "$(SRCROOT)/../../../scripts/ccache-clang++.sh"; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -631,7 +675,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 "; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; EXPANDED_CODE_SIGN_IDENTITY = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; @@ -641,13 +685,17 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../react-native/ios"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", ); - LIBRARY_SEARCH_PATHS = "\"$(inherited)\""; + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; diff --git a/tests/ReactTestApp/package-lock.json b/tests/ReactTestApp/package-lock.json index 9c7c2359cc6..f81967e710d 100644 --- a/tests/ReactTestApp/package-lock.json +++ b/tests/ReactTestApp/package-lock.json @@ -9,8 +9,8 @@ "version": "0.0.1", "dependencies": { "graceful-fs": "^4.2.4", - "react": "17.0.1", - "react-native": "0.64.2", + "react": "17.0.2", + "react-native": "0.66.0-rc.3", "react-native-exception-handler": "^2.4.3", "react-native-exit-app": "1.1.0", "react-native-fs": "^2.16.6", @@ -24,8 +24,8 @@ "fs-extra": "^4.0.3", "install-local": "^3.0.1", "jest": "^26.6.3", - "metro-react-native-babel-preset": "^0.64.0", - "react-test-renderer": "17.0.1" + "metro-react-native-babel-preset": "^0.66.2", + "react-test-renderer": "17.0.2" } }, "node_modules/@babel/code-frame": { @@ -40,9 +40,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", - "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", "engines": { "node": ">=6.9.0" } @@ -85,11 +85,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", + "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", "dependencies": { - "@babel/types": "^7.14.5", + "@babel/types": "^7.15.4", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -106,11 +106,11 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", - "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", + "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" @@ -129,11 +129,11 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", - "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", + "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", "dependencies": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.15.0", "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" @@ -146,16 +146,16 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", - "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", + "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-member-expression-to-functions": "^7.15.4", + "@babel/helper-optimise-call-expression": "^7.15.4", + "@babel/helper-replace-supers": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4" }, "engines": { "node": ">=6.9.0" @@ -209,86 +209,86 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", + "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", "dependencies": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-get-function-arity": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", + "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", + "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", + "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", + "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", - "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz", + "integrity": "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==", "dependencies": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-module-imports": "^7.15.4", + "@babel/helper-replace-supers": "^7.15.4", + "@babel/helper-simple-access": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", + "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" @@ -302,57 +302,70 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz", + "integrity": "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.15.4", + "@babel/helper-wrap-function": "^7.15.4", + "@babel/types": "^7.15.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", + "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-member-expression-to-functions": "^7.15.4", + "@babel/helper-optimise-call-expression": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", - "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", + "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", - "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", + "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", + "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", "engines": { "node": ">=6.9.0" } @@ -365,6 +378,20 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz", + "integrity": "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==", + "dependencies": { + "@babel/helper-function-name": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helpers": { "version": "7.14.6", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", @@ -448,9 +475,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz", + "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==", "bin": { "parser": "bin/babel-parser.js" }, @@ -458,6 +485,40 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz", + "integrity": "sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4", + "@babel/plugin-proposal-optional-chaining": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz", + "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.15.4", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", @@ -473,6 +534,39 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz", + "integrity": "sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", + "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-export-default-from": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.14.5.tgz", @@ -488,6 +582,54 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", + "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", + "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", + "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", @@ -503,16 +645,32 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", + "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", - "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", + "version": "7.15.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz", + "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==", "dependencies": { - "@babel/compat-data": "^7.14.7", - "@babel/helper-compilation-targets": "^7.14.5", + "@babel/compat-data": "^7.15.0", + "@babel/helper-compilation-targets": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.14.5" + "@babel/plugin-transform-parameters": "^7.15.4" }, "engines": { "node": ">=6.9.0" @@ -552,11 +710,60 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", + "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz", + "integrity": "sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.15.4", + "@babel/helper-create-class-features-plugin": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", + "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -587,6 +794,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -612,6 +834,18 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-flow": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz", @@ -642,7 +876,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -668,7 +901,6 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -691,7 +923,6 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -732,11 +963,25 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -775,6 +1020,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", + "dependencies": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", @@ -790,9 +1051,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", - "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==", + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", + "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -804,16 +1065,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz", - "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz", + "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-annotate-as-pure": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-optimise-call-expression": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", "globals": "^11.1.0" }, "engines": { @@ -851,6 +1112,37 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", + "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", + "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", @@ -882,9 +1174,9 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", - "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", + "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -938,14 +1230,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { + "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz", - "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", + "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "peer": true, "dependencies": { "@babel/helper-module-transforms": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { @@ -955,6 +1247,88 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", + "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.15.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz", + "integrity": "sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==", + "peer": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", + "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz", + "integrity": "sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==", + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", + "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-object-assign": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.14.5.tgz", @@ -985,9 +1359,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", - "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz", + "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1086,6 +1460,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", + "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-runtime": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz", @@ -1162,12 +1551,27 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", + "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz", - "integrity": "sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", + "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.6", + "@babel/helper-create-class-features-plugin": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-typescript": "^7.14.5" }, @@ -1178,6 +1582,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", + "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", @@ -1193,6 +1612,93 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env": { + "version": "7.15.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz", + "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.15.0", + "@babel/helper-compilation-targets": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", + "@babel/plugin-proposal-async-generator-functions": "^7.15.4", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-class-static-block": "^7.15.4", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-json-strings": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.15.6", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.15.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.14.5", + "@babel/plugin-transform-async-to-generator": "^7.14.5", + "@babel/plugin-transform-block-scoped-functions": "^7.14.5", + "@babel/plugin-transform-block-scoping": "^7.15.3", + "@babel/plugin-transform-classes": "^7.15.4", + "@babel/plugin-transform-computed-properties": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.7", + "@babel/plugin-transform-dotall-regex": "^7.14.5", + "@babel/plugin-transform-duplicate-keys": "^7.14.5", + "@babel/plugin-transform-exponentiation-operator": "^7.14.5", + "@babel/plugin-transform-for-of": "^7.15.4", + "@babel/plugin-transform-function-name": "^7.14.5", + "@babel/plugin-transform-literals": "^7.14.5", + "@babel/plugin-transform-member-expression-literals": "^7.14.5", + "@babel/plugin-transform-modules-amd": "^7.14.5", + "@babel/plugin-transform-modules-commonjs": "^7.15.4", + "@babel/plugin-transform-modules-systemjs": "^7.15.4", + "@babel/plugin-transform-modules-umd": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.9", + "@babel/plugin-transform-new-target": "^7.14.5", + "@babel/plugin-transform-object-super": "^7.14.5", + "@babel/plugin-transform-parameters": "^7.15.4", + "@babel/plugin-transform-property-literals": "^7.14.5", + "@babel/plugin-transform-regenerator": "^7.14.5", + "@babel/plugin-transform-reserved-words": "^7.14.5", + "@babel/plugin-transform-shorthand-properties": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-sticky-regex": "^7.14.5", + "@babel/plugin-transform-template-literals": "^7.14.5", + "@babel/plugin-transform-typeof-symbol": "^7.14.5", + "@babel/plugin-transform-unicode-escapes": "^7.14.5", + "@babel/plugin-transform-unicode-regex": "^7.14.5", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.15.6", + "babel-plugin-polyfill-corejs2": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-regenerator": "^0.2.2", + "core-js-compat": "^3.16.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/preset-flow": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.14.5.tgz", @@ -1209,14 +1715,30 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/preset-typescript": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.14.5.tgz", - "integrity": "sha512-u4zO6CdbRKbS9TypMqrlGH7sd2TAJppZwn3c/ZRLeO/wGsbddxgbPDUZVNrie3JWYLQ9vpineKlsrWFvO6Pwkw==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.15.0.tgz", + "integrity": "sha512-lt0Y/8V3y06Wq/8H/u0WakrqciZ7Fz7mwPDHWUJAXlABL5hiUG42BNlRXiELNjeWjO5rWmnNKlx+yzJvxezHow==", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-typescript": "^7.14.5" + "@babel/plugin-transform-typescript": "^7.15.0" }, "engines": { "node": ">=6.9.0" @@ -1226,9 +1748,9 @@ } }, "node_modules/@babel/register": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.14.5.tgz", - "integrity": "sha512-TjJpGz/aDjFGWsItRBQMOFTrmTI9tr79CHOK+KIvLeCkbxuOAk2M5QHjvruIMGoo9OuccMh5euplPzc5FjAKGg==", + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.15.3.tgz", + "integrity": "sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw==", "dependencies": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", @@ -1255,30 +1777,30 @@ } }, "node_modules/@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", + "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", "dependencies": { "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", - "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", + "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", "dependencies": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", + "@babel/generator": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-hoist-variables": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1287,11 +1809,11 @@ } }, "node_modules/@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.15.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", + "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1325,9 +1847,9 @@ "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" }, "node_modules/@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "dependencies": { "@hapi/hoek": "^9.0.0" } @@ -1435,14 +1957,37 @@ } }, "node_modules/@jest/create-cache-key-function": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-26.6.2.tgz", - "integrity": "sha512-LgEuqU1f/7WEIPYqwLPIvvHuc1sB6gMVbT6zWhin3txYUNYK/kGQrC1F2WR4gR34YlI9bBtViTm5z98RqVZAaw==", + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.2.0.tgz", + "integrity": "sha512-o+Q6CAT/mPNxiOGn6+UD/buY8O5cyDHbjD8FXDCUZbzfCwt6zYlmCMObLE+k1i/XJc5M3YIvEeaa6L7x7uAeYQ==", "dependencies": { - "@jest/types": "^26.6.2" + "@jest/types": "^27.1.1" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/create-cache-key-function/node_modules/@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/create-cache-key-function/node_modules/@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dependencies": { + "@types/yargs-parser": "*" } }, "node_modules/@jest/environment": { @@ -1636,24 +2181,77 @@ "chalk": "^4.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": ">= 10.14.2" + } + }, + "node_modules/@react-native-community/cli": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-6.0.1.tgz", + "integrity": "sha512-yi7GzXlXl6wV3O8yNPS5Pa7fQ7Qd/yS4v481FwdT6tJrU185ahhyz7aypALx1AGKXIjPHZ6Zu5ZETotZvF03MA==", + "dependencies": { + "@react-native-community/cli-debugger-ui": "^6.0.0-rc.0", + "@react-native-community/cli-hermes": "^6.0.1", + "@react-native-community/cli-server-api": "^6.0.0-rc.0", + "@react-native-community/cli-tools": "^6.0.0-rc.0", + "@react-native-community/cli-types": "^6.0.0", + "appdirsjs": "^1.2.4", + "chalk": "^3.0.0", + "command-exists": "^1.2.8", + "commander": "^2.19.0", + "cosmiconfig": "^5.1.0", + "deepmerge": "^3.2.0", + "envinfo": "^7.7.2", + "execa": "^1.0.0", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.3", + "graceful-fs": "^4.1.3", + "joi": "^17.2.1", + "leven": "^3.1.0", + "lodash": "^4.17.15", + "metro": "^0.66.1", + "metro-config": "^0.66.1", + "metro-core": "^0.66.1", + "metro-react-native-babel-transformer": "^0.66.1", + "metro-resolver": "^0.66.1", + "metro-runtime": "^0.66.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "node-stream-zip": "^1.9.1", + "ora": "^3.4.0", + "pretty-format": "^26.6.2", + "prompts": "^2.4.0", + "semver": "^6.3.0", + "serve-static": "^1.13.1", + "strip-ansi": "^5.2.0", + "sudo-prompt": "^9.0.0", + "wcwidth": "^1.0.1" + }, + "bin": { + "react-native": "build/bin.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react-native": "*" } }, "node_modules/@react-native-community/cli-debugger-ui": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-5.0.1.tgz", - "integrity": "sha512-5gGKaaXYOVE423BUqxIfvfAVSj5Cg1cU/TpGbeg/iqpy2CfqyWqJB3tTuVUbOOiOvR5wbU8tti6pIi1pchJ+oA==", + "version": "6.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-6.0.0-rc.0.tgz", + "integrity": "sha512-achYcPPoWa9D02C5tn6TBzjeY443wQTyx37urptc75JpZ7gR5YHsDyIEEWa3DDYp1va9zx/iGg+uZ/hWw07GAw==", "dependencies": { "serve-static": "^1.13.1" } }, "node_modules/@react-native-community/cli-hermes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-5.0.1.tgz", - "integrity": "sha512-nD+ZOFvu5MfjLB18eDJ01MNiFrzj8SDtENjGpf0ZRFndOWASDAmU54/UlU/wj8OzTToK1+S1KY7j2P2M1gleww==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-6.0.1.tgz", + "integrity": "sha512-SyBdFpTXlHtm5t/JE+GAY+TyHP97MFMtlIqHiITIEkhuH7ibFCRuyvbEB5Wrh6LKRIfSTykf3tm5TLG3imRhWg==", "dependencies": { - "@react-native-community/cli-platform-android": "^5.0.1", - "@react-native-community/cli-tools": "^5.0.1", + "@react-native-community/cli-platform-android": "^6.0.1", + "@react-native-community/cli-tools": "^6.0.0-rc.0", "chalk": "^3.0.0", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" @@ -1672,11 +2270,11 @@ } }, "node_modules/@react-native-community/cli-platform-android": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-5.0.1.tgz", - "integrity": "sha512-qv9GJX6BJ+Y4qvV34vgxKwwN1cnveXUdP6y2YmTW7XoAYs5YUzKqHajpY58EyucAL2y++6+573t5y4U/9IIoww==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-6.0.1.tgz", + "integrity": "sha512-0dPEE94H4Ug8jfP+sTHgXDlofghB4YsB1WoPa6ciqpP3d4h6DbiczdNhtds6jFFR5W+Q/DfwIwOFtKfWEwg2iQ==", "dependencies": { - "@react-native-community/cli-tools": "^5.0.1", + "@react-native-community/cli-tools": "^6.0.0-rc.0", "chalk": "^3.0.0", "execa": "^1.0.0", "fs-extra": "^8.1.0", @@ -1713,22 +2311,17 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-5.0.1.tgz", - "integrity": "sha512-Nr/edBEYJfElgBNvjDevs2BuDicsvQaM8nYkTGgp33pyuCZRBxsYxQqfsNmnLalTzcYaebjWj6AnjUSxzQBWqg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-6.0.0.tgz", + "integrity": "sha512-+f6X4jDGuPpVcY2NsVAstnId4stnG7EvzLUhs7FUpMFjzss9c1ZJhsqQeKikOtzZbwLzFrpki/QrTK79ur7xSg==", "dependencies": { - "@react-native-community/cli-tools": "^5.0.1", + "@react-native-community/cli-tools": "^6.0.0-rc.0", "chalk": "^3.0.0", "glob": "^7.1.3", "js-yaml": "^3.13.1", "lodash": "^4.17.15", - "plist": "^3.0.1", + "plist": "^3.0.2", "xcode": "^2.0.0" } }, @@ -1745,12 +2338,12 @@ } }, "node_modules/@react-native-community/cli-server-api": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-5.0.1.tgz", - "integrity": "sha512-OOxL+y9AOZayQzmSW+h5T54wQe+QBc/f67Y9QlWzzJhkKJdYx+S4VOooHoD5PFJzGbYaxhu2YF17p517pcEIIA==", + "version": "6.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-6.0.0-rc.0.tgz", + "integrity": "sha512-shPG9RXXpDYeluoB3tzaYU9Ut0jTvZ3osatLLUJkWjbRjFreK9zUcnoFDDrsVT6fEoyeBftp5DSa+wCUnPmcJA==", "dependencies": { - "@react-native-community/cli-debugger-ui": "^5.0.1", - "@react-native-community/cli-tools": "^5.0.1", + "@react-native-community/cli-debugger-ui": "^6.0.0-rc.0", + "@react-native-community/cli-tools": "^6.0.0-rc.0", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.0", @@ -1770,9 +2363,9 @@ } }, "node_modules/@react-native-community/cli-tools": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-5.0.1.tgz", - "integrity": "sha512-XOX5w98oSE8+KnkMZZPMRT7I5TaP8fLbDl0tCu40S7Epz+Zz924n80fmdu6nUDIfPT1nV6yH1hmHmWAWTDOR+Q==", + "version": "6.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-6.0.0-rc.0.tgz", + "integrity": "sha512-N31BhNacTe0UGYQxUx0WHWPKnF4pBe62hNRV9WNJdWqVl4TP45T1Fd/7ziiosfalIar+tOo9Sk0Pqq48x1+wNw==", "dependencies": { "chalk": "^3.0.0", "lodash": "^4.17.15", @@ -1794,23 +2387,56 @@ "node": ">=8" } }, - "node_modules/@react-native-community/cli-tools/node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "bin": { - "mime": "cli.js" + "node_modules/@react-native-community/cli-types": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-6.0.0.tgz", + "integrity": "sha512-K493Fk2DMJC0ZM8s8gnfseKxGasIhuDaCUDeLZcoCSFlrjKEuEs1BKKEJiev0CARhKEXKOyyp/uqYM9nWhisNw==", + "dependencies": { + "ora": "^3.4.0" + } + }, + "node_modules/@react-native-community/cli/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=8" } }, - "node_modules/@react-native-community/cli-types": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-5.0.1.tgz", - "integrity": "sha512-BesXnuFFlU/d1F3+sHhvKt8fUxbQlAbZ3hhMEImp9A6sopl8TEtryUGJ1dbazGjRXcADutxvjwT/i3LJVTIQug==", + "node_modules/@react-native-community/cli/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dependencies": { - "ora": "^3.4.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, "node_modules/@react-native/assets": { @@ -1824,9 +2450,9 @@ "integrity": "sha512-xUNRvNmCl3UGCPbbHvfyFMnpvLPoOjDCcp5bT9m2k+TF/ZBklEQwhPZlkrxRx2NhgFh1X3a5uL7mJ7ZR+8G7Qg==" }, "node_modules/@react-native/polyfills": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-1.0.0.tgz", - "integrity": "sha512-0jbp4RxjYopTsIdLl+/Fy2TiwVYHy4mgeu07DG4b/LyM0OS/+lPP5c9sbnt/AMlnF6qz2JRZpPpGw1eMNS6A4w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz", + "integrity": "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==" }, "node_modules/@sideway/address": { "version": "4.1.2", @@ -2174,9 +2800,9 @@ } }, "node_modules/appdirsjs": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.4.tgz", - "integrity": "sha512-WO5StDORR6JF/xYnXk/Fm0yu+iULaV5ULKuUw0Tu+jbgiTlSquaWBCgbpnsHLMXldf+fM3Gxn5p7vjond7He6w==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.5.tgz", + "integrity": "sha512-UyaAyzj+7XLoKhbXJi4zoAw8IDXCiLNCKfQEiuCsCCTkDmiG1vpCliQn/MoUvO3DZqCN1i6gOahokcFtNSIrVA==" }, "node_modules/are-we-there-yet": { "version": "1.0.6", @@ -2669,15 +3295,15 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.1.tgz", + "integrity": "sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==", "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", + "caniuse-lite": "^1.0.30001259", + "electron-to-chromium": "^1.3.846", "escalade": "^3.1.1", - "node-releases": "^1.1.71" + "nanocolors": "^0.1.5", + "node-releases": "^1.1.76" }, "bin": { "browserslist": "cli.js" @@ -2814,9 +3440,12 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001239", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz", - "integrity": "sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==", + "version": "1.0.30001260", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001260.tgz", + "integrity": "sha512-Fhjc/k8725ItmrvW5QomzxLeojewxvqiYCKeFcfFEhut28IVLdpHU19dneOmltZQIE5HNbawj1HYD+1f2bM1Dg==", + "dependencies": { + "nanocolors": "^0.1.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/browserslist" @@ -3385,11 +4014,11 @@ } }, "node_modules/core-js-compat": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.1.tgz", - "integrity": "sha512-xGhzYMX6y7oEGQGAJmP2TmtBLvR4nZmRGEcFa3ubHOq5YEp51gGN9AovVa0AoujGZIq+Wm6dISiYyGNfdflYww==", + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.0.tgz", + "integrity": "sha512-tRVjOJu4PxdXjRMEgbP7lqWy1TWJu9a01oBkn8d+dNrhgmBwdTkzhHZpVJnEmhISLdoJI1lX08rcBcHi3TZIWg==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.17.0", "semver": "7.0.0" }, "funding": { @@ -3424,26 +4053,6 @@ "node": ">=4" } }, - "node_modules/cosmiconfig/node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cosmiconfig/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "engines": { - "node": ">=4" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3518,9 +4127,9 @@ } }, "node_modules/dayjs": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz", - "integrity": "sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==" + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" }, "node_modules/debug": { "version": "4.3.1", @@ -3711,9 +4320,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "node_modules/electron-to-chromium": { - "version": "1.3.756", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.756.tgz", - "integrity": "sha512-WsmJym1TMeHVndjPjczTFbnRR/c4sbzg8fBFtuhlb2Sru3i/S1VGpzDSrv/It8ctMU2bj8G7g7/O3FzYMGw6eA==" + "version": "1.3.848", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.848.tgz", + "integrity": "sha512-wchRyBcdcmibioggdO7CbMT5QQ4lXlN/g7Mkpf1K2zINidnqij6EVu94UIZ+h5nB2S9XD4bykqFv9LonAWLFyw==" }, "node_modules/emittery": { "version": "0.7.2", @@ -3885,7 +4494,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4677,9 +5285,14 @@ } }, "node_modules/hermes-engine": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.7.2.tgz", - "integrity": "sha512-E2DkRaO97gwL98LPhgfkMqhHiNsrAjIfEk3wWYn2Y31xdkdWn0572H7RnVcGujMJVqZNJvtknxlpsUb8Wzc3KA==" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.9.0.tgz", + "integrity": "sha512-r7U+Y4P2Qg/igFVZN+DpT7JFfXUn1MM4dFne8aW+cCrF6RRymof+VqrUHs1kl07j8h8V2CNesU19RKgWbr3qPw==" + }, + "node_modules/hermes-parser": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.4.7.tgz", + "integrity": "sha512-jc+zCtXbtwTiXoMAoXOHepxAaGVFIp89wwE9qcdwnMd/uGVEtPoY8FaFSsx0ThPvyKirdR2EsIIDVrpbSXz1Ag==" }, "node_modules/hermes-profile-transformer": { "version": "0.0.6", @@ -4813,6 +5426,26 @@ "node": ">=4.0" } }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "engines": { + "node": ">=4" + } + }, "node_modules/import-local": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", @@ -4958,14 +5591,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -5983,9 +6608,9 @@ } }, "node_modules/joi": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.0.tgz", - "integrity": "sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", + "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -6018,9 +6643,9 @@ "dev": true }, "node_modules/jsc-android": { - "version": "245459.0.0", - "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-245459.0.0.tgz", - "integrity": "sha512-wkjURqwaB1daNkDi2OYYbsLnIdC/lUM2nPXQKRs5pqEU9chDg435bjvo+LSaHotDENygHQDHe+ntUkkw2gwMtg==" + "version": "250230.2.1", + "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250230.2.1.tgz", + "integrity": "sha512-KmxeBlRjwoqCnBBKGsihFtvsBHyUFlBxJPK4FzeYcIuBfdjv6jFys44JITAgSTbQD+vIdwMEfyZklsuQX0yI1Q==" }, "node_modules/jscodeshift": { "version": "0.11.0", @@ -6110,11 +6735,6 @@ "node": ">=0.10.0" } }, - "node_modules/jscodeshift/node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, "node_modules/jscodeshift/node_modules/micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -6346,12 +6966,6 @@ "graceful-fs": "^4.1.9" } }, - "node_modules/klaw/node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "optional": true - }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -6631,16 +7245,16 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/metro": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.64.0.tgz", - "integrity": "sha512-G2OC08Rzfs0kqnSEuKo2yZxR+/eNUpA93Ru45c60uN0Dw3HPrDi+ZBipgFftC6iLE0l+6hu8roFFIofotWxybw==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.66.2.tgz", + "integrity": "sha512-uNsISfcQ3iKKSHoN5Q+LAh0l3jeeg7ZcNZ/4BAHGsk02erA0OP+l2m+b5qYVoPptHz9Oc3KyG5oGJoTu41pWjg==", "dependencies": { "@babel/code-frame": "^7.0.0", - "@babel/core": "^7.0.0", - "@babel/generator": "^7.5.0", - "@babel/parser": "^7.0.0", + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", + "@babel/parser": "^7.14.0", "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", + "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "absolute-path": "^0.0.0", "accepts": "^1.3.7", @@ -6653,27 +7267,28 @@ "error-stack-parser": "^2.0.6", "fs-extra": "^1.0.0", "graceful-fs": "^4.1.3", + "hermes-parser": "0.4.7", "image-size": "^0.6.0", "invariant": "^2.2.4", "jest-haste-map": "^26.5.2", "jest-worker": "^26.0.0", "lodash.throttle": "^4.1.1", - "metro-babel-register": "0.64.0", - "metro-babel-transformer": "0.64.0", - "metro-cache": "0.64.0", - "metro-cache-key": "0.64.0", - "metro-config": "0.64.0", - "metro-core": "0.64.0", - "metro-hermes-compiler": "0.64.0", - "metro-inspector-proxy": "0.64.0", - "metro-minify-uglify": "0.64.0", - "metro-react-native-babel-preset": "0.64.0", - "metro-resolver": "0.64.0", - "metro-runtime": "0.64.0", - "metro-source-map": "0.64.0", - "metro-symbolicate": "0.64.0", - "metro-transform-plugins": "0.64.0", - "metro-transform-worker": "0.64.0", + "metro-babel-register": "0.66.2", + "metro-babel-transformer": "0.66.2", + "metro-cache": "0.66.2", + "metro-cache-key": "0.66.2", + "metro-config": "0.66.2", + "metro-core": "0.66.2", + "metro-hermes-compiler": "0.66.2", + "metro-inspector-proxy": "0.66.2", + "metro-minify-uglify": "0.66.2", + "metro-react-native-babel-preset": "0.66.2", + "metro-resolver": "0.66.2", + "metro-runtime": "0.66.2", + "metro-source-map": "0.66.2", + "metro-symbolicate": "0.66.2", + "metro-transform-plugins": "0.66.2", + "metro-transform-worker": "0.66.2", "mime-types": "^2.1.27", "mkdirp": "^0.5.1", "node-fetch": "^2.2.0", @@ -6692,14 +7307,14 @@ } }, "node_modules/metro-babel-register": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.64.0.tgz", - "integrity": "sha512-Kf6YvE3kIRumGnjK0Q9LqGDIdnsX9eFGtNBmBuCVDuB9wGGA/5CgX8We8W7Y44dz1RGTcHJRhfw5iGg+pwC3aQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.66.2.tgz", + "integrity": "sha512-3F+vsVubUPJYKfVMeol8/7pd8CC287Rw92QYzJD8LEmI980xcgwMUEVBZ0UIAUwlLgiJG/f4Mwhuji2EeBXrPg==", "dependencies": { - "@babel/core": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/core": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", "@babel/plugin-transform-flow-strip-types": "^7.0.0", "@babel/plugin-transform-modules-commonjs": "^7.0.0", "@babel/register": "^7.0.0", @@ -6707,62 +7322,63 @@ } }, "node_modules/metro-babel-transformer": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.64.0.tgz", - "integrity": "sha512-itZaxKTgmKGEZWxNzbSZBc22NngrMZzoUNuU92aHSTGkYi2WH4XlvzEHsstmIKHMsRVKl75cA+mNmgk4gBFJKw==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.66.2.tgz", + "integrity": "sha512-aJ/7fc/Xkofw8Fqa51OTDhBzBz26mmpIWrXAZcPdQ8MSTt883EWncxeCEjasc79NJ89BRi7sOkkaWZo2sXlKvw==", "dependencies": { - "@babel/core": "^7.0.0", - "metro-source-map": "0.64.0", + "@babel/core": "^7.14.0", + "hermes-parser": "0.4.7", + "metro-source-map": "0.66.2", "nullthrows": "^1.1.1" } }, "node_modules/metro-cache": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.64.0.tgz", - "integrity": "sha512-QvGfxe/1QQYM9XOlR8W1xqE9eHDw/AgJIgYGn/TxZxBu9Zga+Rgs1omeSZju45D8w5VWgMr83ma5kACgzvOecg==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.66.2.tgz", + "integrity": "sha512-5QCYJtJOHoBSbL3H4/Fpl36oA697C3oYHqsce+Hk/dh2qtODUGpS3gOBhvP1B8iB+H8jJMyR75lZq129LJEsIQ==", "dependencies": { - "metro-core": "0.64.0", + "metro-core": "0.66.2", "mkdirp": "^0.5.1", "rimraf": "^2.5.4" } }, "node_modules/metro-cache-key": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.64.0.tgz", - "integrity": "sha512-O9B65G8L/fopck45ZhdRosyVZdMtUQuX5mBWEC1NRj02iWBIUPLmYMjrunqIe8vHipCMp3DtTCm/65IlBmO8jg==" + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.66.2.tgz", + "integrity": "sha512-WtkNmRt41qOpHh1MkNA4nLiQ/m7iGL90ysSKD+fcLqlUnOBKJptPQm0ZUv8Kfqk18ddWX2KmsSbq+Sf3I6XohQ==" }, "node_modules/metro-config": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.64.0.tgz", - "integrity": "sha512-QhM4asnX5KhlRWaugwVGNNXhX0Z85u5nK0UQ/A90bBb4xWyXqUe20e788VtdA75rkQiiI6wXTCIHWT0afbnjwQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.66.2.tgz", + "integrity": "sha512-0C+PrKKIBNNzLZUKN/8ZDJS2U5FLMOTXDWbvBHIdqb6YXz8WplXR2+xlSlaSCCi5b+GR7cWFWUNeKA4GQS1/AQ==", "dependencies": { "cosmiconfig": "^5.0.5", "jest-validate": "^26.5.2", - "metro": "0.64.0", - "metro-cache": "0.64.0", - "metro-core": "0.64.0", - "metro-runtime": "0.64.0" + "metro": "0.66.2", + "metro-cache": "0.66.2", + "metro-core": "0.66.2", + "metro-runtime": "0.66.2" } }, "node_modules/metro-core": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.64.0.tgz", - "integrity": "sha512-v8ZQ5j72EaUwamQ8pLfHlOHTyp7SbdazvHPzFGDpHnwIQqIT0Bw3Syg8R4regTlVG3ngpeSEAi005UITljmMcQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.66.2.tgz", + "integrity": "sha512-JieLZkef/516yxXYvQxWnf3OWw5rcgWRy76K8JV/wr/i8LGVGulPAXlIi445/QZzXVydzRVASKAEVqyxM5F4mA==", "dependencies": { "jest-haste-map": "^26.5.2", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.64.0" + "metro-resolver": "0.66.2" } }, "node_modules/metro-hermes-compiler": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.64.0.tgz", - "integrity": "sha512-CLAjVDWGAoGhbi2ZyPHnH5YDdfrDIx6+tzFWfHGIMTZkYBXsYta9IfYXBV8lFb6BIbrXLjlXZAOoosknetMPOA==" + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.66.2.tgz", + "integrity": "sha512-nCVL1g9uR6vrw5+X1wjwZruRyMkndnzGRMqjqoljf+nGEqBTD607CR7elXw4fMWn/EM+1y0Vdq5altUu9LdgCA==" }, "node_modules/metro-inspector-proxy": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.64.0.tgz", - "integrity": "sha512-KywbH3GNSz9Iqw4UH3smgaV2dBHHYMISeN7ORntDL/G+xfgPc6vt13d+zFb907YpUcXj5N0vdoiAHI5V/0y8IA==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.66.2.tgz", + "integrity": "sha512-gnLc9121eznwP0iiA9tCBW8qZjwIsCgwHWMF1g1Qaki9le9tzeJv3dK4/lFNGxyfSaLO7vahQEhsEYsiRnTROg==", "dependencies": { "connect": "^3.6.5", "debug": "^2.2.0", @@ -6796,19 +7412,19 @@ } }, "node_modules/metro-minify-uglify": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.64.0.tgz", - "integrity": "sha512-DRwRstqXR5qfte9Nuwoov5dRXxL7fJeVlO5fGyOajWeO3+AgPjvjXh/UcLJqftkMWTPGUFuzAD5/7JC5v5FLWw==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.66.2.tgz", + "integrity": "sha512-7TUK+L5CmB5x1PVnFbgmjzHW4CUadq9H5jgp0HfFoWT1skXAyEsx0DHkKDXwnot0khnNhBOEfl62ctQOnE110Q==", "dependencies": { "uglify-es": "^3.1.9" } }, "node_modules/metro-react-native-babel-preset": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.64.0.tgz", - "integrity": "sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.66.2.tgz", + "integrity": "sha512-H/nLBAz0MgfDloSe1FjyH4EnbokHFdncyERvLPXDACY3ROVRCeUyFNo70ywRGXW2NMbrV4H7KUyU4zkfWhC2HQ==", "dependencies": { - "@babel/core": "^7.0.0", + "@babel/core": "^7.14.0", "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", @@ -6821,6 +7437,7 @@ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", "@babel/plugin-syntax-optional-chaining": "^7.0.0", "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", "@babel/plugin-transform-block-scoping": "^7.0.0", "@babel/plugin-transform-classes": "^7.0.0", "@babel/plugin-transform-computed-properties": "^7.0.0", @@ -6853,15 +7470,16 @@ } }, "node_modules/metro-react-native-babel-transformer": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.64.0.tgz", - "integrity": "sha512-K1sHO3ODBFCr7uEiCQ4RvVr+cQg0EHQF8ChVPnecGh/WDD8udrTq9ECwB0dRfMjAvlsHtRUlJm6ZSI8UPgum2w==", - "dependencies": { - "@babel/core": "^7.0.0", - "babel-preset-fbjs": "^3.3.0", - "metro-babel-transformer": "0.64.0", - "metro-react-native-babel-preset": "0.64.0", - "metro-source-map": "0.64.0", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.66.2.tgz", + "integrity": "sha512-z1ab7ihIT0pJrwgi9q2IH+LcW/xUWMQ0hH+Mrk7wbKQB0RnJdXFoxphrfoVHBHMUu+TBPetUcEkKawkK1e7Cng==", + "dependencies": { + "@babel/core": "^7.14.0", + "babel-preset-fbjs": "^3.4.0", + "hermes-parser": "0.4.7", + "metro-babel-transformer": "0.66.2", + "metro-react-native-babel-preset": "0.66.2", + "metro-source-map": "0.66.2", "nullthrows": "^1.1.1" }, "peerDependencies": { @@ -6869,29 +7487,29 @@ } }, "node_modules/metro-resolver": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.64.0.tgz", - "integrity": "sha512-cJ26Id8Zf+HmS/1vFwu71K3u7ep/+HeXXAJIeVDYf+niE7AWB9FijyMtAlQgbD8elWqv1leJCnQ/xHRFBfGKYA==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.66.2.tgz", + "integrity": "sha512-pXQAJR/xauRf4kWFj2/hN5a77B4jLl0Fom5I3PHp6Arw/KxSBp0cnguXpGLwNQ6zQC0nxKCoYGL9gQpzMnN7Hw==", "dependencies": { "absolute-path": "^0.0.0" } }, "node_modules/metro-runtime": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.64.0.tgz", - "integrity": "sha512-m7XbWOaIOeFX7YcxUhmnOi6Pg8EaeL89xyZ+quZyZVF1aNoTr4w8FfbKxvijpjsytKHIZtd+43m2Wt5JrqyQmQ==" + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.66.2.tgz", + "integrity": "sha512-vFhKBk2ot9FS4b+2v0OTa/guCF/QDAOJubY0CNg7PzCS5+w4y3IvZIcPX4SSS1t8pYEZBLvtdtTDarlDl81xmg==" }, "node_modules/metro-source-map": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.64.0.tgz", - "integrity": "sha512-OCG2rtcp5cLEGYvAbfkl6mEc0J2FPRP4/UCEly+juBk7hawS9bCBMBfhJm/HIsvY1frk6nT2Vsl1O8YBbwyx2g==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.66.2.tgz", + "integrity": "sha512-038tFmB7vSh73VQcDWIbr5O1m+WXWyYafDaOy+1A/2K308YP0oj33gbEgDnZsLZDwcJ+xt1x6KUEBIzlX4YGeQ==", "dependencies": { - "@babel/traverse": "^7.0.0", + "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.64.0", + "metro-symbolicate": "0.66.2", "nullthrows": "^1.1.1", - "ob1": "0.64.0", + "ob1": "0.66.2", "source-map": "^0.5.6", "vlq": "^1.0.0" } @@ -6905,12 +7523,12 @@ } }, "node_modules/metro-symbolicate": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.64.0.tgz", - "integrity": "sha512-qIi+YRrDWnLVmydj6gwidYLPaBsakZRibGWSspuXgHAxOI3UuLwlo4dpQ73Et0gyHjI7ZvRMRY8JPiOntf9AQQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.66.2.tgz", + "integrity": "sha512-u+DeQHyAFXVD7mVP+GST/894WHJ3i/U8oEJFnT7U3P52ZuLgX8n4tMNxhqZU12RcLR6etF8143aP0Ktx1gFLEQ==", "dependencies": { "invariant": "^2.2.4", - "metro-source-map": "0.64.0", + "metro-source-map": "0.66.2", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -6932,34 +7550,34 @@ } }, "node_modules/metro-transform-plugins": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.64.0.tgz", - "integrity": "sha512-iTIRBD/wBI98plfxj8jAoNUUXfXLNlyvcjPtshhpGvdwu9pzQilGfnDnOaaK+vbITcOk9w5oQectXyJwAqTr1A==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.66.2.tgz", + "integrity": "sha512-KTvqplh0ut7oDKovvDG6yzXM02R6X+9b2oVG+qYq8Zd3aCGTi51ASx4ThCNkAHyEvCuJdYg9fxXTL+j+wvhB5w==", "dependencies": { - "@babel/core": "^7.0.0", - "@babel/generator": "^7.5.0", + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", + "@babel/traverse": "^7.14.0", "nullthrows": "^1.1.1" } }, "node_modules/metro-transform-worker": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.64.0.tgz", - "integrity": "sha512-wegRtK8GyLF6IPZRBJp+zsORgA4iX0h1DRpknyAMDCtSbJ4VU2xV/AojteOgAsDvY3ucAGsvfuZLNDJHUdUNHQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.66.2.tgz", + "integrity": "sha512-dO4PtYOMGB7Vzte8aIzX39xytODhmbJrBYPu+zYzlDjyefJZT7BkZ0LkPIThtyJi96xWcGqi9JBSo0CeRupAHw==", "dependencies": { - "@babel/core": "^7.0.0", - "@babel/generator": "^7.5.0", - "@babel/parser": "^7.0.0", + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", + "@babel/parser": "^7.14.0", "@babel/types": "^7.0.0", - "babel-preset-fbjs": "^3.3.0", - "metro": "0.64.0", - "metro-babel-transformer": "0.64.0", - "metro-cache": "0.64.0", - "metro-cache-key": "0.64.0", - "metro-hermes-compiler": "0.64.0", - "metro-source-map": "0.64.0", - "metro-transform-plugins": "0.64.0", + "babel-preset-fbjs": "^3.4.0", + "metro": "0.66.2", + "metro-babel-transformer": "0.66.2", + "metro-cache": "0.66.2", + "metro-cache-key": "0.66.2", + "metro-hermes-compiler": "0.66.2", + "metro-source-map": "0.66.2", + "metro-transform-plugins": "0.66.2", "nullthrows": "^1.1.1" } }, @@ -6981,11 +7599,6 @@ "klaw": "^1.0.0" } }, - "node_modules/metro/node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, "node_modules/metro/node_modules/jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", @@ -7029,14 +7642,14 @@ } }, "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=4.0.0" } }, "node_modules/mime-db": { @@ -7147,6 +7760,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/nanocolors": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", + "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==" + }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -7212,13 +7830,35 @@ } }, "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { "node": "4.x || >=6.0.0" } }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -7287,16 +7927,16 @@ } }, "node_modules/node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==" + "version": "1.1.76", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz", + "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==" }, "node_modules/node-stream-zip": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.13.6.tgz", - "integrity": "sha512-c7tRSVkLNOHvasWgmZ2d86cDgTWEygnkuuHNOY9c0mR3yLZtQTTrGvMaJ/fPs6+LOJn3240y30l5sjLaXFtcvw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", + "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0" }, "funding": { "type": "github", @@ -7384,9 +8024,9 @@ } }, "node_modules/ob1": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.64.0.tgz", - "integrity": "sha512-CO1N+5dhvy+MoAwxz8+fymEUcwsT4a+wHhrHFb02LppcJdHxgcBWviwEhUwKOD2kLMQ7ijrrzybOqpGcqEtvpQ==" + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.66.2.tgz", + "integrity": "sha512-RFewnL/RjE0qQBOuM+2bbY96zmJPIge/aDtsiDbLSb+MOiK8CReAhBHDgL+zrA3F1hQk00lMWpUwYcep750plA==" }, "node_modules/object-assign": { "version": "4.1.1", @@ -7858,13 +8498,12 @@ } }, "node_modules/plist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz", - "integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", + "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", "dependencies": { "base64-js": "^1.5.1", - "xmlbuilder": "^9.0.7", - "xmldom": "^0.5.0" + "xmlbuilder": "^9.0.7" }, "engines": { "node": ">=6" @@ -8015,9 +8654,9 @@ } }, "node_modules/react": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", - "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -8061,38 +8700,37 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "node_modules/react-native": { - "version": "0.64.2", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.64.2.tgz", - "integrity": "sha512-Ty/fFHld9DcYsFZujXYdeVjEhvSeQcwuTGXezyoOkxfiGEGrpL/uwUZvMzwShnU4zbbTKDu2PAm/uwuOittRGA==", - "dependencies": { - "@jest/create-cache-key-function": "^26.5.0", - "@react-native-community/cli": "^5.0.1-alpha.1", - "@react-native-community/cli-platform-android": "^5.0.1-alpha.1", - "@react-native-community/cli-platform-ios": "^5.0.1-alpha.1", + "version": "0.66.0-rc.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.66.0-rc.3.tgz", + "integrity": "sha512-iSdMqPZI26ua/8ENgsm8y1n0tNstG0NLMM921SsnI9ci9g1Lx6vDcPjZYQ3dKQh7gpg5lr5D1XAmbHW5ze8tgA==", + "dependencies": { + "@jest/create-cache-key-function": "^27.0.1", + "@react-native-community/cli": "^6.0.0", + "@react-native-community/cli-platform-android": "^6.0.0", + "@react-native-community/cli-platform-ios": "^6.0.0", "@react-native/assets": "1.0.0", "@react-native/normalize-color": "1.0.0", - "@react-native/polyfills": "1.0.0", + "@react-native/polyfills": "2.0.0", "abort-controller": "^3.0.0", "anser": "^1.4.9", "base64-js": "^1.1.2", "event-target-shim": "^5.0.1", - "hermes-engine": "~0.7.0", + "hermes-engine": "~0.9.0", "invariant": "^2.2.4", - "jsc-android": "^245459.0.0", - "metro-babel-register": "0.64.0", - "metro-react-native-babel-transformer": "0.64.0", - "metro-runtime": "0.64.0", - "metro-source-map": "0.64.0", + "jsc-android": "^250230.2.1", + "metro-babel-register": "0.66.2", + "metro-react-native-babel-transformer": "0.66.2", + "metro-runtime": "0.66.2", + "metro-source-map": "0.66.2", "nullthrows": "^1.1.1", "pretty-format": "^26.5.2", "promise": "^8.0.3", "prop-types": "^15.7.2", - "react-devtools-core": "^4.6.0", - "react-native-codegen": "^0.0.6", + "react-devtools-core": "^4.13.0", + "react-native-codegen": "^0.0.7", "react-refresh": "^0.4.0", "regenerator-runtime": "^0.13.2", - "scheduler": "^0.20.1", - "shelljs": "^0.8.4", + "scheduler": "^0.20.2", "stacktrace-parser": "^0.1.3", "use-subscription": "^1.0.0", "whatwg-fetch": "^3.0.0", @@ -8105,146 +8743,44 @@ "node": ">=12" }, "peerDependencies": { - "react": "17.0.1" + "react": "17.0.2" } }, "node_modules/react-native-codegen": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.0.6.tgz", - "integrity": "sha512-cMvrUelD81wiPitEPiwE/TCNscIVauXxmt4NTGcy18HrUd0WRWXfYzAQGXm0eI87u3NMudNhqFj2NISJenxQHg==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.0.7.tgz", + "integrity": "sha512-dwNgR8zJ3ALr480QnAmpTiqvFo+rDtq6V5oCggKhYFlRjzOmVSFn3YD41u8ltvKS5G2nQ8gCs2vReFFnRGLYng==", "dependencies": { "flow-parser": "^0.121.0", "jscodeshift": "^0.11.0", "nullthrows": "^1.1.1" } - }, - "node_modules/react-native-exception-handler": { - "version": "2.10.10", - "resolved": "https://registry.npmjs.org/react-native-exception-handler/-/react-native-exception-handler-2.10.10.tgz", - "integrity": "sha512-otAXGoZDl1689OoUJWN/rXxVbdoZ3xcmyF1uq/CsizdLwwyZqVGd6d+p/vbYvnF996FfEyAEBnHrdFxulTn51w==", - "peerDependencies": { - "react": "*", - "react-native": "*" - } - }, - "node_modules/react-native-exit-app": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/react-native-exit-app/-/react-native-exit-app-1.1.0.tgz", - "integrity": "sha512-Spne19zfMfJvnUTX909EHUqWMk69rATtLJq9XMBGpNSHhx0M7v5yetx2Z87egBhLOqQm+CWfD/oxWzDG8rbIQA==" - }, - "node_modules/react-native-fs": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/react-native-fs/-/react-native-fs-2.18.0.tgz", - "integrity": "sha512-9iQhkUNnN2JNED0in06JwZy88YEVyIGKWz4KLlQYxa5Y2U0U2AZh9FUHtA04oWj+xt2LlHh0LFPCzhmNsAsUDg==", - "dependencies": { - "base-64": "^0.1.0", - "utf8": "^3.0.0" - }, - "peerDependencies": { - "react-native": "*", - "react-native-windows": "*" - } - }, - "node_modules/react-native/node_modules/@react-native-community/cli": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-5.0.1.tgz", - "integrity": "sha512-9VzSYUYSEqxEH5Ib2UNSdn2eyPiYZ4T7Y79o9DKtRBuSaUIwbCUdZtIm+UUjBpLS1XYBkW26FqL8/UdZDmQvXw==", - "dependencies": { - "@react-native-community/cli-debugger-ui": "^5.0.1", - "@react-native-community/cli-hermes": "^5.0.1", - "@react-native-community/cli-server-api": "^5.0.1", - "@react-native-community/cli-tools": "^5.0.1", - "@react-native-community/cli-types": "^5.0.1", - "appdirsjs": "^1.2.4", - "chalk": "^3.0.0", - "command-exists": "^1.2.8", - "commander": "^2.19.0", - "cosmiconfig": "^5.1.0", - "deepmerge": "^3.2.0", - "envinfo": "^7.7.2", - "execa": "^1.0.0", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0", - "glob": "^7.1.3", - "graceful-fs": "^4.1.3", - "joi": "^17.2.1", - "leven": "^3.1.0", - "lodash": "^4.17.15", - "metro": "^0.64.0", - "metro-config": "^0.64.0", - "metro-core": "^0.64.0", - "metro-react-native-babel-transformer": "^0.64.0", - "metro-resolver": "^0.64.0", - "metro-runtime": "^0.64.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "node-stream-zip": "^1.9.1", - "ora": "^3.4.0", - "pretty-format": "^26.6.2", - "prompts": "^2.4.0", - "semver": "^6.3.0", - "serve-static": "^1.13.1", - "strip-ansi": "^5.2.0", - "sudo-prompt": "^9.0.0", - "wcwidth": "^1.0.1" - }, - "bin": { - "react-native": "build/bin.js" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react-native": ">=0.64.0-rc.0 || 0.0.0-*" - } - }, - "node_modules/react-native/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/react-native/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-native/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" + }, + "node_modules/react-native-exception-handler": { + "version": "2.10.10", + "resolved": "https://registry.npmjs.org/react-native-exception-handler/-/react-native-exception-handler-2.10.10.tgz", + "integrity": "sha512-otAXGoZDl1689OoUJWN/rXxVbdoZ3xcmyF1uq/CsizdLwwyZqVGd6d+p/vbYvnF996FfEyAEBnHrdFxulTn51w==", + "peerDependencies": { + "react": "*", + "react-native": "*" } }, - "node_modules/react-native/node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "node_modules/react-native-exit-app": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/react-native-exit-app/-/react-native-exit-app-1.1.0.tgz", + "integrity": "sha512-Spne19zfMfJvnUTX909EHUqWMk69rATtLJq9XMBGpNSHhx0M7v5yetx2Z87egBhLOqQm+CWfD/oxWzDG8rbIQA==" }, - "node_modules/react-native/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/react-native-fs": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/react-native-fs/-/react-native-fs-2.18.0.tgz", + "integrity": "sha512-9iQhkUNnN2JNED0in06JwZy88YEVyIGKWz4KLlQYxa5Y2U0U2AZh9FUHtA04oWj+xt2LlHh0LFPCzhmNsAsUDg==", "dependencies": { - "ansi-regex": "^4.1.0" + "base-64": "^0.1.0", + "utf8": "^3.0.0" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "react-native": "*", + "react-native-windows": "*" } }, "node_modules/react-refresh": { @@ -8269,18 +8805,18 @@ } }, "node_modules/react-test-renderer": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.1.tgz", - "integrity": "sha512-/dRae3mj6aObwkjCcxZPlxDFh73XZLgvwhhyON2haZGUEhiaY5EjfAdw+d/rQmlcFwdTpMXCSGVk374QbCTlrA==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", + "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", "dev": true, "dependencies": { "object-assign": "^4.1.1", - "react-is": "^17.0.1", + "react-is": "^17.0.2", "react-shallow-renderer": "^16.13.1", - "scheduler": "^0.20.1" + "scheduler": "^0.20.2" }, "peerDependencies": { - "react": "17.0.1" + "react": "17.0.2" } }, "node_modules/read-pkg": { @@ -8357,9 +8893,9 @@ } }, "node_modules/recast": { - "version": "0.20.4", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.4.tgz", - "integrity": "sha512-6qLIBGGRcwjrTZGIiBpJVC/NeuXpogXNyRQpqU1zWPUigCphvApoCs9KIwDYh1eDuJ6dAFlQoi/QUyE5KQ6RBQ==", + "version": "0.20.5", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz", + "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==", "dependencies": { "ast-types": "0.14.2", "esprima": "~4.0.0", @@ -8370,17 +8906,6 @@ "node": ">= 4" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -8875,6 +9400,17 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -8986,22 +9522,6 @@ "jsonify": "~0.0.0" } }, - "node_modules/shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", @@ -9822,9 +10342,9 @@ } }, "node_modules/tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/tunnel-agent": { "version": "0.6.0", @@ -10398,14 +10918,6 @@ "sax": "^1.2.1" } }, - "node_modules/xmldom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz", - "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -10469,9 +10981,9 @@ } }, "@babel/compat-data": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", - "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==" + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" }, "@babel/core": { "version": "7.14.6", @@ -10503,11 +11015,11 @@ } }, "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", + "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", "requires": { - "@babel/types": "^7.14.5", + "@babel/types": "^7.15.4", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -10520,11 +11032,11 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", - "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", + "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -10537,27 +11049,27 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", - "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", + "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", "requires": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.15.0", "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", - "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", + "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-member-expression-to-functions": "^7.15.4", + "@babel/helper-optimise-call-expression": "^7.15.4", + "@babel/helper-replace-supers": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4" } }, "@babel/helper-create-regexp-features-plugin": { @@ -10593,68 +11105,68 @@ } }, "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", + "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-get-function-arity": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", + "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", + "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", + "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", + "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-module-transforms": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", - "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz", + "integrity": "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==", "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-module-imports": "^7.15.4", + "@babel/helper-replace-supers": "^7.15.4", + "@babel/helper-simple-access": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.6" } }, "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", + "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-plugin-utils": { @@ -10662,51 +11174,72 @@ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" }, + "@babel/helper-remap-async-to-generator": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz", + "integrity": "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.15.4", + "@babel/helper-wrap-function": "^7.15.4", + "@babel/types": "^7.15.4" + } + }, "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", + "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-member-expression-to-functions": "^7.15.4", + "@babel/helper-optimise-call-expression": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/helper-simple-access": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", - "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", + "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", - "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", + "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", + "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.15.4" } }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/helper-validator-option": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" }, + "@babel/helper-wrap-function": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz", + "integrity": "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==", + "requires": { + "@babel/helper-function-name": "^7.15.4", + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" + } + }, "@babel/helpers": { "version": "7.14.6", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", @@ -10774,9 +11307,31 @@ } }, "@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz", + "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==" + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz", + "integrity": "sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4", + "@babel/plugin-proposal-optional-chaining": "^7.14.5" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz", + "integrity": "sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.15.4", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } }, "@babel/plugin-proposal-class-properties": { "version": "7.14.5", @@ -10787,6 +11342,27 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz", + "integrity": "sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==", + "peer": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", + "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, "@babel/plugin-proposal-export-default-from": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.14.5.tgz", @@ -10796,6 +11372,36 @@ "@babel/plugin-syntax-export-default-from": "^7.14.5" } }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", + "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", + "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", + "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", @@ -10805,16 +11411,26 @@ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", + "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", - "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", + "version": "7.15.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz", + "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==", "requires": { - "@babel/compat-data": "^7.14.7", - "@babel/helper-compilation-targets": "^7.14.5", + "@babel/compat-data": "^7.15.0", + "@babel/helper-compilation-targets": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.14.5" + "@babel/plugin-transform-parameters": "^7.15.4" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -10836,11 +11452,42 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, + "@babel/plugin-proposal-private-methods": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", + "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "peer": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz", + "integrity": "sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==", + "peer": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.15.4", + "@babel/helper-create-class-features-plugin": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", + "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "peer": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } @@ -10862,6 +11509,15 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -10878,6 +11534,15 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, "@babel/plugin-syntax-flow": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz", @@ -10899,7 +11564,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } @@ -10916,7 +11580,6 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } @@ -10933,7 +11596,6 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } @@ -10962,11 +11624,19 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5" } @@ -10987,6 +11657,16 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5" + } + }, "@babel/plugin-transform-block-scoped-functions": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", @@ -10996,24 +11676,24 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", - "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==", + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", + "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", "requires": { "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-classes": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz", - "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz", + "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==", "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-annotate-as-pure": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-optimise-call-expression": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", "globals": "^11.1.0" } }, @@ -11033,6 +11713,25 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", + "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "peer": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", + "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-transform-exponentiation-operator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", @@ -11052,9 +11751,9 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", - "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", + "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==", "requires": { "@babel/helper-plugin-utils": "^7.14.5" } @@ -11084,17 +11783,69 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, - "@babel/plugin-transform-modules-commonjs": { + "@babel/plugin-transform-modules-amd": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz", - "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", + "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "peer": true, "requires": { "@babel/helper-module-transforms": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", "babel-plugin-dynamic-import-node": "^2.3.3" } }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", + "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", + "requires": { + "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.15.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz", + "integrity": "sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==", + "peer": true, + "requires": { + "@babel/helper-hoist-variables": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", + "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "peer": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz", + "integrity": "sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==", + "peer": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", + "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-transform-object-assign": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.14.5.tgz", @@ -11113,9 +11864,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", - "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz", + "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==", "requires": { "@babel/helper-plugin-utils": "^7.14.5" } @@ -11172,6 +11923,15 @@ "regenerator-transform": "^0.14.2" } }, + "@babel/plugin-transform-reserved-words": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", + "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-transform-runtime": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz", @@ -11218,16 +11978,34 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", + "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-transform-typescript": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz", - "integrity": "sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", + "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.6", + "@babel/helper-create-class-features-plugin": "^7.15.4", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-typescript": "^7.14.5" } }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", + "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "peer": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-transform-unicode-regex": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", @@ -11237,6 +12015,87 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/preset-env": { + "version": "7.15.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz", + "integrity": "sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==", + "peer": true, + "requires": { + "@babel/compat-data": "^7.15.0", + "@babel/helper-compilation-targets": "^7.15.4", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", + "@babel/plugin-proposal-async-generator-functions": "^7.15.4", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-class-static-block": "^7.15.4", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-json-strings": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.15.6", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.15.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.14.5", + "@babel/plugin-transform-async-to-generator": "^7.14.5", + "@babel/plugin-transform-block-scoped-functions": "^7.14.5", + "@babel/plugin-transform-block-scoping": "^7.15.3", + "@babel/plugin-transform-classes": "^7.15.4", + "@babel/plugin-transform-computed-properties": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.7", + "@babel/plugin-transform-dotall-regex": "^7.14.5", + "@babel/plugin-transform-duplicate-keys": "^7.14.5", + "@babel/plugin-transform-exponentiation-operator": "^7.14.5", + "@babel/plugin-transform-for-of": "^7.15.4", + "@babel/plugin-transform-function-name": "^7.14.5", + "@babel/plugin-transform-literals": "^7.14.5", + "@babel/plugin-transform-member-expression-literals": "^7.14.5", + "@babel/plugin-transform-modules-amd": "^7.14.5", + "@babel/plugin-transform-modules-commonjs": "^7.15.4", + "@babel/plugin-transform-modules-systemjs": "^7.15.4", + "@babel/plugin-transform-modules-umd": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.9", + "@babel/plugin-transform-new-target": "^7.14.5", + "@babel/plugin-transform-object-super": "^7.14.5", + "@babel/plugin-transform-parameters": "^7.15.4", + "@babel/plugin-transform-property-literals": "^7.14.5", + "@babel/plugin-transform-regenerator": "^7.14.5", + "@babel/plugin-transform-reserved-words": "^7.14.5", + "@babel/plugin-transform-shorthand-properties": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-sticky-regex": "^7.14.5", + "@babel/plugin-transform-template-literals": "^7.14.5", + "@babel/plugin-transform-typeof-symbol": "^7.14.5", + "@babel/plugin-transform-unicode-escapes": "^7.14.5", + "@babel/plugin-transform-unicode-regex": "^7.14.5", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.15.6", + "babel-plugin-polyfill-corejs2": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-regenerator": "^0.2.2", + "core-js-compat": "^3.16.0", + "semver": "^6.3.0" + } + }, "@babel/preset-flow": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.14.5.tgz", @@ -11247,20 +12106,33 @@ "@babel/plugin-transform-flow-strip-types": "^7.14.5" } }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "peer": 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/preset-typescript": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.14.5.tgz", - "integrity": "sha512-u4zO6CdbRKbS9TypMqrlGH7sd2TAJppZwn3c/ZRLeO/wGsbddxgbPDUZVNrie3JWYLQ9vpineKlsrWFvO6Pwkw==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.15.0.tgz", + "integrity": "sha512-lt0Y/8V3y06Wq/8H/u0WakrqciZ7Fz7mwPDHWUJAXlABL5hiUG42BNlRXiELNjeWjO5rWmnNKlx+yzJvxezHow==", "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-typescript": "^7.14.5" + "@babel/plugin-transform-typescript": "^7.15.0" } }, "@babel/register": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.14.5.tgz", - "integrity": "sha512-TjJpGz/aDjFGWsItRBQMOFTrmTI9tr79CHOK+KIvLeCkbxuOAk2M5QHjvruIMGoo9OuccMh5euplPzc5FjAKGg==", + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.15.3.tgz", + "integrity": "sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw==", "requires": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", @@ -11278,37 +12150,37 @@ } }, "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", + "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", "requires": { "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4" } }, "@babel/traverse": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", - "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", + "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", + "@babel/generator": "^7.15.4", + "@babel/helper-function-name": "^7.15.4", + "@babel/helper-hoist-variables": "^7.15.4", + "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/parser": "^7.15.4", + "@babel/types": "^7.15.4", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.15.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", + "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } }, @@ -11333,9 +12205,9 @@ "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" }, "@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "requires": { "@hapi/hoek": "^9.0.0" } @@ -11427,11 +12299,33 @@ } }, "@jest/create-cache-key-function": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-26.6.2.tgz", - "integrity": "sha512-LgEuqU1f/7WEIPYqwLPIvvHuc1sB6gMVbT6zWhin3txYUNYK/kGQrC1F2WR4gR34YlI9bBtViTm5z98RqVZAaw==", + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.2.0.tgz", + "integrity": "sha512-o+Q6CAT/mPNxiOGn6+UD/buY8O5cyDHbjD8FXDCUZbzfCwt6zYlmCMObLE+k1i/XJc5M3YIvEeaa6L7x7uAeYQ==", "requires": { - "@jest/types": "^26.6.2" + "@jest/types": "^27.1.1" + }, + "dependencies": { + "@jest/types": { + "version": "27.1.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz", + "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "requires": { + "@types/yargs-parser": "*" + } + } } }, "@jest/environment": { @@ -11607,21 +12501,99 @@ "chalk": "^4.0.0" } }, + "@react-native-community/cli": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-6.0.1.tgz", + "integrity": "sha512-yi7GzXlXl6wV3O8yNPS5Pa7fQ7Qd/yS4v481FwdT6tJrU185ahhyz7aypALx1AGKXIjPHZ6Zu5ZETotZvF03MA==", + "requires": { + "@react-native-community/cli-debugger-ui": "^6.0.0-rc.0", + "@react-native-community/cli-hermes": "^6.0.1", + "@react-native-community/cli-server-api": "^6.0.0-rc.0", + "@react-native-community/cli-tools": "^6.0.0-rc.0", + "@react-native-community/cli-types": "^6.0.0", + "appdirsjs": "^1.2.4", + "chalk": "^3.0.0", + "command-exists": "^1.2.8", + "commander": "^2.19.0", + "cosmiconfig": "^5.1.0", + "deepmerge": "^3.2.0", + "envinfo": "^7.7.2", + "execa": "^1.0.0", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.3", + "graceful-fs": "^4.1.3", + "joi": "^17.2.1", + "leven": "^3.1.0", + "lodash": "^4.17.15", + "metro": "^0.66.1", + "metro-config": "^0.66.1", + "metro-core": "^0.66.1", + "metro-react-native-babel-transformer": "^0.66.1", + "metro-resolver": "^0.66.1", + "metro-runtime": "^0.66.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "node-stream-zip": "^1.9.1", + "ora": "^3.4.0", + "pretty-format": "^26.6.2", + "prompts": "^2.4.0", + "semver": "^6.3.0", + "serve-static": "^1.13.1", + "strip-ansi": "^5.2.0", + "sudo-prompt": "^9.0.0", + "wcwidth": "^1.0.1" + }, + "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==" + }, + "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" + } + }, + "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" + } + }, + "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" + } + } + } + }, "@react-native-community/cli-debugger-ui": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-5.0.1.tgz", - "integrity": "sha512-5gGKaaXYOVE423BUqxIfvfAVSj5Cg1cU/TpGbeg/iqpy2CfqyWqJB3tTuVUbOOiOvR5wbU8tti6pIi1pchJ+oA==", + "version": "6.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-6.0.0-rc.0.tgz", + "integrity": "sha512-achYcPPoWa9D02C5tn6TBzjeY443wQTyx37urptc75JpZ7gR5YHsDyIEEWa3DDYp1va9zx/iGg+uZ/hWw07GAw==", "requires": { "serve-static": "^1.13.1" } }, "@react-native-community/cli-hermes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-5.0.1.tgz", - "integrity": "sha512-nD+ZOFvu5MfjLB18eDJ01MNiFrzj8SDtENjGpf0ZRFndOWASDAmU54/UlU/wj8OzTToK1+S1KY7j2P2M1gleww==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-6.0.1.tgz", + "integrity": "sha512-SyBdFpTXlHtm5t/JE+GAY+TyHP97MFMtlIqHiITIEkhuH7ibFCRuyvbEB5Wrh6LKRIfSTykf3tm5TLG3imRhWg==", "requires": { - "@react-native-community/cli-platform-android": "^5.0.1", - "@react-native-community/cli-tools": "^5.0.1", + "@react-native-community/cli-platform-android": "^6.0.1", + "@react-native-community/cli-tools": "^6.0.0-rc.0", "chalk": "^3.0.0", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" @@ -11639,11 +12611,11 @@ } }, "@react-native-community/cli-platform-android": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-5.0.1.tgz", - "integrity": "sha512-qv9GJX6BJ+Y4qvV34vgxKwwN1cnveXUdP6y2YmTW7XoAYs5YUzKqHajpY58EyucAL2y++6+573t5y4U/9IIoww==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-6.0.1.tgz", + "integrity": "sha512-0dPEE94H4Ug8jfP+sTHgXDlofghB4YsB1WoPa6ciqpP3d4h6DbiczdNhtds6jFFR5W+Q/DfwIwOFtKfWEwg2iQ==", "requires": { - "@react-native-community/cli-tools": "^5.0.1", + "@react-native-community/cli-tools": "^6.0.0-rc.0", "chalk": "^3.0.0", "execa": "^1.0.0", "fs-extra": "^8.1.0", @@ -11673,25 +12645,20 @@ "jsonfile": "^4.0.0", "universalify": "^0.1.0" } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" } } }, "@react-native-community/cli-platform-ios": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-5.0.1.tgz", - "integrity": "sha512-Nr/edBEYJfElgBNvjDevs2BuDicsvQaM8nYkTGgp33pyuCZRBxsYxQqfsNmnLalTzcYaebjWj6AnjUSxzQBWqg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-6.0.0.tgz", + "integrity": "sha512-+f6X4jDGuPpVcY2NsVAstnId4stnG7EvzLUhs7FUpMFjzss9c1ZJhsqQeKikOtzZbwLzFrpki/QrTK79ur7xSg==", "requires": { - "@react-native-community/cli-tools": "^5.0.1", + "@react-native-community/cli-tools": "^6.0.0-rc.0", "chalk": "^3.0.0", "glob": "^7.1.3", "js-yaml": "^3.13.1", "lodash": "^4.17.15", - "plist": "^3.0.1", + "plist": "^3.0.2", "xcode": "^2.0.0" }, "dependencies": { @@ -11707,12 +12674,12 @@ } }, "@react-native-community/cli-server-api": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-5.0.1.tgz", - "integrity": "sha512-OOxL+y9AOZayQzmSW+h5T54wQe+QBc/f67Y9QlWzzJhkKJdYx+S4VOooHoD5PFJzGbYaxhu2YF17p517pcEIIA==", + "version": "6.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-6.0.0-rc.0.tgz", + "integrity": "sha512-shPG9RXXpDYeluoB3tzaYU9Ut0jTvZ3osatLLUJkWjbRjFreK9zUcnoFDDrsVT6fEoyeBftp5DSa+wCUnPmcJA==", "requires": { - "@react-native-community/cli-debugger-ui": "^5.0.1", - "@react-native-community/cli-tools": "^5.0.1", + "@react-native-community/cli-debugger-ui": "^6.0.0-rc.0", + "@react-native-community/cli-tools": "^6.0.0-rc.0", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.0", @@ -11734,9 +12701,9 @@ } }, "@react-native-community/cli-tools": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-5.0.1.tgz", - "integrity": "sha512-XOX5w98oSE8+KnkMZZPMRT7I5TaP8fLbDl0tCu40S7Epz+Zz924n80fmdu6nUDIfPT1nV6yH1hmHmWAWTDOR+Q==", + "version": "6.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-6.0.0-rc.0.tgz", + "integrity": "sha512-N31BhNacTe0UGYQxUx0WHWPKnF4pBe62hNRV9WNJdWqVl4TP45T1Fd/7ziiosfalIar+tOo9Sk0Pqq48x1+wNw==", "requires": { "chalk": "^3.0.0", "lodash": "^4.17.15", @@ -11754,18 +12721,13 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" } } }, "@react-native-community/cli-types": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-5.0.1.tgz", - "integrity": "sha512-BesXnuFFlU/d1F3+sHhvKt8fUxbQlAbZ3hhMEImp9A6sopl8TEtryUGJ1dbazGjRXcADutxvjwT/i3LJVTIQug==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-6.0.0.tgz", + "integrity": "sha512-K493Fk2DMJC0ZM8s8gnfseKxGasIhuDaCUDeLZcoCSFlrjKEuEs1BKKEJiev0CARhKEXKOyyp/uqYM9nWhisNw==", "requires": { "ora": "^3.4.0" } @@ -11781,9 +12743,9 @@ "integrity": "sha512-xUNRvNmCl3UGCPbbHvfyFMnpvLPoOjDCcp5bT9m2k+TF/ZBklEQwhPZlkrxRx2NhgFh1X3a5uL7mJ7ZR+8G7Qg==" }, "@react-native/polyfills": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-1.0.0.tgz", - "integrity": "sha512-0jbp4RxjYopTsIdLl+/Fy2TiwVYHy4mgeu07DG4b/LyM0OS/+lPP5c9sbnt/AMlnF6qz2JRZpPpGw1eMNS6A4w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz", + "integrity": "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==" }, "@sideway/address": { "version": "4.1.2", @@ -12080,9 +13042,9 @@ } }, "appdirsjs": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.4.tgz", - "integrity": "sha512-WO5StDORR6JF/xYnXk/Fm0yu+iULaV5ULKuUw0Tu+jbgiTlSquaWBCgbpnsHLMXldf+fM3Gxn5p7vjond7He6w==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.5.tgz", + "integrity": "sha512-UyaAyzj+7XLoKhbXJi4zoAw8IDXCiLNCKfQEiuCsCCTkDmiG1vpCliQn/MoUvO3DZqCN1i6gOahokcFtNSIrVA==" }, "are-we-there-yet": { "version": "1.0.6", @@ -12214,7 +13176,8 @@ "babel-core": { "version": "7.0.0-bridge.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==" + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "requires": {} }, "babel-jest": { "version": "26.6.3", @@ -12478,15 +13441,15 @@ "dev": true }, "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.1.tgz", + "integrity": "sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==", "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", + "caniuse-lite": "^1.0.30001259", + "electron-to-chromium": "^1.3.846", "escalade": "^3.1.1", - "node-releases": "^1.1.71" + "nanocolors": "^0.1.5", + "node-releases": "^1.1.76" } }, "bser": { @@ -12585,9 +13548,12 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "caniuse-lite": { - "version": "1.0.30001239", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz", - "integrity": "sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==" + "version": "1.0.30001260", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001260.tgz", + "integrity": "sha512-Fhjc/k8725ItmrvW5QomzxLeojewxvqiYCKeFcfFEhut28IVLdpHU19dneOmltZQIE5HNbawj1HYD+1f2bM1Dg==", + "requires": { + "nanocolors": "^0.1.0" + } }, "capture-exit": { "version": "2.0.0", @@ -13049,11 +14015,11 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js-compat": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.1.tgz", - "integrity": "sha512-xGhzYMX6y7oEGQGAJmP2TmtBLvR4nZmRGEcFa3ubHOq5YEp51gGN9AovVa0AoujGZIq+Wm6dISiYyGNfdflYww==", + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.0.tgz", + "integrity": "sha512-tRVjOJu4PxdXjRMEgbP7lqWy1TWJu9a01oBkn8d+dNrhgmBwdTkzhHZpVJnEmhISLdoJI1lX08rcBcHi3TZIWg==", "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.17.0", "semver": "7.0.0" }, "dependencies": { @@ -13078,22 +14044,6 @@ "is-directory": "^0.3.1", "js-yaml": "^3.13.1", "parse-json": "^4.0.0" - }, - "dependencies": { - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } } }, "cross-spawn": { @@ -13159,9 +14109,9 @@ } }, "dayjs": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz", - "integrity": "sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==" + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" }, "debug": { "version": "4.3.1", @@ -13310,9 +14260,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.756", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.756.tgz", - "integrity": "sha512-WsmJym1TMeHVndjPjczTFbnRR/c4sbzg8fBFtuhlb2Sru3i/S1VGpzDSrv/It8ctMU2bj8G7g7/O3FzYMGw6eA==" + "version": "1.3.848", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.848.tgz", + "integrity": "sha512-wchRyBcdcmibioggdO7CbMT5QQ4lXlN/g7Mkpf1K2zINidnqij6EVu94UIZ+h5nB2S9XD4bykqFv9LonAWLFyw==" }, "emittery": { "version": "0.7.2", @@ -13436,8 +14386,7 @@ "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "etag": { "version": "1.8.1", @@ -14059,9 +15008,14 @@ } }, "hermes-engine": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.7.2.tgz", - "integrity": "sha512-E2DkRaO97gwL98LPhgfkMqhHiNsrAjIfEk3wWYn2Y31xdkdWn0572H7RnVcGujMJVqZNJvtknxlpsUb8Wzc3KA==" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.9.0.tgz", + "integrity": "sha512-r7U+Y4P2Qg/igFVZN+DpT7JFfXUn1MM4dFne8aW+cCrF6RRymof+VqrUHs1kl07j8h8V2CNesU19RKgWbr3qPw==" + }, + "hermes-parser": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.4.7.tgz", + "integrity": "sha512-jc+zCtXbtwTiXoMAoXOHepxAaGVFIp89wwE9qcdwnMd/uGVEtPoY8FaFSsx0ThPvyKirdR2EsIIDVrpbSXz1Ag==" }, "hermes-profile-transformer": { "version": "0.0.6", @@ -14163,6 +15117,22 @@ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==" }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, "import-local": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", @@ -14268,11 +15238,6 @@ } } }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -14836,7 +15801,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true + "dev": true, + "requires": {} }, "jest-regex-util": { "version": "26.0.0", @@ -15085,9 +16051,9 @@ "integrity": "sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==" }, "joi": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.0.tgz", - "integrity": "sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", + "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -15117,9 +16083,9 @@ "dev": true }, "jsc-android": { - "version": "245459.0.0", - "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-245459.0.0.tgz", - "integrity": "sha512-wkjURqwaB1daNkDi2OYYbsLnIdC/lUM2nPXQKRs5pqEU9chDg435bjvo+LSaHotDENygHQDHe+ntUkkw2gwMtg==" + "version": "250230.2.1", + "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250230.2.1.tgz", + "integrity": "sha512-KmxeBlRjwoqCnBBKGsihFtvsBHyUFlBxJPK4FzeYcIuBfdjv6jFys44JITAgSTbQD+vIdwMEfyZklsuQX0yI1Q==" }, "jscodeshift": { "version": "0.11.0", @@ -15195,11 +16161,6 @@ } } }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -15286,7 +16247,8 @@ "version": "7.5.0", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -15376,14 +16338,6 @@ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "requires": { "graceful-fs": "^4.1.9" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "optional": true - } } }, "kleur": { @@ -15623,16 +16577,16 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "metro": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.64.0.tgz", - "integrity": "sha512-G2OC08Rzfs0kqnSEuKo2yZxR+/eNUpA93Ru45c60uN0Dw3HPrDi+ZBipgFftC6iLE0l+6hu8roFFIofotWxybw==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.66.2.tgz", + "integrity": "sha512-uNsISfcQ3iKKSHoN5Q+LAh0l3jeeg7ZcNZ/4BAHGsk02erA0OP+l2m+b5qYVoPptHz9Oc3KyG5oGJoTu41pWjg==", "requires": { "@babel/code-frame": "^7.0.0", - "@babel/core": "^7.0.0", - "@babel/generator": "^7.5.0", - "@babel/parser": "^7.0.0", + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", + "@babel/parser": "^7.14.0", "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", + "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "absolute-path": "^0.0.0", "accepts": "^1.3.7", @@ -15645,27 +16599,28 @@ "error-stack-parser": "^2.0.6", "fs-extra": "^1.0.0", "graceful-fs": "^4.1.3", + "hermes-parser": "0.4.7", "image-size": "^0.6.0", "invariant": "^2.2.4", "jest-haste-map": "^26.5.2", "jest-worker": "^26.0.0", "lodash.throttle": "^4.1.1", - "metro-babel-register": "0.64.0", - "metro-babel-transformer": "0.64.0", - "metro-cache": "0.64.0", - "metro-cache-key": "0.64.0", - "metro-config": "0.64.0", - "metro-core": "0.64.0", - "metro-hermes-compiler": "0.64.0", - "metro-inspector-proxy": "0.64.0", - "metro-minify-uglify": "0.64.0", - "metro-react-native-babel-preset": "0.64.0", - "metro-resolver": "0.64.0", - "metro-runtime": "0.64.0", - "metro-source-map": "0.64.0", - "metro-symbolicate": "0.64.0", - "metro-transform-plugins": "0.64.0", - "metro-transform-worker": "0.64.0", + "metro-babel-register": "0.66.2", + "metro-babel-transformer": "0.66.2", + "metro-cache": "0.66.2", + "metro-cache-key": "0.66.2", + "metro-config": "0.66.2", + "metro-core": "0.66.2", + "metro-hermes-compiler": "0.66.2", + "metro-inspector-proxy": "0.66.2", + "metro-minify-uglify": "0.66.2", + "metro-react-native-babel-preset": "0.66.2", + "metro-resolver": "0.66.2", + "metro-runtime": "0.66.2", + "metro-source-map": "0.66.2", + "metro-symbolicate": "0.66.2", + "metro-transform-plugins": "0.66.2", + "metro-transform-worker": "0.66.2", "mime-types": "^2.1.27", "mkdirp": "^0.5.1", "node-fetch": "^2.2.0", @@ -15698,11 +16653,6 @@ "klaw": "^1.0.0" } }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, "jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", @@ -15733,14 +16683,14 @@ } }, "metro-babel-register": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.64.0.tgz", - "integrity": "sha512-Kf6YvE3kIRumGnjK0Q9LqGDIdnsX9eFGtNBmBuCVDuB9wGGA/5CgX8We8W7Y44dz1RGTcHJRhfw5iGg+pwC3aQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.66.2.tgz", + "integrity": "sha512-3F+vsVubUPJYKfVMeol8/7pd8CC287Rw92QYzJD8LEmI980xcgwMUEVBZ0UIAUwlLgiJG/f4Mwhuji2EeBXrPg==", "requires": { - "@babel/core": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/core": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", "@babel/plugin-transform-flow-strip-types": "^7.0.0", "@babel/plugin-transform-modules-commonjs": "^7.0.0", "@babel/register": "^7.0.0", @@ -15748,62 +16698,63 @@ } }, "metro-babel-transformer": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.64.0.tgz", - "integrity": "sha512-itZaxKTgmKGEZWxNzbSZBc22NngrMZzoUNuU92aHSTGkYi2WH4XlvzEHsstmIKHMsRVKl75cA+mNmgk4gBFJKw==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.66.2.tgz", + "integrity": "sha512-aJ/7fc/Xkofw8Fqa51OTDhBzBz26mmpIWrXAZcPdQ8MSTt883EWncxeCEjasc79NJ89BRi7sOkkaWZo2sXlKvw==", "requires": { - "@babel/core": "^7.0.0", - "metro-source-map": "0.64.0", + "@babel/core": "^7.14.0", + "hermes-parser": "0.4.7", + "metro-source-map": "0.66.2", "nullthrows": "^1.1.1" } }, "metro-cache": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.64.0.tgz", - "integrity": "sha512-QvGfxe/1QQYM9XOlR8W1xqE9eHDw/AgJIgYGn/TxZxBu9Zga+Rgs1omeSZju45D8w5VWgMr83ma5kACgzvOecg==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.66.2.tgz", + "integrity": "sha512-5QCYJtJOHoBSbL3H4/Fpl36oA697C3oYHqsce+Hk/dh2qtODUGpS3gOBhvP1B8iB+H8jJMyR75lZq129LJEsIQ==", "requires": { - "metro-core": "0.64.0", + "metro-core": "0.66.2", "mkdirp": "^0.5.1", "rimraf": "^2.5.4" } }, "metro-cache-key": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.64.0.tgz", - "integrity": "sha512-O9B65G8L/fopck45ZhdRosyVZdMtUQuX5mBWEC1NRj02iWBIUPLmYMjrunqIe8vHipCMp3DtTCm/65IlBmO8jg==" + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.66.2.tgz", + "integrity": "sha512-WtkNmRt41qOpHh1MkNA4nLiQ/m7iGL90ysSKD+fcLqlUnOBKJptPQm0ZUv8Kfqk18ddWX2KmsSbq+Sf3I6XohQ==" }, "metro-config": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.64.0.tgz", - "integrity": "sha512-QhM4asnX5KhlRWaugwVGNNXhX0Z85u5nK0UQ/A90bBb4xWyXqUe20e788VtdA75rkQiiI6wXTCIHWT0afbnjwQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.66.2.tgz", + "integrity": "sha512-0C+PrKKIBNNzLZUKN/8ZDJS2U5FLMOTXDWbvBHIdqb6YXz8WplXR2+xlSlaSCCi5b+GR7cWFWUNeKA4GQS1/AQ==", "requires": { "cosmiconfig": "^5.0.5", "jest-validate": "^26.5.2", - "metro": "0.64.0", - "metro-cache": "0.64.0", - "metro-core": "0.64.0", - "metro-runtime": "0.64.0" + "metro": "0.66.2", + "metro-cache": "0.66.2", + "metro-core": "0.66.2", + "metro-runtime": "0.66.2" } }, "metro-core": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.64.0.tgz", - "integrity": "sha512-v8ZQ5j72EaUwamQ8pLfHlOHTyp7SbdazvHPzFGDpHnwIQqIT0Bw3Syg8R4regTlVG3ngpeSEAi005UITljmMcQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.66.2.tgz", + "integrity": "sha512-JieLZkef/516yxXYvQxWnf3OWw5rcgWRy76K8JV/wr/i8LGVGulPAXlIi445/QZzXVydzRVASKAEVqyxM5F4mA==", "requires": { "jest-haste-map": "^26.5.2", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.64.0" + "metro-resolver": "0.66.2" } }, "metro-hermes-compiler": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.64.0.tgz", - "integrity": "sha512-CLAjVDWGAoGhbi2ZyPHnH5YDdfrDIx6+tzFWfHGIMTZkYBXsYta9IfYXBV8lFb6BIbrXLjlXZAOoosknetMPOA==" + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.66.2.tgz", + "integrity": "sha512-nCVL1g9uR6vrw5+X1wjwZruRyMkndnzGRMqjqoljf+nGEqBTD607CR7elXw4fMWn/EM+1y0Vdq5altUu9LdgCA==" }, "metro-inspector-proxy": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.64.0.tgz", - "integrity": "sha512-KywbH3GNSz9Iqw4UH3smgaV2dBHHYMISeN7ORntDL/G+xfgPc6vt13d+zFb907YpUcXj5N0vdoiAHI5V/0y8IA==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.66.2.tgz", + "integrity": "sha512-gnLc9121eznwP0iiA9tCBW8qZjwIsCgwHWMF1g1Qaki9le9tzeJv3dK4/lFNGxyfSaLO7vahQEhsEYsiRnTROg==", "requires": { "connect": "^3.6.5", "debug": "^2.2.0", @@ -15836,19 +16787,19 @@ } }, "metro-minify-uglify": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.64.0.tgz", - "integrity": "sha512-DRwRstqXR5qfte9Nuwoov5dRXxL7fJeVlO5fGyOajWeO3+AgPjvjXh/UcLJqftkMWTPGUFuzAD5/7JC5v5FLWw==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.66.2.tgz", + "integrity": "sha512-7TUK+L5CmB5x1PVnFbgmjzHW4CUadq9H5jgp0HfFoWT1skXAyEsx0DHkKDXwnot0khnNhBOEfl62ctQOnE110Q==", "requires": { "uglify-es": "^3.1.9" } }, "metro-react-native-babel-preset": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.64.0.tgz", - "integrity": "sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.66.2.tgz", + "integrity": "sha512-H/nLBAz0MgfDloSe1FjyH4EnbokHFdncyERvLPXDACY3ROVRCeUyFNo70ywRGXW2NMbrV4H7KUyU4zkfWhC2HQ==", "requires": { - "@babel/core": "^7.0.0", + "@babel/core": "^7.14.0", "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", @@ -15861,6 +16812,7 @@ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", "@babel/plugin-syntax-optional-chaining": "^7.0.0", "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", "@babel/plugin-transform-block-scoping": "^7.0.0", "@babel/plugin-transform-classes": "^7.0.0", "@babel/plugin-transform-computed-properties": "^7.0.0", @@ -15890,42 +16842,43 @@ } }, "metro-react-native-babel-transformer": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.64.0.tgz", - "integrity": "sha512-K1sHO3ODBFCr7uEiCQ4RvVr+cQg0EHQF8ChVPnecGh/WDD8udrTq9ECwB0dRfMjAvlsHtRUlJm6ZSI8UPgum2w==", - "requires": { - "@babel/core": "^7.0.0", - "babel-preset-fbjs": "^3.3.0", - "metro-babel-transformer": "0.64.0", - "metro-react-native-babel-preset": "0.64.0", - "metro-source-map": "0.64.0", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.66.2.tgz", + "integrity": "sha512-z1ab7ihIT0pJrwgi9q2IH+LcW/xUWMQ0hH+Mrk7wbKQB0RnJdXFoxphrfoVHBHMUu+TBPetUcEkKawkK1e7Cng==", + "requires": { + "@babel/core": "^7.14.0", + "babel-preset-fbjs": "^3.4.0", + "hermes-parser": "0.4.7", + "metro-babel-transformer": "0.66.2", + "metro-react-native-babel-preset": "0.66.2", + "metro-source-map": "0.66.2", "nullthrows": "^1.1.1" } }, "metro-resolver": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.64.0.tgz", - "integrity": "sha512-cJ26Id8Zf+HmS/1vFwu71K3u7ep/+HeXXAJIeVDYf+niE7AWB9FijyMtAlQgbD8elWqv1leJCnQ/xHRFBfGKYA==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.66.2.tgz", + "integrity": "sha512-pXQAJR/xauRf4kWFj2/hN5a77B4jLl0Fom5I3PHp6Arw/KxSBp0cnguXpGLwNQ6zQC0nxKCoYGL9gQpzMnN7Hw==", "requires": { "absolute-path": "^0.0.0" } }, "metro-runtime": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.64.0.tgz", - "integrity": "sha512-m7XbWOaIOeFX7YcxUhmnOi6Pg8EaeL89xyZ+quZyZVF1aNoTr4w8FfbKxvijpjsytKHIZtd+43m2Wt5JrqyQmQ==" + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.66.2.tgz", + "integrity": "sha512-vFhKBk2ot9FS4b+2v0OTa/guCF/QDAOJubY0CNg7PzCS5+w4y3IvZIcPX4SSS1t8pYEZBLvtdtTDarlDl81xmg==" }, "metro-source-map": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.64.0.tgz", - "integrity": "sha512-OCG2rtcp5cLEGYvAbfkl6mEc0J2FPRP4/UCEly+juBk7hawS9bCBMBfhJm/HIsvY1frk6nT2Vsl1O8YBbwyx2g==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.66.2.tgz", + "integrity": "sha512-038tFmB7vSh73VQcDWIbr5O1m+WXWyYafDaOy+1A/2K308YP0oj33gbEgDnZsLZDwcJ+xt1x6KUEBIzlX4YGeQ==", "requires": { - "@babel/traverse": "^7.0.0", + "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.64.0", + "metro-symbolicate": "0.66.2", "nullthrows": "^1.1.1", - "ob1": "0.64.0", + "ob1": "0.66.2", "source-map": "^0.5.6", "vlq": "^1.0.0" }, @@ -15938,12 +16891,12 @@ } }, "metro-symbolicate": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.64.0.tgz", - "integrity": "sha512-qIi+YRrDWnLVmydj6gwidYLPaBsakZRibGWSspuXgHAxOI3UuLwlo4dpQ73Et0gyHjI7ZvRMRY8JPiOntf9AQQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.66.2.tgz", + "integrity": "sha512-u+DeQHyAFXVD7mVP+GST/894WHJ3i/U8oEJFnT7U3P52ZuLgX8n4tMNxhqZU12RcLR6etF8143aP0Ktx1gFLEQ==", "requires": { "invariant": "^2.2.4", - "metro-source-map": "0.64.0", + "metro-source-map": "0.66.2", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -15958,34 +16911,34 @@ } }, "metro-transform-plugins": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.64.0.tgz", - "integrity": "sha512-iTIRBD/wBI98plfxj8jAoNUUXfXLNlyvcjPtshhpGvdwu9pzQilGfnDnOaaK+vbITcOk9w5oQectXyJwAqTr1A==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.66.2.tgz", + "integrity": "sha512-KTvqplh0ut7oDKovvDG6yzXM02R6X+9b2oVG+qYq8Zd3aCGTi51ASx4ThCNkAHyEvCuJdYg9fxXTL+j+wvhB5w==", "requires": { - "@babel/core": "^7.0.0", - "@babel/generator": "^7.5.0", + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", + "@babel/traverse": "^7.14.0", "nullthrows": "^1.1.1" } }, "metro-transform-worker": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.64.0.tgz", - "integrity": "sha512-wegRtK8GyLF6IPZRBJp+zsORgA4iX0h1DRpknyAMDCtSbJ4VU2xV/AojteOgAsDvY3ucAGsvfuZLNDJHUdUNHQ==", + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.66.2.tgz", + "integrity": "sha512-dO4PtYOMGB7Vzte8aIzX39xytODhmbJrBYPu+zYzlDjyefJZT7BkZ0LkPIThtyJi96xWcGqi9JBSo0CeRupAHw==", "requires": { - "@babel/core": "^7.0.0", - "@babel/generator": "^7.5.0", - "@babel/parser": "^7.0.0", + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", + "@babel/parser": "^7.14.0", "@babel/types": "^7.0.0", - "babel-preset-fbjs": "^3.3.0", - "metro": "0.64.0", - "metro-babel-transformer": "0.64.0", - "metro-cache": "0.64.0", - "metro-cache-key": "0.64.0", - "metro-hermes-compiler": "0.64.0", - "metro-source-map": "0.64.0", - "metro-transform-plugins": "0.64.0", + "babel-preset-fbjs": "^3.4.0", + "metro": "0.66.2", + "metro-babel-transformer": "0.66.2", + "metro-cache": "0.66.2", + "metro-cache-key": "0.66.2", + "metro-hermes-compiler": "0.66.2", + "metro-source-map": "0.66.2", + "metro-transform-plugins": "0.66.2", "nullthrows": "^1.1.1" } }, @@ -15999,9 +16952,9 @@ } }, "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" }, "mime-db": { "version": "1.48.0", @@ -16094,6 +17047,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "nanocolors": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", + "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==" + }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -16147,9 +17105,33 @@ } }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } }, "node-int64": { "version": "0.4.0", @@ -16206,14 +17188,14 @@ } }, "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==" + "version": "1.1.76", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz", + "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==" }, "node-stream-zip": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.13.6.tgz", - "integrity": "sha512-c7tRSVkLNOHvasWgmZ2d86cDgTWEygnkuuHNOY9c0mR3yLZtQTTrGvMaJ/fPs6+LOJn3240y30l5sjLaXFtcvw==" + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", + "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==" }, "normalize-package-data": { "version": "2.5.0", @@ -16283,9 +17265,9 @@ "dev": true }, "ob1": { - "version": "0.64.0", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.64.0.tgz", - "integrity": "sha512-CO1N+5dhvy+MoAwxz8+fymEUcwsT4a+wHhrHFb02LppcJdHxgcBWviwEhUwKOD2kLMQ7ijrrzybOqpGcqEtvpQ==" + "version": "0.66.2", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.66.2.tgz", + "integrity": "sha512-RFewnL/RjE0qQBOuM+2bbY96zmJPIge/aDtsiDbLSb+MOiK8CReAhBHDgL+zrA3F1hQk00lMWpUwYcep750plA==" }, "object-assign": { "version": "4.1.1", @@ -16625,13 +17607,12 @@ } }, "plist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz", - "integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", + "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", "requires": { "base64-js": "^1.5.1", - "xmlbuilder": "^9.0.7", - "xmldom": "^0.5.0" + "xmlbuilder": "^9.0.7" }, "dependencies": { "xmlbuilder": { @@ -16755,9 +17736,9 @@ } }, "react": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", - "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -16775,7 +17756,8 @@ "ws": { "version": "7.5.0", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz", - "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==" + "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==", + "requires": {} } } }, @@ -16785,131 +17767,47 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "react-native": { - "version": "0.64.2", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.64.2.tgz", - "integrity": "sha512-Ty/fFHld9DcYsFZujXYdeVjEhvSeQcwuTGXezyoOkxfiGEGrpL/uwUZvMzwShnU4zbbTKDu2PAm/uwuOittRGA==", - "requires": { - "@jest/create-cache-key-function": "^26.5.0", - "@react-native-community/cli": "^5.0.1-alpha.1", - "@react-native-community/cli-platform-android": "^5.0.1-alpha.1", - "@react-native-community/cli-platform-ios": "^5.0.1-alpha.1", + "version": "0.66.0-rc.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.66.0-rc.3.tgz", + "integrity": "sha512-iSdMqPZI26ua/8ENgsm8y1n0tNstG0NLMM921SsnI9ci9g1Lx6vDcPjZYQ3dKQh7gpg5lr5D1XAmbHW5ze8tgA==", + "requires": { + "@jest/create-cache-key-function": "^27.0.1", + "@react-native-community/cli": "^6.0.0", + "@react-native-community/cli-platform-android": "^6.0.0", + "@react-native-community/cli-platform-ios": "^6.0.0", "@react-native/assets": "1.0.0", "@react-native/normalize-color": "1.0.0", - "@react-native/polyfills": "1.0.0", + "@react-native/polyfills": "2.0.0", "abort-controller": "^3.0.0", "anser": "^1.4.9", "base64-js": "^1.1.2", "event-target-shim": "^5.0.1", - "hermes-engine": "~0.7.0", + "hermes-engine": "~0.9.0", "invariant": "^2.2.4", - "jsc-android": "^245459.0.0", - "metro-babel-register": "0.64.0", - "metro-react-native-babel-transformer": "0.64.0", - "metro-runtime": "0.64.0", - "metro-source-map": "0.64.0", + "jsc-android": "^250230.2.1", + "metro-babel-register": "0.66.2", + "metro-react-native-babel-transformer": "0.66.2", + "metro-runtime": "0.66.2", + "metro-source-map": "0.66.2", "nullthrows": "^1.1.1", "pretty-format": "^26.5.2", "promise": "^8.0.3", "prop-types": "^15.7.2", - "react-devtools-core": "^4.6.0", - "react-native-codegen": "^0.0.6", + "react-devtools-core": "^4.13.0", + "react-native-codegen": "^0.0.7", "react-refresh": "^0.4.0", "regenerator-runtime": "^0.13.2", - "scheduler": "^0.20.1", - "shelljs": "^0.8.4", + "scheduler": "^0.20.2", "stacktrace-parser": "^0.1.3", "use-subscription": "^1.0.0", "whatwg-fetch": "^3.0.0", "ws": "^6.1.4" - }, - "dependencies": { - "@react-native-community/cli": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-5.0.1.tgz", - "integrity": "sha512-9VzSYUYSEqxEH5Ib2UNSdn2eyPiYZ4T7Y79o9DKtRBuSaUIwbCUdZtIm+UUjBpLS1XYBkW26FqL8/UdZDmQvXw==", - "requires": { - "@react-native-community/cli-debugger-ui": "^5.0.1", - "@react-native-community/cli-hermes": "^5.0.1", - "@react-native-community/cli-server-api": "^5.0.1", - "@react-native-community/cli-tools": "^5.0.1", - "@react-native-community/cli-types": "^5.0.1", - "appdirsjs": "^1.2.4", - "chalk": "^3.0.0", - "command-exists": "^1.2.8", - "commander": "^2.19.0", - "cosmiconfig": "^5.1.0", - "deepmerge": "^3.2.0", - "envinfo": "^7.7.2", - "execa": "^1.0.0", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0", - "glob": "^7.1.3", - "graceful-fs": "^4.1.3", - "joi": "^17.2.1", - "leven": "^3.1.0", - "lodash": "^4.17.15", - "metro": "^0.64.0", - "metro-config": "^0.64.0", - "metro-core": "^0.64.0", - "metro-react-native-babel-transformer": "^0.64.0", - "metro-resolver": "^0.64.0", - "metro-runtime": "^0.64.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "node-stream-zip": "^1.9.1", - "ora": "^3.4.0", - "pretty-format": "^26.6.2", - "prompts": "^2.4.0", - "semver": "^6.3.0", - "serve-static": "^1.13.1", - "strip-ansi": "^5.2.0", - "sudo-prompt": "^9.0.0", - "wcwidth": "^1.0.1" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "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" - } - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, - "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" - } - } } }, "react-native-codegen": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.0.6.tgz", - "integrity": "sha512-cMvrUelD81wiPitEPiwE/TCNscIVauXxmt4NTGcy18HrUd0WRWXfYzAQGXm0eI87u3NMudNhqFj2NISJenxQHg==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.0.7.tgz", + "integrity": "sha512-dwNgR8zJ3ALr480QnAmpTiqvFo+rDtq6V5oCggKhYFlRjzOmVSFn3YD41u8ltvKS5G2nQ8gCs2vReFFnRGLYng==", "requires": { "flow-parser": "^0.121.0", "jscodeshift": "^0.11.0", @@ -16919,7 +17817,8 @@ "react-native-exception-handler": { "version": "2.10.10", "resolved": "https://registry.npmjs.org/react-native-exception-handler/-/react-native-exception-handler-2.10.10.tgz", - "integrity": "sha512-otAXGoZDl1689OoUJWN/rXxVbdoZ3xcmyF1uq/CsizdLwwyZqVGd6d+p/vbYvnF996FfEyAEBnHrdFxulTn51w==" + "integrity": "sha512-otAXGoZDl1689OoUJWN/rXxVbdoZ3xcmyF1uq/CsizdLwwyZqVGd6d+p/vbYvnF996FfEyAEBnHrdFxulTn51w==", + "requires": {} }, "react-native-exit-app": { "version": "1.1.0", @@ -16951,15 +17850,15 @@ } }, "react-test-renderer": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.1.tgz", - "integrity": "sha512-/dRae3mj6aObwkjCcxZPlxDFh73XZLgvwhhyON2haZGUEhiaY5EjfAdw+d/rQmlcFwdTpMXCSGVk374QbCTlrA==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", + "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", "dev": true, "requires": { "object-assign": "^4.1.1", - "react-is": "^17.0.1", + "react-is": "^17.0.2", "react-shallow-renderer": "^16.13.1", - "scheduler": "^0.20.1" + "scheduler": "^0.20.2" } }, "read-pkg": { @@ -17020,9 +17919,9 @@ } }, "recast": { - "version": "0.20.4", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.4.tgz", - "integrity": "sha512-6qLIBGGRcwjrTZGIiBpJVC/NeuXpogXNyRQpqU1zWPUigCphvApoCs9KIwDYh1eDuJ6dAFlQoi/QUyE5KQ6RBQ==", + "version": "0.20.5", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz", + "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==", "requires": { "ast-types": "0.14.2", "esprima": "~4.0.0", @@ -17030,14 +17929,6 @@ "tslib": "^2.0.1" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -17447,6 +18338,11 @@ } } }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -17541,16 +18437,6 @@ "jsonify": "~0.0.0" } }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", @@ -18221,9 +19107,9 @@ "dev": true }, "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tunnel-agent": { "version": "0.6.0", @@ -18696,11 +19582,6 @@ "sax": "^1.2.1" } }, - "xmldom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz", - "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==" - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/tests/ReactTestApp/package.json b/tests/ReactTestApp/package.json index 635457065fe..05b19c7fe55 100644 --- a/tests/ReactTestApp/package.json +++ b/tests/ReactTestApp/package.json @@ -12,8 +12,8 @@ }, "dependencies": { "graceful-fs": "^4.2.4", - "react": "17.0.1", - "react-native": "0.64.2", + "react": "17.0.2", + "react-native": "0.66.0-rc.3", "react-native-exception-handler": "^2.4.3", "react-native-exit-app": "1.1.0", "react-native-fs": "^2.16.6", @@ -27,8 +27,8 @@ "fs-extra": "^4.0.3", "install-local": "^3.0.1", "jest": "^26.6.3", - "metro-react-native-babel-preset": "^0.64.0", - "react-test-renderer": "17.0.1" + "metro-react-native-babel-preset": "^0.66.2", + "react-test-renderer": "17.0.2" }, "localDependencies": { "realm": "../..", diff --git a/tests/ReactTestApp/tests/index.js b/tests/ReactTestApp/tests/index.js index c427ca15591..4fca8e5620c 100644 --- a/tests/ReactTestApp/tests/index.js +++ b/tests/ReactTestApp/tests/index.js @@ -20,11 +20,6 @@ import {NativeEventEmitter, NativeModules} from 'react-native'; import * as RealmTests from 'realm-tests'; -import ListViewTest from './listview-test'; - -RealmTests.registerTests({ - ListViewTest, -}); const realmTestEmitter = new NativeEventEmitter( NativeModules.RealmTestEventEmitter, diff --git a/tests/ReactTestApp/tests/listview-test.js b/tests/ReactTestApp/tests/listview-test.js deleted file mode 100644 index 561ce4222dc..00000000000 --- a/tests/ReactTestApp/tests/listview-test.js +++ /dev/null @@ -1,96 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// -// Copyright 2016 Realm Inc. -// -// 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 -// -// http://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. -// -//////////////////////////////////////////////////////////////////////////// - -'use strict'; - -import Realm from 'realm'; -import {ListView} from 'realm/react-native'; -import {assertEqual, assertTrue} from 'realm-tests/asserts'; - -const OBJECT_SCHEMA = { - name: 'UniqueObject', - primaryKey: 'id', - properties: { - id: 'int', - }, -}; - -function createRealm() { - let realm = new Realm({schema: [OBJECT_SCHEMA]}); - - realm.write(() => { - for (let i = 0; i < 10; i++) { - realm.create('UniqueObject', {id: i}); - } - }); - - return realm; -} - -function createDataSource() { - return new ListView.DataSource({ - rowHasChanged: (a, b) => a.id !== b.id, - }); -} - -export default { - testDataSource() { - let realm = createRealm(); - let objects = realm.objects('UniqueObject').sorted('id'); - let dataSource = createDataSource().cloneWithRows(objects); - let count = objects.length; - - // Make sure the section header should update. - assertTrue(dataSource.sectionHeaderShouldUpdate(0)); - - // All rows should need to update. - for (let i = 0; i < count; i++) { - assertTrue(dataSource.rowShouldUpdate(0, i)); - } - - // Clone data source with no changes and make sure no rows need to update. - dataSource = dataSource.cloneWithRows(objects); - for (let i = 0; i < count; i++) { - assertTrue(!dataSource.rowShouldUpdate(0, i)); - } - - // Delete the second object and make sure current data source is unchanged. - realm.write(() => realm.delete(objects[1])); - for (let i = 0; i < count; i++) { - assertTrue(!dataSource.rowShouldUpdate(0, i)); - } - - // Getting the row data for the second row should return null. - assertEqual(dataSource.getRow('s1', 1), null); - - // Clone data source and make sure all rows after the first one need to update. - dataSource = dataSource.cloneWithRows(objects); - for (let i = 0; i < count - 1; i++) { - let changed = dataSource.rowShouldUpdate(0, i); - assertTrue(i == 0 ? !changed : changed); - } - - // Create an object at the ened and make sure only the last row needs to update. - realm.write(() => realm.create('UniqueObject', {id: count})); - dataSource = dataSource.cloneWithRows(objects); - for (let i = 0; i < count; i++) { - let changed = dataSource.rowShouldUpdate(0, i); - assertTrue(i < count - 1 ? !changed : changed); - } - }, -};